Мониторинг EVPC#
Мониторинг производится:
Самостоятельно через преднастроенный JMX-порт. Настройки JMX-порта задаются перед установкой в конфигурационном файле vars.yml, подробнее в документе «Руководство по установке» в разделе «Подготовка окружения EVPC» (подраздел «Пример заполненного файла vars.yml для EVPC»);
С помощью произвольной системы мониторинга. Настройки системы мониторинга заносятся в конфигурационный файл vars.yml.
Настройка#
Для сбора метрик в файле конфигурации EVPC flow.conf в блоке metrics необходимо указать следующие настройки:
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
metrics.jmx.enabled |
Включение метрик |
true |
metrics.jmx.domain |
Корневой пакет для метрик |
ru.sbt.ss.reactive.stream.adapter |
metrics.jmx.step |
Интервал для агрегирующих функций |
1m |
metrics.prometheus.enabled |
Включение метрик |
false |
metrics.prometheus.histogramFlavor |
Тип формата гистограмм |
Prometheus |
metrics.prometheus.step |
Интервал для агрегирующих функций |
1m |
metrics.influx.enabled |
Включение метрик |
false |
metrics.influx.db |
Имя базы данных Influx |
mydb |
metrics.influx.consistency |
Настройка консистентности |
one |
metrics.influx.userName |
Имя пользователя |
— |
metrics.influx.password |
Пароль |
— |
metrics.influx.retentionPolicy |
retentionPolicy для Influx v1 |
— |
metrics.influx.retentionDuration |
retentionDuration Influx v1 |
— |
metrics.influx.retentionReplicationFactor |
retentionReplicationFactor Influx v1 |
— |
metrics.influx.retentionShardDuration |
retentionShardDuration Influx v1 |
— |
metrics.influx.uri |
Адрес подключения к базе |
|
metrics.influx.compressed |
Сжатие передачи |
true |
metrics.influx.autoCreateDb |
Авто создание базы данных |
true |
metrics.influx.apiVersion |
версия Influx |
— |
metrics.influx.org |
organization Influx v2 |
— |
metrics.influx.bucket |
bucket Influx v2 |
— |
metrics.influx.token |
Токен Influx v2 |
— |
metrics.influx.step |
Интервал для агрегирующих функций |
1m |
Метрики#
Группа метрик потока трансформации событий#
Название |
Описание |
Размерность |
Основные атрибуты |
|---|---|---|---|
transform.input |
Количество входящих событий |
шт |
- |
transform.input |
Количество исходящих событий в основной поток обработки |
шт |
- |
transform.reject |
Количество отфильтрованных событий |
шт |
- |
transform.error |
Количество событий обработанных с ошибкой |
шт |
- |
branch-branchStep |
Количество событий, переданных в побочную ветку обработки с первым шагом branchStep |
шт |
- |
name |
Пользовательская метрика из DSL (подробнее описано в документе Руководство пользователя EVPC, раздел «Работа с метриками») |
шт |
- |
transform.latency |
Время прохождения сообщения |
мс |
- |
При возможности отслеживания метрик через JMX для времени прохождения используйте метрику transform.latency (атрибут mean).
Триггеры для данных метрик настраиваются администраторами системы мониторинга самостоятельно, исходя из существующих потребностей и ограничений.
Группа метрик «CPU Usage»#
Название |
Описание |
Размерность |
Основные атрибуты |
|---|---|---|---|
system_cpu_usage |
Представляет собой показатель «недавнего использования CPU» (центрального процессора) системы, на которой работает приложение. Измеряет процентный объем времени, в течение которого CPU был задействован для выполнения задач за определенный период времени. |
- |
- |
process_cpu_usage |
Измеряет недавнее использование CPU конкретно для процесса Java Virtual Machine (JVM). |
- |
- |
process_start_time_seconds |
Метрика фиксирует время запуска процесса в секундах с начала эпохи Unix (1 января 1970 года). Она указывает на момент, когда приложение или служба были запущены. |
с |
- |
process_uptime_seconds |
Метрика отслеживает общее время работы процесса в секундах с момента его запуска. Она показывает, как долго приложение функционирует без перезапуска. |
с |
- |
Группа метрик «Load»#
Название |
Описание |
Размерность |
Основные атрибуты |
|---|---|---|---|
system_load_average_1m |
Отражает среднюю загрузку системы за одну минуту. Она учитывает количество процессов, которые находятся в состоянии ожидания выполнения (runnable) на доступных процессорах, а также те процессы, которые в данный момент выполняются. |
- |
- |
system_cpu_count |
Определяет количество доступных процессоров (или логических ядер) в системе. Используется для оценки вычислительных ресурсов, доступных для выполнения задач. Оценка system_load_average_1m в контексте system_cpu_count помогает понять, насколько эффективно система использует доступные ресурсы. |
- |
- |
Группа метрик «Threads»#
Название |
Описание |
Размерность |
Основные атрибуты |
|---|---|---|---|
jvm_threads_live_threads |
Метрика показывает текущее количество живых потоков в Java Virtual Machine (JVM), включая как обычные (non-daemon), так и демон (daemon) потоки. Метрика подсчитывает количество потоков, которые активно функционируют в JVM в данный момент. |
шт |
- |
jvm_threads_daemon_threads |
Метрика показывает текущее количество живых демон потоков в системе. Демон потоки — это потоки, которые работают в фоновом режиме и не препятствуют завершению JVM, когда все не демон потоки завершены. |
шт |
- |
jvm_threads_peak_threads |
Метрика отражает максимальное количество живых потоков в JVM с момента запуска или с момента сброса максимального значения. При каждом создании нового потока JVM сравнивает текущий счетчик с предыдущим максимальным значением и обновляет его при необходимости. |
шт |
- |
process_threads |
Метрика показывает общее количество потоков, работающих в рамках конкретного процесса на уровне ОС, включая все потоки, запущенные приложением. |
шт |
- |
Группа метрик «Threads States»#
Название |
Описание |
Размерность |
Основные атрибуты |
|---|---|---|---|
jvm_threads_states_threads{state=»»} |
Метрика отображает текущее количество потоков в Java Virtual Machine (JVM) с учетом их состояний. Это значение позволяет детализировать информацию о количестве потоков, находящихся в различных состояниях, таких как «RUNNABLE», «BLOCKED», «WAITING», «TIMED-WAITING», «NEW», «TERMINATED». |
- |
- |
Группа метрик «JVM Heap/Non-Heap»#
Название |
Описание |
Размерность |
Основные атрибуты |
|---|---|---|---|
jvm_memory_used_bytes{area=»»,id=»»} |
Метрика показывает количество байт памяти, которые в данный момент используются в конкретной области памяти JVM. Она позволяет оценить текущую нагрузку на память. Высокие значения могут указывать на интенсивное использование памяти и потенциальные узкие места, такие как утечки памяти. |
- |
- |
jvm_memory_committed_bytes{area=»»,id=»»} |
Метрика указывает на количество байт памяти, которое было выделено и зафиксировано для использования JVM. Это значение всегда больше или равно количеству используемой памяти. |
- |
- |
jvm_memory_max_bytes{area=»»,id=»»} |
Метрика показывает максимальный объем памяти, который может быть выделен в конкретной области памяти. Это значение устанавливается при запуске JVM. Значение max важно для понимания пределов памяти приложения. Совпадение jvm_memory_used_bytes с jvm_memory_committed_bytes и их быстрые колебания могут указывать на проблемы с утечками памяти. |
- |
- |
Группа метрик «Garbage Collection»#
Название |
Описание |
Размерность |
Основные атрибуты |
|---|---|---|---|
jvm_gc_pause_seconds_count{action=»»,cause=»»} |
Метрика показывает общее количество пауз сборщика мусора за определенный период времени. Записывает количество завершенных пауз, соответствующих действию (например, завершение Major или Minor GC). Высокое значение этой метрики может указывать на то, что приложение часто сталкивается с паузами сборщика мусора, особенно если влияние этих пауз чувствуется пользователями. |
- |
- |
jvm_gc_pause_seconds_sum{action=»»,cause=»»} |
Метрика представляет собой сумму всех пауз сборщика мусора в секундах. Это позволяет определить общее время, затраченное на паузы сборщика мусора за определенный период времени. Высокое значение может указывать на проблемы с производительностью, поскольку большие паузы могут значимо задерживать выполнение приложений. Нужно следить за общим временем пауз и реагировать на его увеличение. |
- |
- |
jvm_gc_pause_seconds_max{action=»»,cause=»»} |
Метрика показывает максимальную продолжительность паузы сборщика мусора за указанный период времени. Значение этой метрики позволяет оценить наихудшие случаи задержки во время сборки мусора. |
- |
- |
jvm_gc_memory_allocated_bytes_total |
Предоставляет информацию об общем объеме памяти, выделенной в байтах в JVM для работы приложения. Эта метрика позволяет отслеживать динамическое распределение памяти в процессе работы и понимать, сколько памяти было выделено за все время его выполнения. Эта метрика накопительная, то есть она продолжает расти по мере выделения новой памяти приложением. Накапливаемое значение представляет общее количество памяти, выделенной на данный момент. Увеличение jvm_gc_memory_allocated_bytes_total говорит о том, что приложение либо выделяет больше памяти из-за роста рабочей нагрузки, либо возникает утечка памяти, если выделяемая память не освобождается в результате сборки мусора. Следует учитывать значение в сочетании с другими метриками, такими как jvm_gc_pause_seconds_sum и jvm_memory_used_bytes, чтобы получить полное представление о работе памяти и перераспределении ресурсов. |
- |
- |
jvm_gc_memory_promoted_bytes_total |
Метрика отслеживает общее количество памяти (в байтах), которое было перемещено из молодого поколения в старое поколение в сборщике мусора. Увеличение этого значения может указывать на то, что приложения создают большое количество объектов, которые живут долго и не освобождаются. Если метрика стабильна или низка, это может свидетельствовать о том, что приложение эффективно освобождает память, и объекты не задерживаются дольше, чем нужно. |
- |
- |
jvm_gc_max_data_size_bytes |
Метрика показывает максимальный размер памяти, который может быть выделен для данных в JVM. Метрика важна для понимания ограничения по памяти, установленного на JVM. Если приложение регулярно достигает этих пределов, может возникнуть необходимость в увеличении размера кучи или оптимизации кода. Если приложение часто достигает этого максимального размера, это может указывать на необходимость более эффективного использования памяти или на необходимость изменить настройки heap size в конфигурации JVM. |
- |
- |
jvm_gc_live_data_size_bytes |
Метрика фиксирует размер «живых» данных в байтах, т.е. объектов, которые все еще существуют в памяти и не были собраны сборщиком мусора. Увеличение этой метрики может свидетельствовать о нарастающем потреблении памяти, что может привести к замедлению работы приложения, если не контролируется. Если jvm_gc_live_data_size_bytes близка к значению jvm_gc_max_data_size_bytes, это может предвещать нехватку памяти и потенциальные проблемы с производительностью или даже OutOfMemoryError. |
- |
- |
Группа метрик «JVM Buffer Pools»#
Название |
Описание |
Размерность |
Основные атрибуты |
|---|---|---|---|
jvm_buffer_memory_used_bytes{id=»»} |
Объем памяти, используемой для конкретного типа буферов в байтах. id — может принимать значения mapped (замапленные буферы) и direct (прямые буферы). |
- |
- |
jvm_buffer_count_buffers{id=»»} |
Общее количество активных буферов определенного типа, которые в данный момент используются системой. |
- |
- |
jvm_buffer_total_capacity_bytes{id=»»} |
Метрика отслеживает общую емкость всех буферов, управляемых JVM, в байтах. Буферы могут использоваться для временного хранения данных, таких как данные ввода-вывода, что позволяет оптимизировать производительность. |
- |
- |
Группа метрик «JVM Classes»#
Название |
Описание |
Размерность |
Основные атрибуты |
|---|---|---|---|
jvm_classes_loaded_classes |
Метрика отслеживает общее количество классов, загруженных в память JVM в процессе работы приложения. |
шт |
- |
jvm_classes_unloaded_classes_total |
Метрика фиксирует общее количество классов, выгруженных из памяти JVM. Это может происходить, когда классы больше не нужны, и сборщик мусора освобождает память. |
шт |
- |
Группа метрик «MessageAcknowledge»#
Название |
Описание |
Размерность |
Основные атрибуты |
|---|---|---|---|
messageAcknowledgeTime_seconds_count |
Метрика фиксирует общее количество подтверждений (acknowledgments) сообщений, обработанных системой. Она ведет учет того, сколько раз произошло подтверждение обработки сообщения в течение работы приложения. Более высокое значение счетчика указывает на высокую частоту обработки сообщений, что может свидетельствовать об активности системы. Если счетчик не увеличивается, это может указывать на то, что система не обрабатывает сообщения или находится в состоянии, котором нет входящих запросов. |
шт |
- |
messageAcknowledgeTime_seconds_sum |
Метрика фиксирует суммарное время, затраченное на подтверждение всех обработанных сообщений. Она аккумулирует все временные затраты на обработку и подтверждение сообщений и обобщает их в одной метрике. |
мс |
- |
messageAcknowledgeTime_seconds_max |
Максимальное время, затраченное на подтверждение одного сообщения. Используется для выявления выбросов и определения пиков времени обработки. Для проверки правильности этой метрики можно сравнить ее с результатами начала и окончания обработки каждого сообщения. Если вы обрабатываете сообщения и зафиксируете максимальное значение времени, то оно должно соответствовать тому, что вы наблюдаете как максимум за все зарегистрированные временные замеры. |
мс |
- |
meanMessageAcknowledgeTime |
Представляет собой показатель, отражающий среднее время, затрачиваемое на подтверждение обработки сообщения в системе, которая использует механизмы асинхронного обмена сообщениями. Можно вычислить, разделив messageAcknowledgeTime_seconds_sum на messageAcknowledgeTime_seconds_count. |
мс |
- |
Группа метрик «Flow»#
Название |
Описание |
Размерность |
Основные атрибуты |
|---|---|---|---|
flow_restart_total |
Метрика отслеживает общее количество перезапусков потоков |
шт |
- |
flow_error_total |
метрика отслеживает общее количество ошибок в процессе обработки сообщений |
шт |
- |
flow_alive |
Показывает текущее активное состояние потоков в системе. Она позволяет отслеживать, сколько потоков в данный момент функционирует и обрабатывает сообщения. |
шт |
- |
flow_registry_size |
Метрика отслеживает размер реестра потоков, то есть количество потоков, зарегистрированных в системе. |
шт |
- |
Группа метрик «Message Process»#
Название |
Описание |
Размерность |
Основные атрибуты |
|---|---|---|---|
messageProcessTime_seconds_max |
Метрика отслеживает максимальное время, затраченное на обработку одного сообщения в системе. |
мс |
- |
consumerWaitDeliver_seconds_count |
Метрика фиксирует общее количество случаев ожидания доставки сообщений потребителем. Она помогает понять, как часто потребители сталкиваются с задержками, и может использоваться для анализа нагрузки на систему. |
шт |
- |
consumerWaitDeliver_seconds_sum |
Метрика суммирует общее время, которое потребители провели в ожидании доставки сообщений. |
мс |
- |
meanMessageProcessTime |
Представляет собой среднее время, затраченное на обработку сообщений в системе. Можно вычислить, разделив messageProcessTime_seconds_sum на messageProcessTime_seconds_count. |
мс |
- |
Группа метрик «Consumer Wait Deliver»#
Название |
Описание |
Размерность |
Основные атрибуты |
|---|---|---|---|
consumerWaitDeliver_seconds_max |
Метрика отслеживает максимальное время ожидания, которое потребитель (consumer) испытывает перед получением сообщения. |
мс |
- |
consumerWaitDeliver_seconds_count |
Метрика фиксирует общее количество случаев ожидания доставки сообщений потребителем. Она помогает понять, как часто потребители сталкиваются с задержками, и может использоваться для анализа нагрузки на систему. |
шт |
- |
consumerWaitDeliver_seconds_sum |
Метрика суммирует общее время, которое потребители провели в ожидании доставки сообщений. |
мс |
- |
meanConsumerWaitDeliver |
Представляет собой среднее время ожидания доставки сообщений потребителем. Можно вычислить, разделив consumerWaitDeliver_seconds_sum на consumerWaitDeliver_seconds_count. |
мс |
- |
Группа метрик «Consumer»#
Название |
Описание |
Размерность |
Основные атрибуты |
|---|---|---|---|
consumerProcessBatch_seconds_max |
Метрика отслеживает максимальное время, затраченное на обработку пакета сообщений потребителем. |
мс |
- |
consumerProcessBatch_seconds_count |
Метрика фиксирует общее количество обработанных пакетов сообщений потребителем. |
шт |
- |
consumerProcessBatch_seconds_sum |
Метрика суммирует общее время, затраченное на обработку всех пакетов сообщений. |
мс |
- |
meanConsumerProcessBatch |
Представляет собой среднее время обработки пакета сообщений потребителем. Можно вычислить, разделив consumerProcessBatch_seconds_sum на consumerProcessBatch_seconds_count. |
мс |
- |
consumerReceiveMessages_total |
Метрика отслеживает общее количество сообщений, полученных потребителем. |
шт |
- |
consumerErrors_total |
Метрика фиксирует общее количество ошибок, возникших у потребителя при обработке сообщений. Высокое значение этой метрики может указывать на проблемы в логике обработки, ошибки в данных или проблемы с подключением к источнику сообщений. |
шт |
- |
consumerBufferSize |
Метрика показывает текущий размер буфера потребителя, который используется для хранения сообщений перед их обработкой. Большой размер буфера может указывать на высокую нагрузку на систему или на задержки в обработке сообщений. Если размер буфера постоянно велик, это может сигнализировать о том, что потребитель не успевает обрабатывать входящие сообщения, что может привести к увеличению времени ожидания и снижению производительности. |
- |
- |
Группа метрик «Producer»#
Название |
Описание |
Размерность |
Основные атрибуты |
|---|---|---|---|
producerSendMessageSuccess_total |
Метрика отслеживает общее количество успешно отправленных сообщений производителем. Увеличение этого значения может свидетельствовать о росте активности производителя или о том, что система успешно справляется с отправкой сообщений. Высокое значение этой метрики является положительным индикатором, указывающим на стабильную работу системы. |
шт |
- |
producerSendMessageError_total |
Метрика фиксирует общее количество ошибок, возникших у производителя при попытке отправить сообщения. Высокое значение этой метрики может указывать на проблемы в логике отправки, ошибки в данных или проблемы с подключением к целевому получателю сообщений. |
шт |
- |
Группа метрик «Transformation Metrics»#
Название |
Описание |
Размерность |
Основные атрибуты |
|---|---|---|---|
transform_input_total{jobName=»»,name=»»} |
Метрика отслеживает общее количество входящих данных, которые были обработаны. |
шт |
- |
transform_output_total{jobName=»»,name=»»} |
Метрика фиксирует общее количество выходных данных, которые были успешно сгенерированы трансформацией. |
шт |
- |
transform_error_total{jobName=»»,name=»»} |
Метрика отслеживает общее количество ошибок, возникших в процессе трансформации данных. |
шт |
- |
transform_reject_total{jobName=»»,name=»»} |
Метрика фиксирует общее количество данных, которые были отклонены в процессе трансформации. |
шт |
- |
transform_latency_seconds{jobName=»»,name=»»,quantile=»»} |
Метрика отслеживает время задержки (латентности) в секундах для обработки данных в процессе трансформации. |
мс |
- |
transform_latency_seconds_bucket{jobName=»»,name=»»,quantile=»»,le=»»} |
Метрика используется для хранения данных о задержке в виде бакетов, что позволяет анализировать распределение времени задержки. |
- |
- |
transform_latency_seconds_max{jobName=»»,name=»»} |
Метрика отслеживает максимальное время задержки (латентности) в секундах для обработки данных в процессе трансформации. |
мс |
- |