Поделиться через


Настройка метрик 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 в файле журнала.

Вы также можете использовать средство командной строки для проверки доступных метрик 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. На вкладке "Метрики" выберите раскрывающийся список, как показано для просмотра метрик.

Снимок экрана: метрики в портале