Você pode coletar métricas sobre seu contêiner docker com o coletor OpenTelemetry. O coletor é um componente do OpenTelemetry que coleta, processa e exporta dados de telemetria para o New Relic (ou qualquer backend de observabilidade).
Você pode visualizar esses dados de métrica em um painel pré-construído, criar políticas de alertas e criar consultas e gráficos personalizados.
Dica
Se você estiver procurando ajuda com outros casos de uso do coletor, consulte o repositório newrelic-OpenTelemetry-examples .
Complete os passos abaixo para coletar a métrica do docker contêiner:
Etapa 1: inscreva-se para obter sua conta gratuita, caso ainda não o tenha feito
Etapa 2: Pré-requisitos
O coletor usará o componente receptor dockerstats (versão mínima recomendada v0.81.0) e requer acesso ao daemon docker por meio de um endpoint:
- Por padrão, o endpoint
unix:///var/run/docker.sock
é usado. Portanto, o coletor deve ser executado com um usuário capaz de ler o docker socket.
Etapa 3: instalar o coletor OpenTelemetry
Baixe e instale o coletor OpenTelemetry seguindo a documentação OpenTelemetry .
Você precisará instalar o OpenTelemetry coletor Contrib Distro ou outra distribuição incluindo, pelo menos, os seguintes componentes:
Etapa 4: configurar o coletor OpenTelemetry
Atualize ou crie um novo arquivo chamado config.yaml
no exemplo abaixo.
Substitua NEW_RELIC_LICENSE_KEY
no arquivo pelos seus próprios valores. Para obter mais informações, consulte a chave de licença do 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 mais opções de configuração, revise:
Etapa 4: execute o coletor
Execute o coletor OpenTelemetry (a forma de executá-lo pode variar dependendo do método de instalação escolhido). Exemplo:
/usr/bin/otelcol-contrib --config ./config.yaml
Etapa 5: Encontre e use seus dados
Navegue pelos dados do contêiner na interface de infraestrutura
Usando a configuração recomendada para o receptor docker , você pode explorar o contêiner em execução em um host na nova experiência de interface de infraestrutura (nova interface de host).
Aproveite as nossas experiências impulsionadas pela entidade
Os dados de telemetria do contêiner provenientes do receptor docker Open telemetria geram a entidade do contêiner. Entidades são qualquer coisa que reporte dados à New Relic e seja identificada por um ID de entidade exclusivo.
Sua entidade monitor são os drivers de recurso como entidade Explorer, workload e Lookout. Consulte este documento para obter mais informações sobre como se beneficiar dessas experiências.
Explore e consulte seus dados
Você pode usar o explorador métrico para verificar a métrica que está sendo ingerida. Todas as métricas relatadas pelo receptor docker stats começam com o prefixo "container."
.
As seguintes consultas de NRQL mostram exemplos para ajudá-lo a consultar a métrica que você recebeu:
Listagem do número de atualizações métricas ingeridas por nome métrico:
SELECT count(*) FROM Metric WHERE metricName LIKE 'container.%' and instrumentation.provider='opentelemetry' facet metricName LIMIT maxConsultando uma métrica específica facetada por host:
SELECT average(container.cpu.percent) FROM Metric WHERE instrumentation.provider='opentelemetry' FACET host.name TIMESERIESListagem de dimensões disponíveis para uma determinada métrica:
SELECT keyset() FROM Metric WHERE metricName = 'container.cpu.percent'
Instalar o início rápido
Aproveite o docker dashboard incluído no docker Open telemetria início rápido para facilmente monitor sua docker infraestrutura graças aos gráficos e filtros predefinidos.
Dados métricos
Para obter uma lista de todas as métricas suportadas, consulte a referência de métricas do receptor dockerstats.