bedrockstreaming/newrelic-guzzle-http-host

一种解决在 NewRelic 中正确报告 Guzzle 请求的 Host Http 头的方法。

v1.0.0 2021-03-16 14:41 UTC

This package is auto-updated.

Last update: 2024-08-27 19:22:17 UTC


README

一种解决在 NewRelic 中正确报告 Guzzle 请求的 Host Http 头的方法。

在某些情况下,您可能使用一个公共代理为多个不同的主机进行多个外部调用,使用标准的 Host 头来路由您的请求。不幸的是,由于所有这些调用都使用了相同的 URI,NewRelic 将它们报告为对同一目标的同一外部调用。

这个小的脚本提供了一种绕过方法,根据 HTTP Host 头报告正确的端点。

⚠️ 这个库是一个依赖当前 newrelic 扩展实现的 绕过方法!在使用新扩展版本之前,请仔细测试。下面有更多解释。

ℹ️ 已向 NewRelic 团队提交了官方功能请求。

安装

composer require bedrockstreaming/newrelic-guzzle-http-host

就这些!由于 Composer 自动加载器,脚本会自动导入。

ℹ️ 您也可以将 newrelic_hook.php 的内容直接复制到您的项目中。

解释

newrelic 扩展 定义了一个 Php 函数和一个 Guzzle 中间件,用于在从 Php 发送的每个请求上报告一些指标。

幸运的是,扩展仅在该函数不存在时定义它……然后这个绕过方法在 newrelic 之前定义这个函数 😅。原始代码被复制到这个函数中,但我们创建了一个专门用于 NewRelic 报告的新 HTTP 请求,解决了 Http HOST 头。Guzzle 使用的原始请求保持不变。