Supported OS Linux Mac OS

Versión de la integración4.1.0

Información general

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:

Recopilación de métricas
  1. Edita el archivo marathon.d/conf.yaml, que se encuentra en la carpeta conf.d/ en la raíz del directorio de configuración del Agent. Consulta el archivo de ejemplo marathon.d/conf.yaml para conocer todas las opciones de configuración 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>"
    

    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.

  2. Reinicia el Agent.

Recopilación de logs

Disponible para las versiones del Agent a partir de la 6.0

  1. 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
    
  2. 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
    • Configuración recomendada de 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. Añade este bloque de configuración a tu archivo marathon.d/conf.yaml para empezar a recopilar logs de Marathon:

    logs:
      - type: file
        path: /var/log/marathon.log
        source: marathon
        service: "<SERVICE_NAME>"
    
  4. Reinicia el Agent.

Contenedores

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ámetroValor
<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.

ParámetroValor
<LOG_CONFIG>{"source": "marathon", "service": "<SERVICE_NAME>"}

Validación

Ejecuta el subcomando de estado del Agent y busca marathon en la sección Checks.

Datos recopilados

Métricas

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

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

Solucionar problemas

¿Necesitas ayuda? Ponte en contacto con el servicio de asistencia de Datadog.