Supported OS

Versión de la integración4.0.0

Información general

Este check monitoriza ArangoDB a través del Datadog Agent. ArangoDB v3.8 y posteriores son compatibles.

Habilita la integración Datadog-ArangoDB para:

  • Identificar las consultas lentas en función de umbrales definidos por el usuario.
  • Comprender el impacto de una solicitud larga y solucionar problemas de latencia.
  • Monitorizar los límites subyacentes de memoria, disco y caché de RocksDB.

Configuración

Sigue las instrucciones siguientes para instalar y configurar este check para un Agent que se ejecute 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 ArangoDB está incluido en el paquete del Datadog Agent.

Configuración

  1. Edita el archivo arangodb.d/conf.yaml, en la carpeta conf.d/ en la raíz de tu directorio de configuración del Agent para empezar a recopilar tus datos de rendimiento de ArangoDB. Consulta el ejemplo de arangodb.d/conf.yaml para ver todas las opciones de configuración disponibles.

  2. Reinicia el Agent.

Validación

[Ejecuta el subcomando de estado del Agent(https://docs.datadoghq.com/agent/guide/agent-commands/#agent-status-and-information) y busca arangodb en la sección Checks.

Datos recopilados

Métricas

arangodb.agency.cache.callback
(gauge)
Número actual de entradas en la tabla de devoluciones de llamadas de caché de la Agencia.
arangodb.agency.callback
(gauge)
Número actual de devoluciones de llamadas de la Agencia registradas.
arangodb.agency.callback.registered.count
(count)
Número total de devoluciones de llamadas de la Agencia registradas.
arangodb.agency.client.lookup.table_size
(gauge)
Número actual de entradas en la tabla de búsqueda de ID de cliente de la Agencia.
Se muestra como entrada
arangodb.agency.commit.bucket
(count)
Distribución de los tiempos de confirmación para todas las operaciones de escritura de la Agencia.
Se muestra como milisegundos
arangodb.agency.commit.count
(count)
Distribución de los tiempos de confirmación para todas las operaciones de escritura de la Agencia.
Se muestra como milisegundos
arangodb.agency.commit.sum
(count)
Distribución de los tiempos de confirmación para todas las operaciones de escritura de la Agencia.
Se muestra como milisegundos
arangodb.agency.compaction.bucket
(count)
Distribución de los tiempos de ejecución de compactación de la Agencia.
Se muestra como milisegundos
arangodb.agency.compaction.count
(count)
Distribución de los tiempos de ejecución de compactación de la Agencia.
Se muestra como milisegundos
arangodb.agency.compaction.sum
(count)
Distribución de los tiempos de ejecución de compactación de la Agencia.
Se muestra como milisegundos
arangodb.agency.log.size
(gauge)
Tamaño de la parte en la memoria de la Agencia de logs replicados en bytes.
Se muestra como bytes
arangodb.agency.read.no_leader.count
(count)
Número de operaciones de lectura de la Agencia sin líder o seguidores.
arangodb.agency.read.ok.count
(count)
Número de operaciones de lectura de la Agencia que se han realizado correctamente.
arangodb.agency.request.time.bucket
(count)
Tiempo que han tardado las solicitudes a la Agencia.
Se muestra como milisegundos
arangodb.agency.request.time.count
(count)
Tiempo que han tardado las solicitudes a la Agencia.
Se muestra como milisegundos
arangodb.agency.request.time.sum
(count)
Tiempo que han tardado las solicitudes a la Agencia.
Se muestra como milisegundos
arangodb.agency.supervision.failed.server.count
(count)
Este contador se incrementa cada vez que una ejecución de monitorización encuentra un servidor fallido e inicia un trabajo FailedServer.
arangodb.agency.write.bucket
(count)
Histograma de tiempo de escritura de la Agencia.
Se muestra como milisegundos
arangodb.agency.write.count
(count)
Histograma de tiempo de escritura de la Agencia.
Se muestra como milisegundos
arangodb.agency.write.no_leader.count
(count)
Número de operaciones de escritura de la Agencia sin líder o seguidores.
arangodb.agency.write.ok.count
(count)
Número de operaciones de escritura de la Agencia que se han realizado correctamente.
arangodb.agency.write.sum
(count)
Histograma de tiempo de escritura de la Agencia.
Se muestra como milisegundos
arangodb.aql.all.query.count
(count)
Número total de consultas AQL finalizadas.
Se muestra como consulta
arangodb.aql.current.query
(gauge)
Número actual de consultas AQL en ejecución.
Se muestra como consulta
arangodb.aql.global.memory.limit
(gauge)
Límite total de memoria para todas las consultas AQL combinadas.
Se muestra como bytes
arangodb.aql.global.memory.usage
(gauge)
Uso total de memoria de todas las consultas AQL en ejecución; especificidad: pasos de 32768 bytes.
Se muestra como bytes
arangodb.aql.global.query.memory.limit.reached.count
(count)
Número de veces que se ha alcanzado el umbral de memoria de consulta global.
arangodb.aql.local.query.memory.limit.reached.count
(count)
Número de veces que se ha alcanzado un umbral de memoria de consulta local.
arangodb.aql.query.time.bucket
(count)
Histograma del tiempo de ejecución de todas las consultas AQL.
arangodb.aql.query.time.count
(count)
Histograma del tiempo de ejecución de todas las consultas AQL.
arangodb.aql.query.time.sum
(count)
Histograma del tiempo de ejecución de todas las consultas AQL.
arangodb.aql.slow.query.time.bucket
(count)
Histograma del tiempo de ejecución de consultas AQL lentas.
arangodb.aql.slow.query.time.count
(count)
Histograma del tiempo de ejecución de consultas AQL lentas.
arangodb.aql.slow.query.time.sum
(count)
Histograma del tiempo de ejecución de consultas AQL lentas.
arangodb.client.connection.bytes.received.bucket
(count)
Bytes recibidos para una solicitud.
Se muestra como bytes
arangodb.client.connection.bytes.received.count
(count)
Bytes recibidos para una solicitud.
Se muestra como bytes
arangodb.client.connection.bytes.received.sum
(count)
Bytes recibidos para una solicitud.
Se muestra como bytes
arangodb.client.connection.io.time.bucket
(count)
Tiempo de entrada/salida necesario para responder a una solicitud.
arangodb.client.connection.io.time.count
(count)
Tiempo de entrada/salida necesario para responder a una solicitud.
arangodb.client.connection.io.time.sum
(count)
Tiempo de entrada/salida necesario para responder a una solicitud.
arangodb.client.connection.queue.time.bucket
(count)
Tiempo de espera necesario para las solicitudes.
Se muestra como segundos
arangodb.client.connection.queue.time.count
(count)
Tiempo de espera necesario para las solicitudes.
Se muestra como segundos
arangodb.client.connection.queue.time.sum
(count)
Tiempo de espera necesario para las solicitudes.
Se muestra como segundos
arangodb.client.connection.request.time.bucket
(count)
Tiempo necesario para responder a una solicitud.
Se muestra como segundos
arangodb.client.connection.request.time.count
(count)
Tiempo necesario para responder a una solicitud.
Se muestra como segundos
arangodb.client.connection.request.time.sum
(count)
Tiempo necesario para responder a una solicitud.
Se muestra como segundos
arangodb.client.connection.time.bucket
(count)
Tiempo total de conexión de un cliente.
Se muestra como segundos
arangodb.client.connection.time.count
(count)
Tiempo total de conexión de un cliente.
Se muestra como segundos
arangodb.client.connection.time.sum
(count)
Tiempo total de conexión de un cliente.
Se muestra como segundos
arangodb.client.connection.total.time.bucket
(count)
Tiempo total necesario para responder a una solicitud.
Se muestra como segundos
arangodb.client.connection.total.time.count
(count)
Tiempo total necesario para responder a una solicitud.
Se muestra como segundos
arangodb.client.connection.total.time.sum
(count)
Tiempo total necesario para responder a una solicitud.
Se muestra como segundos
arangodb.client.connections
(gauge)
Número de conexiones de cliente que están actualmente abiertas.
Se muestra como conexión
arangodb.collection.lock.acquisition.count
(count)
Tiempo total de adquisición de bloqueos de colección.
Se muestra como microsegundos
arangodb.collection.lock.sequential_mode.count
(count)
Número de transacciones que utilizan el bloqueo secuencial de colección para evitar bloqueos.
Se muestra como transacción
arangodb.collection.lock.timeouts_exclusive.count
(count)
Número de tiempos de espera al intentar adquirir bloqueos exclusivos de colección.
Se muestra como tiempo de espera
arangodb.collection.lock.timeouts_write.count
(count)
Número de tiempos de espera al intentar adquirir bloqueos de escritura de colección.
Se muestra como tiempo de espera
arangodb.connection_pool.connections.created.count
(count)
Número total de conexiones creadas para el grupo de conexiones.
arangodb.connection_pool.connections.current
(gauge)
Número actual de conexiones en el grupo.
arangodb.connection_pool.lease_time.bucket
(count)
Recuento de tiempo para arrendar una conexión del grupo de conexiones.
Se muestra como milisegundos
arangodb.connection_pool.lease_time.count
(count)
Recuento de tiempo para arrendar una conexión del grupo de conexiones.
Se muestra como milisegundos
arangodb.connection_pool.lease_time.sum
(count)
Recuento de tiempo para arrendar una conexión del grupo de conexiones.
Se muestra como milisegundos
arangodb.connection_pool.leases.failed.count
(count)
Número total de arrendamientos fallidos de conexiones.
arangodb.connection_pool.leases.successful.count
(count)
Número total de arrendamientos exitosos de conexiones del grupo de conexiones.
arangodb.health.dropped_followers.count
(count)
Número total de eventos de seguimiento.
Se muestra como evento
arangodb.health.heartbeat.sent.time.bucket
(count)
Recuento de veces necesarias para enviar latidos.
Se muestra como milisegundos
arangodb.health.heartbeat.sent.time.count
(count)
Recuento de veces necesarias para enviar latidos.
Se muestra como milisegundos
arangodb.health.heartbeat.sent.time.sum
(count)
Recuento de veces necesarias para enviar latidos.
Se muestra como milisegundos
arangodb.health.heartbeat_failures.count
(count)
Número total de transmisiones de latidos fallidas.
arangodb.http.async.requests.count
(count)
Número de solicitudes HTTP ejecutadas de forma asíncrona.
Se muestra como solicitud
arangodb.http.delete.requests.count
(count)
Número de solicitudes HTTP DELETE.
Se muestra como solicitud
arangodb.http.get.requests.count
(count)
Número de solicitudes HTTP GET.
Se muestra como solicitud
arangodb.http.head.requests.count
(count)
Número de solicitudes HTTP HEAD.
Se muestra como solicitud
arangodb.http.options.requests.count
(count)
Número de solicitudes HTTP OPTIONS.
Se muestra como solicitud
arangodb.http.other.requests.count
(count)
Número de otras solicitudes HTTP ilegales.
Se muestra como solicitud
arangodb.http.patch.requests.count
(count)
Número de solicitudes HTTP PATCH.
Se muestra como solicitud
arangodb.http.post.requests.count
(count)
Número de solicitudes HTTP POST.
Se muestra como solicitud
arangodb.http.put.requests.count
(count)
Número de solicitudes HTTP PUT.
Se muestra como solicitud
arangodb.http.total.requests.count
(count)
Número total de solicitudes HTTP.
Se muestra como solicitud
arangodb.http.user.requests.count
(count)
Número total de solicitudes HTTP ejecutadas por clientes usuarios.
Se muestra como solicitud
arangodb.http2.connections.count
(count)
Número total de conexiones aceptadas para HTTP/2.
arangodb.network.forwarded.requests.count
(count)
Número de solicitudes reenviadas a otro Coordinador.
Se muestra como solicitud
arangodb.network.request.timeouts.count
(count)
Número de solicitudes internas que han expirado.
Se muestra como solicitud
arangodb.network.requests.in.flight
(gauge)
Número de solicitudes internas salientes en tránsito.
Se muestra como solicitud
arangodb.process.page.faults.major.count
(count)
Número de fallos de página importantes.
Se muestra como fallo
arangodb.process.page.faults.minor.count
(count)
Número de fallos de página menores.
Se muestra como fallo
arangodb.process.resident_set_size
(gauge)
Tamaño total del número de páginas que el proceso tiene en memoria real.
Se muestra como bytes
arangodb.process.system_time
(gauge)
Cantidad de tiempo que este proceso ha estado programado en modo kernel.
Se muestra como segundos
arangodb.process.threads
(gauge)
Número de subprocesos.
Se muestra como subproceso
arangodb.process.user_time
(gauge)
Cantidad de tiempo que este proceso ha estado programado en modo usuario.
Se muestra como segundos
arangodb.process.virtual_memory_size
(gauge)
Lado de la memoria virtual que el proceso está utilizando.
Se muestra como bytes
arangodb.rocksdb.actual.delayed.write.rate
(gauge)
Frecuencia real de escritura RocksDB atrasada.
arangodb.rocksdb.archived.wal.files
(gauge)
Número de archivos WAL de RocksDB en el archivo.
Se muestra como archivo
arangodb.rocksdb.background.errors
(gauge)
Número total de errores RocksDB en segundo plano.
Se muestra como error
arangodb.rocksdb.base.level
(gauge)
Número del nivel al que se compactarán los datos L0.
arangodb.rocksdb.block.cache.capacity
(gauge)
Capacidad de la caché de bloques en bytes.
Se muestra como bytes
arangodb.rocksdb.block.cache.pinned.usage
(gauge)
Tamaño de memoria del caché de bloques RocksDB para las entradas que están ancladas.
Se muestra como bytes
arangodb.rocksdb.block.cache.usage
(gauge)
Tamaño total de memoria para las entradas que residen en la caché de bloques.
Se muestra como bytes
arangodb.rocksdb.cache.allocated
(gauge)
Asignación global actual para la caché de ArangoDB que se encuentra delante de RocksDB.
Se muestra como bytes
arangodb.rocksdb.cache.hit.rate.lifetime
(gauge)
Tasa de aciertos reciente de la caché en memoria de ArangoDB que se encuentra delante de RocksDB.
arangodb.rocksdb.cache.limit
(gauge)
Límite de asignación global actual para las cachés de ArangoDB que se encuentran delante de RocksDB.
Se muestra como bytes
arangodb.rocksdb.collection_lock.acquisition_time.bucket
(count)
Histograma de los tiempos de adquisición de bloqueos de colección/fragmento.
Se muestra como segundos
arangodb.rocksdb.collection_lock.acquisition_time.count
(count)
Histograma de los tiempos de adquisición de bloqueos de colección/fragmento.
Se muestra como segundos
arangodb.rocksdb.collection_lock.acquisition_time.sum
(count)
Histograma de los tiempos de adquisición de bloqueos de colección/fragmento.
Se muestra como segundos
arangodb.rocksdb.compaction.pending
(gauge)
Número de familias de columnas para las que está pendiente al menos una compactación.
arangodb.rocksdb.cur.size.active.mem.table
(gauge)
Tamaño aproximado de la memtable activa en bytes, sumado en todas las familias de columnas.
Se muestra como bytes
arangodb.rocksdb.cur.size.all.mem.tables
(gauge)
Tamaño aproximado de las memtables inmutables activas y no vaciadas en bytes, sumado en todas las familias de columnas.
Se muestra como bytes
arangodb.rocksdb.engine.throttle.bps
(gauge)
Límite de frecuencia de escritura actual del límite RocksDB en ArangoDB.
Se muestra como bytes
arangodb.rocksdb.estimate.live.data.size
(gauge)
Cálculo de la cantidad de datos activos en bytes, sumado en todas las familias de columnas.
Se muestra como bytes
arangodb.rocksdb.estimate.num.keys
(gauge)
Número estimado de claves totales en las memtables y almacenamientos inmutables activos y no vaciados, sumado en todas las familias de columnas.
Se muestra como clave
arangodb.rocksdb.estimate.pending.compaction.bytes
(gauge)
Número total estimado de bytes que la compactación necesita reescribir para reducir todos los niveles por debajo del tamaño objetivo.
Se muestra como bytes
arangodb.rocksdb.estimate.table.readers.mem
(gauge)
Memoria estimada utilizada para la lectura de tablas SST, excluyendo la memoria utilizada en cachés de bloques (por ejemplo, bloques de filtros e índices), sumada en todas las familias de columnas.
Se muestra como bytes
arangodb.rocksdb.free.disk.space
(gauge)
Espacio de disco actualmente libre en bytes en el volumen utilizado por RocksDB.
Se muestra como bytes
arangodb.rocksdb.free.inodes
(gauge)
Número actualmente libre de inodos en el volumen de disco utilizado por RocksDB.
Se muestra como inodo
arangodb.rocksdb.live.sst.files.size
(gauge)
Tamaño total en bytes de todos los archivos SST pertenecientes al último árbol LSM, sumado en todas las familias de columnas.
Se muestra como bytes
arangodb.rocksdb.mem.table.flush.pending
(gauge)
Número de familias de columnas para las que está pendiente un vaciado de memtable.
arangodb.rocksdb.min.log.number.to.keep
(gauge)
Número mínimo de logs de los archivos de log que deben conservarse.
arangodb.rocksdb.num.deletes.active.mem.table
(gauge)
Número total de entradas de borrado en la memtable activa, sumado en todas las familias de columnas.
Se muestra como entrada
arangodb.rocksdb.num.deletes.imm.mem.tables
(gauge)
Número total de entradas de borrado en las memtables inmutables no vaciadas, sumado en todas las familias de columnas.
Se muestra como entrada
arangodb.rocksdb.num.entries.active.mem.table
(gauge)
Número total de entradas en la memtable activa, sumado en todas las familias de columnas.
Se muestra como entrada
arangodb.rocksdb.num.entries.imm_mem.tables
(gauge)
Número total de entradas en las memtables inmutables no vaciadas, sumado en todas las familias de columnas.
Se muestra como entrada
arangodb.rocksdb.num.immutable.mem.table
(gauge)
Número de memtables inmutables que aún no se han vaciado.
arangodb.rocksdb.num.immutable.mem.table.flushed
(gauge)
Número de memtables inmutables que ya han sido vaciadas.
arangodb.rocksdb.num.live.versions
(gauge)
Número de versiones activas.
arangodb.rocksdb.num.running.compactions
(gauge)
Número de compactaciones en ejecución.
arangodb.rocksdb.num.running.flushes
(gauge)
Número de descargas en ejecución.
Se muestra como descarga
arangodb.rocksdb.num.snapshots
(gauge)
Número de snapshots no lanzados de la base de datos.
arangodb.rocksdb.prunable.wal.files
(gauge)
Número total de archivos WAL de RocksDB en el subdirectorio de archivos que pueden ser eliminados.
Se muestra como archivo
arangodb.rocksdb.size.all.mem.tables
(gauge)
Tamaño aproximado de todas las memtables activas, inmutables no vaciadas e inmutables fijadas en bytes, sumado en todas las familias de columnas.
Se muestra como bytes
arangodb.rocksdb.total.disk.space
(gauge)
Tamaño total en bytes de todos los archivos SST, sumado en todas las familias de columnas.
Se muestra como bytes
arangodb.rocksdb.total.inodes
(gauge)
Número actual de inodos en el volumen de disco utilizado por RocksDB.
Se muestra como inodo
arangodb.rocksdb.total.sst.files.size
(gauge)
Tamaño total en bytes de todos los archivos SST, sumado en todas las familias de columnas.
Se muestra como bytes
arangodb.rocksdb.write.stalls.count
(count)
Número de veces que RocksDB ha entrado en un estado de escritura frenado (ralentizado).
arangodb.rocksdb.write.stop.count
(count)
Número de veces que RocksDB ha entrado en un estado de escritura detenido.
arangodb.rocksdb.write.stops.count
(count)
Número de veces que ArangoDB ha observado a RocksDB entrar en un estado de escritura detenido.
arangodb.server.cpu_cores
(gauge)
Número de núcleos de CPU visibles para el proceso arangod.
arangodb.server.idle_percent
(gauge)
Porcentaje de tiempo que las CPU del sistema han estado inactivas.
Se muestra como porcentaje
arangodb.server.iowait_percent
(gauge)
Porcentaje de tiempo que las CPU del sistema han estado esperando E/S.
Se muestra como porcentaje
arangodb.server.kernel_mode.percent
(gauge)
Porcentaje de tiempo que las CPU del sistema han pasado en modo kernel.
Se muestra como porcentaje
arangodb.server.physical_memory
(gauge)
Memoria física del sistema en bytes.
Se muestra como bytes
arangodb.server.user_mode.percent
(gauge)
Porcentaje de tiempo que las CPU del sistema han pasado en modo usuario.
Se muestra como porcentaje
arangodb.transactions.aborted.count
(count)
Número de transacciones canceladas.
Se muestra como transacción
arangodb.transactions.committed.count
(count)
Número de transacciones confirmadas.
Se muestra como transacción
arangodb.transactions.expired.count
(count)
Número de transacciones expiradas, es decir, transacciones que se han iniciado pero que se han recogido automáticamente como basura debido a la inactividad dentro del periodo de tiempo de vida (TTL) de las transacciones.
Se muestra como transacción
arangodb.transactions.read.count
(count)
Número de transacciones de solo lectura.
Se muestra como transacción
arangodb.transactions.started.count
(count)
Número de transacciones iniciadas/empezadas.
Se muestra como transacción
arangodb.vst.connections.count
(count)
Número total de conexiones aceptadas para VST.

Recopilación de logs

Disponible para las versiones 6.0 o posteriores del Agent

Para recopilar logs de tu instancia de ArangoDB, primero asegúrate de que tu ArangoDB está configurado para enviar logs a un archivo. Por ejemplo, si utilizas el archivo arangod.conf para configurar tu instancia de ArangoDB, debes incluir lo siguiente:

# ArangoDB configuration file
#
# Documentation:
# https://www.arangodb.com/docs/stable/administration-configuration.html
#

...

[log]
file = /var/log/arangodb3/arangod.log 

...

Los logs de ArangoDB contienen muchas opciones de verbosidad de logs y archivos de salida. El pipeline de la integración Datadog admite el patrón de conversión por defecto.

  1. La recopilación de logs está desactivada por defecto en el Datadog Agent. Actívala en tu archivo datadog.yaml:

    logs_enabled: true
    
  2. Descomenta y edita el bloque de configuración de logs en tu archivo arangodb.d/conf.yaml:

    logs:
       - type: file
         path: /var/log/arangodb3/arangod.log
         source: arangodb
    

Eventos

La integración ArangoDB no incluye eventos.

Checks de servicio

arangodb.openmetrics.health

Devuelve CRITICAL si el Agent no puede conectarse al endpoint de OpenMetrics, en caso contrario devuelve OK.

Estados: ok, crítico

Solucionar problemas

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