Configurar métricas de JMX
O Application Insights Java 3.x coleta algumas das métricas de Extensões de Gerenciamento de Java (JMX) por padrão, mas em muitos casos isso não é suficiente. Este documento descreve a opção de configuração de JMX em detalhes.
Como fazer para coletar as métricas adicionais do JMX?
Para configurar a coleta de métricas de JMX, você adiciona a seção "jmxMetrics"
ao arquivo applicationinsights.json. Insira um nome para a métrica como você deseja que ela apareça no portal do Azure no recurso Application Insights. O nome do objeto e o atributo são necessários para cada uma das métricas que você deseja coletar. Você poderá usar *
em nomes de objetos para um caractere curinga no estilo glob (detalhes).
Como saber quais métricas estão disponíveis para configurar?
Você acertou: é preciso saber os nomes e os atributos dos objetos. Essas propriedades são diferentes dependendo da biblioteca, do framework e do servidor de aplicativo, além de não serem bem documentadas. Felizmente, é fácil encontrar exatamente quais métricas JMX têm suporte para seu ambiente específico.
Para exibir as métricas disponíveis, defina o nível de diagnóstico automático como DEBUG
no arquivo de configuração applicationinsights.json
, por exemplo:
{
"selfDiagnostics": {
"level": "DEBUG"
}
}
As métricas JMX disponíveis, com nomes de objetos e nomes de atributos, aparecem no seu arquivo de logs do Application Insights.
A saída do arquivo de logs é semelhante a esses exemplos. Em alguns casos, pode ser extenso.
Você também pode usar uma ferramenta de linha de comando para verificar as métricas JMX disponíveis.
Exemplo de configuração
Sabendo quais métricas estão disponíveis, você pode configurar o agente para coletá-las. A primeira é um exemplo de métrica aninhada que tem várias propriedades, LastGcInfo
, e queremos capturar GcThreadCount
.
"jmxMetrics": [
{
"name": "Demo - GC Thread Count",
"objectName": "java.lang:type=GarbageCollector,name=PS MarkSweep",
"attribute": "LastGcInfo.GcThreadCount"
},
{
"name": "Demo - GC Collection Count",
"objectName": "java.lang:type=GarbageCollector,name=PS MarkSweep",
"attribute": "CollectionCount"
},
{
"name": "Demo - Thread Count",
"objectName": "java.lang:type=Threading",
"attribute": "ThreadCount"
}
],
Onde estão as métricas de JMX no Application Insights?
Você pode exibir as métricas JMX coletadas enquanto seu aplicativo está em execução navegando até o recurso de insights do aplicativo no portal do Microsoft Azure. Na guia Métricas, selecione o menu suspenso como mostrado para exibir as métricas.