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ètre | Type | Obligatoire | Valeur par défaut | Description |
---|
<NOM_CHECK_SERVICE> | Chaîne | Oui | - | Le nom du check de service. |
<STATUT> | Nombre entier | Oui | - | 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:value | Non | - | La liste des tags à associer au check de service. |
<HOSTNAME> | Chaîne | Non | Current host | Hostname à associer à ce check de service. |
<MESSAGE> | Chaîne | Non | - | 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())
{
if (!dogStatsdService.Configure(dogstatsdConfig))
throw new InvalidOperationException("Cannot initialize DogstatsD. Set optionalExceptionHandler argument in the `Configure` method for more information.");
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 de service.
Pour aller plus loin
Documentation, liens et articles supplémentaires utiles: