Supported OS

Versión de la integración5.0.0

Información general

Este check monitoriza VoltDB a través del Datadog Agent.

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.

Nota: Este check sólo debe configurarse en un Agent por clúster. Si estás monitorizando un clúster repartido entre varios hosts, instala un Agent en cada host. Pero no habilites la integración VoltDB en más de un host, ya que se duplicarían las métricas.

Instalación

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

Configuración

  1. Añade un usuario a datadog-agent. Puedes hacerlo editando tu archivo deployment.xml VoltDB. Nota: No se requieren roles específicos, así que asigna el rol user integrado.

    <users>
        <!-- ... -->
        <user name="datadog-agent" password="<PASSWORD>" roles="user" />
    </users>
    
  2. Edita el archivo voltdb.d/conf.yaml, que se encuentra en la carpeta conf.d/ en la raíz del directorio de configuración de tu Agent, para empezar a recopilar los datos de rendimiento de tu VoltDB. Para conocer todas las opciones de configuración disponibles, consulta el voltdb.d/conf.yaml de ejemplo.

    init_config:
    
    instances:
      - url: http://localhost:8080
        username: datadog-agent
        password: "<PASSWORD>"
    
  3. Reinicia el Agent.

Compatibilidad con TLS

Si TLS/SSL está activado en el puerto HTTP del cliente:

  1. Exporta el archivo CA de tu certificado en formato PEM:

    keytool -exportcert -file /path/to/voltdb-ca.pem -keystore <KEYSTORE> -storepass <PASSWORD> -alias voltdb -rfc
    
  2. Exporta tu certificado en formato PEM:

    openssl pkcs12 -nodes -in <KEYSTORE> -out /path/to/voltdb.pem -password pass:<PASSWORD>
    

    El archivo resultante debe contener la clave privada sin descifrar y el certificado:

    -----BEGIN PRIVATE KEY-----
    <Private key contents...>
    -----END PRIVATE KEY-----
    -----BEGIN CERTIFICATE-----
    <Certificate contents...>
    -----END CERTIFICATE-----
    
  3. En tu instancia de configuración, apunta url al endpoint del cliente habilitado por TLS y configura las opciones tls_cert y tls_ca_cert. Por ejemplo:

    instances:
    - # ...
      url: https://localhost:8443
      tls_cert: /path/to/voltdb.pem
      tls_ca_cert: /path/to/voltdb-ca.pem
    
  4. Reinicia el Agent.

Recopilación de logs

  1. La recopilación de logs se encuentra deshabilitada de manera predeterminada en el Datadog Agent. Habilítala en tu archivo datadog.yaml:

    logs_enabled: true
    
  2. Añade este bloque de configuración a tu archivo voltdb.d/conf.yaml para empezar a recopilar logs de VoltDB:

    logs:
      - type: file
        path: /var/log/voltdb.log
        source: voltdb
    

Cambia el valor path en función de tu entorno. Consulta el voltdb.d/conf.yaml de ejemplo para conocer todas las opciones de configuración disponibles.

  1. Reinicia el Agent.

Para habilitar logs para entornos Kubernetes, consulta Recopilación de logs de Kubernetes.

Validación

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

Datos recopilados

Métricas

voltdb.commandlog.fsync_interval
(gauge)
Average interval between the last 10 fsync system calls.
Shown as millisecond
voltdb.commandlog.in_use_segment_count
(gauge)
The number of segment files currently in use for command logging.
voltdb.commandlog.outstanding_bytes
(gauge)
Size of pending command log data: data for transactions that have been initiated but the log has yet to be written to the disk. For synchronous logging this value is always zero.
Shown as byte
voltdb.commandlog.outstanding_transactions
(gauge)
The number of transactions of pending command log data: the number of transactions that have been initiated for which the log has yet to be written to disk. For synchronous logging this value is always zero.
voltdb.commandlog.segment_count
(gauge)
The number of segment files allocated (including currently unused segments).
voltdb.cpu.percent_used
(gauge)
Percentage of total CPU available used by the database server process.
Shown as percent
voltdb.export.latency.avg
(gauge)
The average time between when records are inserted and when they are acknowledged by the target.
Shown as millisecond
voltdb.export.latency.max
(gauge)
The maximum time between when a record was inserted and when it was acknowledged by the target.
Shown as millisecond
voltdb.export.queue_gap
(gauge)
The number of records missing from the queue for the current stream and partition.
voltdb.export.records_pending
(gauge)
The number of records out of TUPLE_COUNT still waiting to be written to or acknowledged by the target.
voltdb.export.records_queued
(count)
The number of records queued to the export target.
voltdb.export.time_since_last_acked
(gauge)
Time since the last tuple was acknowledged as received by the target.
Shown as second
voltdb.export.time_since_last_queued
(gauge)
Time since the most recent tuple was added to the export queue for this partition.
Shown as second
voltdb.gc.newgen_avg_gc_time
(gauge)
Average time taken by young generation collections.
Shown as millisecond
voltdb.gc.newgen_gc_count
(count)
Total number of times young generation garbage collection was performed.
voltdb.gc.oldgen_avg_gc_time
(gauge)
Average time taken by young generation collections.
Shown as millisecond
voltdb.gc.oldgen_gc_count
(count)
Total number of times old generation garbage collection was performed.
voltdb.idletime.avg_wait
(gauge)
The average amount of time the execution site had to wait for a new task (in microseconds).
Shown as microsecond
voltdb.idletime.max_wait
(gauge)
The maximum amount of time the execution site had to wait for a new task (in nanoseconds).
Shown as microsecond
voltdb.idletime.min_wait
(gauge)
The minimum amount of time the execution site had to wait for a new task (in nanoseconds).
Shown as microsecond
voltdb.idletime.stddev
(gauge)
The standard deviation of the waiting time (in microseconds).
Shown as microsecond
voltdb.idletime.wait.count
(count)
The number of times the execution site had to wait for a new task (that is, the queue was empty).
voltdb.idletime.wait.pct
(gauge)
The percentage of time the execution site was waiting for a new task (that is, the site was idle).
voltdb.idletime.wait.total
(gauge)
The cumulative number of times the execution site had to wait for a new task (that is, the queue was empty).
voltdb.import.failures.count
(count)
The number of import transactions that failed.
voltdb.import.failures.total
(gauge)
The cumulative number of import transactions that failed.
voltdb.import.outstanding_requests
(gauge)
The number of records read from the import stream and waiting to be inserted into the database.
Shown as record
voltdb.import.retries.count
(count)
The number of attempts to replay failed transactions.
voltdb.import.retries.total
(gauge)
The cumulative number of attempts to replay failed transactions.
voltdb.import.successes.count
(count)
The number of import transactions that succeeded.
voltdb.import.successes.total
(gauge)
The cumulative number of import transactions that succeeded.
voltdb.index.entry_count
(gauge)
Number of index entries currently in the partition.
voltdb.index.memory_estimate
(gauge)
Estimated amount of memory consumed by the current index entries.
Shown as kibibyte
voltdb.io.bytes_read
(count)
Total number of bytes of data sent from the client to the host.
Shown as byte
voltdb.io.bytes_written
(count)
Total number of bytes of data sent from the host to the client.
Shown as byte
voltdb.io.messages_read
(count)
Total number of individual messages sent from the client to the host.
Shown as byte
voltdb.io.messages_written
(count)
Total number of individual messages sent from the host to the client.
Shown as byte
voltdb.latency.count
(gauge)
Number of transactions during the interval.
voltdb.latency.interval
(gauge)
Length of the measurement interval: five seconds (5000).
Shown as millisecond
voltdb.latency.max
(gauge)
Maximum latency during the interval
Shown as microsecond
voltdb.latency.p50
(gauge)
50th percentile latency.
Shown as microsecond
voltdb.latency.p95
(gauge)
95th percentile latency.
Shown as microsecond
voltdb.latency.p99
(gauge)
99th percentile latency.
Shown as microsecond
voltdb.latency.p999
(gauge)
99.9th percentile latency.
Shown as microsecond
voltdb.latency.p9999
(gauge)
99.99th percentile latency.
Shown as microsecond
voltdb.latency.p99999
(gauge)
99.999th percentile latency.
Shown as microsecond
voltdb.latency.transactions_per_sec
(gauge)
Number of transactions per second during the interval
Shown as transaction
voltdb.memory.index
(gauge)
Amount of memory currently in use for storing database indexes.
Shown as kibibyte
voltdb.memory.java.max_heap
(gauge)
Maximum heap size of the Java runtime environment.
Shown as kibibyte
voltdb.memory.java.unused
(gauge)
Amount of memory allocated by Java but unused (free space in the Java heap).
Shown as kibibyte
voltdb.memory.java.used
(gauge)
Amount of memory allocated by Java and currently in use by VoltDB.
Shown as kibibyte
voltdb.memory.physical
(gauge)
Total size of physical memory on the server.
Shown as kibibyte
voltdb.memory.pooled
(gauge)
Total size of memory allocated for tasks other than database records, indexes, and strings.
Shown as kibibyte
voltdb.memory.rss
(gauge)
Total amount of memory allocated to the VoltDB processes on the server.
Shown as kibibyte
voltdb.memory.string
(gauge)
Amount of memory currently in use for storing string, binary and geospatial data that is not stored inline in the database record.
Shown as kibibyte
voltdb.memory.tuple_allocated
(gauge)
Amount of memory allocated for the storage of database records (including free space).
Shown as kibibyte
voltdb.memory.tuple_count
(gauge)
Total number of database records currently in memory.
Shown as kibibyte
voltdb.memory.tuple_data
(gauge)
Amount of memory currently in use for storing database records.
Shown as kibibyte
voltdb.procedure.aborts
(count)
Total number of times the procedure was aborted.
Shown as byte
voltdb.procedure.avg_execution_time
(gauge)
Average amount of time it took to execute the stored procedure.
Shown as nanosecond
voltdb.procedure.avg_parameter_set_size
(gauge)
Average size of the parameters passed as input to the procedure.
Shown as byte
voltdb.procedure.avg_result_size
(gauge)
Average size of the results returned by the procedure.
Shown as byte
voltdb.procedure.failures
(count)
Total number of times the procedure failed unexpectedly.
Shown as byte
voltdb.procedure.invocations
(count)
The number of invocations of this procedure at this site.
voltdb.procedure.max_execution_time
(gauge)
Maximum amount of time it took to execute the stored procedure.
Shown as nanosecond
voltdb.procedure.max_parameter_set_size
(gauge)
Maximum size of the parameters passed as input to the procedure.
Shown as byte
voltdb.procedure.max_result_size
(gauge)
Maximum size of the results returned by the procedure.
Shown as byte
voltdb.procedure.min_execution_time
(gauge)
Minimum amount of time it took to execute the stored procedure.
Shown as nanosecond
voltdb.procedure.min_parameter_set_size
(gauge)
Minimim size of the parameters passed as input to the procedure.
Shown as byte
voltdb.procedure.min_result_size
(gauge)
Minimum size of the results returned by the procedure.
Shown as byte
voltdb.procedure.successes
(count)
Total number of times the procedure succeeded.
Shown as byte
voltdb.procedure.timed_invocations
(count)
Total number of invocations used to measure the minimum, maximum, and average execution time.
voltdb.procedureoutput.avg_result_size
(gauge)
The average result set size in bytes.
Shown as byte
voltdb.procedureoutput.invocations.count
(count)
The number of invocations of this procedure.
voltdb.procedureoutput.invocations.total
(gauge)
The cumulative number of invocations of this procedure.
voltdb.procedureoutput.max_result_size
(gauge)
The maximum result set size in bytes.
Shown as byte
voltdb.procedureoutput.min_result_size
(gauge)
The minimum result set size in bytes.
Shown as byte
voltdb.procedureoutput.total_result_size
(gauge)
The total output returned by all invocations of this stored procedure measured in megabytes.
Shown as mebibyte
voltdb.procedureoutput.weighted_perc
(gauge)
A weighted average expressed as a percentage of the result set size returned by invocations of this stored procedure compared to all stored procedure invocations.
voltdb.procedureprofile.aborts.count
(count)
The number of times the procedure was aborted.
voltdb.procedureprofile.aborts.total
(gauge)
The cumulative number of times the procedure was aborted.
voltdb.procedureprofile.avg_time
(gauge)
The average length of time (in nanoseconds) it took to execute the stored procedure.
Shown as nanosecond
voltdb.procedureprofile.failures.count
(count)
The number of times the procedure failed unexpectedly (as opposed to user aborts or expected errors, such as constraint violations).
voltdb.procedureprofile.failures.total
(gauge)
The number of times the procedure failed unexpectedly (as opposed to user aborts or expected errors, such as constraint violations).
voltdb.procedureprofile.invocations.count
(count)
The number of invocations of this procedure.
voltdb.procedureprofile.invocations.total
(gauge)
The total number of invocations of this procedure.
voltdb.procedureprofile.max_time
(gauge)
The maximum length of time (in nanoseconds) it took to execute the stored procedure.
Shown as nanosecond
voltdb.procedureprofile.min_time
(gauge)
The minimum length of time (in nanoseconds) it took to execute the stored procedure.
Shown as nanosecond
voltdb.procedureprofile.weighted_perc
(gauge)
A weighted average expressed as a percentage of the execution time for this stored procedure compared to all stored procedure invocations.
voltdb.queue.avg_wait
(gauge)
The average length of time (in microseconds) tasks were waiting in the queue in the last five seconds.
Shown as microsecond
voltdb.queue.current_depth
(gauge)
The number of tasks currently in the queue.
Shown as task
voltdb.queue.max_wait
(gauge)
The maximum length of time (in microseconds) tasks were waiting in the queue in the last five seconds.
Shown as microsecond
voltdb.queue.poll_count_per_sec
(gauge)
The number of tasks that left the queue
Shown as task
voltdb.snapshot_status.duration
(gauge)
Amount of time it took to complete the snapshot.
Shown as second
voltdb.snapshot_status.size
(gauge)
Total size of the snapshot file.
Shown as byte
voltdb.snapshot_status.throughput
(gauge)
Average number of bytes per second written to the file during the snapshot process.
Shown as byte
voltdb.table.percent_full
(gauge)
Percentage of the row limit currently in use by table rows in this partition. If no row limit is set this is zero.
Shown as percent
voltdb.table.string_data_memory
(gauge)
Total memory used for storing non-inline variable length data associated with this table in this partition.
Shown as kibibyte
voltdb.table.tuple_allocated_memory
(gauge)
Total size of memory allocated for storing inline data associated with this table in this partition. Can exceed currently used memory.
Shown as kibibyte
voltdb.table.tuple_count
(gauge)
Number of rows currently stored for this table in the current partition.
voltdb.table.tuple_data_memory
(gauge)
Total memory used for storing inline data associated with this table and this partition.
Shown as kibibyte
voltdb.table.tuple_limit
(gauge)
The row limit for this table. Row limits are optional and are defined in the schema as a maximum number of rows that any partition can contain. If no row limit is set, this value is null.
Shown as row

Eventos

Este check no incluye eventos.

Checks de servicio

voltdb.can_connect
Returns CRITICAL if the Agent is unable to reach the configured VoltDB client URL, OK otherwise.
Statuses: ok, critical

Solucionar problemas

¿Necesitas ayuda? Contacta con el equipo de asistencia de Datadog.

Referencias adicionales

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