Información general

Métricas de OpenTelemetry Docker en un dashboard de contenedores

Para recopilar métricas de contenedor, configura el receptor de Docker Stats en tu Exportador de Datadog.

Para más información, consulta la documentación del proyecto de OpenTelemetry para el receptor de Docker Stats.

Configuración

El receptor de Docker Stats necesita acceder al socket de Docker. Por defecto, el receptor busca el socket de Docker en unix:///var/run/docker.sock. Si esta no es la ruta del socket de Docker, especifica la ruta en la línea de configuración endpoint.

Añade las siguientes líneas a tu configuración de Collector:

receivers:
  docker_stats:
    endpoint: unix:///var/run/docker.sock # (default)
    metrics:
      container.network.io.usage.rx_packets:
        enabled: true
      container.network.io.usage.tx_packets:
        enabled: true
      container.cpu.usage.system:
        enabled: true
      container.memory.rss:
        enabled: true
      container.blockio.io_serviced_recursive:
        enabled: true
      container.uptime:
        enabled: true
      container.memory.hierarchical_memory_limit:
        enabled: true

Nota: Si estás utilizando la imagen de Collector, puede que debas configurar permisos adicionales para que Collector tenga acceso al socket de Docker.

El receptor de Docker Stats necesita acceder al socket de Docker. En Kubernetes, si estás ejecutando Docker como tiempo de ejecución, monta el socket de Docker:

Añade las siguientes líneas a values.yaml:

extraVolumes:
 - name: docker-sock
   hostPath:
     path: /var/run/docker.sock
extraVolumeMounts:
 - name: docker-sock
   mountPath: /var/run/docker.sock

Añade lo siguiente en la configuración de Collector:

receivers:
  docker_stats:
    endpoint: unix:///var/run/docker.sock # default
    metrics:
      container.network.io.usage.rx_packets:
        enabled: true
      container.network.io.usage.tx_packets:
        enabled: true
      container.cpu.usage.system:
        enabled: true
      container.memory.rss:
        enabled: true
      container.blockio.io_serviced_recursive:
        enabled: true
      container.uptime:
        enabled: true
      container.memory.hierarchical_memory_limit:
        enabled: true

Datos recopilados

Consulta asignación de métricas de OpenTelemetry para obtener información sobre la recopilación de métricas de contenedor.

Ejemplo completo de configuración

Para ver un ejemplo completo de configuración en funcionamiento con el exportador de Datadog, consulta docker-stats.yaml.

Ejemplo de salida de registro

Resource SchemaURL: https://opentelemetry.io/schemas/1.6.1
Resource attributes:
     -> container.runtime: Str(docker)
     -> container.hostname: Str(be51776e036e)
     -> container.id: Str(be51776e036e04461169fce2847d4e77be3d83856b474ad544143afc3d48e9e5)
     -> container.image.name: Str(sha256:9bdff337981de15f8cdf9e73b24af64a03e2e6dd1f156a274a15c1d8db98ab79)
     -> container.name: Str(redis-otel)
ScopeMetrics #0
ScopeMetrics SchemaURL: 
InstrumentationScope otelcol/dockerstatsreceiver 0.89.0-dev
Metric #6
Descriptor:
     -> Name: container.cpu.utilization
     -> Description: Percent of CPU used by the container.
     -> Unit: 1
     -> DataType: Gauge
NumberDataPoints #0
StartTimestamp: 2023-11-20 14:58:17.522765 +0000 UTC
Timestamp: 2023-11-20 14:58:19.550208 +0000 UTC
Value: 0.170933