romainnorberg/datadog-api

缺失的DataDog API PHP包装器!一个轻量级包,用于从DataDog获取指标

v0.5 2023-03-01 07:37 UTC

This package is auto-updated.

Last update: 2024-09-29 10:47:55 UTC


README

非官方包

Datadog API

Latest Version on Packagist GitHub Tests Action Status codecov Total Downloads

缺失的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)。有关更多信息,请参阅许可证文件