Метрики 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_broker_state– состояние брокера. Доступно с версии 2.16.0. Возможные значения:INIT(1),DOWN(2),CONNECT(3),AUTH(4),APIVERSION_QUERY(5),AUTH_HANDSHAKE(6),UP(7),UPDATE(8),UNKNOWN(-1);tdg_kafka_broker_source– источник брокера. Доступно с версии 2.16.0. Возможные значения:learned(1),configured(2),internal(3),logical(4),unknown(-1).
Статистика по топику¶
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– общее количество байтов, переданных дляtxmsgstdg_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– количество разделов для текущего назначения.tdg_kafka_cgrp_state– состояние обработчика локальной группы consumer. Доступно с версии 2.16.0. Возможные значения:init(1),term(2),query-coord(3),wait-coord(4),wait-broker(5),wait-broker-transport(6),up(7),unknown(-1);tdg_kafka_cgrp_join_state– состояние присоединения обработчика локальной группы consumer. Доступно с версии 2.16.0. Возможные значения:init(1),wait-join(2),wait-metadata(3),wait-sync(4),wait-assign-call(5),wait-unassign-call(6),wait-unassign-to-complete(7),wait-incr-unassign-to-complete(8),steady(9),unknown(-1).
Статистика идемпотентного продюсера (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 продюсера с момента запуска.