Метрики TDG¶
Метрики запросов GraphQL¶
Мониторинг и оценка запросов GraphQL.
Метрики имеют теги:
alias
– имя экземпляра, на котором собираются метрики. Имя экземпляра было задано при развертывании кластера;schema
– имя схемы (default
илиadmin
), в которую поступил запрос GraphQL;entity
– тип данных, над которым производится операция;operation_name
– имя запроса GraphQL (может отсутствовать, если имя запроса не было задано). Рекомендуется указывать имена для всех запросов, чтобы можно было однозначно идентифицировать, к какому запросу относится информация в метрике.
Доступные метрики
tdg_graphql_query_time{alias,schema,entity,operation_name}
– время обработки запроса на получение данных (query) в миллисекундах. Тип метрики: histogram;tdg_graphql_mutation_time{alias,schema,entity,operation_name}
– время обработки запроса на изменения данных (mutation) в миллисекундах. Тип метрики: histogram;tdg_graphql_query_fail{alias,schema,entity,operation_name}
– количество запросов на получение данных (query) c ошибками. Тип метрики: counter;tdg_graphql_mutation_fail{alias,schema,entity,operation_name}
– количество запросов на изменение данных (mutation) c ошибками. Тип метрики: counter.
Бакеты (bucket) гистограмм распределены в диапазоне от 0 до 1000 миллисекунд с интервалом в 100 миллисекунд (см. пример ниже).
Вызов сервиса аналогичен запросу (query) для типа данных.
В тег entity
при этом будет записано имя сервиса.
Каждый запрос может состоять из нескольких операций. В одной операции могут быть получены или модифицированы несколько типов данных. По каждому типу данных будет выдана отдельная метрика со своим набором тегов.
Пример:
# HELP tdg_graphql_query_time Graphql query execution time
# TYPE tdg_graphql_query_time histogram
tdg_graphql_query_time_bucket{alias="core_1",schema="default",entity="City",operation_name="GetCity",le="100"} 25
tdg_graphql_query_time_bucket{alias="core_1",schema="default",entity="City",operation_name="GetCity",le="200"} 25
tdg_graphql_query_time_bucket{alias="core_1",schema="default",entity="City",operation_name="GetCity",le="300"} 25
tdg_graphql_query_time_bucket{alias="core_1",schema="default",entity="City",operation_name="GetCity",le="400"} 25
tdg_graphql_query_time_bucket{alias="core_1",schema="default",entity="City",operation_name="GetCity",le="500"} 25
tdg_graphql_query_time_bucket{alias="core_1",schema="default",entity="City",operation_name="GetCity",le="600"} 25
tdg_graphql_query_time_bucket{alias="core_1",schema="default",entity="City",operation_name="GetCity",le="700"} 25
tdg_graphql_query_time_bucket{alias="core_1",schema="default",entity="City",operation_name="GetCity",le="800"} 25
tdg_graphql_query_time_bucket{alias="core_1",schema="default",entity="City",operation_name="GetCity",le="900"} 25
tdg_graphql_query_time_bucket{alias="core_1",schema="default",entity="City",operation_name="GetCity",le="1000"} 25
tdg_graphql_query_time_bucket{alias="core_1",schema="default",entity="City",operation_name="GetCity",le="+Inf"} 25
tdg_graphql_query_time_sum{alias="core_1",schema="default",entity="City",operation_name="GetCity"} 55
tdg_graphql_query_time_count{alias="core_1",schema="default",entity="City",operation_name="GetCity"} 25
# HELP tdg_graphql_mutation_time Graphql mutation execution time
# TYPE tdg_graphql_mutation_time histogram
tdg_graphql_mutation_time_bucket{alias="core_1",schema="default",entity="City",operation_name="InsCity",le="100"} 16
tdg_graphql_mutation_time_bucket{alias="core_1",schema="default",entity="City",operation_name="InsCity",le="200"} 16
tdg_graphql_mutation_time_bucket{alias="core_1",schema="default",entity="City",operation_name="InsCity",le="300"} 16
tdg_graphql_mutation_time_bucket{alias="core_1",schema="default",entity="City",operation_name="InsCity",le="400"} 16
tdg_graphql_mutation_time_bucket{alias="core_1",schema="default",entity="City",operation_name="InsCity",le="500"} 16
tdg_graphql_mutation_time_bucket{alias="core_1",schema="default",entity="City",operation_name="InsCity",le="600"} 16
tdg_graphql_mutation_time_bucket{alias="core_1",schema="default",entity="City",operation_name="InsCity",le="700"} 16
tdg_graphql_mutation_time_bucket{alias="core_1",schema="default",entity="City",operation_name="InsCity",le="800"} 16
tdg_graphql_mutation_time_bucket{alias="core_1",schema="default",entity="City",operation_name="InsCity",le="900"} 16
tdg_graphql_mutation_time_bucket{alias="core_1",schema="default",entity="City",operation_name="InsCity",le="1000"} 16
tdg_graphql_mutation_time_bucket{alias="core_1",schema="default",entity="City",operation_name="InsCity",le="+Inf"} 16
tdg_graphql_mutation_time_sum{alias="core_1",schema="default",entity="City",operation_name="InsCity"} 34
tdg_graphql_mutation_time_count{alias="core_1",schema="default",entity="City",operation_name="InsCity"} 16
# HELP tdg_graphql_query_fail Graphql query fail count
# TYPE tdg_graphql_query_fail counter
tdg_graphql_query_fail{alias="core_1",schema="default",entity="City",operation_name="GetCity"} 2
# HELP tdg_graphql_mutation_fail Graphql mutation fail count
# TYPE tdg_graphql_mutation_fail counter
tdg_graphql_mutation_fail{alias="core_1",schema="default",entity="City",operation_name="InsCity"} 4
Чтобы получить информацию о среднем количестве запросов GraphQL в секунду из Prometheus, воспользуйтесь запросом
rate(tdg_graphql_query_time_count[2m])
Период, по которому вычисляется rate()
(в примере – 2m
),
должен быть как минимум в два раза больше периода сбора метрик.
Если вы добавляете панель на стандартный Grafana Tarantool dashboard,
воспользуйтесь переменной $rate_time_range
.
Среднее время выполнения запроса GraphQL можно получить с помощью
rate(tdg_graphql_query_time_sum[2m])/rate(tdg_graphql_query_time_count[2m])
95-й перцентиль времени выполнения запроса GraphQL можно получить с помощью
histogram_quantile(0.95, sum(rate(tdg_graphql_query_time_bucket[2m])) by (le))
Метрики для задач и отложенных работ¶
Метрики для задач (tasks) и отложенных работ (jobs).
Метрики актуальны только для экземпляров с ролью runner
, так как задачи и отложенные работы
запускаются на этих экземплярах.
Метрики задач имеют теги:
alias
– имя экземпляра, на котором собираются метрики. Имя экземпляра было задано при развертывании кластера;name
– имя задачи;kind
– вид задачи:single_shot
– единоразовая задача;continuous
– непрерывно выполняемая задача;periodical
– задача, выполняемая по расписанию.
Метрики отложенных работ и системных задач имеют только теги alias
и name
.
В TDG cистемные задачи (system task) используются для версионирования.
Доступные метрики
tdg_tasks_started
– число запущенных задач. Тип метрики: counter.tdg_jobs_started
– число запущенных отложенных работ. Тип метрики: counter.tdg_system_tasks_started
– число запущенных системных задач. Тип метрики: counter.Пример:
# HELP tdg_system_tasks_started Total system tasks started # TYPE tdg_system_tasks_started counter tdg_tasks_started{alias="runner_1",name="districts_stat.calc_statistics.call",kind="periodical"} 2 # HELP tdg_jobs_started Total jobs started # TYPE tdg_jobs_started counter tdg_jobs_started{name="succeed",alias="runner_1"} 1 # HELP tdg_system_tasks_started Total system tasks started # TYPE tdg_system_tasks_started counter tdg_system_tasks_started{name="tasks.system.archivation.start",alias="runner_1"} 718
tdg_tasks_failed
– число задач, которые завершились с ошибкой. Тип метрики: counter;tdg_jobs_failed
– число отложенных работ, которые завершились с ошибкой. Тип метрики: counter.Пример:
# HELP tdg_tasks_failed Total tasks failed # TYPE tdg_tasks_failed counter tdg_tasks_succeeded{alias="runner_1",name="districts_stat.calc_statistics.call",kind="periodical"} 1 # HELP tdg_jobs_failed Total jobs failed # TYPE tdg_jobs_failed counter tdg_jobs_failed{name="fail",alias="runner_1"} 2
tdg_tasks_succeeded
– число успешно выполненных задач. Тип метрики: counter;tdg_jobs_succeeded
– число успешно выполненных отложенных работ. Тип метрики: counter;tdg_system_tasks_succeeded
– число успешно выполненных системных задач. Тип метрики: counter.Пример:
# HELP tdg_tasks_succeeded Total tasks succeeded # TYPE tdg_tasks_succeeded counter tdg_tasks_succeeded{alias="runner_1",name="districts_stat.calc_statistics.call",kind="periodical"} 2 # HELP tdg_jobs_succeeded Total jobs succeeded # TYPE tdg_jobs_succeeded counter tdg_jobs_succeeded{name="succeed",alias="runner_1"} 1 # HELP tdg_system_tasks_succeeded Total system tasks succeeded # TYPE tdg_system_tasks_succeeded counter tdg_system_tasks_succeeded{name="tasks.system.archivation.start",alias="runner_1"} 718
tdg_tasks_stopped
– число приостановленных задач. Тип метрики: counter.Пример:
# HELP tdg_tasks_stopped Total tasks stopped # TYPE tdg_tasks_stopped counter tdg_tasks_stopped{alias="runner_1",name="districts_stat.calc_statistics.call",kind="periodical"} 2
tdg_tasks_running
– число задач, запущенных в данный момент. Тип метрики: gauge;tdg_jobs_running
– число отложенных работ, запущенных в данных момент. Тип метрики: gauge;tdg_system_tasks_running
– число системных задач, запущенных в данный момент. Тип метрики: gauge.Пример:
# HELP tdg_tasks_running Currently running tasks # TYPE tdg_tasks_running gauge tdg_tasks_running{alias="runner_1",name="districts_stat.calc_statistics.call",kind="periodical"} 0 # HELP tdg_jobs_running Currently running jobs # TYPE tdg_jobs_running gauge tdg_jobs_running{name="succeed",alias="runner_1"} 0 # HELP tdg_system_tasks_running Currently running system tasks # TYPE tdg_system_tasks_running gauge tdg_system_tasks_running{name="tasks.system.archivation.start",alias="tnt_net_external_1_runner_1_1"} 0
tdg_tasks_execution_time
– время исполнения задачи. Тип метрики: histogram;tdg_jobs_execution_time
– время исполнения отложенной работы. Тип метрики: histogram;tdg_system_tasks_execution_time
– время исполнения системной задачи. Тип метрики: histogram.Бакеты (bucket) гистограмм распределены в диапазоне от 0 до 5 секунд: 0.0001, 0.00025, 0.0005, 0.001, 0.0025, 0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5.
Пример:
# HELP tdg_tasks_execution_time Tasks execution time statistics # TYPE tdg_tasks_execution_time histogram tdg_tasks_execution_time_count{alias="runner_1",name="calc_districts_stat",kind="periodical"} 2 tdg_tasks_execution_time_sum{alias="runner_1",name="calc_districts_stat",kind="periodical"} 0.014632841999969 tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="0.0001",kind="periodical"} 0 tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="0.00025",kind="periodical"} 0 tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="0.0005",kind="periodical"} 0 tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="0.001",kind="periodical"} 0 tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="0.0025",kind="periodical"} 1 tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="0.005",kind="periodical"} 1 tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="0.01",kind="periodical"} 1 tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="0.025",kind="periodical"} 2 tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="0.05",kind="periodical"} 2 tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="0.1",kind="periodical"} 2 tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="0.25",kind="periodical"} 2 tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="0.5",kind="periodical"} 2 tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="1",kind="periodical"} 2 tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="2.5",kind="periodical"} 2 tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="5",kind="periodical"} 2 tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="+Inf",kind="periodical"} 2 # HELP tdg_jobs_execution_time Jobs execution time statistics # TYPE tdg_jobs_execution_time histogram tdg_jobs_execution_time_count{name="succeed",alias="runner_1"} 1 tdg_jobs_execution_time_sum{name="succeed",alias="runner_1"} 1.0725110769272e-05 tdg_jobs_execution_time_bucket{le="0.0001",name="succeed",alias="runner_1"} 1 tdg_jobs_execution_time_bucket{le="0.00025",name="succeed",alias="runner_1"}1 tdg_jobs_execution_time_bucket{le="0.0005",name="succeed",alias="runner_1"} 1 tdg_jobs_execution_time_bucket{le="0.001",name="succeed",alias="runner_1"} 1 tdg_jobs_execution_time_bucket{le="0.0025",name="succeed",alias="runner_1"} 1 tdg_jobs_execution_time_bucket{le="0.005",name="succeed",alias="runner_1"} 1 tdg_jobs_execution_time_bucket{le="0.01",name="succeed",alias="runner_1"} 1 tdg_jobs_execution_time_bucket{le="0.025",name="succeed",alias="runner_1"} 1 tdg_jobs_execution_time_bucket{le="0.05",name="succeed",alias="runner_1"} tdg_jobs_execution_time_bucket{le="0.1",name="succeed",alias="runner_1"} 1 tdg_jobs_execution_time_bucket{le="0.25",name="succeed",alias="runner_1"} 1 tdg_jobs_execution_time_bucket{le="0.5",name="succeed",alias="runner_1"} 1 tdg_jobs_execution_time_bucket{le="1",name="succeed",alias="runner_1"} 1 tdg_jobs_execution_time_bucket{le="2.5",name="succeed",alias="runner_1"} 1 tdg_jobs_execution_time_bucket{le="5",name="succeed",alias="runner_1"} 1 tdg_jobs_execution_time_bucket{le="+Inf",name="succeed",alias="runner_1"} 1 # HELP tdg_system_tasks_execution_time System tasks execution time statistics # TYPE tdg_system_tasks_execution_time histogram tdg_system_tasks_execution_time_count{name="tasks.system.archivation.start",alias="runner_1"} 718 tdg_system_tasks_execution_time_sum{name="tasks.system.archivation.start",alias="runner_1"} 0.052489631809294 tdg_system_tasks_execution_time_bucket{le="0.0001",name="tasks.system.archivation.start",alias="runner_1"} 631 tdg_system_tasks_execution_time_bucket{le="0.00025",name="tasks.system.archivation.start",alias="runner_1"} 715 tdg_system_tasks_execution_time_bucket{le="0.0005",name="tasks.system.archivation.start",alias="runner_1"} 718 tdg_system_tasks_execution_time_bucket{le="0.001",name="tasks.system.archivation.start",alias="runner_1"} 718 tdg_system_tasks_execution_time_bucket{le="0.0025",name="tasks.system.archivation.start",alias="runner_1"} 718 tdg_system_tasks_execution_time_bucket{le="0.005",name="tasks.system.archivation.start",alias="runner_1"} 718 tdg_system_tasks_execution_time_bucket{le="0.01",name="tasks.system.archivation.start",alias="runner_1"} 718 tdg_system_tasks_execution_time_bucket{le="0.025",name="tasks.system.archivation.start",alias="runner_1"} 718 tdg_system_tasks_execution_time_bucket{le="0.05",name="tasks.system.archivation.start",alias="runner_1"} 718 tdg_system_tasks_execution_time_bucket{le="0.1",name="tasks.system.archivation.start",alias="runner_1"} 718 tdg_system_tasks_execution_time_bucket{le="0.25",name="tasks.system.archivation.start",alias="runner_1"} 718 tdg_system_tasks_execution_time_bucket{le="0.5",name="tasks.system.archivation.start",alias="runner_1"} 718 tdg_system_tasks_execution_time_bucket{le="1",name="tasks.system.archivation.start",alias="runner_1"} 718 tdg_system_tasks_execution_time_bucket{le="2.5",name="tasks.system.archivation.start",alias="runner_1"} 718 tdg_system_tasks_execution_time_bucket{le="5",name="tasks.system.archivation.start",alias="runner_1"} 718 tdg_system_tasks_execution_time_bucket{le="+Inf",name="tasks.system.archivation.start",alias="runner_1"} 718
Метрики для кортежей¶
Статистика по операциям поиска кортежей в базе данных, где хранятся пользовательские данные:
tdg_scanned_tuples
– число просканированных кортежей. Тип метрики: summary;tdg_returned_tuples
– число возвращенных кортежей. Тип метрики: histogram;tdg_scanned_tuples_max
– максимальное количество просканированных кортежей. Тип метрики: gauge;tdg_returned_tuples_max
– максимальное количество возвращаемых кортежей. Тип метрики: gauge.
Метрики запросов REST¶
Мониторинг и оценка запросов к данным через REST:
tdg_rest_exec_time
– время исполнения REST-запроса. Тип метрики: summary;tdg_rest_exec_time
– время исполнения REST-запроса. Тип метрики: histogram.
Метрики запросов iproto¶
Мониторинг и оценка запросов к данным через iproto:
tdg_iproto_data_query_exec_time
– время исполнения запроса по протоколу iproto. Тип метрики: summary;tdg_iproto_data_query_exec_time
– время исполнения запроса по протоколу iproto. Тип метрики: histogram.
Метрики файлового коннектора¶
Общая статистика по файловым коннекторам и статистика обработки файлов:
tdg_connector_input_file_processed_count
– общее число обработанных файлов. Тип метрики: counter;tdg_connector_input_file_processed_objects_count
– общее число обработанных объектов. Тип метрики: counter;tdg_connector_input_file_failed_count
– общее число файлов, которые не удалось обработать. Тип метрики: counter;tdg_connector_input_file_size
– размер файла в байтах. Тип метрики: gauge;tdg_connector_input_file_current_bytes_processed
– количество обработанных байтов от текущего файла. Тип метрики: counter;tdg_connector_input_file_current_processed_objects
– число обработанных объектов от текущего файла. Тип метрики: counter.
Метрики expirationd¶
Статистика модуля expirationd (время жизни объектов). Сбор статистики включен по умолчанию.
Тип метрик – counter.
Метрики имеют тег name
– название задачи (task).
Доступные метрики
expirationd_checked_count{name}
– количество кортежей, проверенных на истечениеlifetime_hours
. Включает в себя: - кортежи с истекшимlifetime_hours
(expired); - пропущенные кортежи (skipped);expirationd_expired_count{name}
– количество кортежей c истекшимlifetime_hours
;expirationd_restarts{name}
– количество перезапусков (restart) с начала работы (старта). При старте принимает значение1
.expirationd_working_time{name}
– время исполнения задачи в секундах.
Метрики Kafka¶
В TDG доступен мониторинг сведений о коннекторе Kafka с помощью
librdkafka.
librdkafka
– это реализация С-библиотеки протокола Apache Kafka, которая поддерживает как producer, так и
consumer. Для библиотеки по умолчанию включено регулярное предоставление внутренней статистики.
Интервал обновления метрик можно настроить, используя опцию statistics.interval.ms.
По умолчанию, значение statistics.interval.ms
составляет 15000 миллисекунд.
Диапазон доступных значений для параметра: 0–86400000 мс.
Отключить сбор статистики можно, установив значение 0
.
Полное описание параметров конфигурации для коннектора Kafka приведено в справочнике по настройке коннектора.
Метрики имеют тип gauge
, если не указано иначе.
Имеют префикс tdg_kafka_
, общий для всех метрик Kafka.
Метрики Kafka состоят из нескольких уровней:
общая статистика (Common Statistics);
статистика по брокеру (Brokers);
статистика по топику (Topics);
статистика по разделам топика (Partitions);
статистика группы потребителей (cgrp);
Большая часть операций – это оконные функции, которые применяются на отрезках времени. Поэтому уровни Topics и Brokers также включают в себя раздел про плавающие окна (Rolling Window Statistics), например, скользящую среднюю, наименьшую и наибольшую величины, сумму значений и процентные значения.
Общая статистика¶
Общая статистика по всем брокерам:
tdg_kafka_ts
– внутренние монотонные часы библиотекиlibrdkafka
в микросекундах;tdg_kafka_time
– время с начала эпохи в секундах;tdg_kafka_age
– время существования экземпляра клиента в микросекундах;tdg_kafka_replyq
– количество операций (триггеров, событий и т.д.) в очереди на обслуживание с помощьюrd_kafka_poll()
;tdg_kafka_msg_cnt
– текущее количество сообщений в очереди продюсера;tdg_kafka_msg_size
– текущий общий размер сообщений в очередях продюсера;tdg_kafka_msg_max
– максимальное количество сообщений, разрешенное в очередях продюсера;tdg_kafka_msg_size_max
– общий размер сообщений, разрешенный в очередях продюсера;tdg_kafka_tx
– общее количество запросов, отправленных брокерам Kafka;tdg_kafka_tx_bytes
– общее количество байтов, отправленных брокерам Kafka;tdg_kafka_rx
– общее количество запросов, полученных от брокеров Kafka;tdg_kafka_rx_bytes
– общее количество байтов, полученных от брокеров Kafka;tdg_kafka_txmsgs
– общее количество сообщений, отправленных брокерам Kafka;tdg_kafka_txmsg_bytes
– общее количество байтов сообщений, отправленных брокерам Kafka (включая фрейм – например, фрейм по каждому сообщению и фрейм MessageSet/пакета);tdg_kafka_rxmsgs
– общее количество сообщений, полученных от брокеров Kafka. Не включает в себя сообщения, которые были проигнорированы – например, из-за смещения;tdg_kafka_rxmsg_bytes
– общее количество байтов сообщений (включая фрейм), полученных от брокеров Kafka;tdg_kafka_simple_cnt
– внутреннее отслеживание устаревшего и нового состояния API consumer;tdg_kafka_metadata_cache_cnt
– количество топиков в кэше метаданных.
Плавающее окно (Rolling Window Statistics)¶
Постфиксы для метрик, связанные с оконными функциями. Например, к ним относятся стандартное отклонение, наибольшая и наименьшая величина и процентные значения (процентили). Позволяют получить получать дополнительную информацию о значении некоторых метрик с уровней Topics и Brokers. Полный список доступных метрик вместе с постфиксами указан в описаниях соответствующих уровней.
Переменная {name}
– имя метрики вместе с префиксом tdg_kafka_
.
Например, tdg_kafka_broker_int_latency_max
– наибольшее значение метрики tdg_kafka_broker_int_latency
.
name_min
– наименьшее значение;name_max
– наибольшее значение;name_avg
– среднее значение;name_sum
– сумма значений;name_cnt
– количество выбранных значений;name_stddev
– стандартное отклонение на основе гистограммы;name_hdrsize
– объем памяти Hdr Histogram;name_outofrange
– значения, пропущенные из-за выхода за пределы диапазона гистограммы.
Процентные значения:
p50
– процентиль 0.5;p75
– процентиль 0.75;p90
– процентиль 0.9;p95
– процентиль 0.95;p99
– процентиль 0.99;p99_99
– процентиль 0.9999.
Значения процентилей можно просмотреть для следующих метрик:
уровень Broker –
tdg_kafka_broker_int_latency
,tdg_kafka_broker_outbuf_latency
,tdg_kafka_broker_rtt
,tdg_kafka_broker_throttle
;уровень Topic –
tdg_kafka_topic_batchcnt
,tdg_kafka_topic_batchsize
.
Статистика по брокеру¶
tdg_kafka_broker_stateage
– время с момента последнего изменения состояния брокера в микросекундах;tdg_kafka_broker_outbuf_cnt
– количество запросов, ожидающих отправки брокеру;tdg_kafka_broker_outbuf_msg_cnt
– количество сообщений, ожидающих отправки брокеру;tdg_kafka_broker_waitresp_cnt
– количество запросов на пути к брокеру, ожидающих ответа;tdg_kafka_broker_waitresp_msg_cnt
– количество сообщений на пути к брокеру, ожидающих ответа;tdg_kafka_broker_tx
– общее количество отправленных запросов;tdg_kafka_broker_txbytes
– исходящий трафик в байтах;tdg_kafka_broker_txerrs
– число ошибок при передаче;tdg_kafka_broker_txretries
– общее количество повторных запросов;tdg_kafka_broker_txidle
– время с момента, как был отправлен последний сокет, в микросекундах. Если для текущего подключения еще ничего не отправлялось, имеет значение-1
;tdg_kafka_broker_req_timeouts
– общее количество запросов, время ожидания для которых истекло;tdg_kafka_broker_rx
– общее число полученных ответов;tdg_kafka_broker_rxbytes
– входящий трафик в байтах;tdg_kafka_broker_rxerrs
– число ошибок при получении;tdg_kafka_broker_rxcorriderrs
– общее количество различающихся идентификаторов корреляции в ответе (обычно для запросов с истекшим временем ожидания);tdg_kafka_broker_rxpartial
– общее количество частично полученных MessageSets;tdg_kafka_broker_rxidle
– время с момента получения последнего сокета в микросекундах. Если для текущего соединенния еще нет полученных данных, имеет значение-1
;tdg_kafka_broker_zbuf_grow
– общее количество увеличений размера для буфера декомпрессии;tdg_kafka_broker_buf_grow
– общее количество увеличений размера буфера (deprecated, не используется);tdg_kafka_broker_wakeups
– пробуждения пула потоков брокера;tdg_kafka_broker_connects
– количество попыток соединения. Включает в себя успешные и неудачные попытки, а также количество неудачных попыток разрешения имен;tdg_kafka_broker_disconnects
– количество разорванных соединений, вызванных брокером, сетью, балансировщиком нагрузки и т. д;tdg_kafka_broker_req
– счетчики типа запроса. Ключ объекта – это имя запроса, значение – количество отправленных запросов;tdg_kafka_broker_int_latency
– задержка внутренней очереди продюсера в микросекундах. Метрика используется только вместе с постфиксами из раздела Rolling Window Statistics.Список доступных метрик:
tdg_kafka_broker_int_latency_avg
,tdg_kafka_broker_int_latency_cnt
,tdg_kafka_broker_int_latency_hdrsize
,tdg_kafka_broker_int_latency_max
,tdg_kafka_broker_int_latency_min
,tdg_kafka_broker_int_latency_outofrange
,tdg_kafka_broker_int_latency_stddev
,tdg_kafka_broker_int_latency_sum
;tdg_kafka_broker_outbuf_latency
– задержка внутренней очереди запросов в микросекундах. Можно использовать самостоятельно или вместе с постфиксами из раздела Rolling Window Statistics.Список доступных метрик:
tdg_kafka_broker_outbuf_latency_avg
,tdg_kafka_broker_outbuf_latency_cnt
,tdg_kafka_broker_outbuf_latency_hdrsize
,tdg_kafka_broker_outbuf_latency_max
,tdg_kafka_broker_outbuf_latency_min
,tdg_kafka_broker_outbuf_latency_outofrange
,tdg_kafka_broker_outbuf_latency_stddev
,tdg_kafka_broker_outbuf_latency_sum
;tdg_kafka_broker_rtt
– задержка брокера, время обхода в микросекундах. Можно использовать самостоятельно или вместе с постфиксами из раздела Rolling Window Statistics.Список доступных метрик:
tdg_kafka_broker_rtt_avg
,tdg_kafka_broker_rtt_cnt
,tdg_kafka_broker_rtt_hdrsize
,tdg_kafka_broker_rtt_max
,tdg_kafka_broker_rtt_min
,tdg_kafka_broker_rtt_outofrange
,tdg_kafka_broker_rtt_stddev
,tdg_kafka_broker_rtt_sum
;tdg_kafka_broker_throttle
– время регулирования брокера в миллисекундах. Можно использовать самостоятельно или вместе с постфиксами из раздела Rolling Window Statistics.Список доступных метрик:
tdg_kafka_broker_throttle_avg
,tdg_kafka_broker_throttle_cnt
,tdg_kafka_broker_throttle_hdrsize
,tdg_kafka_broker_throttle_max
,tdg_kafka_broker_throttle_min
,tdg_kafka_broker_throttle_outofrange
,tdg_kafka_broker_throttle_stddev
,tdg_kafka_broker_throttle_sum
.
Статистика по топику¶
tdg_kafka_topic_age
– возраст объекта клиентского топика в миллисекундах;tdg_kafka_topic_metadata_age
– возраст метаданных от брокера для данного топика в миллисекундах;tdg_kafka_topic_batchsize
– размер пакета в байтах. Метрика используется только вместе с постфиксами из раздела Rolling Window Statistics.Список доступных метрик:
tdg_kafka_topic_batchsize_avg
,tdg_kafka_topic_batchsize_cnt
,tdg_kafka_topic_batchsize_hdrsize
,tdg_kafka_topic_batchsize_max
,tdg_kafka_topic_batchsize_min
,tdg_kafka_topic_batchsize_outofrange
,tdg_kafka_topic_batchsize_stddev
,tdg_kafka_topic_batchsize_sum
;tdg_kafka_topic_batchcnt
– счетчик пакетных сообщений. Можно использовать самостоятельно или вместе с постфиксами из раздела Rolling Window Statistics.Список доступных метрик:
tdg_kafka_topic_batchcnt_avg
,tdg_kafka_topic_batchcnt_cnt
,tdg_kafka_topic_batchcnt_hdrsize
,tdg_kafka_topic_batchcnt_max
,tdg_kafka_topic_batchcnt_min
,tdg_kafka_topic_batchcnt_outofrange
,tdg_kafka_topic_batchcnt_stddev
,tdg_kafka_topic_batchcnt_sum
;tdg_kafka_topic_partitions
– разделы. Метрика используется только вместе с постфиксами из раздела Partitions.
Статистика по разделам топика¶
Метрики, связанные с разделами топика. Позволяют получить получать информацию о метрике tdg_kafka_topic_partitions.
tdg_kafka_topic_partitions_broker
– ID брокера, сообщения из раздела которого извлекают в текущий момент;tdg_kafka_topic_partitions_leader
– ID текущего лидера брокеров;tdg_kafka_topic_partitions_desired
– раздел, явно требуемый при применении;tdg_kafka_topic_partitions_unknown
– раздел, который не отображен в метаданных топика брокера;tdg_kafka_topic_partitions_msgq_cnt
– количество сообщений, ожидающих отправки в очереди первого уровня;tdg_kafka_topic_partitions_msgq_bytes
– количество байтов вmsgq_cnt
;tdg_kafka_topic_partitions_xmit_msgq_cnt
– количество сообщений в очереди выборки, готовых к отправке;tdg_kafka_topic_partitions_xmit_msgq_bytes
– количество байтов вxmit_msgq
;tdg_kafka_topic_partitions_fetchq_cnt
– количество предварительно выбранных сообщений в очереди выборки;tdg_kafka_topic_partitions_fetchq_size
– размер очереди выборки в байтах;tdg_kafka_topic_partitions_query_offset
– текущий/последний запрос на логическое смещение;tdg_kafka_topic_partitions_next_offset
– следующее смещение для выборки;tdg_kafka_topic_partitions_app_offset
– смещение в разделе последнего сообщения, переданного приложению, +1;tdg_kafka_topic_partitions_stored_offset
– смещение для фиксации в разделе;tdg_kafka_topic_partitions_committed_offset
– последнее зафиксированное смещение в разделе;tdg_kafka_topic_partitions_eof_offset
– последнее сигнализированное смещениеPARTITION_EOF
;tdg_kafka_topic_partitions_lo_offset
– минимальное доступное смещение для раздела на брокере;tdg_kafka_topic_partitions_hi_offset
– максимальное доступное смещение для раздела на брокере;tdg_kafka_topic_partitions_ls_offset
– последнее стабильное смещение раздела на брокере;tdg_kafka_topic_partitions_consumer_lag
– разница междуhi_offset
илиls_offset
иcommit_offset
;tdg_kafka_topic_partitions_consumer_lag_stored
– разница междуhi_offset
илиls_offset
иstored_offset
;tdg_kafka_topic_partitions_txmsgs
– общее количество отправленных сообщенийtdg_kafka_topic_partitions_txbytes
– общее количество байтов, переданных дляtxmsgs
tdg_kafka_topic_partitions_rxmsgs
– общее количество полученных сообщений, за исключением игнорируемых сообщений;tdg_kafka_topic_partitions_rxbytes
– общее количество байтов, полученных дляrxmsgs
;tdg_kafka_topic_partitions_msgs
– общее количество полученных или общее количество отправленных сообщений;tdg_kafka_topic_partitions_rx_ver_drops
– удаленные устаревшие сообщения;tdg_kafka_topic_partitions_msgs_inflight
– текущее количество сообщений на пути к брокеру или от него (in-flight);tdg_kafka_topic_partitions_next_ack_seq
– следующая ожидаемая подтвержденная последовательность (идемпотентный продюсер);tdg_kafka_topic_partitions_next_err_seq
– следующая ожидаемая последовательность с ошибкой (идемпотентный продюсер);tdg_kafka_topic_partitions_acked_msgid
– ID внутреннего сообщения c последним подтверждением (идемпотентный продюсер).
Статистика группы consumer (cgrp)¶
tdg_kafka_cgrp_stateage
– время с момента последнего изменения состояния в миллисекундах;tdg_kafka_cgrp_rebalance_age
– время с момента последней ребалансировки в миллисекундах;tdg_kafka_cgrp_rebalance_cnt
– общее количество ребалансировок;tdg_kafka_cgrp_assignment_size
– количество разделов для текущего назначения.
Статистика идемпотентного продюсера (EOS)¶
Библиотека librdkafka
поддерживает семантику Exactly-Once Delivery (EOS) для доставки сообщений.
Такая семантика гарантирует, что сообщения будут доставлены строго один раз.
За реализацию семантики отвечает свойство идемпотентности в настройках продюсера и число подтверждений об успешной записи.
tdg_kafka_eos_idemp_stateage
– время с момента последнего изменения состояния ID идемпотентного продюсера (idemp_state
) в миллисекундах;tdg_kafka_eos_txn_stateage
– время с момента последнего изменения состояния транзакционного продюсераtxn_state
в миллисекундах;tdg_kafka_eos_txn_may_enq
– состояние транзакции позволяет добавлять в очередь новые сообщения;tdg_kafka_eos_producer_id
– текущий ID продюсера (или-1
);tdg_kafka_eos_producer_epoch
– текущая эпоха (или-1
);tdg_kafka_eos_epoch_cnt
– число назначений ID продюсера с момента запуска.