Marathon
Rapport de recherche Datadog : Bilan sur l'adoption de l'informatique sans serveur Rapport : Bilan sur l'adoption de l'informatique sans serveur

Marathon

Agent Check Check de l'Agent

Supported OS: Linux Mac OS

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 paquet de l’Agent Datadog : vous n’avez donc rien d’autre à installer sur votre master Marathon.

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 en savoir plus sur les environnements conteneurisés.

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.

  1. 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 avec 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.deployments
(gauge)
Number of running or pending deployments
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.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.taskRateLimit
(gauge)
The task rate limit for a given application; tagged by app_id and version
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.tasksHealthy
(gauge)
Number of healthy tasks 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
marathon.queue.size
(gauge)
Number of app offer queues
Shown as task
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.unused
(gauge)
The number of unused 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

Événements

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

Checks de service

marathon.can_connect:
Renvoie CRITICAL si l’Agent ne parvient pas à se connecter à l’API Marathon pour recueillir des métriques. Si ce n’est pas le cas, renvoie OK.

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.