Envoi de checks de service : check de l'Agent

Pour envoyer un check de service à Datadog dans un check d’Agent custom, utilisez la fonction prédéfinie service_check() dans la classe AgentCheck.

self.service_check(name, status, tags=None, hostname=None, message=None)

Retrouvez ci-dessous les différents paramètres et types de données disponibles pour la fonction service_check() :

ParamètreTypeObligatoireValeur par défautDescription
namechaîneoui-Le nom du check de service.
statusnombre entieroui-Une constante décrivant le statut du service : 0 pour OK, 1 pour Warning, 2 pour Critical et 3 pour Unknown.
tagsliste de chaînesnonNoneUne liste de tags à associer à ce check de service.
hostnamechaînenonhost actuelLe hostname à associer à ce check de service. Par défaut, il s’agit du host actuel.
messagechaînenonNoneInformations supplémentaires ou une description de la raison pour laquelle ce statut est généré.

Exemple

Voici un exemple de check d’Agent test qui envoie régulièrement un seul check de service. Consultez la section Écrire un check custom d’Agent pour en savoir plus.

  1. Créez un répertoire service_check_example.d/ dans le dossier conf.d/ de votre Agent.

  2. Dans votre dossier service_check_example.d/, créez un fichier de configuration vide service_check_example.yaml avec le contenu suivant :

    instances: [{}]
    
  3. Accédez au dossier checks.d/ dans le dossier parent de conf.d/.

  4. Dans ce dossier, créez un fichier de check custom service_check_example.py avec le contenu ci-dessous :

    service_check_example.py

    from datadog_checks.base import AgentCheck
    
    __version__ = "1.0.0"
    
    class MyClass(AgentCheck):
        def check(self, instance):
            self.service_check('example_service_check', 0, message='Example application is up and running.')
        
  5. Redémarrez l’Agent.

  6. Vérifiez que votre check custom s’exécute correctement avec la commande status de l’Agent. La sortie devrait ressembler à ceci :

    =========
    Collector
    =========
    
      Running Checks
      ==============
    
        (...)
    
        service_check_example (1.0.0)
        -----------------------------
          Instance ID: service_check_example:d884b5186b651429 [OK]
          Total Runs: 1
          Metric Samples: Last Run: 0, Total: 0
          Events: Last Run: 0, Total: 0
          Service Checks: Last Run: 1, Total: 1
          Average Execution Time : 2ms
    
        (...)
    
  7. Enfin, accédez au sommaire des checks de service Datadog pour vérifier que votre check de service envoie bien des données :

Checks de service

Pour aller plus loin

Documentation, liens et articles supplémentaires utiles: