Настройка метрик JMX
Application Insights Java 3.x собирает некоторые метрики расширений управления Java (JMX) по умолчанию, но во многих случаях недостаточно. В этом документе подробно описываются параметры конфигурации JMX.
Разделы справки собирать дополнительные метрики JMX?
Сбор метрик JMX можно настроить, добавив раздел "jmxMetrics"
в файл applicationinsights.js. Введите имя для метрики, так как она будет отображаться в портал Azure в ресурсе Application Insights. Имя и атрибут объекта необходимы для каждой из метрик, которые нужно собрать. В именах объектов можно использовать *
подстановочные знаки в стиле glob (подробности).
Как узнать, какие метрики доступны для настройки?
Прямо в точку! Необходимо знать имена и атрибуты объектов. Эти свойства отличаются в разных библиотеках, на разных платформах и серверах приложений и часто бывают недостаточно хорошо задокументированы. К счастью, можно легко определить, какие метрики JMX поддерживаются для конкретной среды.
Чтобы просмотреть доступные метрики, в файле конфигурации applicationinsights.json
задайте для уровня самодиагностики значение DEBUG
, например:
{
"selfDiagnostics": {
"level": "DEBUG"
}
}
Доступные метрики JMX с именами объектов и именами атрибутов отображаются в файле журнала Application Insights.
Выходные данные файла журнала выглядят примерно так, как в этих примерах. В некоторых случаях это может быть обширным.
Вы также можете использовать средство командной строки для проверки доступных метрик JMX.
Пример конфигурации
Зная, какие метрики доступны, можно настроить агент для их сбора.
В следующих примерах конфигурации Java 8 первый — вложенная метрика, LastGcInfo
которая имеет несколько свойств, и мы хотим записать 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"
}
]
Другие примеры конфигурации для Java 17:
"jmxMetrics": [
{
"name": "Demo - G1 Collection Count Young",
"objectName": "java.lang:name=G1 Young Generation,type=GarbageCollector",
"attribute": "CollectionCount"
},
{
"name": "Demo - G1 Collection Count Old",
"objectName": "java.lang:name=G1 Old Generation,type=GarbageCollector",
"attribute": "CollectionCount"
},
{
"name": "Demo - Thread Count",
"objectName": "java.lang:type=Threading",
"attribute": "ThreadCount"
}
]
Где найти метрики JMX в Application Insights?
Метрики JMX, собранные во время работы приложения, можно просмотреть, перейдя к ресурсу Application Insights в портал Azure. На вкладке "Метрики" выберите раскрывающийся список, как показано для просмотра метрик.