romainnorberg / datadog-api
缺失的DataDog API PHP包装器!一个轻量级包,用于从DataDog获取指标
v0.5
2023-03-01 07:37 UTC
Requires
- php: ^8.1
- ext-json: *
- netresearch/jsonmapper: ^4.1
- symfony/config: ^6.2
- symfony/dependency-injection: ^6.2
- symfony/http-client: ^6.2
- symfony/yaml: ^6.2
Requires (Dev)
- phpunit/phpunit: ^10.0
- spatie/phpunit-snapshot-assertions: ^5.0
- symfony/var-dumper: ^6.2
README
非官方包
缺失的DataDog API PHP包装器!一个轻量级包,用于从DataDog获取指标
实际范围
安装
您可以通过composer安装此包
composer require romainnorberg/datadog-api
用法/示例
实例化
use Romainnorberg\DataDogApi\DataDogApi; // Using env (DATADOG_API_KEY & DATADOG_APPLICATION_KEY) $datadogApi = new DataDogApi(); // Using arguments $datadogApi = new DataDogApi('<apiKey>', '<applicationKey>');
指标
获取指标
use Romainnorberg\DataDogApi\DataDogApi; $datadogApi = new DataDogApi(); // Using env $metrics = $datadogApi ->metrics() ->query() ->from((new \DateTime())->sub(new \DateInterval('PT1H'))) ->to(new \DateTime()) ->query('avg:worker.memory.heapUsed{*}') ->handle();
获取特定期间的最大值
|----^-------|
使用$metrics->maxPoint()
提供请求期间的最高点。
use Romainnorberg\DataDogApi\DataDogApi; $datadogApi = new DataDogApi(); // Using env $metrics = $datadogApi ... ->query('sum:nginx.net.request_per_s{*}') ->handle(); $max = $metrics->maxPoint(); /** * Romainnorberg\DataDogApi\Model\Metrics\Point { +timestamp: 1588269614000 +value: 68.389493934967 } */
使用$metrics->maxPointBySerie()
提供请求期间按系列的最高点。例如,如果您按主机查询,您可以检索主机的最大点。
use Romainnorberg\DataDogApi\DataDogApi; $datadogApi = new DataDogApi(); // Using env $metrics = $datadogApi ... ->query('sum:nginx.net.request_per_s{*} by{host}') ->handle(); $maxBySerie = $metrics->maxPointBySerie(); /* * array:4 [ 0 => array:2 [ "serie" => Romainnorberg\DataDogApi\Model\Metrics\Serie^ {#292 +aggr: "sum" +end: 1588269659000 +expression: "sum:nginx.net.request_per_s{host:staging}" +interval: 1 +length: 32 +metric: "nginx.net.request_per_s" +pointlist: [] +scope: "host:staging" +start: 1588269548000 } "point" => array:2 [ 0 => 1588269594000.0 1 => 1.1333215343856 ] ] 1 => array:2 [ "serie" => Romainnorberg\DataDogApi\Model\Metrics\Serie^ {#70 +aggr: "sum" +end: 1588269659000 +expression: "sum:nginx.net.request_per_s{host:frontend1}" +interval: 1 +length: 32 +metric: "nginx.net.request_per_s" +pointlist: [] +scope: "host:frontend1" +start: 1588269548000 } "point" => array:2 [ 0 => 1588269608000.0 1 => 51.069667634348 ] ] ... */
宕机
获取所有宕机
use Romainnorberg\DataDogApi\DataDogApi; $datadogApi = new DataDogApi(); // Using env $metrics = $datadogApi ->downtime() ->list() //->currentOnly() // Only return downtimes that are active when the request is made. ->handle() ->response();
测试
composer test
变更日志
请参阅变更日志以获取有关最近更改的更多信息。
贡献
请参阅贡献以获取详细信息。
安全
如果您发现任何安全相关的问题,请通过电子邮件romainnorberg@gmail.com联系,而不是使用问题跟踪器。
鸣谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。