NON OFFICIAL PACKAGE
The missing DataDog API PHP Wrapper! A lightweight package to fetch metrics from Datadog
-
Metrics doc
- ✅ Get active list
- ✅ Get metadata
- ✅ Query timeseries points
Edit metadataSearchSubmit metrics
-
Downtimes doc
- ✅ Get all downtimes
Cancel a downtimeCancel downtimes by scopeGet a downtimeSchedule a downtimeUpdate a downtime
You can install the package via 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();
|----^-------|
Using $metrics->maxPoint()
provide the highest point for the requested period.
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
}
*/
Using $metrics->maxPointBySerie()
provide highest points by serie for the requested period. By example if you query by host, you can retrieve max point by host.
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
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
If you discover any security related issues, please email romainnorberg@gmail.com instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.