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

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

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

Criar um problema

Guia para usar a API do agente Java

A API do agente Java da New Relic permite controlar, personalizar e estender a funcionalidade do agente Java. Esta API consiste em:

  • Métodos estáticos na classe com.newrelic.api.agent.NewRelic
  • Uma anotação @Trace para implementar instrumentação personalizada
  • Uma hierarquia de objetos de API que fornece funcionalidade adicional

Use esta API para configurar a instrumentação personalizada do seu aplicativo Java e coletar dados mais detalhados. Para obter informações detalhadas sobre esta API, consulte o Javadoc completo no GitHub.

Outra maneira de configurar a instrumentação personalizada é usar a instrumentação XML. A opção XML é mais simples e não requer modificação do código do seu aplicativo, mas não possui a funcionalidade completa da API do agente Java.

Importante

Para obter melhores resultados ao usar a API, certifique-se de ter a versão mais recente do agente Java. Várias API usadas nos exemplos requerem o agente Java 6.4.0 ou superior.

Para todas as API New Relic disponíveis, consulte Introdução à API.

Usar a API

Para acessar a API, baixe-a do maven central por meio de uma ferramenta de construção.

Aqui está um exemplo de gradle onde você pode substituir ${agent.version} pela versão do seu agente:

implementation 'com.newrelic.agent.java:newrelic-api:${agent.version}'

Você pode chamar a API mesmo sem o agente em execução, mas os métodos não funcionarão até que o agente carregue seu aplicativo.

Transação

Para usar o instrumento Transactions em sua aplicação, use a seguinte API.

Se você quiser...

Usa isto

Crie um Transaction quando o New Relic não criar um automaticamente

@Trace(dispatcher = true) no método que abrange o trabalho a ser relatado. Quando esta anotação é usada em um método dentro do contexto de uma transação existente, isso não iniciará uma nova transação, mas incluirá o método na transação existente.

Capture a duração de um método que o New Relic não traceautomaticamente

@Trace() no método que você deseja cronometrar.

Defina o nome do atual Transaction

NewRelic.setTransactionName(...)

Inicie o cronômetro para o tempo de resposta do Transaction atual e para fazer com que um Transaction criado seja relatado como uma transação Web , em vez de uma transação Other

NewRelic.setRequestAndReponse(...)

Adicione atributo personalizado a Transactions e TransactionEvents

NewRelic.addCustomParameter(...)

Adiciona rastreamento de usuário a Transactions definindo o atributo de agente enduser.id .

NewRelic.setUserId()

Impedir que um Transaction seja reportado à New Relic

NewRelic.ignoreTransaction()

Exclua um Transaction ao calcular a pontuação Apdex do seu aplicativo

NewRelic.ignoreApdex()

Veja o registro relacionado

Para ver o log diretamente no contexto dos erros e rastreamento do seu aplicativo, use esta chamada de API para anotar seu log:

Para obter mais informações sobre como correlacionar dados log com outros dados de telemetria, consulte nossa documentação de logs contextualizados .

Trabalho assíncrono de instrumento

Para obter informações detalhadas, consulte API do agente Java para aplicativo assíncrono.

Se você quiser...

Usa isto

Trace um método assíncrono se ele estiver vinculado a um Transaction existente...

@Trace(async = true)

Vincule o Transaction associado ao Token no tópico atual...

Token.link() ou Token.linkAndExpire()

Expire um Token associado ao Transaction atual ...

Token.expire()

Pare de cronometrar um Segment e faça com que ele seja relatado como parte de seu pai Transaction

Segment.end()

Pare de cronometrar um Segment e não faça com que ele seja relatado como parte de seu pai Transaction

Segment.ignore()

Uso da API distributed tracing

Essas API exigem que distributed tracing esteja ativado. Consulte Configuração do agente Java para todas as opções de configuração distributed tracing .

Distributed tracing permite ver o caminho que uma solicitação percorre ao percorrer sistemas distribuídos. Para obter instruções gerais sobre como usar as chamadas abaixo para implementar distributed tracing, consulte Usar distributed tracing API. Para ver essas APIs em ação, consulte Usando o agente Java distribuindo API de rastreamento com Kafka.

Importante

Com a versão 6.4.0 do agente ,distributed tracing API foram introduzidas as seguintes , com exceção de addCustomAttribute(), que foi introduzida na 6.1.0. É altamente recomendável usar essas API em vez das obsoletas.

Se você quiser...

Usa isto

Saiba mais sobre os cabeçalhos específicos do tipo de uma mensagem de entrada ou de saída.

Headers

Para uma implementação fornecida de Headers use ConcurrentHashMapHeaders.

Veja um exemplo de implementação de cabeçalhos W3C Trace Context no uso da API DT com Kafka.

Crie e insira cabeçalhos distributed tracing em uma estrutura de dados Headers. Esta API inserirá newrelic W3C Trace Context cabeçalhos (traceparent etracestate), a menos que o agente esteja explicitamente configurado para excluir newrelic cabeçalhos.

Para obter mais informações sobre como obter referências à transação atual e outras classes de API, consulte Obter referências.

Aceite os cabeçalhos distributed tracing enviados do serviço chamador e vincule esses serviços em um distributed trace.

Para obter mais informações sobre como obter referências à transação atual e outras classes de API, consulte Obter referências.

Entenda uma classe de utilitário que fornece constantes enum para definir o tipo de transporte ao aceitar cabeçalhos distributed tracing .

Adicione atributo personalizado a SpanEvents no rastreamento distribuído

NewRelic.getAgent().getTracedMethod().addCustomAttribute(...)

Cuidado

Com a versão 6.4.0 do agente , a seguinte distributed tracing API foi descontinuada e substituída pela API na tabela acima. É altamente recomendável atualizar o agente e usar a nova API em vez das obsoletas.

Se você quiser...

Usa isto

Crie uma carga a ser enviada para um serviço chamado.

Para obter mais informações sobre como obter referências à transação atual e outras classes de API, consulte Obter referências.

Cuidado

API obsoleta a partir do agente 6.4.0

Aceite uma carga enviada do primeiro serviço; isso vinculará esses serviços em um trace.

Para obter mais informações sobre como obter referências à transação atual e outras classes de API, consulte Obter referências.

Cuidado

API obsoleta a partir do agente 6.4.0

Carga usada para conectar serviços. A chamada text() retorna uma representação de string JSON da carga.

DistributedTracePayload.text()

Cuidado

API obsoleta a partir do agente 6.4.0

Carga usada para conectar serviços. A chamada httpSafe() retorna uma representação de string JSON codificada em base64 da carga.

DistributedTracePayload.httpSafe()

Cuidado

API obsoleta a partir do agente 6.4.0

Uso da API de rastreamento multiaplicativo (CAT)

Importante

O rastreamento multiaplicativo foi descontinuado a partir da versão 7.4.0 do agente e será removido em uma versão futura do agente.

Em vez de usar rastreamento multiaplicativo, recomendamos nosso recurso distributed tracing . distributed tracing é uma melhoria no recurso de rastreamento multiaplicativo e é recomendado para sistemas distribuídos grandes.

Para rastrear chamadas externas e adicionar rastreamento multiaplicativo, use a seguinte API:

Se você quiser...

Usa isto

Trace através de um canal de transporte personalizado que o New Relic não suporta por padrão, como um transporte RPC proprietário

Consulte também as informações neste documento sobre como usar Transaction para obter referências às classes da API New Relic.

Visualize ou altere o nome da métrica ou um nome de métrica agregada de um TracedMethod

(Um nome de métrica agregar, como OtherTransaction/all, não tem como escopo uma transação específica. Representa todas as transações anteriores.)

Consulte também as informações neste documento sobre como usar TracedMethod para obter referências às classes da API New Relic.

Relatar uma chamada para um serviço HTTP externo, servidor de banco de dados, fila de mensagens ou outro recurso externo que está sendo rastreado usando a anotação@Trace da API do agente Java

TracedMethod.reportAsExternal(...) passando argumentos construídos usando o construtor ExternalParameters .

Consulte também as informações neste documento sobre como usar TracedMethod para obter referências às classes da API New Relic.

Habilite e adicione rastreamento multiaplicativo ao se comunicar com um serviço HTTP ou JMS externo instrumentado pela New Relic

TracedMethod.addOutboundRequestHeaders(...) junto com TracedMethod.reportAsExternal(...)

Consulte também as informações neste documento sobre como usar TracedMethod para obter referências às classes da API New Relic.

Adicionar tempo para um servidor de aplicativo ou despachante que não é suportado automaticamente

Transaction.setRequest(...), Transaction.setResponse(...)ou NewRelic.setRequestAndResponse(...) e Transaction.markResponseSent()

Consulte também as informações neste documento sobre como usar Transaction para obter referências às classes da API New Relic.

Obtenha referências às classes da API New Relic

Outras tarefas requerem o objeto New Relic Agent . O objeto Agent expõe vários objetos que oferecem a seguinte funcionalidade:

Se você quiser...

Usa isto

Obtenha uma referência para o atual Transaction

NewRelic.getAgent().getTransaction()

Obtenha um Token para vincular trabalho assíncrono

Comece e obtenha uma referência para um Segment

Obtenha uma referência ao método que está sendo rastreado atualmente

NewRelic.getAgent().getTracedMethod()

Obtenha uma referência ao agente Agent

NewRelic.getAgent().getLogger()

Obtenha uma referência para a configuração Agent

NewRelic.getAgent().getConfig()

Obtenha uma referência de um agregador de métrica personalizada

NewRelic.getAgent().getAggregator()

Obtenha uma referência a Insights (nosso nome original para o recurso que regia o evento personalizado) para registrar o evento personalizado

NewRelic.getAgent().getInsights()

Funcionalidade adicional da API

A API a seguir fornece funcionalidades adicionais, como configuração de informações do servidor de aplicativos, relatório de erros, adição de informações de tempo de carregamento da página , registro de métricas personalizadas e envio de eventos personalizados.

Se você quiser...

Usa isto

Definir explicitamente informações de porta, nome e versão para um servidor de aplicativo ou despachante e o nome da instância para uma JVM

Relatar um erro que o New Relic não reporta automaticamente

NewRelic.noticeError(...)

Quando dentro de uma transação, a última chamada para noticeError vence. Apenas 1 erro será relatado por transação.

Agrupe erros com sua própria impressão digital personalizada, implemente a interface ErrorGroupCallback e use-a para gerar chaves de agrupamento para erros que serão enviados para a New Relic. A impressão digital será usada para agrupar mensagens de erro na interface Errors Inbox .

public interface ErrorGroupCallback { String generateGroupingString(ErrorData errorData); }

Defina sua própria impressão digital de erro por meio de uma função de retorno de chamada. Para registrar um ErrorGroupCallback usado para gerar uma chave de agrupamento para o erro fornecido.

NewRelic.setErrorGroupCallback(errorGroupCallback)

Adicione o tempo de carregamento da página do browser para Transactions que o New Relic não adiciona ao cabeçalho automaticamente

Criar e acumular métrica personalizada

NewRelic.recordMetric(...), .recordResponseTimeMetric(...), ou .incrementCounter(...)

Gravar evento personalizado

Insights.recordCustomEvent(...)

Ou use NewRelic.addCustomParameter(...) para adicionar atributo personalizado ao tipo TransactionEvent definido pela New Relic.

Consulte também as informações neste documento sobre como usar Insights para obter referências às classes da API New Relic.

Forneça informações gerais da conta do provedor de nuvem ao agente

NewRelic.getAgent().getCloud().setAccountInfo(CloudAccountInfo.AWS_ACCOUNT_ID, "...");

Com esse método, você pode fornecer o tipo de informação da conta e seu valor. O agente usa essas informações para preencher o atributo cloud.resource_id nos spans selecionados de serviços na nuvem.

AWS DynamoDB e Kinesis são serviços que exigem esse valor para preencher o atributo cloud.resource_id . Da mesma forma, o AWS Lambda exige esse valor quando o ID da conta não faz parte do nome da função.

Chamar esse método substitui a respectiva configuração de nuvem. A chamada mostrada acima substitui cloud.aws.account_id.

Forneça informações específicas da conta do provedor de nuvem do cliente SDK ao agente

NewRelic.getAgent().getCloud().setAccountInfo(sdkClient, CloudAccountInfo.AWS_ACCOUNT_ID, "...");

Esta chamada fornece as mesmas informações que o método anterior, mas é específica para o cliente SDK fornecido. Quando o cliente SDK especificado for usado, esses dados serão usados em vez dos gerais.

Exemplos adicionais de uso de API

Para obter exemplos de código detalhados sobre como usar a API, consulte a documentação da New Relic sobre instrumentação personalizada para:

Copyright © 2024 New Relic Inc.

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