Supported OS

Versión de la integración4.0.0

Información general

Este check monitoriza Hudi. Es compatible con las versiones de Hudi 0.10.0 y posteriores.

Configuración

Instalación

El check de Hudi se incluye en el paquete del Datadog Agent. No es necesaria ninguna instalación adicional en tu servidor.

Configuración

  1. Configura el JMX Metrics Reporter en Hudi:

    hoodie.metrics.on=true
    hoodie.metrics.reporter.type=JMX
    hoodie.metrics.jmx.host=<JMX_HOST>
    hoodie.metrics.jmx.port=<JMX_PORT>
    
  2. Edita el archivo hudi.d/conf.yaml, que se encuentra en la carpeta conf.d/ en la raíz del directorio de configuración del Agent para empezar a recopilar tus datos de rendimiento de Hudi. Consulta el hudi.d/conf.yaml de ejemplo para conocer todas las opciones de configuración disponibles.

    Este check tiene un límite de 350 métricas por instancia. El número de métricas devueltas se indica al ejecutar el comando de estado del Datadog Agent. Puedes especificar las métricas que te interesan editando la configuración. Para saber cómo personalizar las métricas que se recopilarán, consulta la documentación de checks de JMX para obtener instrucciones más detalladas. Si necesitas monitorizar más métricas, ponte en contacto con el soporte de Datadog.

  3. Reinicia el Agent

Validación

Ejecuta el subcomando status del Agent y busca hudi en la sección Checks.

Datos recopilados

Métricas

hudi.action.bytes_written
(rate)
La cantidad total de bytes escritos en una acción (commit, deltacommit, replacecommit, compaction, etc)
Se muestra como byte
hudi.action.commit_time
(gauge)
El tiempo de confirmación de una acción (commit, deltacommit, replacecommit, compaction, etc)
Se muestra como milisegundo
hudi.action.compacted_records_updated
(rate)
La cantidad de registros compactados actualizados en una acción (commit, deltacommit, replacecommit, compaction, etc)
Se muestra como registro
hudi.action.create_time
(rate)
El tiempo de creación de una acción (commit, deltacommit, replacecommit, compaction, etc)
Se muestra como milisegundo
hudi.action.duration
(gauge)
La cantidad de tiempo que se tardó en realizar con éxito una acción en un lote de registros (commit, deltacommit, replacecommit, compaction, etc)
Se muestra como milisegundo
hudi.action.files_inserted
(rate)
La cantidad de archivos insertados (commit, deltacommit, replacecommit, compaction, etc)
Se muestra como archivo
hudi.action.files_updated
(rate)
La cantidad de archivos actualizados (commit, deltacommit, replacecommit, compaction, etc)
Se muestra como archivo
hudi.action.insert_records_written
(rate)
El número de registros de inserción escritos en una acción (commit, deltacommit, replacecommit, compaction, etc)
Se muestra como registro
hudi.action.log_files_compacted
(rate)
El número de archivos de log compactados en una acción (commit, deltacommit, replacecommit, compaction, etc)
Se muestra como archivo
hudi.action.log_files_size
(rate)
El tamaño de todos los archivos de log en una acción (commit, deltacommit, replacecommit, compaction, etc)
Se muestra como byte
hudi.action.partitions_written
(rate)
El número de particiones escritas en una acción (commit, deltacommit, replacecommit, compaction, etc)
hudi.action.records_written
(rate)
El número de registros escritos en una acción (commit, deltacommit, replacecommit, compaction, etc)
Se muestra como registro
hudi.action.scan_time
(rate)
El tiempo total de exploración en una acción (commit, deltacommit, replacecommit, compaction, etc)
Se muestra como milisegundo
hudi.action.time.50th_percentile
(gauge)
Mide el percentil 50 del tiempo necesario para completar la acción (commit, deltacommit, replacecommit, compaction, etc)
Se muestra como nanosegundo
hudi.action.time.75th_percentile
(gauge)
Mide el percentil 75 del tiempo necesario para completar una acción (commit, deltacommit, replacecommit, compaction, etc)
Se muestra como nanosegundo
hudi.action.time.95th_percentile
(gauge)
Mide el percentil 95 del tiempo necesario para completar una acción (commit, deltacommit, replacecommit, compaction, etc)
Se muestra como nanosegundo
hudi.action.time.98th_percentile
(gauge)
Mide el percentil 98 del tiempo necesario para completar una acción (commit, deltacommit, replacecommit, compaction, etc)
Se muestra como nanosegundo
hudi.action.time.999th_percentile
(gauge)
Mide el percentil 999 del tiempo necesario para completar una acción (commit, deltacommit, replacecommit, compaction, etc)
Se muestra como nanosegundo
hudi.action.time.99th_percentile
(gauge)
Mide el percentil 99 del tiempo necesario para completar una acción (commit, deltacommit, replacecommit, compaction, etc)
Se muestra como nanosegundo
hudi.action.time.count
(rate)
Mide el recuento de veces que se completa una acción (commit, deltacommit, replacecommit, compaction, etc)
hudi.action.time.max
(gauge)
Mide la cantidad máxima de tiempo para completar una acción (commit, deltacommit, replacecommit, compaction, etc)
Se muestra como nanosegundo
hudi.action.time.mean
(gauge)
Mide la cantidad media de tiempo para completar una acción (commit, deltacommit, replacecommit, compaction, etc)
Se muestra como nanosegundo
hudi.action.time.min
(gauge)
Mide la cantidad mínima de tiempo para completar una acción (commit, deltacommit, replacecommit, compaction, etc)
Se muestra como nanosegundo
hudi.action.time.std_dev
(gauge)
Mide la desviación estándar del tiempo necesario para completar una acción (commit, deltacommit, replacecommit, compaction, etc)
Se muestra como nanosegundo
hudi.action.update_records_written
(rate)
La cantidad de registros de actualización escritos en una acción (commit, deltacommit, replacecommit, compaction, etc)
Se muestra como registro
hudi.action.upsert_time
(rate)
El tiempo de upsert de una acción (commit, deltacommit, replacecommit, compaction, etc)
Se muestra como milisegundo
hudi.clean.duration
(gauge)
El tiempo total dedicado a la limpieza
Se muestra en milisegundos
hudi.clean.files_deleted
(gauge)
El número de archivos borrados en limpiezas
Se muestra como archivo
hudi.finalize.duration
(gauge)
El tiempo total empleado en finalizar
Se muestra en milisegundos
hudi.finalize.files_finalized
(gauge)
El número de archivos finalizados"
Se muestra como archivo
hudi.index.command.duration
(gauge)
El tiempo empleado en ejecutar un comando de índice (UPSERT, INSERT_OVERWRITE, etc.)
Se muestra en milisegundos
hudi.rollback.duration
(gauge)
El tiempo total pasado en rollback
Se muestra como milisegundo
hudi.rollback.files_deleted
(gauge)
El número de archivos borrados en rollback
Se muestra como archivo

Recopilación de logs

Disponible para las versiones 6.0 o posteriores del Agent

  1. Hudi usa el registrador log4j por defecto. Para personalizar el formato, edita el archivo log4j.properties en el directorio conf de Flink o Spark. Un archivo de ejemplo de log4j.properties es:

     log4j.rootCategory=INFO, file
     log4j.appender.file=org.apache.log4j.FileAppender
     log4j.appender.file.File=/var/log/hudi.log
     log4j.appender.file.append=false
     log4j.appender.file.layout=org.apache.log4j.PatternLayout
     log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n
    
  2. Por defecto, el pipeline de integración de Datadog admite el siguiente patrón de conversión:

    %d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n
    

    Un ejemplo de marca de tiempo válida es: 2020-02-03 18:43:12,251.

    Clona y edita el pipeline de integración si tienes un formato diferente.

  3. La recopilación de logs está desactivada en forma predeterminada en el Datadog Agent, actívala en tu archivo datadog.yaml:

    logs_enabled: true
    
  4. Quita los comentarios y edita el bloque de configuración de logs en tu archivo hudi.d/conf.yaml. Cambia los valores de los parámetros path y service en función de tu entorno. Consulta hudi.d/conf.yaml de ejemplo para ver todas las opciones de configuración disponibles.

    logs:
      - type: file
        path: /var/log/hudi.log
        source: hudi
        log_processing_rules:
          - type: multi_line
            pattern: \d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])
            name: new_log_start_with_date
    

Eventos

La integración Hudi no incluye eventos.

Checks de servicio

hudi.can_connect

Devuelve CRITICAL si el Agent no puede conectarse y recopilar métricas de la instancia de Hudi supervisada, WARNING si no se recopilan métricas y OK en caso contrario.

Estados: ok, critical, warning

Solucionar problemas

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