Informações sobre os requisitos de dados da API Trace , incluindo:
- Especificações de dados e limites máximos
- Metadados obrigatórios (cabeçalhos, parâmetro de consulta)
- Detalhes de validação de resposta
Este documento se aplica à API trace em geral. Para regras relativas a formatos de dados específicos, consulte:
Ponto final
Todos os dados trace são enviados via HTTPS POST para uma API de endpoints de trace . Temos alguns endpoints, dependendo da sua configuração:
- Endpoints trace padrão da API:
https://trace-api.newrelic.com/trace/v1
- Data center da UE:
https://trace-api.eu.newrelic.com/trace/v1
(consulte outro endpoint da UE). - Rastreamento infinito: ao concluir a configuração do observador Trace, você obtém um valor YOUR_TRACE_OBSERVER_URL personalizado para usar como um endpoint. Se estiver usando uma integração que usa a API trace (por exemplo, o repórter Kamon), você deverá configurar essa integração com esse endpoint. Você também desejará ajustar a amostragem do seu serviço de rastreamento para nos enviar 100% dos spans.
- FedRAMP: Consulte endpoint do FedRAMP.
Formatos de dados
Atualmente, a API trace aceita dois tipos de formatos de dados:
zipkin
: para relatar dados de rastreamento do Zipkin. Os dados do Zipkin devem ser Zipkin JSON v2.newrelic
: para relatar todos os outros dados de rastreamento.
Atributo restrito
Os atributos da tabela abaixo estão restritos ao formato JSON newrelic
(no bloco attributes
) e ao formato JSON zipkin
(no bloco tags
). Any values with these keys will be omitted:
Atributo restrito | Descrição |
---|---|
corda | Identificador exclusivo da entidade que criou esse intervalo. Gerado de |
corda | Usado para compatibilidade retroativa com dados do agente . |
Os atributos da tabela abaixo são utilizados internamente para identificar entidade. Quaisquer valores enviados com essas chaves na seção atributo de um ponto de dados métricos podem causar comportamento indefinido, como falta de entidade na UI ou telemetria não associada à entidade esperada. Para mais informações consulte a síntese da entidade:
Atributo restrito | descrição |
---|---|
corda | Identificador exclusivo para a entidade associada a este período. |
corda | Nome legível de uma entidade, geralmente usado para identificar uma entidade na interface. |
corda | Usado para diferenciar diferentes tipos de entidade, como hosts, aplicativo, etc. |
Solicitar metadados (cabeçalhos e parâmetro de consulta)
A tabela a seguir mostra os metadados de solicitação necessários para todos os formatos de dados trace . Esses metadados podem ser enviados como cabeçalhos HTTP em uma solicitação de ingestão ou, em alguns casos, fornecidos como parâmetro de consulta, o que pode ser necessário para rastrear estruturas que não permitem modificação de cabeçalho.
Importante
Nota de segurança: Sugerimos o uso de cabeçalhos porque os parâmetros de consulta estão presentes na URL e podem ser registrados antes de serem criptografados e recebidos pela New Relic. Todos os dados enviados como parâmetro de consulta devem ser seguros para URL.
Cabeçalho | Parâmetro de consulta? | Detalhes |
---|---|---|
| Não | Required. Deve ser |
| Não | Required. O comprimento do corpo da solicitação em octetos (bytes de 8 bits), a menos que seja enviado com codificação em partes. Esse cabeçalho geralmente é definido por padrão pelo cliente HTTP subjacente que envia os dados e, na maioria dos casos, não deve exigir nenhum esforço adicional por parte do usuário final. |
| Sim (diferencia maiúsculas de minúsculas) | Required. A API trace requer um . Se for fornecido como cabeçalho e parâmetro de consulta, os valores deverão corresponder. |
| Não | Required if compressed payload. O valor deve ser |
| Sim | Required for Se presente, |
| Sim | Required for Se presente, Existem apenas dois pares possíveis para esses valores:
|
| Não | Optional - Reserved for future use. O valor deve ser um |
Validação de resposta
Uma resposta para o envio bem-sucedido de dados trace incluirá um requestId
. Por exemplo:
{ "requestId": "c1bb62fc-001a-b000-0000-016bb152e1bb" }
Existem duas maneiras de sinalizar sucesso/erros:
HTTP status code (síncrono). Erros de autenticação e solicitação serão sinalizados via código de status HTTP.
NrIntegrationError
evento (assincrono). Erros com a carga JSON ou outros erros semânticos são sinalizados de forma assíncrona por meio do eventoNrIntegrationError
que é armazenado na conta cujo está associado à solicitação. Para todos os erros deste tipo, o atributonewRelicFeature
seráDistributed Tracing
erequestId
será orequestId
da resposta endpoint .
Se você receber uma resposta 202
e não visualizar um evento NrIntegrationError
, seus dados deverão estar visíveis em nossa interfacedistributed tracing global em cerca de um minuto. Você deve conseguir encontrar o trace usando uma pesquisatrace padrão como:
traceId = TRACE_ID_SENT
Limites de dados
Para limites relacionados ao trace , consulte Como funciona distributed tracing .