Метрики TDG | Tdg

Версия:

2.x
Документация на русском языке
поддерживается сообществом

Метрики 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 состоят из нескольких уровней:

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

Нашли ответ на свой вопрос?
Обратная связь