Configurando métricas JMX
O Application Insights Java 3.x coleta algumas das métricas Java Management Extensions (JMX) por padrão, mas em muitos casos não é suficiente. Este documento descreve a opção de configuração JMX em detalhes.
Como faço para coletar métricas JMX extras?
A coleção de métricas JMX pode ser configurada adicionando uma "jmxMetrics"
seção ao arquivo applicationinsights.json. Insira um nome para a métrica como você deseja que ela apareça no portal do Azure no recurso do Application Insights. O nome e o atributo do objeto são necessários para cada uma das métricas que você deseja coletar. Você pode usar *
nomes de objetos para curinga no estilo glob (detalhes).
Como sei quais métricas estão disponíveis para configurar?
Você acertou - você deve saber os nomes dos objetos e os atributos, essas propriedades são diferentes para várias bibliotecas, estruturas e servidores de aplicativos, e muitas vezes não são bem documentadas. Felizmente, é fácil encontrar exatamente quais métricas JMX são suportadas para seu ambiente específico.
Para visualizar as métricas disponíveis, defina o nível de autodiagnóstico como DEBUG
no arquivo applicationinsights.json
de configuração, por exemplo:
{
"selfDiagnostics": {
"level": "DEBUG"
}
}
As métricas JMX disponíveis, com nomes de objetos e nomes de atributos, aparecem no arquivo de log do Application Insights.
A saída do arquivo de log é semelhante a esses exemplos. Em alguns casos, pode ser extensa.
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. O primeiro é um exemplo de uma métrica aninhada - LastGcInfo
que tem várias propriedades, e queremos capturar o 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 posso encontrar as métricas JMX em insights de aplicativos?
Você pode exibir as métricas JMX coletadas enquanto seu aplicativo está em execução navegando até o recurso do Application Insights no portal do Azure. Na guia Métricas, selecione a lista suspensa conforme mostrado para exibir as métricas.