Resolução de problemas O OpenTelemetry com New Relic pode ser apenas uma questão de garantir que você está seguindo as práticas recomendadas, mas às vezes pode ser necessário executar etapas adicionais para diagnosticar seus problemas. Aqui estão alguns exemplos de problemas específicos que você pode encontrar, juntamente com etapas e ferramentas para resolvê-los.
Os dados do OpenTelemetry enviados via OTLP não podem ser consultados
Problema
Você enviou métricas, log ou rastreamento do OpenTelemetry usando OTLP e não consegue visualizar os dados. Antes de se aprofundar, verifique o seguinte:
O endpoint OTLP configurado corresponde a um de nossos endpoints documentados, está formatado corretamente e inclui a porta padrão para OTLP/gRPC, 4317, ou a porta padrão para OTLP/HTTP, 4318. A porta 443 também é suportada para qualquer transporte. Observe o endpoint específico para conformidade com o FedRAMP, se aplicável.
Confirme se você está usando o endpoint correto com base na sua região. Por exemplo, se você estiver na Europa e configurar seu exportador para enviar dados para nosso endpoint nos EUA, os dados não serão exportados porque os endpoints são específicos da região.
O tráfego de saída não é restrito por um firewall. Nosso documento Redes explica domínios e blocos de rede que você pode precisar permitir explicitamente.
O cliente está configurado para usar TLS 1.2 ou superior e a solicitação inclui o cabeçalho
api-key
com uma New Relic válida.
As solicitações incluem carga protobuf válida e usam transporte gRPC ou HTTP, de preferência com compactação gzip habilitada. A solicitação de carga não deve ser maior que 1MB (10^6 bytes). Cargas protobuf codificadas em JSON também são suportadas.
A saída e o registro do cliente não indicam que códigos de resposta
4xx
ou5xx
estão sendo retornados.
Solução
Existem várias ferramentas que você pode usar para validar a entrega bem-sucedida de dados de telemetria à nossa plataforma. Um bom primeiro passo é verificar o hub de gerenciamento de dados para facetar a ingestão de dados e determinar quantos dados estão chegando de várias fontes. Você também pode usar métrica e evento ou criador de consulta para procurar dados facetados por instrumentation.provider
ou newrelic.source
atributo:
FROM Log, Metric, Span SELECT datapointcount() WHERE instrumentation.provider = 'opentelemetry' FACET instrumentation.provider, newrelic.source
Esta consulta deve informar se os dados estão chegando via OTLP. Se os dados esperados não estiverem presentes, tente esta consulta alternativa:
FROM Log, Metric, Span SELECT count(*) where newrelic.source LIKE 'api.%.otlp'
Você também pode verificar erros de integração consultando NrIntegrationError evento. Isso pode ajudá-lo a determinar se você tem problemas de configuração ou formato ou se atingiu os limites da nossa plataforma.
Importante
Os limites de ingestão para métrica, log e rastreamento via OTLP são iguais aos nossos outros limites de API de ingestão de dados.
Várias partes da interface do New Relic contam com a presença de atributos específicos para funcionar corretamente. Você pode usar o recurso do console NRQL em muitos lugares para verificar as cláusulas WHERE
ou FACET
da consulta para obter o atributo necessário. Você também pode editar essas cláusulas e executar novamente a consulta para determinar se há dados presentes com esses atributos ausentes. Exemplos de atributo obrigatório incluem service.name
e service.instance.id
. Para obter uma lista mais completa de exemplos, consulte recursos.
A correlação de log do OpenTelemetry não está funcionando
Problema
Você correlacionou seu log com seu serviço usando service.name
(log do OpenTelemetry: práticas recomendadas) para poder ver o log associado ao rastreamento, mas não vê nenhum log na interface do New Relic. Nesse cenário, os dados de log chegaram ao New Relic, mas não aparecem na interface distributed trace com os intervalos correspondentes.
Solução
Para correlacionar seu log com dados trace , o log precisa incluir o contexto do trace que está contido em trace_id
e span_id
. No entanto, para garantir que seu log apareça na interface do New Relic, você precisará configurar regras em seu pipeline log para converter trace_id
e span_id
em trace.id
e span.id
.
Falta entidade ou relacionamento do OpenTelemetry
Problema
Você enviou dados do OpenTelemetry de um componente de serviço ou infraestrutura e a entidade ou seus relacionamentos estão ausentes ou incorretos.
Solução
As entidades OpenTelemetry serão sintetizadas com base nas regras públicas descritas para o tipo de entidade EXT-SERVICE
. A regra padrão para correspondência depende da presença da dimensão service.name
que segue as convenções semânticas do OpenTelemetry.
Para definir o service.name
com o OpenTelemetry Java SDK, inclua-o no seu recurso:
var resource = Resource.getDefault() .merge(Resource.builder().put(SERVICE_NAME, serviceName).build());
Dependendo do SDK, você também pode definir service.name
declarando-o nas variáveis de ambiente OTEL_RESOURCE_ATTRIBUTES
ou OTEL_SERVICE_NAME
.
Para , você pode usar um modelo de log estruturado para injetar o service.name
. Veja logs contextualizados com Log4j2 para ver um exemplo.
Dica
Para obter mais exemplos de OpenTelemetry com New Relic, visite o repositório newrelic-OpenTelemetryexamples no GitHub.
Resolução de problemas do OpenTelemetry Collector
O melhor lugar para dicas de resolução de problemas e práticas de monitoramento do coletor são as diretrizes atualizadas na comunidade OpenTelemetry. Veja os links abaixo para documentos de resolução de problemas da comunidade.
Registro do coletor
Defina o nível de log na configuração service::telemetry::logs
. O nível padrão é INFO
. Os níveis suportados são: DEBUG
, INFO
, WARN
, ERROR
, DPANIC
, PANIC
, FATAL
.
Para dicas de resolução de problemas, consulte log resolução de problemas (GitHub).
Métrica de coletor
A consulta NRQL a seguir mostra todas as métricas disponíveis do próprio coletor no New Relic:
FROM Metric SELECT uniques(metricName) WHERE metricName like ‘otelcol_%’ LIMIT MAX
Para dicas de resolução de problemas, consulte:
Rastreamento do coletor
Para dicas de resolução de problemas, consulte zPages (Github).