Nossa integração JMX permite ao usuário monitor qualquer aplicativo que exponha métrica com JMX. A integração inclui um arquivo de coleta padrão que coleta automaticamente as principais métricas da JVM.
Compatibilidade e requisitos
Antes de instalar a integração, certifique-se de atender aos seguintes requisitos:
- Uma conta New Relic . Não tem um? Cadastre-se gratuitamente! Não é necessário cartão de crédito.
- Java versão 8 ou superior.
- Se você precisar usar uma versão Java diferente daquela configurada em
PATH
, siga a documentação de configuração da New Relic no GitHub. - Esta integração não suporta o protocolo IIOP.
Começo rápido
Se você não estiver executando o JMX em ambientes Kubernetes ou ECS, recomendamos nossa instalação guiada. Nossa instalação guiada usa nosso agente de infraestrutura e nossa CLI para configurar a integração JMX e descobre outros aplicativos e fontes de log em execução em seu ambiente e, em seguida, recomenda quais deles você deve usar.
A instalação guiada funciona com a maioria das configurações. Mas se não atender às suas necessidades, existem outras opções de instalação abaixo.
Pronto para começar? Clique no botão relevante, dependendo da região do data center que você usa. Quando terminar a instalação, retorne a esta documentação para revisar as opções de configuração.
Instalar
Se você não estiver usando a instalação guiada, siga as instruções para seu ambiente:
' '
Atualize sua integração
Essa integração não é atualizada automaticamente. Para obter melhores resultados, atualize regularmente o pacote de integração e o agente de infraestrutura.
Tarefas pós-instalação
Quando terminar a instalação, você poderá definir opções de configuração. Algumas configurações são necessárias para que a integração funcione, enquanto outras são opcionais.
Configurar a integração
A configuração no formato YAML de uma integração é onde você pode colocar as credenciais de login necessárias e configurar como os dados são coletados. Quais opções você altera dependem de sua configuração e preferência.
Existem diversas formas de configurar a integração, dependendo de como ela foi instalada:
- Se habilitado via Kubernetes: consulte Monitorar serviços em execução no Kubernetes.
- Se habilitado via Amazon ECS: consulte Monitorar serviços em execução no ECS.
- Se instalado no host: edite a configuração no arquivo de configuração YAML da integração,
jmx-config.yml
.
Arquivos de configuração de integração
O arquivo de configuração possui configurações comuns aplicáveis a toda integração, como interval
, timeout
ou inventory_source
. Para ler tudo sobre essas configurações comuns, consulte nosso documento de formato de configuração .
Configurações específicas relacionadas ao JMX são definidas usando a seção env
do arquivo de configuração. Essas configurações controlam a conexão com sua instância JMX, bem como outras configurações e recursos de segurança. A lista de configurações válidas é descrita na próxima seção deste documento.
As opções de configuração estão abaixo. Para obter um exemplo de configuração, consulte o arquivo de configuração de exemplo.
Arquivos de coleta métrica
Os arquivos de definição de coleção de métricas são arquivos YAML estruturados que informam à integração qual métrica coletar. Para um exemplo de configuração, veja o exemplo do arquivo de coleta de métricas.
Arquivo de coleta de métricas JVM padrão: /etc/newrelic-infra/integrations.d/jvm-metrics.yml
Dica
Você pode gravar diferentes arquivos de coleção para facilitar a organização e manutenção. Veja o arquivo de configuração para ver um exemplo.
Configuração de coleção usando anotações do Kubernetes
Você pode usar anotações do Kubernetes para fornecer configuração de coleção. Para conseguir isso, você precisa implantar um configMap
no cluster do Kubernetes que criará o arquivo de configuração para a aplicação nri-jmx
.
Neste arquivo de configuração você precisa especificar o comando para auto-discovery do contêiner, que permitirá utilizar o espaço reservado na configuração da integração, incluindo anotações do Kubernetes.
Exemplo de configMap
para monitor JVM em um aplicativo Tomcat:
A seguir, use anotações para definir a configuração da coleção. Por exemplo, aqui está uma implantação do Tomcat com anotações:
apiVersion: apps/v1kind: Deploymentmetadata: name: tomcat-deployment labels: app: javaspec: replicas: 1 selector: matchLabels: app: java template: metadata: annotations: newrelic.config: >- { "collect": [ { "domain": "java.lang", "event_type": "JVMSample", "beans": [ { "query": "type=GarbageCollector,name=*", "attributes": [ "CollectionCount", "CollectionTime" ] }, { "query": "type=Memory", "attributes": [ "HeapMemoryUsage.Committed", "HeapMemoryUsage.Init", "HeapMemoryUsage.Max", "HeapMemoryUsage.Used", "NonHeapMemoryUsage.Committed", "NonHeapMemoryUsage.Init", "NonHeapMemoryUsage.Max", "NonHeapMemoryUsage.Used" ] }, { "query": "type=Threading", "attributes": [ "ThreadCount", "TotalStartedThreadCount" ] }, { "query": "type=ClassLoading", "attributes": [ "LoadedClassCount" ] }, { "query": "type=Compilation", "attributes": [ "TotalCompilationTime" ] } ] } ] } labels: app: java spec: containers: - name: tomcat image: tomcat:10.0.12 ports: - containerPort: 9999 env: - name: CATALINA_OPTS value: '-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false'
Conectores personalizados
JMX permite o uso de conectores customizados para comunicação com o aplicativo. Para usar um conector personalizado, você deve incluir os conectores personalizados no caminho de classe nrjmx.
Por padrão, a subpasta connectors
está no classpath. Se esta pasta não existir, crie-a na pasta onde o nrjmx está instalado.
Por exemplo, para adicionar suporte ao JBoss, crie uma pasta chamada connectors
no caminho da biblioteca padrão (Linux) /usr/lib/nrjmx/
(/usr/lib/nrjmx/connectors/
) e copie o jar do conector personalizado ($JBOSS_HOME/bin/client/jboss-cli-client.jar
) nela. Agora você pode executar a consulta JMX no JBoss.
Exemplo de configuração
Exemplo de configuração de arquivo para uma instalação no host:
Para obter mais informações sobre a estrutura geral da configuração de integração no host, consulte Configuração.
Nomeando seus dados
Métricas são enviadas e armazenadas na forma de amostras. Esta é uma lista de pares de valores principais que incluem dados métricos e metadados. Cada amostra é armazenada como um evento em nosso banco de dados.
Você é responsável por criar e nomear os dados JMX relatados à New Relic. Por esse motivo, a New Relic recomenda fortemente seguir estas convenções ao nomear seus tipos de eventos. Para garantir que você tenha um esquema de nomenclatura consistente:
- Use estojo de camelo.
- Use um nome que identifique claramente quais dados ele contém.
Exemplo: MyorgApplicationSample
Recommendation: Use o mesmo esquema de nomenclatura para métricas semelhantes em aplicativos diferentes.
Encontre e use dados
Os dados deste serviço são reportados para um dashboard de integração.
Os dados JMX são anexados ao tipo de evento definido pelo usuário especificado no arquivo de configuração. Por exemplo, se você tem interesse em monitorar o Tomcat utilizando a integração JMX, defina um event_type
chamado TomcatSample
, e consulte esse tipo de evento.
Você pode consultar esses dados para fins de resolução de problemas ou para criar gráficos e dashboards personalizados.
Para saber mais sobre como encontrar e usar seus dados, consulte Compreender os dados de integração.
Dados métricos
As métricas geradas pela integração incluem metadados associados ao MBean do qual estão coletando. Você pode usar esses metadados em consultas NRQL para filtrar e facetar os dados para que a consulta retorne apenas os dados dos beans desejados. Também pode ser utilizado para identificar unicamente as métricas, uma vez que o nome da métrica não é necessariamente único entre todos os beans.
Cada evento contém os seguintes metadados:
Nome | Descrição |
---|---|
| O nome de domínio JMX para essas métricas. |
| O nome do domínio JMX para essas métricas com o tipo de entidade |
| O host JMX do qual a métrica está sendo coletada. |
| A consulta usada para coletar essas métricas. |
| O feijão cujo atributo essas métricas foram coletadas. |
| Para cada chave no nome do bean, um atributo é adicionado ao conjunto de métricas denominado |
Exemplo de consulta NRQL
Aqui está um exemplo de consulta NRQL aproveitando o monitor de metadados de todo o coletor de lixo JVM coletado:
SELECT latest(CollectionTime)FROM JVMSampleFACET `key:name`WHERE `key:type` = 'GarbageCollector'
Atributo de dados métricos
A integração JMX coleta os seguintes atributos de dados métricos:
Nome | Descrição |
---|---|
| A memória heap Java total usada. |
| A memória heap Java total comprometida para ser usada. |
| A memória heap Java inicial alocada. |
| A memória heap Java máxima disponível. |
| O total de memória não heap Java usada. |
| O total de memória não heap Java comprometida para ser usada. |
| A memória não heap Java inicial alocada. |
| O máximo de memória Java não heap disponível. |
| O número de threads ativos. |
| O número total de coletas de lixo que ocorreram. |
| O tempo aproximado de coleta de lixo acumulado decorreu. |
Dados de inventário
A integração JMX captura o parâmetro de configuração da integração JMX. Os dados estão disponíveis na página Inventário, na origem config/jmx . Para obter mais informações sobre dados de inventário, consulte Compreender os dados de integração.
Resolução de problemas
Dicas de resolução de problemas:
' '
' '
Verifique o código-fonte
Esta integração é um software de código aberto. Isso significa que você pode navegar pelo código-fonte e enviar melhorias, ou criar seu próprio fork e construí-lo.