TDG Documentation portal logo
Помощь
Обновлена 22 июня 2026 г. в 15:31

Метрики TDG

Мониторинг и оценка запросов 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 histogramtdg_graphql_query_time_bucket{alias="core_1",schema="default",entity="City",operation_name="GetCity",le="100"} 25tdg_graphql_query_time_bucket{alias="core_1",schema="default",entity="City",operation_name="GetCity",le="200"} 25tdg_graphql_query_time_bucket{alias="core_1",schema="default",entity="City",operation_name="GetCity",le="300"} 25tdg_graphql_query_time_bucket{alias="core_1",schema="default",entity="City",operation_name="GetCity",le="400"} 25tdg_graphql_query_time_bucket{alias="core_1",schema="default",entity="City",operation_name="GetCity",le="500"} 25tdg_graphql_query_time_bucket{alias="core_1",schema="default",entity="City",operation_name="GetCity",le="600"} 25tdg_graphql_query_time_bucket{alias="core_1",schema="default",entity="City",operation_name="GetCity",le="700"} 25tdg_graphql_query_time_bucket{alias="core_1",schema="default",entity="City",operation_name="GetCity",le="800"} 25tdg_graphql_query_time_bucket{alias="core_1",schema="default",entity="City",operation_name="GetCity",le="900"} 25tdg_graphql_query_time_bucket{alias="core_1",schema="default",entity="City",operation_name="GetCity",le="1000"} 25tdg_graphql_query_time_bucket{alias="core_1",schema="default",entity="City",operation_name="GetCity",le="+Inf"} 25tdg_graphql_query_time_sum{alias="core_1",schema="default",entity="City",operation_name="GetCity"} 55tdg_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 histogramtdg_graphql_mutation_time_bucket{alias="core_1",schema="default",entity="City",operation_name="InsCity",le="100"} 16tdg_graphql_mutation_time_bucket{alias="core_1",schema="default",entity="City",operation_name="InsCity",le="200"} 16tdg_graphql_mutation_time_bucket{alias="core_1",schema="default",entity="City",operation_name="InsCity",le="300"} 16tdg_graphql_mutation_time_bucket{alias="core_1",schema="default",entity="City",operation_name="InsCity",le="400"} 16tdg_graphql_mutation_time_bucket{alias="core_1",schema="default",entity="City",operation_name="InsCity",le="500"} 16tdg_graphql_mutation_time_bucket{alias="core_1",schema="default",entity="City",operation_name="InsCity",le="600"} 16tdg_graphql_mutation_time_bucket{alias="core_1",schema="default",entity="City",operation_name="InsCity",le="700"} 16tdg_graphql_mutation_time_bucket{alias="core_1",schema="default",entity="City",operation_name="InsCity",le="800"} 16tdg_graphql_mutation_time_bucket{alias="core_1",schema="default",entity="City",operation_name="InsCity",le="900"} 16tdg_graphql_mutation_time_bucket{alias="core_1",schema="default",entity="City",operation_name="InsCity",le="1000"} 16tdg_graphql_mutation_time_bucket{alias="core_1",schema="default",entity="City",operation_name="InsCity",le="+Inf"} 16tdg_graphql_mutation_time_sum{alias="core_1",schema="default",entity="City",operation_name="InsCity"} 34tdg_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 countertdg_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 countertdg_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 countertdg_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 countertdg_jobs_started{name="succeed",alias="runner_1"} 1# HELP tdg_system_tasks_started Total system tasks started# TYPE tdg_system_tasks_started countertdg_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 countertdg_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 countertdg_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 countertdg_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 countertdg_jobs_succeeded{name="succeed",alias="runner_1"} 1# HELP tdg_system_tasks_succeeded Total system tasks succeeded# TYPE tdg_system_tasks_succeeded countertdg_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 countertdg_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 gaugetdg_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 gaugetdg_jobs_running{name="succeed",alias="runner_1"} 0# HELP tdg_system_tasks_running Currently running system tasks# TYPE tdg_system_tasks_running gaugetdg_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 histogramtdg_tasks_execution_time_count{alias="runner_1",name="calc_districts_stat",kind="periodical"} 2tdg_tasks_execution_time_sum{alias="runner_1",name="calc_districts_stat",kind="periodical"} 0.014632841999969tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="0.0001",kind="periodical"} 0tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="0.00025",kind="periodical"} 0tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="0.0005",kind="periodical"} 0tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="0.001",kind="periodical"} 0tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="0.0025",kind="periodical"} 1tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="0.005",kind="periodical"} 1tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="0.01",kind="periodical"} 1tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="0.025",kind="periodical"} 2tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="0.05",kind="periodical"} 2tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="0.1",kind="periodical"} 2tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="0.25",kind="periodical"} 2tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="0.5",kind="periodical"} 2tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="1",kind="periodical"} 2tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="2.5",kind="periodical"} 2tdg_tasks_execution_time_bucket{alias="runner_1",name="calc_districts_stat",le="5",kind="periodical"} 2tdg_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 histogramtdg_jobs_execution_time_count{name="succeed",alias="runner_1"} 1tdg_jobs_execution_time_sum{name="succeed",alias="runner_1"} 1.0725110769272e-05tdg_jobs_execution_time_bucket{le="0.0001",name="succeed",alias="runner_1"} 1tdg_jobs_execution_time_bucket{le="0.00025",name="succeed",alias="runner_1"}1tdg_jobs_execution_time_bucket{le="0.0005",name="succeed",alias="runner_1"} 1tdg_jobs_execution_time_bucket{le="0.001",name="succeed",alias="runner_1"} 1tdg_jobs_execution_time_bucket{le="0.0025",name="succeed",alias="runner_1"} 1tdg_jobs_execution_time_bucket{le="0.005",name="succeed",alias="runner_1"} 1tdg_jobs_execution_time_bucket{le="0.01",name="succeed",alias="runner_1"} 1tdg_jobs_execution_time_bucket{le="0.025",name="succeed",alias="runner_1"} 1tdg_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"} 1tdg_jobs_execution_time_bucket{le="0.25",name="succeed",alias="runner_1"} 1tdg_jobs_execution_time_bucket{le="0.5",name="succeed",alias="runner_1"} 1tdg_jobs_execution_time_bucket{le="1",name="succeed",alias="runner_1"} 1tdg_jobs_execution_time_bucket{le="2.5",name="succeed",alias="runner_1"} 1tdg_jobs_execution_time_bucket{le="5",name="succeed",alias="runner_1"} 1tdg_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 histogramtdg_system_tasks_execution_time_count{name="tasks.system.archivation.start",alias="runner_1"} 718tdg_system_tasks_execution_time_sum{name="tasks.system.archivation.start",alias="runner_1"} 0.052489631809294tdg_system_tasks_execution_time_bucket{le="0.0001",name="tasks.system.archivation.start",alias="runner_1"} 631tdg_system_tasks_execution_time_bucket{le="0.00025",name="tasks.system.archivation.start",alias="runner_1"} 715tdg_system_tasks_execution_time_bucket{le="0.0005",name="tasks.system.archivation.start",alias="runner_1"} 718tdg_system_tasks_execution_time_bucket{le="0.001",name="tasks.system.archivation.start",alias="runner_1"} 718tdg_system_tasks_execution_time_bucket{le="0.0025",name="tasks.system.archivation.start",alias="runner_1"} 718tdg_system_tasks_execution_time_bucket{le="0.005",name="tasks.system.archivation.start",alias="runner_1"} 718tdg_system_tasks_execution_time_bucket{le="0.01",name="tasks.system.archivation.start",alias="runner_1"} 718tdg_system_tasks_execution_time_bucket{le="0.025",name="tasks.system.archivation.start",alias="runner_1"} 718tdg_system_tasks_execution_time_bucket{le="0.05",name="tasks.system.archivation.start",alias="runner_1"} 718tdg_system_tasks_execution_time_bucket{le="0.1",name="tasks.system.archivation.start",alias="runner_1"} 718tdg_system_tasks_execution_time_bucket{le="0.25",name="tasks.system.archivation.start",alias="runner_1"} 718tdg_system_tasks_execution_time_bucket{le="0.5",name="tasks.system.archivation.start",alias="runner_1"} 718tdg_system_tasks_execution_time_bucket{le="1",name="tasks.system.archivation.start",alias="runner_1"} 718tdg_system_tasks_execution_time_bucket{le="2.5",name="tasks.system.archivation.start",alias="runner_1"} 718tdg_system_tasks_execution_time_bucket{le="5",name="tasks.system.archivation.start",alias="runner_1"} 718tdg_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]{.title-ref}.
  • expirationd_working_time{name} - время исполнения задачи в секундах.

Метрики Kafka

В TDG доступен мониторинг сведений о коннекторе Kafka с помощью librdkafka. librdkafka – это реализация С-библиотеки протокола Apache Kafka, которая поддерживает как producer, так и consumer. Для библиотеки по умолчанию включено регулярное предоставление внутренней статистики.

Интервал обновления метрик можно настроить, используя опцию statistics.interval.ms. По умолчанию, значение statistics.interval.ms составляет 15000 миллисекунд. Диапазон доступных значений для параметра: 0–86400000 мс. Отключить сбор статистики можно, установив значение [0]{.title-ref}.

Полное описание параметров конфигурации для коннектора Kafka приведено в справочнике по настройке коннектора.

Метрики имеют тип gauge, если не указано иначе. Имеют префикс tdg_kafka_, общий для всех метрик Kafka.

Метрики Kafka состоят из нескольких уровней:

Большая часть операций - это оконные функции, которые применяются на отрезках времени. Поэтому уровни 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 - общее количество байтов, переданных для 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 - количество разделов для текущего назначения.
  • 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 продюсера с момента запуска.