Marathon

Supported OS Linux Mac OS

Intégration2.1.0

Présentation

Le check Marathon de l’Agent vous permet de :

  • Suivre l’état et la santé de chaque application en visualisant la mémoire, l’espace disque, la charge processeur et le nombre d’instances configurés, ainsi que le nombre de tâches saines et non saines.
  • Surveiller le nombre d’applications en attente et le nombre de déploiements

Configuration

Installation

Le check Marathon est inclus avec le package de l’Agent Datadog. Vous n’avez donc rien d’autre à installer sur votre serveur.

Configuration

Suivez les instructions ci-dessous pour configurer ce check lorsque l’Agent est exécuté sur un host. Consultez la section Environnement conteneurisé pour la configuration dans un environnement conteneurisé.

Host

Pour configurer ce check lorsque l’Agent est exécuté sur un host :

Collecte de métriques
  1. Modifiez le fichier marathon.d/conf.yaml dans le dossier conf.d/ à la racine du répertoire de configuration de votre Agent. Consultez le fichier d’exemple marathon.d/conf.yaml pour découvrir toutes les options de configuration disponibles :

    init_config:
    
    instances:
      # the API endpoint of your Marathon master; required
      - url: "https://<SERVER>:<PORT>"
        # if your Marathon master requires ACS auth
        #   acs_url: https://<SERVER>:<PORT>
    
        # the username for Marathon API or ACS token authentication
        username: "<USERNAME>"
    
        # the password for Marathon API or ACS token authentication
        password: "<PASSWORD>"
    

    Les paramètres username et password peuvent avoir deux fonctions différentes : si vous avez configuré acs_url, l’Agent les utilise pour demander un token d’authentification à ACS, dont il se sert ensuite pour s’authentifier auprès de l’API Marathon. Dans le cas contraire, l’Agent utilise username et password pour s’authentifier directement auprès de l’API Marathon.

  2. Redémarrez l’Agent.

Collecte de logs

Disponible à partir des versions > 6.0 de l’Agent

  1. La collecte de logs est désactivée par défaut dans l’Agent Datadog. Vous devez l’activer dans datadog.yaml :

    logs_enabled: true
    
  2. Étant donné que Marathon utilise Logback, vous pouvez spécifier un format de log personnalisé. Avec Datadog, deux formats sont pris en charge par défaut : le format par défaut fourni par Marathon et le format recommandé par Datadog. Ajoutez un file appender à votre configuration comme dans l’exemple suivant et remplacez $PATTERN$ par le format de votre choix :

    • Format par défaut Marathon : [%date] %-5level %message \(%logger:%thread\)%n
    • Format recommandé par Datadog : %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
      <?xml version="1.0" encoding="UTF-8"?>
    
      <configuration>
          <shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook"/>
          <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
              <encoder>
                  <pattern>[%date] %-5level %message \(%logger:%thread\)%n</pattern>
              </encoder>
          </appender>
          <appender name="async" class="ch.qos.logback.classic.AsyncAppender">
              <appender-ref ref="stdout" />
              <queueSize>1024</queueSize>
          </appender>
          <appender name="FILE" class="ch.qos.logback.core.FileAppender">
              <file>/var/log/marathon.log</file>
              <append>true</append>
              <!-- set immediateFlush to false for much higher logging throughput -->
              <immediateFlush>true</immediateFlush>
              <encoder>
                  <pattern>$PATTERN$</pattern>
              </encoder>
          </appender>
          <root level="INFO">
              <appender-ref ref="async"/>
              <appender-ref ref="FILE"/>
          </root>
      </configuration>
    
  3. Ajoutez ce bloc de configuration à votre fichier marathon.d/conf.yaml pour commencer à recueillir vos logs Marathon :

    logs:
      - type: file
        path: /var/log/marathon.log
        source: marathon
        service: "<SERVICE_NAME>"
    
  4. Redémarrez l’Agent.

Environnement conteneurisé

Consultez la documentation relative aux modèles d’intégration Autodiscovery pour découvrir comment appliquer les paramètres ci-dessous à un environnement conteneurisé.

Collecte de métriques
ParamètreValeur
<NOM_INTÉGRATION>marathon
<CONFIG_INIT>vide ou {}
<CONFIG_INSTANCE>{"url": "https://%%host%%:%%port%%"}
Collecte de logs

Disponible à partir des versions > 6.0 de l’Agent

La collecte des logs est désactivée par défaut dans l’Agent Datadog. Pour l’activer, consultez la section Collecte de logs Kubernetes.

ParamètreValeur
<CONFIG_LOG>{"source": "marathon", "service": "<NOM_SERVICE>"}

Validation

Lancez la sous-commande status de l’Agent et cherchez marathon dans la section Checks.

Données collectées

Métriques

marathon.apps
(gauge)
Number of applications
marathon.backoffFactor
(gauge)
Backoff time multiplication factor for each consecutive failed task launch; tagged by app_id and version
marathon.backoffSeconds
(gauge)
Task backoff period; tagged by app_id and version
Shown as second
marathon.cpus
(gauge)
Configured CPUs for each instance of a given application
marathon.deployments
(gauge)
Number of running or pending deployments
marathon.disk
(gauge)
Configured CPU for each instance of a given application
Shown as mebibyte
marathon.instances
(gauge)
Number of instances of a given application; tagged by app_id and version
marathon.mem
(gauge)
Configured memory for each instance of a given application; tagged by app_id and version
Shown as mebibyte
marathon.queue.count
(gauge)
Number of instances left to launch
Shown as task
marathon.queue.delay
(gauge)
Wait before the next launch attempt
Shown as second
marathon.queue.offers.processed
(gauge)
The number of processed offers for this launch attempt
Shown as task
marathon.queue.offers.reject.last
(gauge)
Summary of unused offers for all last offers
Shown as task
marathon.queue.offers.reject.launch
(gauge)
Summary of unused offers for the launch attempt
Shown as task
marathon.queue.offers.unused
(gauge)
The number of unused offers for this launch attempt
Shown as task
marathon.queue.size
(gauge)
Number of app offer queues
Shown as task
marathon.taskRateLimit
(gauge)
The task rate limit for a given application; tagged by app_id and version
marathon.tasksHealthy
(gauge)
Number of healthy tasks for a given application; tagged by app_id and version
Shown as task
marathon.tasksRunning
(gauge)
Number of tasks running for a given application; tagged by app_id and version
Shown as task
marathon.tasksStaged
(gauge)
Number of tasks staged for a given application; tagged by app_id and version
Shown as task
marathon.tasksUnhealthy
(gauge)
Number of unhealthy tasks for a given application; tagged by app_id and version
Shown as task

Événements

Le check Marathon n’inclut aucun événement.

Checks de service

marathon.can_connect
Renvoie CRITICAL si aucun n’est capable de se connecter au endpoint de l’API ou si aucune instance d’application ne s’exécute. Renvoie WARN si aucune application n’est détectée. Des informations supplémentaires sur le statut de la réponse au moment de la collecte sont incluses dans le message du check.
Statuses: ok, critical

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.