8000 GitHub - romainnorberg/datadog-api at v0.4
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

The missing DataDog API PHP Wrapper! A lightweight package to fetch metrics from Datadog

License

Notifications You must be signed in to change notification settings

romainnorberg/datadog-api

Repository files navigation

DO NOT USE YET, PACKAGE IN DEVELOPMENT. NON OFFICIAL PACKAGE

Datadog API

Latest Version on Packagist GitHub Tests Action Status codecov Total Downloads

The missing DataDog API PHP Wrapper! A lightweight package to fetch metrics from Datadog


Actual scope

  • Metrics doc
    • ✅ Get active list
    • ✅ Get metadata
    • ✅ Query timeseries points
    • Edit metadata
    • Search
    • Submit metrics

Installation

You can install the package via composer:

composer require romainnorberg/datadog-api

Usage / examples

Instantiation

use Romainnorberg\DataDogApi\DataDogApi;

// Using env (DATADOG_API_KEY & DATADOG_APPLICATION_KEY)
$datadogApi = new DataDogApi();  

// Using arguments
$datadogApi = new DataDogApi('<apiKey>', '<applicationKey>');

Fetching metrics

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();

Get max values for a specific period

|----^-------|

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
       ]
     ]
     ...
 */

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email romainnorberg@gmail.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

About

The missing DataDog API PHP Wrapper! A lightweight package to fetch metrics from Datadog

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Languages

0