Supported OS Linux Windows Mac OS

Versión de la integración3.2.0

Información general

Esta integración monitoriza tu plataforma de Cloudera Data a través del Datadog Agent, permitiéndote enviar métricas y checks de servicio sobre el estado de tus clústeres, hosts y roles de Cloudera Data Hub.

Configuración

Sigue las instrucciones a continuación para instalar y configurar este check para un Agent que se ejecuta en un host. Para entornos en contenedores, consulta las plantillas de integración de Autodiscovery para obtener orientación sobre la aplicación de estas instrucciones.

Instalación

El check de Cloudera está incluido en el paquete del Datadog Agent. No es necesaria ninguna instalación adicional en tu servidor.

Configuración

Requisitos

El check de Cloudera requiere la versión 7 de Cloudera Manager.

Preparar Cloudera Manager

  1. En la plataforma de Cloudera Data, ve a la consola de gestión y haz clic en la pestaña User Management (Gestión de usuarios). Gestión de usuarios

  2. Haz clic en Actions (Acciones), luego en Create Machine User (Crear usuario de máquina) para crear el usuario de máquina que consulta el Cloudera Manager a través del Datadog Agent. Crear usuario de máquina

  3. Si no se ha establecido la contraseña de la carga de trabajo, haz clic en Set Workload Password (Establecer la contraseña de la carga de trabajo) después de crear el usuario. Establecer la contraseña de la carga de trabajo

Host

  1. Edita el archivo cloudera.d/conf.yaml, en la carpeta conf.d/ en la raíz de tu directorio de configuración del Agent para comenzar a recopilar tus datos de clúster y host de Cloudera. Ve el cloudera.d/conf.yaml de ejemplo para conocer todas las opciones disponibles de configuración.
    Nota: La api_url debe contener la versión de la API al final.

    init_config:
    
       ## @param workload_username - string - required
       ## The Workload username. This value can be found in the `User Management` tab of the Management 
       ## Console in the `Workload User Name`.
       #
       workload_username: <WORKLOAD_USERNAME>
    
       ## @param workload_password - string - required
       ## The Workload password. This value can be found in the `User Management` tab of the Management 
       ## Console in the `Workload Password`.
       #
       workload_password: <WORKLOAD_PASSWORD>
    
    ## Every instance is scheduled independently of the others.
    #
    instances:
    
       ## @param api_url - string - required
       ## The URL endpoint for the Cloudera Manager API. This can be found under the Endpoints tab for 
       ## your Data Hub to monitor. 
       ##
       ## Note: The version of the Cloudera Manager API needs to be appended at the end of the URL. 
       ## For example, using v48 of the API for Data Hub `cluster_1` should result with a URL similar 
       ## to the following:
       ## `https://cluster1.cloudera.site/cluster_1/cdp-proxy-api/cm-api/v48`
       #
       - api_url: <API_URL>
    
  2. Reinicia el Agent para empezar a recopilar y enviar datos del clúster de Cloudera Data Hub a Datadog.

Contenedores

Para 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 a continuación.

ParámetroValor
<INTEGRATION_NAME>cloudera
<INIT_CONFIG>{"workload_username": "<WORKLOAD_USERNAME>", 'workload_password": "<WORKLOAD_PASSWORD>"}
<INSTANCE_CONFIG>{"api_url": <API_URL>"}

Detección de clústeres

Puedes configurar cómo se detectan tus clústeres con la opción de configuración clusters con los siguientes parámetros:

  • limit : número máximo de elementos para Autodiscovery. Valor por defecto: None (se procesarán todos los clústeres)

  • include : asignación de claves de expresiones regulares y valores de configuración de componentes para Autodiscovery. Valor por defecto: asignación vacía

  • exclude : lista de expresiones regulares con los patrones de los componentes a excluir de Autodiscovery. Valor por defecto: lista vacía

  • interval : tiempo de validez en segundos de la última lista de clústeres obtenida a través del endpoint. Valor por defecto: None (no se utiliza caché)

Ejemplos:

Proceso de un máximo de 5 clústeres con nombres que empiecen por my_cluster:

clusters:
  limit: 5
  include:
    - 'my_cluster.*'

Proceso de un máximo de 20 clústeres y exclusión de aquellos cuyos nombres empiecen por tmp_:

clusters:
  limit: 20
  include:
    - '.*'
  exclude:
    - 'tmp_.*'

Consultas personalizadas

Puedes configurar la integración de Cloudera para recopilar métricas personalizadas que no se recopilan por defecto ejecutando consultas de series temporales personalizadas. Estas consultas utilizan el lenguaje tsquery para recuperar datos de Cloudera Manager.

Ejemplo:

Recopila la tasa de recopilación de elementos no usados de la JVM y la memoria libre de la JVM con cloudera_jvm como una etiqueta personalizada:

custom_queries:
- query: select last(jvm_gc_rate) as jvm_gc_rate, last(jvm_free_memory) as jvm_free_memory
  tags: cloudera_jvm

Nota: Estas consultas pueden aprovechar las expresiones de métrica, dando lugar a consultas como total_cpu_user + total_cpu_system, 1000 * jvm_gc_time_ms / jvm_gc_count y max(total_cpu_user). Cuando utilices expresiones de métrica, asegúrate de incluir también alias para las métricas, ya que de lo contrario los nombres de métrica podrían tener un formato incorrecto. Por ejemplo, SELECT last(jvm_gc_count) da como resultado la métrica cloudera.<CATEGORY>.last_jvm_gc_count. Puedes añadir un alias como en el siguiente ejemplo: SELECT last(jvm_gc_count) as jvm_gc_count para generar la métrica cloudera.<CATEGORY>.jvm_gc_count.

Validación

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

Datos recopilados

Métricas

cloudera.cluster.cpu_percent_across_hosts
(gauge)
Percent of the Host CPU Usage metric computed across all this entity's descendant Host entities
Shown as percent
cloudera.cluster.total_bytes_receive_rate_across_network_interfaces
(gauge)
The sum of the Bytes Received metric computed across all this entity's descendant Network Interface entities
Shown as byte
cloudera.cluster.total_bytes_transmit_rate_across_network_interfaces
(gauge)
The sum of the Bytes Transmitted metric computed across all this entity's descendant Network Interface entities
Shown as byte
cloudera.cluster.total_read_bytes_rate_across_disks
(gauge)
The sum of the Disk Bytes Read metric computed across all this entity's descendant Disk entities
Shown as byte
cloudera.cluster.total_write_bytes_rate_across_disks
(gauge)
The sum of the Disk Bytes Written metric computed across all this entity's descendant Disk entities
Shown as byte
cloudera.disk.await_read_time
(gauge)
The average disk await read time of the entity
Shown as millisecond
cloudera.disk.await_time
(gauge)
The average disk await time of the entity
Shown as millisecond
cloudera.disk.await_write_time
(gauge)
The average disk await write time of the entity
Shown as millisecond
cloudera.disk.service_time
(gauge)
The average disk service time of the entity
Shown as millisecond
cloudera.host.alerts_rate
(gauge)
The number of alerts per second
Shown as event
cloudera.host.cpu_iowait_rate
(gauge)
Total CPU iowait time
cloudera.host.cpu_irq_rate
(gauge)
Total CPU IRQ time
cloudera.host.cpu_nice_rate
(gauge)
Total CPU nice time
cloudera.host.cpu_soft_irq_rate
(gauge)
Total CPU soft IRQ time
cloudera.host.cpu_steal_rate
(gauge)
Stolen time, which is the time spent in other operating systems when running in a virtualized environment
cloudera.host.cpu_system_rate
(gauge)
Total System CPU
cloudera.host.cpu_user_rate
(gauge)
Total CPU user time
cloudera.host.events_critical_rate
(gauge)
The number of critical events
cloudera.host.events_important_rate
(gauge)
The number of important events
cloudera.host.health_bad_rate
(gauge)
Percentage of Time with Bad Health
cloudera.host.health_concerning_rate
(gauge)
Percentage of Time with Concerning Health
cloudera.host.health_disabled_rate
(gauge)
Percentage of Time with Disabled Health
cloudera.host.health_good_rate
(gauge)
Percentage of Time with Good Health
cloudera.host.health_unknown_rate
(gauge)
Percentage of Time with Unknown Health
cloudera.host.load_1
(gauge)
Load Average over 1 minute
cloudera.host.load_15
(gauge)
Load Average over 15 minutes
cloudera.host.load_5
(gauge)
Load Average over 5 minutes
cloudera.host.num_cores
(gauge)
Total number of cores
cloudera.host.num_physical_cores
(gauge)
Total number of physical cores
cloudera.host.physical_memory_buffers
(gauge)
The amount of physical memory devoted to temporary storage for raw disk blocks
Shown as byte
cloudera.host.physical_memory_cached
(gauge)
The amount of physical memory used for files read from the disk. This is commonly referred to as the pagecache
Shown as byte
cloudera.host.physical_memory_total
(gauge)
The total physical memory available
Shown as byte
cloudera.host.physical_memory_used
(gauge)
The total amount of memory being used, excluding buffers and cache
Shown as byte
cloudera.host.swap_out_rate
(gauge)
Memory swapped out to disk
Shown as page
cloudera.host.swap_used
(gauge)
Swap used
Shown as byte
cloudera.host.total_bytes_receive_rate_across_network_interfaces
(gauge)
The sum of the Bytes Received metric computed across all this entity's descendant Network Interface entities
Shown as byte
cloudera.host.total_bytes_transmit_rate_across_network_interfaces
(gauge)
The sum of the Bytes Transmitted metric computed across all this entity's descendant Network Interface entities
Shown as byte
cloudera.host.total_phys_mem_bytes
(gauge)
Total physical memory in bytes
Shown as byte
cloudera.host.total_read_bytes_rate_across_disks
(gauge)
The sum of the Disk Bytes Read metric computed across all this entity's descendant Disk entities
Shown as byte
cloudera.host.total_read_ios_rate_across_disks
(gauge)
The sum of the Disk Reads metric computed across all this entity's descendant Disk entities
Shown as operation
cloudera.host.total_write_bytes_rate_across_disks
(gauge)
The sum of the Disk Bytes Written metric computed across all this entity's descendant Disk entities
Shown as byte
cloudera.host.total_write_ios_rate_across_disks
(gauge)
The sum of the Disk Writes metric computed across all this entity's descendant Disk entities
Shown as operation
cloudera.role.cpu_system_rate
(gauge)
Total System CPU
cloudera.role.cpu_user_rate
(gauge)
Total CPU user time
cloudera.role.mem_rss
(gauge)
Resident memory used
Shown as byte

Eventos

La integración de Cloudera recopila eventos que se emiten desde el endpoint /events de la API de Cloudera Manager. Los niveles de evento se asignan de la siguiente manera:

ClouderaDatadog
UNKNOWNerror
INFORMATIONALinfo
IMPORTANTinfo
CRITICALerror

Checks de servicio

cloudera.can_connect
Returns OK if the check is able to connect to the Cloudera Manager API and collect metrics, CRITICAL otherwise.
Statuses: ok, critical

cloudera.cluster.health
Returns OK if the cluster is in good health or is starting, WARNING if the cluster is stopping or the health is concerning, CRITICAL if the cluster is down or in bad health, and UNKNOWN otherwise.
Statuses: ok, critical, warning, unknown

cloudera.host.health
Returns OK if the host is in good health or is starting, WARNING if the host is stopping or the health is concerning, CRITICAL if the host is down or in bad health, and UNKNOWN otherwise.
Statuses: ok, critical, warning, unknown

Solucionar problemas

Recopilación de métricas de integraciones de Datadog en hosts de Cloudera

Para instalar el Datadog Agent en un host de Cloudera, asegúrate de que el grupo de seguridad asociado al host permite el acceso SSH. A continuación, deberás utilizar el usuario raíz cloudbreak cuando accedas al host con la clave SSH generada durante la creación del entorno:

sudo ssh -i "/path/to/key.pem" cloudbreak@<HOST_IP_ADDRESS>

El nombre de usuario y la contraseña de la carga de trabajo pueden utilizarse para acceder a hosts de Cloudera a través de SSH, aunque sólo el usuario cloudbreak puede instalar el Datadog Agent. Intentar utilizar cualquier usuario que no sea cloudbreak puede dar lugar al siguiente error:

<NON_CLOUDBREAK_USER> is not allowed to run sudo on <CLOUDERA_HOSTNAME>.  This incident will be reported.

Errores de configuración al recopilar métricas de Datadog

Si ves algo similar a lo siguiente en el estado del Agent al recopilar métricas de tu host de Cloudera:

  Config Errors
  ==============
    zk
    --
      open /etc/datadog-agent/conf.d/zk.d/conf.yaml: permission denied

Debes cambiar la propiedad de conf.yaml a dd-agent:

[cloudbreak@<CLOUDERA_HOSTNAME> ~]$ sudo chown -R dd-agent:dd-agent /etc/datadog-agent/conf.d/zk.d/conf.yaml

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

Referencias adicionales

Más enlaces, artículos y documentación útiles:

PREVIEWING: bryce/soar-blog