OpenTelemetry

Supported OS Linux

OpenTelemetry Collector

Información general

Importante: OpenTelemetry Collector Contrib v0.95.0 introduce un cambio que desactiva el cálculo de métricas de trazas (traces) en el Datadog Exporter. Sigue la guía de migración al actualizarlo.

OpenTelemetry es un estándar independiente del proveedor para datos de telemetría. Datadog admite la ingesta de datos de OpenTelemetry a través de OpenTelemetry Collector y el Datadog Agent. Este ícono documenta la manera de exportar datos a Datadog a través de OpenTelemetry Collector con Datadog Exporter OpenTelemetry Collector Datadog Exporter. Consulta también Ingesta de OTLP en el Datadog Agent para obtener más información sobre la ingesta de trazas (traces) de OTLP con el Datadog Agent.

OpenTelemetry Collector es un proceso independiente del proveedor del Agent que, a través del exportador de Datadog, exporta datos de telemetría directamente a servidores de Datadog (no requiere la instalación del Agent). Informa de métricas y trazas (traces) desde aplicaciones instrumentadas y métricas del sistema en general.

Se muestran métricas del host en el dashboard predeterminado de OpenTelemetry Host Metrics, pero puedes enviar métricas arbitrarias a Datadog utilizando OpenTelemetry Collector. Las métricas en system.* y process.*, como las generadas por el receptor de métricas del host, se renombran a otel.system.* y otel.process.* para evitar colisiones con métricas desde el Datadog Agent. Además, las métricas de OpenTelemetry Collector se muestran en el dashboard predeterminado de las métricas de OpenTelemetry Collector.

Configuración

Instalación

Sigue la documentación de OpenTelemetry Collector para instalar la distribución opentelemetry-collector-contrib o cualquier otra distribución que incluya el Datadog Exporter.

El Datadog Agent no es necesario para exportar datos de telemetría a Datadog en esta configuración. Consulta OTLP Ingest en el Datadog Agent si deseas utilizar el Datadog Agent en su lugar.

Configuración

Para exportar datos de telemetría a Datadog desde OpenTelemetry Collector, añade el exportador de Datadog a tus pipelines de métricas y trazas (traces). La única configuración necesaria es tu clave de la API.

El archivo de configuración mínimo para recuperar métricas del sistema es el siguiente.

receivers:
  hostmetrics:
    scrapers:
      load:
      cpu:
      disk:
      filesystem:
      memory:
      network:
      paging:
      process:

processors:
  batch:
    timeout: 10s

exporters:
  datadog:
    api:
      key: "<Your API key goes here>"

service:
  pipelines:
    metrics:
      receivers: [hostmetrics]
      processors: [batch]
      exporters: [datadog]

Para obtener más información sobre la configuración del exportador de Datadog y la manera de configurar el pipeline, consulta el exportador de Datadog para OpenTelemetry Collector.

Consulta la sección Métricas para ver los tipos de métricas y metadata.csv para obtener una lista de métricas proporcionadas por este check. Si utilizas el receptor hostmetrics como en el ejemplo de configuración anterior. Puedes enviar métricas arbitrarias con otros componentes de OpenTelemetry Collector.

Se pueden activar y personalizar diferentes grupos de métricas siguiendo las instrucciones del receptor de métricas del host. Las métricas de la CPU y del disco no están disponibles en macOS.

Validación

Check los logs de OpenTelemetry Collector para ver que el exportador de Datadog está habilitado y se ha iniciado correctamente. Por ejemplo, con la configuración anterior, deberías encontrar mensajes de registro similares a los siguientes.

Exporter is enabled.    {"component_kind": "exporter", "exporter": "datadog"}
Exporter is starting... {"component_kind": "exporter", "component_type": "datadog", "component_name": "datadog"}
Exporter started.   {"component_kind": "exporter", "component_type": "datadog", "component_name": "datadog"}
Everything is ready. Begin running and processing data.

Datos recopilados

Métricas

otel.system.cpu.time
(count)
Total CPU seconds broken down by different states
Shown as second
otel.system.cpu.load_average.1m
(gauge)
Average CPU Load over 1 minute
Shown as unit
otel.system.cpu.load_average.5m
(gauge)
Average CPU Load over 5 minutes
Shown as unit
otel.system.cpu.load_average.15m
(gauge)
Average CPU Load over 15 minutes
Shown as unit
otel.system.memory.usage
(count)
Bytes of memory in use
Shown as byte
otel.system.disk.io
(count)
Disk bytes transferred
Shown as byte
otel.system.disk.operations
(count)
Disk operations count
Shown as unit
otel.system.disk.io_time
(count)
Time disk spent activated
Shown as unit
otel.system.disk.operation_time
(count)
Time spent in disk operations
Shown as second
otel.system.disk.merged
(count)
The number of disk reads merged into single physical disk access operations.
Shown as request
otel.system.disk.pending_operations
(gauge)
The queue size of pending I/O operations.
Shown as unit
otel.system.filesystem.usage
(gauge)
Filesystem bytes used.
Shown as byte
otel.system.filesystem.inodes.usage
(gauge)
Filesystem inodes used
Shown as inode
otel.system.network.dropped
(count)
Packets that are dropped or discarded even though there was no error
Shown as packet
otel.system.network.packets
(count)
The number of packets transferred
Shown as packet
otel.system.network.errors
(gauge)
The number of errors encountered
Shown as error
otel.system.network.io
(count)
The number of bytes transmitted and received
Shown as byte
otel.system.network.connections
(gauge)
The number of connections
Shown as connection
otel.system.processes.count
(gauge)
Total number of processes in each state
Shown as process
otel.system.processes.created
(count)
Total number of created processes
Shown as process
otel.process.cpu.time
(count)
Total CPU seconds broken down by different states.
Shown as second
otel.process.memory.physical_usage
(count)
The amount of physical memory in use
Shown as byte
otel.process.memory.virtual_usage
(gauge)
Virtual memory size
Shown as byte
otel.process.disk.io
(count)
Disk bytes transferred per second
Shown as byte
otel.system.paging.usage
(gauge)
Unix swap or windows pagefile usage
Shown as byte
otel.system.paging.faults
(count)
The number of paging faults
Shown as occurrence
otel.system.paging.operations
(count)
The number of paging operations
Shown as unit
otel.datadog_exporter.metrics.running
(gauge)
Reports that metrics are being sent from a host through the Datadog exporter for the OpenTelemetry Collector
Shown as unit
otel.datadog_exporter.traces.running
(gauge)
Reports that traces are being sent from a host through the Datadog exporter for the OpenTelemetry Collector
Shown as unit
otelcol_process_uptime
(count)
Uptime of the process
Shown as unit
otelcol_process_memory_rss
(gauge)
Total physical memory (resident set size)
Shown as unit
otelcol_exporter_queue_size
(gauge)
Current size of the retry queue (in batches)
Shown as unit
otelcol_exporter_sent_spans
(count)
Number of spans successfully sent to destination
Shown as unit
otelcol_exporter_send_failed_metric_points
(count)
Number of metric points in failed attempts to send to destination
Shown as unit
otelcol_exporter_send_failed_spans
(count)
Number of spans in failed attempts to send to destination
Shown as unit
otelcol_process_cpu_seconds
(count)
Total CPU user and system time in seconds
Shown as unit
otelcol_receiver_refused_spans
(count)
Number of spans that could not be pushed into the pipeline
Shown as unit
otelcol_exporter_queue_capacity
(gauge)
Fixed capacity of the retry queue (in batches)
Shown as unit
otelcol_receiver_accepted_spans
(count)
Number of spans successfully pushed into the pipeline
Shown as unit
otelcol_exporter_sent_metric_points
(count)
Number of metric points successfully sent to destination
Shown as unit
otelcol_exporter_enqueue_failed_spans
(count)
Number of spans failed to be added to the sending queue
Shown as unit
otelcol_scraper_errored_metric_points
(count)
Number of metric points that were unable to be scraped
Shown as unit
otelcol_scraper_scraped_metric_points
(count)
Number of metric points successfully scraped
Shown as unit
otelcol_receiver_refused_metric_points
(count)
Number of metric points that could not be pushed into the pipeline
Shown as unit
otelcol_receiver_accepted_metric_points
(count)
Number of metric points successfully pushed into the pipeline
Shown as unit
otelcol_process_runtime_heap_alloc_bytes
(gauge)
Bytes of allocated heap objects (see 'go doc runtime.MemStats.HeapAlloc')
Shown as byte
otelcol_process_runtime_total_alloc_bytes
(count)
Cumulative bytes allocated for heap objects (see 'go doc runtime.MemStats.TotalAlloc')
Shown as byte
otelcol_exporter_enqueue_failed_log_records
(count)
Number of log records failed to be added to the sending queue
Shown as unit
otelcol_processor_batch_timeout_trigger_send
(count)
Number of times the batch was sent due to a timeout trigger
Shown as unit
otelcol_exporter_enqueue_failed_metric_points
(count)
Number of metric points failed to be added to the sending queue
Shown as unit
otelcol_process_runtime_total_sys_memory_bytes
(gauge)
Total bytes of memory obtained from the OS (see 'go doc runtime.MemStats.Sys')
Shown as byte
otelcol_processor_batch_batch_size_trigger_send
(count)
Number of times the batch was sent due to a size trigger
Shown as unit
otelcol_exporter_sent_log_records
(count)
Number of log records successfully sent to destination
Shown as unit
otelcol_receiver_refused_log_records
(count)
Number of log records that could not be pushed into the pipeline
Shown as unit
otelcol_receiver_accepted_log_records
(count)
Number of log records successfully pushed into the pipeline
Shown as unit
runtime.uptime
(count)
Milliseconds since application was initialized
Shown as millisecond
process.runtime.go.goroutines
(gauge)
Number of goroutines that currently exist
Shown as invocation
process.runtime.go.cgo.calls
(gauge)
Number of cgo calls made by the current process
Shown as invocation
process.runtime.go.mem.heap_alloc
(gauge)
Bytes of allocated heap objects
Shown as byte
process.runtime.go.mem.heap_idle
(gauge)
Bytes in idle (unused) spans
Shown as byte
process.runtime.go.mem.heap_inuse
(gauge)
Bytes in in-use spans
Shown as byte
process.runtime.go.mem.heap_objects
(gauge)
Number of allocated heap objects
Shown as object
process.runtime.go.mem.heap_released
(gauge)
Bytes of idle spans whose physical memory has been returned to the OS
Shown as byte
process.runtime.go.mem.heap_sys
(gauge)
Bytes of heap memory obtained from the OS
Shown as byte
process.runtime.go.mem.lookups
(count)
Number of pointer lookups performed by the runtime
Shown as unit
process.runtime.go.mem.live_objects
(gauge)
Number of live objects is the number of cumulative Mallocs - Frees
Shown as object
process.runtime.go.gc.count
(count)
Number of completed garbage collection cycles
Shown as garbage collection
process.runtime.go.gc.pause_total_ns
(count)
Cumulative nanoseconds in GC stop-the-world pauses since the program started
Shown as nanosecond
otel.process.runtime.go.goroutines
(gauge)
Number of goroutines that currently exist
Shown as invocation
otel.process.runtime.go.cgo.calls
(gauge)
Number of cgo calls made by the current process
Shown as invocation
otel.process.runtime.go.mem.heap_alloc
(gauge)
Bytes of allocated heap objects
Shown as byte
otel.process.runtime.go.mem.heap_idle
(gauge)
Bytes in idle (unused) spans
Shown as byte
otel.process.runtime.go.mem.heap_inuse
(gauge)
Bytes in in-use spans
Shown as byte
otel.process.runtime.go.mem.heap_objects
(gauge)
Number of allocated heap objects
Shown as object
otel.process.runtime.go.mem.heap_released
(gauge)
Bytes of idle spans whose physical memory has been returned to the OS
Shown as byte
otel.process.runtime.go.mem.heap_sys
(gauge)
Bytes of heap memory obtained from the OS
Shown as byte
otel.process.runtime.go.mem.lookups
(count)
Number of pointer lookups performed by the runtime
Shown as unit
otel.process.runtime.go.mem.live_objects
(gauge)
Number of live objects is the number of cumulative Mallocs - Frees
Shown as object
otel.process.runtime.go.gc.count
(count)
Number of completed garbage collection cycles
Shown as garbage collection
otel.process.runtime.go.gc.pause_total_ns
(count)
Cumulative nanoseconds in GC stop-the-world pauses since the program started
Shown as nanosecond
process.runtime.jvm.memory.usage_after_last_gc
(gauge)
Measure of memory used as measured after the most recent garbage collection event on this pool
Shown as byte
process.runtime.jvm.classes.loaded
(count)
Number of classes loaded since JVM start
Shown as unit
process.runtime.jvm.classes.unloaded
(count)
Number of classes unloaded since JVM start
Shown as unit
process.runtime.jvm.classes.current_loaded
(gauge)
Number of classes currently loaded
Shown as unit
process.runtime.jvm.cpu.utilization
(gauge)
Recent CPU utilization for the process
Shown as unit
process.runtime.jvm.system.cpu.utilization
(gauge)
Recent CPU utilization for the whole system
Shown as unit
process.runtime.jvm.system.cpu.load_1m
(gauge)
Average CPU load of the whole system for the last minute
Shown as unit
process.runtime.jvm.buffer.usage
(gauge)
Measure of memory used by buffers
Shown as byte
process.runtime.jvm.buffer.limit
(gauge)
Measure of total memory capacity of buffers
Shown as byte
process.runtime.jvm.buffer.count
(gauge)
Number of buffers in the pool
Shown as buffer
process.runtime.jvm.memory.usage
(gauge)
The total Java memory used.
Shown as byte
process.runtime.jvm.memory.committed
(gauge)
The total Java memory committed to be used.
Shown as byte
process.runtime.jvm.memory.init
(gauge)
The initial Java memory allocated.
Shown as byte
process.runtime.jvm.memory.limit
(gauge)
The maximum Java memory available.
Shown as byte
process.runtime.jvm.threads.count
(count)
The number of live threads.
Shown as thread
process.runtime.jvm.gc.duration
(gauge)
The approximate accumulated garbage collection time elapsed.
Shown as millisecond
otel.process.runtime.jvm.memory.usage_after_last_gc
(gauge)
Measure of memory used as measured after the most recent garbage collection event on this pool
Shown as byte
otel.process.runtime.jvm.classes.loaded
(count)
Number of classes loaded since JVM start
Shown as unit
otel.process.runtime.jvm.classes.unloaded
(count)
Number of classes unloaded since JVM start
Shown as unit
otel.process.runtime.jvm.classes.current_loaded
(gauge)
Number of classes currently loaded
Shown as unit
otel.process.runtime.jvm.cpu.utilization
(gauge)
Recent CPU utilization for the process
Shown as unit
otel.process.runtime.jvm.system.cpu.utilization
(gauge)
Recent CPU utilization for the whole system
Shown as unit
otel.process.runtime.jvm.system.cpu.load_1m
(gauge)
Average CPU load of the whole system for the last minute
Shown as unit
otel.process.runtime.jvm.buffer.usage
(gauge)
Measure of memory used by buffers
Shown as byte
otel.process.runtime.jvm.buffer.limit
(gauge)
Measure of total memory capacity of buffers
Shown as byte
otel.process.runtime.jvm.buffer.count
(gauge)
Number of buffers in the pool
Shown as buffer
otel.process.runtime.jvm.memory.usage
(gauge)
The total Java memory used.
Shown as byte
otel.process.runtime.jvm.memory.committed
(gauge)
The total Java memory committed to be used.
Shown as byte
otel.process.runtime.jvm.memory.init
(gauge)
The initial Java memory allocated.
Shown as byte
otel.process.runtime.jvm.memory.limit
(gauge)
The maximum Java memory available.
Shown as byte
otel.process.runtime.jvm.threads.count
(count)
The number of live threads.
Shown as thread
otel.process.runtime.jvm.gc.duration
(gauge)
The approximate accumulated garbage collection time elapsed.
Shown as millisecond
process.runtime.dotnet.thread_pool.threads.count
(gauge)
The number of threads
Shown as thread
process.runtime.dotnet.monitor.lock_contention.count
(count)
The number of times a thread stopped to wait on a lock
process.runtime.dotnet.exceptions.count
(count)
The number of first-chance exceptions
Shown as exception
process.runtime.dotnet.gc.heap.size
(gauge)
The heap size (including fragmentation) as observed during the latest garbage collection
Shown as byte
process.runtime.dotnet.gc.collections.count
(count)
Number of garbage collections that have occured since process start
Shown as garbage collection
process.runtime.dotnet.gc.objects.size
(gauge)
Count of bytes currently in use by objects in the GC heap that haven't been collected yet
Shown as byte
process.runtime.dotnet.gc.allocations.size
(count)
Count of bytes allocated on the managed GC heap since the process start
Shown as byte
process.runtime.dotnet.gc.heap.fragmentation.size
(gauge)
The heap fragmentation as observed during the latest garbage collection
Shown as byte
process.runtime.dotnet.jit.il_compiled.size
(count)
Count of bytes of intermediate language that have been compiled since the process start
Shown as byte
process.runtime.dotnet.jit.methods_compiled.count
(count)
The number of times the JIT compiler compiled a method since the process start
Shown as method
process.runtime.dotnet.jit.compilation_time
(count)
The amount of time the JIT compiler has spent compiling methods since the process start
Shown as nanosecond
process.runtime.dotnet.thread_pool.completed_items.count
(count)
The number of work items that have been processed by the thread pool since the process start
Shown as item
process.runtime.dotnet.thread_pool.queue.length
(gauge)
The number of work items that are currently queued to be processed by the thread pool
Shown as item
process.runtime.dotnet.timer.count
(gauge)
The number of timer instances that are currently active
Shown as unit
process.runtime.dotnet.assemblies.count
(gauge)
The number of .NET assemblies that are currently loaded
Shown as unit
process.runtime.dotnet.gc.committed_memory.size
(gauge)
The amount of committed virtual memory for the managed GC heap as observed during the latest garbage collection
Shown as byte
otel.process.runtime.dotnet.thread_pool.threads.count
(gauge)
The number of threads
Shown as thread
otel.process.runtime.dotnet.monitor.lock_contention.count
(count)
The number of times a thread stopped to wait on a lock
otel.process.runtime.dotnet.exceptions.count
(count)
The number of first-chance exceptions
Shown as exception
otel.process.runtime.dotnet.gc.heap.size
(gauge)
The heap size (including fragmentation) as observed during the latest garbage collection
Shown as byte
otel.process.runtime.dotnet.gc.collections.count
(count)
Number of garbage collections that have occured since process start
Shown as garbage collection
otel.process.runtime.dotnet.gc.objects.size
(gauge)
Count of bytes currently in use by objects in the GC heap that haven't been collected yet
Shown as byte
otel.process.runtime.dotnet.gc.allocations.size
(count)
Count of bytes allocated on the managed GC heap since the process start
Shown as byte
otel.process.runtime.dotnet.gc.heap.fragmentation.size
(gauge)
The heap fragmentation as observed during the latest garbage collection
Shown as byte
otel.process.runtime.dotnet.jit.il_compiled.size
(count)
Count of bytes of intermediate language that have been compiled since the process start
Shown as byte
otel.process.runtime.dotnet.jit.methods_compiled.count
(count)
The number of times the JIT compiler compiled a method since the process start
Shown as method
otel.process.runtime.dotnet.jit.compilation_time
(count)
The amount of time the JIT compiler has spent compiling methods since the process start
Shown as nanosecond
otel.process.runtime.dotnet.thread_pool.completed_items.count
(count)
The number of work items that have been processed by the thread pool since the process start
Shown as item
otel.process.runtime.dotnet.thread_pool.queue.length
(gauge)
The number of work items that are currently queued to be processed by the thread pool
Shown as item
otel.process.runtime.dotnet.timer.count
(gauge)
The number of timer instances that are currently active
Shown as unit
otel.process.runtime.dotnet.assemblies.count
(gauge)
The number of .NET assemblies that are currently loaded
Shown as unit
otel.process.runtime.dotnet.gc.committed_memory.size
(gauge)
The amount of committed virtual memory for the managed GC heap as observed during the latest garbage collection
Shown as byte
process.runtime.cpython.cpu_time
(count)
Number of seconds executing in the kernel
Shown as second
process.runtime.cpython.gc_count
(count)
Number of completed garbage collection cycles
Shown as resource
process.runtime.cpython.memory
(gauge)
Resident set memory
Shown as byte
otel.process.runtime.cpython.cpu_time
(count)
Number of seconds executing in the kernel
Shown as second
otel.process.runtime.cpython.gc_count
(count)
Number of completed garbage collection cycles
Shown as resource
otel.process.runtime.cpython.memory
(gauge)
Resident set memory
Shown as byte

Checks de servicio

El OpenTelemetry Collector no incluye ningún check de servicio.

Eventos

El OpenTelemetry Collector no incluye ningún evento.

Solucionar problemas

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

PREVIEWING: datadog-api-spec/generated/3826