O agente Java é uma biblioteca completa que coleta automaticamente dados de muitos servidores, estruturas, bibliotecas e datastores populares (para obter uma lista completa, consulte Compatibilidade e requisitos). Ele também possui um conjunto significativo de recursos. No entanto, sempre há solicitações adicionais de funcionalidade e instrumentação da nova biblioteca. O agente Java fornece extension modules para essa finalidade.
Os módulos de extensão se enquadram em três categorias gerais:
módulos de extensão de recurso: Código que adiciona novo comportamento ao agente, independente de qualquer biblioteca específica.
Se a sua biblioteca não estiver coberta pela instrumentação automática ou por um módulo de instrumentação, você ainda poderá coletar dados com instrumentação personalizada.
Dica
Se você tiver comentários, dúvidas ou problemas com esta instrumentação, crie uma postagem no Fórum de suporte da New Relic e tag sua postagem com java_incubator.
Faça download do arquivo .jar apropriado nas listas de módulos abaixo.
Localize o diretório que contém os arquivos newrelic.jar e newrelic.yml . Nesse diretório, crie um subdiretório chamado extensions (se ainda não existir um).
Copie o módulo de extensão .jar que você baixou no diretório extensions .
Para módulos de extensão de recurso, atualize seu newrelic.yml com configuração específica do recurso.
Reinicie seu servidor.
Envie algum tráfego para o servidor ou host que irá exercitar o recurso ou instrumentação.
Dica
Os módulos de extensão do agente Java estão sujeitos às licenças do agente Java da New Relic, que estão incluídas no arquivo LICENSE de cada módulo jar.
Módulos de extensão de recurso
Módulos de extensão são bibliotecas adicionais que adicionam funcionalidades comumente solicitadas.
A extensão Class histograma executa o jmap periodicamente e gera dados ClassHistogramRowEvent e ClassHistogramStatsEvent que você pode consultar e traçar. Consultar esses dados pode ser útil quando a memória de resolução de problemas vaza, pois você pode ver os valores ao longo do tempo.
Você configura a extensão Class histograma da mesma maneira que configura o agente Java: usando variáveis de ambiente, propriedades do sistema ou newrelic.yml. Aqui estão as propriedades disponíveis, com padrões:
extensions:
class_histogram:
enabled:true# true is the default if the extension is present
classes_per_histogram:50# 50 is the default, and memory leak issues are usually in the highest 50 classes by bytes
jmap_path: /your/jdk/bin # The folder where the jmap binary lives. The default is $JAVA_HOME/bin.
delay_between_calls_seconds:60# Length of the delay between executions to avoid frequent pauses
Módulos de instrumentação de incubadora
Os módulos incubadores são instrumentação experimental, que poderemos incorporar à instrumentação automática do agente no futuro.
Estes são os módulos de incubadora que estão disponíveis atualmente:
Este módulo de instrumentação integra-se ao MetricRegistry e inicia a amostragem da métrica registrada a cada minuto. As métricas relatadas são prefixadas com isto:
Este módulo de instrumentação integra-se ao MetricRegistry e inicia a amostragem da métrica registrada a cada minuto. As métricas relatadas são prefixadas com isto:
Este módulo de instrumentação faz amostras de pools de conexões de banco de dados HikariCP e relata contagens de ocupados e ociosos em métricas que começam com isto:
Este módulo incubador foi descontinuado. Foi adicionado como um módulo de instrumentação no agente.
Este módulo de instrumentação faz amostras de pools de conexões de banco de dados HikariCP e relata contagens de ocupados e ociosos em métricas que começam com isto:
Este módulo de instrumentação adiciona suporte para vinculação assíncrona das primitivas de execução do Ratpack. Ele também monitora a execução do manipulador. Você deve nomear a transação manualmente usando a API do agente Java.
Esta instrumentação captura solicitações e respostas do cliente HTTP do Ratpack.
Módulos de instrumentação arquivados
Módulos arquivados são instrumentações para biblioteca que não são mais mantidas pela empresa ou autor original. Como a biblioteca de destino não está sendo atualizada, nosso suporte para módulos arquivados possui datas de término designadas.
Estes são os módulos arquivados que estão disponíveis atualmente:
Este módulo fornece instrumentação de link entre atores que enviam e recebem mensagens. Ele também rastreia mensagens transmitidas ou encaminhadas aos atores. Para evitar o excesso de instrumentação, esta instrumentação não inicia a transação. Se desejar que uma determinada chamada de ator marque o início de uma transação, use a anotação @Trace(dispatcher=true) ou alguma outra forma de instrumentação personalizada.
Este módulo fornece instrumentação de link entre atores que enviam e recebem mensagens. Ele também rastreia mensagens transmitidas ou encaminhadas aos atores. Para evitar o excesso de instrumentação, esta instrumentação não inicia a transação. Se desejar que uma determinada chamada de ator marque o início de uma transação, use a anotação @Trace(dispatcher=true) ou alguma outra forma de instrumentação personalizada.
Este módulo cria transação a partir de chamadas HTTP Akka. Também instrumento transferências entre atores do Akka e chamadas do Akka para outros bancos de dados e serviços.
Para sistemas de chamada, esta instrumentação coleta trace multiaplicativo. Se você estiver usando uma versão compatível do Akka, poderá visualizar a atividade de seus aplicativos HTTP Akka desde a transação até os sistemas do ator.
Este módulo cria transação a partir de chamadas HTTP Akka. Também instrumento transferências entre atores do Akka e chamadas do Akka para outros bancos de dados e serviços.
Para sistemas de chamada, esta instrumentação coleta trace multiaplicativo. Se você estiver usando uma versão compatível do Akka, poderá visualizar a atividade de seus aplicativos HTTP Akka desde a transação até os sistemas do ator.
Este módulo cria transação a partir de chamadas HTTP Akka. Também instrumento transferências entre atores do Akka e chamadas do Akka para outros bancos de dados e serviços.
Para sistemas de chamada, esta instrumentação coleta trace multiaplicativo. Você pode usar essa instrumentação junto com nosso suporte lançado anteriormente para Akka, para visualizar a atividade de seus aplicativos HTTP Akka, desde a transação até seus sistemas de atores.
Este módulo instrumento banco de dados chama servidores Solr, e coleta informações detalhadas sobre o próprio servidor Solr. Também fornece o servidor de banco de dados e o nome do banco de dados para a consulta exibida em trace da transação e consulta lenta trace.
Este módulo instrumento banco de dados chama servidores Solr, e coleta informações detalhadas sobre o próprio servidor Solr. Também fornece o servidor de banco de dados e o nome do banco de dados para a consulta exibida em trace da transação e consulta lenta trace.
Este módulo instrumento banco de dados chama servidores Solr, e coleta informações detalhadas sobre o próprio servidor Solr. Também fornece o servidor de banco de dados e o nome do banco de dados para a consulta exibida em trace da transação e consulta lenta trace.