• EnglishEspañol日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

Criar um problema

Relatar rastreamento por meio da API trace (formato New Relic)

Se quiser criar sua própria implementação de rastreamento, você pode usar nossa API Trace. Este documento explica como enviar trace em nosso formato geral, também conhecido como formato newrelic . (Para enviar dados no formato Zipkin, consulte Zipkin.)

Iniciar

Usar nossa API trace é tão simples quanto:

  • Enviando dados trace no formato esperado (neste caso, nosso formato newrelic).
  • Enviando esses dados para o endpoint apropriado.

Antes de usar a API trace , você deve decidir se deseja usar o Infinite Tracing. Para saber mais sobre isso, consulte Introdução às considerações sobre rastreamento e amostragem infinita .

Para começar a usar a API trace , siga um destes caminhos:

Enviar carga útil trace de amostra (rastreamento não infinito)

Veja a seguir como enviar uma carga padrão (nãoInfinite Tracing) para a API Trace usando nosso formato newrelic .

  1. Obtenha um para a conta para a qual você deseja relatar dados.

  2. Insira essa chave no JSON a seguir e envie o JSON para nosso endpoint. Observação: se você tiver uma conta EU New Relic, use o endpoint EU .

    bash
    $
    curl -i -H 'Content-Type: application/json' \
    >
    -H 'Api-Key: YOUR_LICENSE_KEY' \
    >
    -H 'Data-Format: newrelic' \
    >
    -H 'Data-Format-Version: 1' \
    >
    -X POST \
    >
    -d '[
    $
    {
    $
    "common": {
    $
    "attributes": {
    $
    "service.name": "Test Service A",
    $
    "host": "host123.example.com"
    $
    }
    $
    },
    $
    "spans": [
    $
    {
    $
    "trace.id": "123456",
    $
    "id": "ABC",
    $
    "attributes": {
    $
    "duration.ms": 12.53,
    $
    "name": "/home"
    $
    }
    $
    },
    $
    {
    $
    "trace.id": "123456",
    $
    "id": "DEF",
    $
    "attributes": {
    $
    "error.message": "Invalid credentials",
    $
    "service.name": "Test Service A",
    $
    "host": "host456.example.com",
    $
    "duration.ms": 2.97,
    $
    "name": "/auth",
    $
    "parent.id": "ABC"
    $
    }
    $
    }
    $
    ]
    $
    }
    $
    ]' 'https://trace-api.newrelic.com/trace/v1'

    Dica

    Se você estiver enviando mais de um POST, altere trace.id para um valor exclusivo. Enviar a mesma carga útil ou intervalo id diversas vezes para o mesmo trace.id pode resultar em rastreio fragmentado na interface.

  3. Se o seu teste retornou HTTP/1.1 202 Accepted, acesse nossa interface para ver uma consulta dos seus dados de teste usando o atributo span service.name = Test Service A.

    Dica

    Trace pode levar até um minuto para ser processado pelo observador trace e pela API trace .

Carga de API trace (formato New Relic)

A carga útil JSON da API trace é uma matriz de objetos, com cada objeto representando um único trace. Cada um desses objetos requer uma chave spans e também pode incluir uma chave common . spans (obrigatório) contém uma matriz de objetos, com cada objeto representando um intervalo. common (opcional) compartilha informações em vários períodos.

O objeto Span na matriz spans

campo

tipo

descrição

obrigatório

padrão

id

corda

Identificador exclusivo para este período.

sim

N/A

trace.id

corda

Identificador exclusivo compartilhado por todos os spans em um único trace.

sim

N/A

timestamp

longo

Tempo de início do intervalo em milissegundos desde a época do Unix.

não

Hora atual no fuso horário UTC

attributes

objeto

Qualquer conjunto de pares de valores principais que adicionam mais detalhes sobre um intervalo. É altamente recomendável adicionar duration.ms, name e parent.id .

não

N/A

Solicitações sem as chaves exigidas acima serão rejeitadas e um NrIntegrationError será gerado.

O objeto common (opcional)

campo

tipo

descrição

obrigatório

padrão

attributes

objeto

Qualquer conjunto de pares de valores principais que adicionam detalhes comuns sobre spans na carga útil. Se um intervalo contiver um atributo definido em common, a chave no objeto de atributos do intervalo terá precedência. É altamente recomendável adicionar duration.ms, name e parent.id .

não

N/A

Embora não sejam obrigatórios, esses atributos devem ser incluídos para obter a melhor experiência com seus dados no objeto attributes de cada período.

atributo

padrão

descrição

duration.ms

float

nenhum

Duração deste intervalo em milissegundos.

name

corda

nenhum

O nome deste intervalo.

parent.id

corda

nenhum

O ID do chamador deste intervalo. O valor será null se este for o intervalo raiz. o rastreamento sem um intervalo raiz não será exibido.

service.name

corda

nenhum

O nome da entidade que criou este intervalo. Se nenhum valor ou uma string vazia for fornecida, o intervalo será atribuído a uma entidade "UNKNOWN" e será exibido como tal na interface. Este valor deve ser fornecido para obter uma experiência completa na interface.

Atributo reservado

Esses atributos estão atualmente reservados para uso interno da New Relic. Embora não estejam explicitamente bloqueados, recomendamos não usá-los.

atributo

padrão

descrição

entity.name

corda

service.name

Isso é derivado do atributo service.name .

entity.type

corda

service

O tipo de entidade é considerado um serviço.

entity.guid

corda

Nenhum

O entity.guid é um valor derivado que identifica exclusivamente a entidade no backend do New Relic.

Outro atributo

Você pode adicionar qualquer atributo arbitrário desejado no objeto attributes em common ou em cada objeto span, com exceção do atributo restrito. Por exemplo, talvez você queira adicionar um atributo como customer.id ou user.id para ajudá-lo a analisar seus dados trace .

Requisitos e diretrizes para trace JSON usando o formato newrelic:

  • Cada carga JSON é uma matriz de objetos.
  • Cada objeto deve conter uma chave spans obrigatória.
  • Cada objeto pode conter uma chave common opcional. Use isto se quiser compartilhar informações entre vários spans em um objeto.
  • Quaisquer chaves em um intervalo têm precedência sobre a mesma chave no bloco common .
  • O valor de uma chave spans é uma lista de objetos span .
  • Determinados atributo são obrigatórios e devem ser incluídos no bloco opcional common ou em cada período.
  • Recomendado e atributo personalizado podem ser incluídos opcionalmente em uma lista de pares de valores principais sob uma chave denominada attributes, no bloco opcional common e/ou em cada intervalo.

No exemplo a seguir POST, existem dois spans, ambos possuem o trace.id 12345 e o atributo personalizado host: host123.example.com. O primeiro intervalo não tem parent.id, então essa é a raiz do trace; o parent.id do segundo intervalo aponta para o ID do primeiro.

[
{
"common": {
"attributes": {
"host": "host123.example.com"
}
},
"spans": [
{
"trace.id": "12345",
"id": "abc",
"timestamp": 1603336834823,
"attributes": {
"user.email": "bob@newr.com",
"service.name": "my-service",
"duration.ms": 750,
"name": "my-span"
}
},
{
"trace.id": "12345",
"id": "def",
"timestamp": 1603336834899,
"attributes": {
"parent.id": "abc",
"service.name": "second-service",
"duration.ms": 750,
"name": "second-span"
}
}
]
}
]

Para saber como controlar como os spans aparecem no New Relic (por exemplo, adicionando erros ou definindo um span como um span de armazenamento de dados), consulte Decorar spans.

Explore mais sobre distributed tracing:

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.