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 |
|
Capture a duração de um método que o New Relic não traceautomaticamente |
|
Defina o nome do atual | |
Inicie o cronômetro para o tempo de resposta do | |
Adicione atributo personalizado a | |
Adiciona rastreamento de usuário a | |
Impedir que um | |
Exclua um |
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 | |
Vincule o | |
Expire um | |
Pare de cronometrar um | |
Pare de cronometrar um |
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. | Para uma implementação fornecida de 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 | 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 |
|
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. CuidadoAPI 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. CuidadoAPI obsoleta a partir do agente 6.4.0 |
Carga usada para conectar serviços. A chamada |
CuidadoAPI obsoleta a partir do agente 6.4.0 |
Carga usada para conectar serviços. A chamada |
CuidadoAPI 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 |
Visualize ou altere o nome da métrica ou um nome de métrica agregada de um (Um nome de métrica agregar, como | Consulte também as informações neste documento sobre como usar |
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 |
Consulte também as informações neste documento sobre como usar |
Habilite e adicione rastreamento multiaplicativo ao se comunicar com um serviço HTTP ou JMS externo instrumentado pela New Relic |
Consulte também as informações neste documento sobre como usar |
Adicionar tempo para um servidor de aplicativo ou despachante que não é suportado automaticamente |
Consulte também as informações neste documento sobre como usar |
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 | |
Obtenha um | |
Comece e obtenha uma referência para um | |
Obtenha uma referência ao método que está sendo rastreado atualmente | |
Obtenha uma referência ao agente | |
Obtenha uma referência para a configuração | |
Obtenha uma referência de um agregador de métrica personalizada | |
Obtenha uma referência a |
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 | Quando dentro de uma transação, a última chamada para |
Agrupe erros com sua própria impressão digital personalizada, implemente a interface |
|
Defina sua própria impressão digital de erro por meio de uma função de retorno de chamada. Para registrar um | |
Adicione o tempo de carregamento da página do browser para | |
Criar e acumular métrica personalizada |
|
Gravar evento personalizado |
Ou use Consulte também as informações neste documento sobre como usar |
Forneça informações gerais da conta do provedor de nuvem ao agente |
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 AWS DynamoDB e Kinesis são serviços que exigem esse valor para preencher o atributo Chamar esse método substitui a respectiva configuração de nuvem. A chamada mostrada acima substitui |
Forneça informações específicas da conta do provedor de nuvem do cliente SDK ao agente |
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:
- Chamadas externas, trace multiaplicativo, mensagens, datastores e framework web
- Rastreamento multiaplicativo e chamadas externas de armazenamento de dados
- Aplicativos que usam instrumentação personalizada com anotação
- API de instrumentação framework personalizada
- Prevenindo instrumentação indesejada
- Inserindo atributo personalizado
- Inserindo evento personalizado
- Coleta métrica personalizada