Протокол приема метрических данных

Материал из Документация Ключ-АСТРОМ

На этой странице описан протокол ввода метрических данных в Ключ-АСТРОМ.

Синтаксис

Общий синтаксис ввода метрических данных выглядит следующим образом:

metric.key,dimensions payload

Ключ метрики Необходимо

Ключ к отправляемой вами метрике. Он состоит из разделов, разделенных точками, например: first.second.third.

Допустимые символы: строчные и прописные буквы, цифры, дефисы (-) и подчеркивания (_). Действуют следующие ограничения:

  • Использование нелатинских букв (например, ö) не допускается.
  • Ключи метрик не могут начинаться с цифры или дефиса (-).
  • Разделы не могут начинаться с дефиса (-).
  • Длина ключа должна находиться в диапазоне от 3 до 255 символов.

Метрический ключ заканчивается либо на первой запятой (если вы указываете размеры), либо на первом пробеле (если вы опускаете размеры).

В зависимости от содержимого пакета данных, предоставленный вами ключ может быть добавлен автоматически. Подробнее см. раздел Полезная нагрузка (ниже).

Измерения Необязательно

Если вы хотите опустить измерения, укажите полезную нагрузку сразу после ключа метрики, разделив ее пробелом.

Размеры указываются парами key="value". Можно указать до 50 размеров, разделяемых запятыми (,).

Допустимые символы для ключа: строчные буквы, цифры, дефисы (-), точки (.), двоеточия (:) и подчеркивания (_). Специальные буквы (например, ö) не допускаются. Ключ может иметь следующий формат key.key-section:

Передайте значение измерения в виде строки в кавычках. Если вы хотите передать кавычки (") и/или обратные косые черты (\) в значении измерения, убедитесь, что вы экранируете их обратной косой чертой (\). Например:

workHours,team="devops\\bugfixing",project="\"product\"_improvement" 1000

В настоящее время мы поддерживаем только одно значение измерения для каждого ключа измерения. Если один и тот же ключ измерения указан несколько раз в одном полезном потоке данных (например, ipaddress="192.168.100.1",ipaddress="10.0.0.1"), полезный поток данных считается допустимым, но принимается только одно значение.

Зарезервированные размеры Ключ-АСТРОМ

Ключом dt.entity.<entity_type> является зарезервированный ключ измерения Ключ-АСТРОМ, который связывает метрику с отслеживаемым объектом, указанным в качестве значения измерения (например, измерение dt.entity.host=HOST-06F288EE2A930951 сопоставляет точки данных с хостом с идентификатором HOST-06F288EE2A930951).

Полезная нагрузка Необходимо

Общий формат полезной нагрузки следующий:

format,dataPoint timestamp

Формат Необязательно

Вы можете указать полезную нагрузку в двух форматах: gauge (gauge) или count value (count). Укажите формат перед указанием точек данных и отделите его от точек данных запятой (например, gauge,80.6).

В классических метриках ключ метрики может ссылаться только на один тип полезной нагрузки. Таким образом, предоставленный вами ключ метрики автоматически дополняется суффиксом .count для типа полезной нагрузки, count если ключ уже не заканчивается на .count. И наоборот, если ключ метрики типа gauge заканчивается на .count, он дополняется суффиксом .gauge.

Метрики Grail не учитывают суффиксы .count и .gauge.

gauge count
Для формата индикатора можно указать следующие сводные статистические данные:
  • min
  • max
  • sum
  • count— количество измерений, включенных в точку данных.

Формат можно опустить, если вы используете полезную нагрузку в виде одного значения индикатора. В этом случае предоставленное значение будет использоваться для всех сводок, а счетчик будет установлен на 1.

Например, полезная нагрузка 80.6 равна gauge,min=80.6,max=80.6,sum=80.6,count=1.

Использование формата подсчета автоматически создаст новую метрику с ключом your-metric-key.count. Чтобы указать значение подсчета, необходимо указать поле delta: count,delta=500.

Точки данных этого count типа представляют собой разницу между предыдущей и текущей точками данных. Например, если начальная точка данных имеет значение 500, а вторая точка данных имеет значение 1,000, то фактическое сохраненное значение на момент времени второй точки данных будет равно 1,500

Точка данных Необходимо

В качестве точки данных может использоваться одна или, в случае формата индикатора, несколько мер. Для нескольких мер необходимо предоставить сводные статистические данные. Необходимо указать все сводные данные.

Данные типа count представляют собой разницу между предыдущей и текущей точками данных.

Отметка времени Необязательно

Формат метки времени — миллисекунды UTC. Допустимый диапазон — от 1 часа в прошлом до 10 минут в будущем. Данные с метками времени, выходящими за пределы этого диапазона, отклоняются.

Если метка времени не указана, используется текущая метка времени сервера.

Метаданные Необязательно

Вы можете предоставлять пользовательские метаданные метрик через протокол приема. Протокол приема поддерживает только создание метаданных. Если метаданные для одной и той же метрики указаны несколько раз в полезной нагрузке, используется только первое вхождение. Для просмотра или обновления метаданных используйте либо браузер метрик, либо API настроек.

#metric.key <payload-format> dt.meta.<property>="<value>"

Вместо count<payload-format>metric-key.count. Используйте формат подсчета, и он автоматически создаст новую метрику с ключом gauge.

Доступны следующие свойства. Чтобы указать несколько свойств, разделите их запятой (,).

Ключ Тип Описание
dt.meta.displayName String Название метрики в пользовательском интерфейсе.
dt.meta.description String Краткое описание метрики.
dt.meta.unit String Единица измерения метрики.

Примеры

Общий синтаксис ввода метрических данных выглядит следующим образом:

metric.key,dimensions payload

#metric.key <payload-format> dt.meta.<property1>="<value>", dt.meta.<property2>="<value>"

Размеры

Вот пример метрики, использующей несколько измерений team и businessapp описывающей представленные данные.

mymetric,team=teamA,businessapp=hr 1000

Вот тот же пример с отметкой времени для каждой точки данных.

mymetric,team=teamA,businessapp=hr 1000 1609459200000

Gauge метрики

По умолчанию используется тип данных Gauge, поэтому вы можете оставить его необязательным, если хотите отправлять значения Gauge:

cpu.temperature,hostname=hostA,cpu=1 55

cpu.temperature,hostname=hostA,cpu=2 45

Вот пример gauge, но с использованием соответствующего типа данных.

cpu.temperature,hostname=hostA,cpu=1 gauge,45

Вы также можете предоставить сводную информацию о нескольких точках данных, записанных на стороне клиента, перед отправкой в ​​Ключ-АСТРОМ. В приведенном ниже примере суммируются 2 точки данных, и в одной строке отправляются минимальное, максимальное, суммарное значение и количество точек данных.

cpu.temperature,hostname=hostA,cpu=1 gauge,min=17.1,max=17.3,sum=34.4,count=2

Также можно связать измерения с существующими объектами-хостами, используя dt.entity.host зарезервированный ключ измерения.

cpu.temperature,dt.entity.host=HOST-4587AE40F95AD90D,cpu=1 gauge,min=17.1,max=17.3,sum=34.4,count=2

COUNT метрики

Для метрики типа COUNT дельта рассчитывается и предоставляется клиентом, отправляющим метрику в Ключ-АСТРОМ, что в приведенном ниже примере представляет собой количество новых пользователей, зарегистрированных по регионам.

new_user_count,region=EAST count,delta=50

new_user_count,region=WEST count,delta=150

Создание метаданных

Вот пример предоставления метаданных для метрики cpu.temperature.

#cpu.temperature gauge dt.meta.unit=count,dt.meta.description="The temperature of the CPU",dt.meta.displayname="CPU temperature"