Visualização
Ainda estamos trabalhando nesse recurso, mas adoraríamos que você experimentasse!
Atualmente, esse recurso é fornecido como parte de uma prévia, de acordo com nossas políticas de pré-lançamento.
Saiba como verificar se o ATP está funcionando corretamente e solucionar problemas comuns de configuração em ambientes de host e Kubernetes.
Verifique se o ATP está funcionando
Após instalar o ATP, verifique se o New Relic está recebendo dados de processo executando estas consultas no criador de consultas:
Para visualizar métricas recentes de processos:
FROM Metric SELECT *WHERE metricName LIKE 'process.%'LIMIT 100Para contar tipos únicos de métricas de processo:
FROM Metric SELECT uniqueCount(metricName)WHERE metricName LIKE 'process.%'
Para visualizar métricas recentes de processo do seu cluster:
FROM Metric SELECT *WHERE k8s.cluster.name='your-cluster-name'AND metricName LIKE 'process.%'LIMIT 100Para contar tipos únicos de métricas de processo para o seu cluster:
FROM Metric SELECT uniqueCount(metricName)WHERE k8s.cluster.name='your-cluster-name'AND metricName LIKE 'process.%'
Solucionar problemas de ATP
Problema: Todas as métricas de processo estão sendo enviadas, não filtradas.
- Verifique se o ATP está na lista de processadores do pipeline.
- Verifique se
metric_thresholdsestão configurados. - Garanta que as métricas de processo estejam sendo coletadas.
- Verifique os logs do coletor em busca de erros de inicialização do ATP.
Verifique se o ATP está habilitado:
bash$kubectl get configmap -n newrelic nr-k8s-otel-collector-daemonset-config -o yaml | grep adaptivetelemetryVerifique se o ATP está no pipeline: Procure por
adaptivetelemetryno pipelinemetrics/nrVerifique se você está usando a imagem do coletor correta:
bash$kubectl get daemonset -n newrelic nr-k8s-otel-collector-daemonset -o yaml | grep "image:"Esperado:
newrelic/nrdot-collector:11.0(ou posterior)\ NÃO:newrelic/nrdot-collector-k8s:1.11.0Verifique se
enable_atpestá definido comotrueno seuvalues.yamlou ConfigMap
Problema: A memória do Coletor aumenta ao longo do tempo
Solução: Ajuste as configurações de retenção:
processors: adaptivetelemetry: retention_minutes: 15 # Reduce from default 30Problema: Processos esperados estão ausentes da telemetria
Solução: Deve-se usar o caminho completo para adicionar processos à lista de inclusão. Entradas sem separadores de caminho não corresponderão a nenhum processo. Por exemplo:
processors: adaptivetelemetry: include_process_list: - "/usr/bin/myapp" # Always captured regardless of thresholdsProblema: Anteriormente, os dados de ATP eram exibidos, mas agora não são. Isso pode ser devido ao atingimento dos limites de cardinalidade. O ATP filtra muitos processos para reduzir o volume de telemetria, mas, se você tiver um número muito alto de processos únicos, ainda poderá atingir os limites. Você pode monitorar o uso de cardinalidade para acompanhar isso.
Solução:
Para solucionar problemas, verifique se você atingiu os limites de cardinalidade acessando a página de gerenciamento de cardinalidade no New Relic. Se você excedeu os limites, você pode aumentar seu limite de cardinalidade.
Dica
Se este for um problema recorrente, você também pode aumentar o metric_thresholds do ATP para filtrar mais processos e reduzir o volume de métricas recebidas. Isso ajudará a evitar atingir limites de cardinalidade no futuro. Por exemplo, você pode aumentar os limites de utilização de CPU e memória para capturar apenas processos com uso mais intensivo de recursos:
processors: adaptivetelemetry: metric_thresholds: process.cpu.utilization: 0.10 # Increase from 0.05 to 0.10 (10% CPU) process.memory.utilization: 0.10 # Filter out more processesProblema: os logs do ATP mostram erros ou avisos relacionados a armazenamento sobre a impossibilidade de criar diretórios de armazenamento.
Solução:
O ATP seleciona e cria automaticamente diretórios de armazenamento com base no seu método de instalação. Se o armazenamento falhar, verifique o seguinte:
Para instalações do systemd: certifique-se de que o serviço esteja em execução como o usuário
nrdot-collectore que o arquivo de serviço do systemd inclua a diretivaStateDirectory:bash$sudo systemctl cat nrdot-collector.service | grep StateDirectoryResultado esperado:
StateDirectory=nrdot-collectorPara instalações manuais de binários: verifique se seu usuário tem permissões de gravação em
~/.local/state/:bash$mkdir -p ~/.local/state/nrdot-collector$touch ~/.local/state/nrdot-collector/test && rm ~/.local/state/nrdot-collector/testVerifique os logs do coletor em busca de mensagens relacionadas a armazenamento:
bash$sudo journalctl -u nrdot-collector | grep -i storageImportante
Se o ATP não puder criar ou acessar o armazenamento, ele desabilita automaticamente a persistência e continua operando apenas com o estado em memória. O recurso de retenção do ATP continua funcionando normalmente durante o tempo de execução do coletor, mas o estado de rastreamento será perdido nas reinicializações do coletor, pois não é salvo em disco.
Requisitos de configuração
O ATP gerencia automaticamente os caminhos de armazenamento com base no seu método de instalação:
Para instalações de serviço systemd (pacotes DEB/RPM):
O armazenamento é configurado automaticamente em
/var/lib/nrdot-collector/O serviço systemd usa
StateDirectorypara criar e gerenciar o diretórioNenhuma configuração manual necessária
Para instalações manuais de binários:
O armazenamento usa
~/.local/state/nrdot-collector/para o usuário regularNão são necessários privilégios de root para armazenamento
O diretório é automaticamente criado se for gravável.
Dica
Se o armazenamento não puder ser criado (por exemplo, devido a problemas de permissão), o ATP desabilita automaticamente a persistência e continua operando apenas com o estado em memória. O recurso de retenção funciona normalmente durante o tempo de execução, mas o estado de rastreamento é perdido nas reinicializações do coletor. Verifique os logs do coletor se precisar verificar o status do armazenamento.
Para habilitar a coleta de dados de disk.io pelo receptor hostmetrics do OpenTelemetry, você precisa de privilégios elevados porque os dados de E/S armazenados em /proc/[PID]/io exigem acesso de usuário root. Isso não é um requisito do ATP, o ATP processa apenas dados que já foram coletados pelo OpenTelemetry.
Adicione o seguinte contexto de segurança ao seu Helm chart:
securityContext: allowPrivilegeEscalation: true privileged: true readOnlyRootFilesystem: false runAsNonRoot: false runAsUser: 0