leocavalcante / newrelic-telemetry-sdk
向 New Relic 发送遥测数据的非官方 PHP 库
v0.1.1
2021-02-18 12:54 UTC
Requires
- php: >=7.4
- ext-curl: *
- ext-json: *
- ext-zlib: *
- ramsey/uuid: ^4.1
Requires (Dev)
- mockery/mockery: ^1.4
- pestphp/pest: ^0.3.12
- phpunit/phpunit: ^9.4
- swoole/ide-helper: ^4.6
- vimeo/psalm: ^4.1
README
非官方 的 PHP 库,用于向 New Relic 发送遥测数据。
- ⚠️ 正在积极开发中,但开源寻求贡献。
- 它 不是 代理包装器,它调用 New Relic 的 Ingest APIs。
用法
示例
发送一个 Gauge 指标。
use NewRelic\Adapter; use NewRelic\Metric; $metric_api = new Metric\API(new Adapter\Curl(getenv('NR_API_KEY'))); $metric_api->setCommonAttrs(['service.name' => 'PHP-SDK']); $metric_api->send(new Metric\Gauge('memory.heap', 2.3)); $response = $metric_api->commit(); if ($response->isOk()) { echo sprintf("Request ID: %s\n", $response->getId()); } else { echo sprintf("Metric send error: %s\n", $response->getMessage()); }
相关资源
提示
- 确保在报告跟踪和/或指标时包括 service.instance.id。
原因
主要原因包括
- 与常规代理相比,有太多的 segfaults。
- 即使是简单的用例,常规代理也与 Swoole 不兼容。这段小代码就足以抛出 segfault
Co\run(static function () { go(static function () { (new Co\Http\Client('swoole.co.uk'))->get('/'); }); });
- 有 其他语言的 SDK,这是一个非官方的 PHP 版本。
- 可用于为即将推出的 OpenTelemetry PHP 库 构建一个 New Relic 导出器。