Envoi de checks de service : DogStatsD

Si StatsD n’accepte que les métriques, DogStatsD prend en charge les trois principaux types de données Datadog : métriques, événements et checks de service. Cette section propose des cas d’utilisation typiques des checks de service, accompagnés d’exemples de code.

Fonction

Une fois DogStatsD installé, vous pouvez envoyer des checks de service à Datadog via la fonction suivante :

service_check(<NOM_CHECK_SERVICE>, <STATUT>, <TAGS>, <HOSTNAME>, <MESSAGE>)

Paramètres de la fonction check de service :

ParamètreTypeObligatoireValeur par défautDescription
<NOM_CHECK_SERVICE>ChaîneOui-Le nom du check de service.
<STATUT>Nombre entierOui-Une constante décrivant le statut du service : 0 pour OK, 1 pour WARN, 2 pour CRITICAL et 3 pour UNKNOWN.
<TAGS>Liste de paires key:valueNon-La liste des tags à associer au check de service.
<HOSTNAME>ChaîneNonHost actuelHostname à associer à ce check de service.
<MESSAGE>ChaîneNon-Informations supplémentaires ou une description de la raison pour laquelle ce statut est généré.

Exemples de code

Exécutez le code suivant pour envoyer un check de service à Datadog via DogStatsD. N’oubliez pas de flush/close le client une fois sa mission accomplie.

from datadog import initialize, statsd

options = {"statsd_host": "127.0.0.1", "statsd_port": 8125}

initialize(**options)

statsd.service_check(
    check_name="application.service_check",
    status="0",
    message="Application is OK",
)
require 'datadog/statsd'

statsd = Datadog::Statsd.new('localhost', 8125)

statsd.service_check('application.service_check', 0, {'message' => 'Application is OK'})
package main

import (
    "log"
    "time"

    "github.com/DataDog/datadog-go/statsd"
)

func main() {

    dogstatsdClient, err := statsd.New("127.0.0.1:8125")

    if err != nil {
        log.Fatal(err)
    }

    for {
        dogstatsdClient.SimpleServiceCheck("application.service_check", 0)
        time.Sleep(10 * time.Second)
    }
}
import com.timgroup.statsd.ServiceCheck;
import com.timgroup.statsd.NonBlockingStatsDClientBuilder;
import com.timgroup.statsd.StatsDClient;

public class DogStatsdClient {

    public static void main(String[] args) throws Exception {

        StatsDClient Statsd = new NonBlockingStatsDClientBuilder()
            .prefix("statsd").
            .hostname("localhost")
            .port(8125)
            .build();

        ServiceCheck sc = ServiceCheck.builder()
                          .withName("Service.check.name")
                          .withStatus(ServiceCheck.Status.OK)
                          .build();

        Statsd.serviceCheck(sc);
    }
}
using StatsdClient;

public class DogStatsdClient
{
    public static void Main()
    {
        var dogstatsdConfig = new StatsdConfig
        {
            StatsdServerName = "127.0.0.1",
            StatsdPort = 8125,
        };

        using (var dogStatsdService = new DogStatsdService())
        {
            dogStatsdService.Configure(dogstatsdConfig);
            dogStatsdService.ServiceCheck("Service.check.name", 0, message: "Application is OK.", tags: new[] { "env:dev" });
        }
    }
}
<?php

require __DIR__ . '/vendor/autoload.php';

use DataDog\DogStatsd;

$statsd = new DogStatsd(
    array('host' => '127.0.0.1',
          'port' => 8125,
     )
  );

$statsd->service_check('Service.check.name', 0);

Après la transmission d’un check de service, utilisez-le pour déclencher un monitor de check custom.

Pour aller plus loin