Протокол приема метрических данных
На этой странице описан протокол ввода метрических данных в Ключ-АСТРОМ.
Синтаксис
Общий синтаксис ввода метрических данных выглядит следующим образом:
| 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 |
|---|---|
Для формата индикатора можно указать следующие сводные статистические данные:
Формат можно опустить, если вы используете полезную нагрузку в виде одного значения индикатора. В этом случае предоставленное значение будет использоваться для всех сводок, а счетчик будет установлен на Например, полезная нагрузка |
Использование формата подсчета автоматически создаст новую метрику с ключом your-metric-key.count. Чтобы указать значение подсчета, необходимо указать поле delta: count,delta=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" |