Мониторинг#

Настройка#

Продукт Grid Center позволяет выводить собственные метрики в формате Prometheus, а также позволяет анализировать метрики, генерируемые JVM. Для настройки собственных метрик Grid Center используется файл grid-center.properties, поставляемый в составе дистрибутива продукта.

Настройка метрик в формате Prometheus#

По умолчанию в grid-center.properties настроен вывод метрик в формате Prometheus по конечной точке /diagnostic/prometheus.

Примеры переменных, которые отвечают за включение и настройку работы с метриками:

  • management.endpoints.web.base-path=/diagnostic– настройка наименования конечной точки;

  • management.endpoints.web.exposure.include=prometheus, health– параметры для включения метрик в формте Prometheus и страницы со статусом запуска приложения;

  • management.endpoint.health.show-details=always– параметр для отображения дополнительных атрибутов статуса запуска приложения;

  • management.metrics.enable.disk=false– параметр для подключения метрик по диску.

Дополнительные настройки метрик

Чтобы настроить label на метриках, в файле grid-center.properties пропишите: management.metrics.tags.key=value, где key – имя label, а value – значение.

Чтобы запретить отображение какой-либо метрики, в файле grid-center.properties пропишите: management.metrics.enable.id=false, где id – имя метрики.

Доступ к метрикам в формате Prometheus

  1. Для получения метрики в формате Prometheus откройте в браузере страницу: http://ip:port/diagnostic/prometheus.

    Где:

    ip – ip адрес Grid Center;

    port – порт;

    /diagnostic/prometheus – путь к метрикам.

  2. Чтобы получить информацию о состоянии приложения, откройте в браузере страницу: ``http://ip:port/diagnostic/health`.

    Где:

    ip – ip адрес Grid Center;

    port – порт;

    /diagnostic/health – путь к странице со статусом приложения.

Настройка метрик JMX#

Для удаленного доступа к метрикам по протоколу JMX включите возможность подключения по протоколу JMX к JVM, отредактировав конфигурацию. Для этого добавьте параметры в файл конфигурации JVM - jvm.opts. Файл конфигурации расположен в директории config, где установлено приложение Grid Center. Добавляйте каждый новый параметр в новой строке файла.

Пример добавления параметров для удаленной работы с JMX:

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9010
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false

где:

  • Dcom.sun.management.jmxremote — флаг включения удаленной работы JMX (включен по умолчанию);

  • Dcom.sun.management.jmxremote.port — параметр сетевого порта, который будет использоваться для удаленного подключения;

  • Dcom.sun.management.jmxremote.authenticate — параметр, который отвечает за включение аутентификации для работы с JMX;

  • Dcom.sun.management.jmxremote.ssl — параметр, который отвечает за включение SSL для работы с JMX.

Примеры дополнительных параметров для работы с JMX:

-Dcom.sun.management.jmxremote.password.file=../jmxremote.password 
-Dcom.sun.management.jmxremote.access.file=../jmxremote.access

где:

  • Dcom.sun.management.jmxremote.access.file — путь к файлу с именами пользователей, которые будут подключаться к JMX, и их уровнем доступа. Доступны два уровня доступа: readonly (только чтение атрибутов по JMX) или readwrite (чтение атрибутов и выполнение операций по JMX).

    Пример файла jmxremote.access:

    admin readwrite
    user readonly
    
  • Dcom.sun.management.jmxremote.password.file — путь к файлу с именами JMX пользователей и их паролями.

    Пример файла jmxremote.password:

     aHd3kdsnwwqs47
    user user
    

Подробнее о настройках JMX-параметров JVM читайте в документации к JVM, на которой запускается Grid Center.

Метрики#

Метрики в формате Prometheus#

Список метрик, доступных в формате Prometheus:

Название

Размерность

Атрибут

Описание

jvm_threads_live_threads gauge

Количество потоков

address — URL-адрес, version — номер версии Grid Center

Текущее количество активных потоков, включая потоки как доменов, так и потоков, не являющихся доменами

executor_active_threads gauge

Количество потоков

address — URL-адрес, name — название метрики, version — номер версии Grid Center

Примерное количество потоков, активно выполняющих задачи

jvm_memory_committed_bytes gauge

Байты

address — URL-адрес, area — область памяти, id — идентификатор метрики, version — номер версии Grid Center

Объем памяти, выделенный для использования виртуальной машиной Java

jvm_gc_memory_promoted_bytes_total counter

Байты

address — URL-адрес, version — номер версии Grid Center

Подсчет положительного увеличения размера пула памяти старого поколения до GC и после GC

tomcat_sessions_expired_sessions_total counter

Количество сессий

address — URL-адрес, version — номер версии Grid Center

Общее количество истекших сессий в Tomcat

tomcat_sessions_alive_max_seconds gauge

Секунды

address — URL-адрес, version — номер версии Grid Center

Показывает максимальную продолжительность, в течение которой сессия оставалась «живой» в Tomcat

application_ready_time_seconds gauge

Секунды

address — URL-адрес, main_application_class — название класса, version — номер версии Grid Center

Время, необходимое приложению для готовности к обслуживанию запросов

jvm_buffer_memory_used_bytes gauge

Байты

address — URL-адрес, id — идентификатор метрики, version — номер версии Grid Center

Объем памяти, выделенный для использования виртуальной машиной Java

executor_queue_remaining_tasks gauge

Количество задач

address — URL-адрес, name — название метрики, version — номер версии Grid Center

Количество дополнительных элементов, которые очередь может в идеале принять без блокировки

executor_pool_core_threads gauge

Количество потоков

address — URL-адрес, name — название метрики, version — номер версии Grid Center

Основное количество потоков для пула

jvm_classes_unloaded_classes_total counter

Количество классов

address — URL-адрес, version — номер версии Grid Center

Общее количество классов, выгруженных с начала использования виртуальной машины Java

jvm_threads_daemon_threads gauge

Количество потоков

address — URL-адрес, version — номер версии Grid Center

Текущее количество «живых» потоков домена

jvm_memory_usage_after_gc_percent gauge

Проценты

address — URL-адрес, area — область памяти, pool — тип пула, version — номер версии Grid Center

Процент долгоживущего пула кучи, использованного после последнего события сборки, в диапазоне [0..1]

application_started_time_seconds gauge

Секунды

address — URL-адрес, main_application_class — класс приложения, version — номер версии Grid Center

Время, необходимое для запуска приложения

process_uptime_seconds gauge

Секунды

address — URL-адрес, version — номер версии Grid Center

Время безотказной работы виртуальной машины Java

http_server_requests_seconds summary

Секунды

address — URL-адрес, exception — тип исключения, method — тип операции, outcome — выходные данные, status — статус запроса, uri — путь, version — номер версии Grid Center

Продолжительность обработки запроса HTTP-сервера

http_server_requests_seconds_max gauge

Секунды

address — URL-адрес, exception — тип исключения, method — тип операции, outcome — выходные данные, uri — путь, status — статус запроса, version — номер версии Grid Center

Продолжительность обработки запроса HTTP-сервера

system_cpu_count gauge

Количество процессоров

address — URL-адрес, version — номер версии Grid Center

Количество процессоров, доступных виртуальной машине Java

tomcat_sessions_created_sessions_total counter

Количество сессий

address — URL-адрес, version — номер версии Grid Center

Общее количество сессий, созданных в Tomcat

jvm_gc_live_data_size_bytes gauge

Байты

address — URL-адрес, version — номер версии Grid Center

Размер долгоживущего пула кучи после восстановления

jvm_buffer_total_capacity_bytes gauge

Байты

address — URL-адрес, id — идентификатор, version — номер версии Grid Center

Оценка общей емкости буферов в пуле

jvm_memory_used_bytes gauge

Байты

address — URL-адрес, area — область памяти, id — идентификатор метрики, version — номер версии Grid Center

Объем используемой памяти

jvm_classes_loaded_classes gauge

Количество классов

address — URL-адрес, version — номер версии Grid Center

Количество классов, загруженных в данный момент в виртуальную машину Java

process_cpu_usage gauge

address — URL-адрес, version — номер версии Grid Center

«Недавнее использование процессора» для процесса виртуальной машины Java

tomcat_sessions_rejected_sessions_total counter

Количество сессий

address — URL-адрес, version — номер версии Grid Center

Общее количество отклоненных сессий в Tomcat

tomcat_sessions_active_max_sessions gauge

Количество сессий

address — URL-адрес, version — номер версии Grid Center

Максимальное количество активных сессий в Tomcat

jvm_memory_max_bytes gauge

Байты

address — URL-адрес, area — область памяти, id — идентификатор метрики, version — номер версии Grid Center

Максимальный объем памяти, который можно использовать для управления памятью

executor_completed_tasks_total counter

Количество задач

address — URL-адрес, name — название метрики, version — номер версии Grid Center

Примерное общее количество завершенных задач

tomcat_sessions_active_current_sessions gauge

Количество сессий

address — URL-адрес, version — номер версии Grid Center

Показывает текущее количество активных сессий в Tomcat

log4j2_events_total counter

Количество событий

address — URL-адрес, level — уровень события, version — номер версии Grid Center

Количество событий журнала фатального уровня

jvm_gc_max_data_size_bytes gauge

Байт

address — URL-адрес, version — номер версии Grid Center

Максимальный размер пула долгоживущей кучи

executor_queued_tasks gauge

Количество задач

address — URL-адрес, name — название метрики, version — номер версии Grid Center

Приблизительное количество задач в очереди на выполнение

jvm_gc_pause_seconds summary

Секунды

action — название действия, address — URL-адрес, cause — причина паузы, version — номер версии Grid Center

Время, проведенное на паузе GC

jvm_gc_pause_seconds_max gauge

Секунды

action — название действия, address — URL-адрес, cause — причина паузы, version — номер версии Grid Center

Время, проведенное на паузе GC

executor_pool_max_threads gauge

Количество потоков

address — URL-адрес, name — название метрики, version — номер версии Grid Center

Максимально допустимое количество потоков в пуле

jvm_gc_memory_allocated_bytes_total counter

Байты

address — URL-адрес, version — номер версии Grid Center

Объем, выделенный для увеличения размера пула памяти кучи между предыдущим и следующим процессами GC

jvm_threads_states_threads gauge

Количество потоков

address — URL-адрес, state — статус, version — номер версии Grid Center

Текущее количество потоков

executor_pool_size_threads gauge

Количество потоков

address — URL-адрес, name — название метрики, version — номер версии Grid Center

Текущее количество потоков в пуле

process_start_time_seconds gauge

Секунды

address — URL-адрес, version — номер версии Grid Center

Время начала процесса в UNIX-формате

jvm_threads_peak_threads gauge

Количество потоков

address — URL-адрес, version — номер версии Grid Center

Пиковое количество живых потоков с момента запуска JVM или сброса пика

system_cpu_usage gauge

Байт

address — URL-адрес, version — номер версии Grid Center

Недавнее использование ЦПУ системы, в которой работает приложение

jvm_gc_overhead_percent gauge

Проценты

address — URL-адрес, version — номер версии Grid Center

Приблизительное значение процента времени ЦП, использованного действиями сборщика мусора за последний период ретроспективного анализа или с момента начала мониторинга (в зависимости от того, что короче), в диапазоне [0..1]

jvm_buffer_count_buffers gauge

Количество буферов

address — URL-адрес, id — идентификатор метрики, version — номер версии Grid Center

Оценка количества буферов в пуле

Метрики JMX#

Список JVM-метрик, доступных по JMX, которые рекомендуются для анализа:

Название

Размерность

Атрибут

Описание

java.lang:type=ClassLoading, LoadedClassCount

Количество

Количество загруженных классов

java.lang:type=ClassLoading, TotalLoadedClassCount

Количество

Общее количество загруженных классов

java.lang:type=ClassLoading, UnloadedClassCount

Количество

Количество выгруженных классов

java.lang:type=Memory, HeapMemoryUsage.committed

Байт

Объем зарезервированной Heap-памяти в рамках максимально возможного значения (JVM Memory HeapMemoryUsage.max)

java.lang:type=Memory, HeapMemoryUsage.max

Байт

Объем выделенной Heap-памяти

java.lang:type=Memory, HeapMemoryUsage.used

Байт

Объем используемой Heap-памяти

java.lang:type=Memory, NonHeapMemoryUsage.committed

Байт

Объем зарезервированной NonHeap-памяти в рамках максимально возможного значения (JVM Memory NonHeapMemoryUsage.max)

java.lang:type=Memory, NonHeapMemoryUsage.used

Байт

Объем используемой NonHeap-памяти

java.lang:type=OperatingSystem, CommittedVirtualMemorySize

Байт

Объем виртуальной памяти, доступной для запущенного процесса

java.lang:type=OperatingSystem, FreePhysicalMemorySize

Байт

Объем свободной физической памяти

java.lang:type=OperatingSystem, MaxFileDescriptorCount

Байт

Максимально возможное количество открытых файлов

java.lang:type=OperatingSystem, OpenFileDescriptorCount

Количество файлов

Текущее количество открытых файлов

java.lang:type=OperatingSystem, TotalPhysicalMemorySize

Байт

Общий объем физической памяти

java.lang:type=Runtime, SpecVersion

Версия спецификации Java

java.lang:type=Runtime, Uptime

Секунды

Время работы виртуальной машины

java.lang:type=Runtime, VmName

Имя виртуальной машины

java.lang:type=Runtime, Version

Версия виртуальной машины Java

java.lang:type=Threading, ThreadCount

Количество потоков

Количество потоков виртуальной машины Java