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 :
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 authenticationusername:"<USERNAME>"# the password for Marathon API or ACS token authenticationpassword:"<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.
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
É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><shutdownHookclass="ch.qos.logback.core.hook.DelayingShutdownHook"/><appendername="stdout"class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>[%date] %-5level %message \(%logger:%thread\)%n</pattern></encoder></appender><appendername="async"class="ch.qos.logback.classic.AsyncAppender"><appender-refref="stdout"/><queueSize>1024</queueSize></appender><appendername="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><rootlevel="INFO"><appender-refref="async"/><appender-refref="FILE"/></root></configuration>
Ajoutez ce bloc de configuration à votre fichier marathon.d/conf.yaml pour commencer à recueillir vos logs Marathon :
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