El check de Marathon del Agent te permite hacer lo siguiente:
rastrear el estado de cada aplicación: consulta la configuración de la memoria, el disco, la CPU y las instancias; monitorizar el número de tareas en buen estado y en mal estado;
monitorizar el número de aplicaciones puestas en cola y el número de despliegues.
Configuración
Instalación
El check de Marathon está incluido en el paquete del Datadog Agent, por lo que no necesitas instalar nada más en tu servidor.
Configuración
Sigue las instrucciones de abajo para configurar este check para un Agent que se ejecuta en un host. En el caso de entornos en contenedores, consulta la sección Contenedores.
Host
Para configurar este check para un Agent que se ejecuta en un host, haz lo siguiente:
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>"
La función de username y password depende de si configuras la acs_url o no. Si lo haces, el Agent los utiliza para solicitar un token de autenticación a ACS, que luego utiliza para autenticarse en la API de Marathon. De lo contrario, el Agent utiliza username y password para autenticarse directamente en la API de Marathon.
Disponible para las versiones del Agent a partir de la 6.0
La recopilación de logs se encuentra deshabilitada de manera predeterminada en el Datadog Agent; habilítala en el archivo datadog.yaml:
logs_enabled:true
Dado que Marathon utiliza logback, puedes especificar un formato de logs personalizado. Con Datadog, se admiten dos formatos: el predeterminado que proporciona Marathon y el formato recomendado de Datadog. Añade un apéndice de archivo a tu configuración como en el siguiente ejemplo y reemplaza $PATTERN$ por el formato que hayas seleccionado:
Configuración predeterminada de Marathon: [%date] %-5level %message \(%logger:%thread\)%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>
Añade este bloque de configuración a tu archivo marathon.d/conf.yaml para empezar a recopilar logs de Marathon:
En el caso de los entornos en contenedores, consulta las Plantillas de integración de Autodiscovery para obtener orientación sobre la aplicación de los parámetros que se indican abajo.
Recopilación de métricas
Parámetro
Valor
<INTEGRATION_NAME>
marathon
<INIT_CONFIG>
en blanco o {}
<INSTANCE_CONFIG>
{"url": "https://%%host%%:%%port%%"}
Recopilación de logs
Disponible para las versiones del Agent a partir de la 6.0
La recopilación de logs se encuentra deshabilitada de manera predeterminada en el Datadog Agent. Para habilitarla, consulta Recopilación de logs de Kubernetes.
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
Eventos
El check de Marathon no incluye eventos.
Checks de servicio
marathon.can_connect CRITICAL if either cannot connect to API endpoint or no instances of any application are running. WARN if no applications are detected. Additional information about response status at the time of collection is included in the check message. Statuses: ok, critical