Puedes recopilar métrica sobre tu contenedor docker con el recolector OpenTelemetry. El recolector es un componente de OpenTelemetry que recopila, procesa y exporta telemetry data a New Relic (o cualquier backend de observabilidad).
Puede ver estos datos métricos en un panel prediseñado, crear políticas de alertas y crear consultas y gráficos personalizados.
Sugerencia
Si busca ayuda con otros casos de uso del recolector, consulte el repositorio newrelic-OpenTelemetry-examples .
Complete los pasos a continuación para recolectar métrica del contenedor docker :
Paso 1: Regístrese para obtener su cuenta gratuita si aún no lo ha hecho
Paso 2: requisitos previos
El recolector utilizará el componente receptor dockerstats (versión mínima recomendada v0.81.0), y requiere acceso al a través de docker daemon un extremo:
- Por defecto se utiliza
unix:///var/run/docker.sock
extremo. Por lo tanto, el recolector debe ejecutarse con un usuario capaz de leer el socket de la docker .
Paso 3: Instale el recolector OpenTelemetry
Descargue e instale el recolector OpenTelemetry siguiendo los documentosOpenTelemetry .
Necesitará instalar OpenTelemetry recolector Contrib Distro u otra distribución que incluya, al menos, los siguientes componentes:
- Receptor de Dockerstats
- Exportador OTLP/HTTP
- Procesador de recursos
- Procesador de detección de recursos
Paso 4: Configurar el recolector OpenTelemetry
Actualice o cree un nuevo archivo llamado config.yaml
del siguiente ejemplo.
Reemplace el NEW_RELIC_LICENSE_KEY
en el archivo con sus propios valores. Para obtener más información, consulte la clave de licencia de New Relic.
receivers:
docker_stats: metrics: container.cpu.usage.total: enabled: true container.cpu.throttling_data.periods: enabled: true container.cpu.throttling_data.throttled_periods: enabled: true # `container.cpu.percent` is deprecated in favor of `container.cpu.utilization` in opentelemetry-collector-contrib v0.79.0 container.cpu.utilization: enabled: true container.cpu.percent: enabled: false container.memory.usage.limit: enabled: true container.memory.usage.total: enabled: true container.memory.percent: enabled: true container.blockio.io_service_bytes_recursive: enabled: true container.network.io.usage.rx_bytes: enabled: true container.network.io.usage.tx_bytes: enabled: true container.network.io.usage.rx_dropped: enabled: true container.network.io.usage.tx_dropped: enabled: true container.network.io.usage.rx_errors: enabled: true container.network.io.usage.tx_errors: enabled: true container.network.io.usage.rx_packets: enabled: true container.network.io.usage.tx_packets: enabled: true container.pids.count: enabled: true
processors:
# resource and resource-detection processors allow decorating the metrics with host attributes resource: attributes: - key: host.id from_attribute: host.name action: insert
resourcedetection: detectors: ["env", "system"]
resourcedetection/cloud: detectors: ["gcp", "ec2", "azure"] timeout: 2s override: false
exporters: otlphttp: endpoint: https://otlp.nr-data.net headers: api-key: NEW_RELIC_LICENSE_KEY
service: telemetry: logs: pipelines: metrics: receivers: [docker_stats] processors: - resourcedetection - resourcedetection/cloud - resource exporters: [otlphttp]
Para obtener más opciones de configuración, revise:
- Documentación del receptor Dockerstats
- Documentación del recolector OpenTelemetry
- Procesador por lotes
Paso 4: ejecuta el recolector
Ejecute el recolector OpenTelemetry (la forma de ejecutarlo puede variar según el método de instalación elegido). Ejemplo:
/usr/bin/otelcol-contrib --config ./config.yaml
Paso 5: busque y utilice sus datos
Explorar los datos del contenedor en UIde la infraestructura
Al utilizar la configuración recomendada para el receptor docker , puede explorar el contenedor que se ejecuta en un host en la nueva experiencia UIusuario de infraestructura (nueva UI usuario de host).
Aprovecha nuestras experiencias impulsadas por entidades
Los telemetry data del contenedor que se originan en el receptor docker Open Telemetry generan la entidad del contenedor. Las entidades son cualquier cosa que informe datos a New Relic y se identifique mediante un ID de entidad único.
Su entidad de monitor son los controladores de características como entidad Explorer, carga de trabajo y Lookout. Consulte este documento para obtener más información sobre cómo beneficiarse de estas experiencias.
Explora y consulta tus datos
Puede utilizar el explorador métrico para comprobar la métrica que se está ingiriendo. Todas las métricas reportadas por el receptor de estadísticas docker comienzan con el prefijo "container."
.
La siguiente consulta NRQL muestra ejemplos que le ayudarán a consultar la métrica que recibió:
Listado del número de actualizaciones métricas ingeridas por nombre de métrica:
SELECT count(*) FROM Metric WHERE metricName LIKE 'container.%' and instrumentation.provider='opentelemetry' facet metricName LIMIT maxConsultar una métrica específica facetada por host:
SELECT average(container.cpu.percent) FROM Metric WHERE instrumentation.provider='opentelemetry' FACET host.name TIMESERIESListado de dimensiones disponibles para una métrica determinada:
SELECT keyset() FROM Metric WHERE metricName = 'container.cpu.percent'
Instalar inicio rápido
Aprovecha el docker dashboard incluido en el docker Quickstart Open Telemetría para fácilmente monitor tu docker infraestructura gracias a los gráficos y filtros predefinidos.
Datos métricos
Para obtener una lista de todas las métricas admitidas, consulte la referencia métrica del receptor de dockerstats.