Измерения временных рядов

В разделе Введение во временные ряды вводится понятие меток (labels), также называемых тегами (tags):

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

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

Temperature by location

Обычный случай — выполнение одного запроса для измерения с одним или несколькими дополнительными свойствами в качестве измерений. Например, запрос измерения температуры вместе со свойством местоположения. В этом случае из этого единственного запроса возвращается несколько рядов, и каждый ряд имеет уникальное местоположение в качестве измерения.

Чтобы идентифицировать уникальные ряды внутри набора временных рядов, Grafana хранит измерения в метках.

Метки

Каждый временный ряд в Grafana опционально имеет метки. Метки — это набор пар ключ/значение для идентификации измерений. Примеры меток: {location=us} или {country=us,state=ma,city=boston}. Внутри набора временных рядов комбинация его имени и меток идентифицирует каждый ряд. Например, temperature {country=us,state=ma,city=boston} может идентифицировать ряд значений температуры для города Бостон в США.

Различные источники данных временных рядов хранят измерения нативно или имеют общие шаблоны хранения, позволяющие извлекать данные в измерения.

Базы данных временных рядов (TSDB) обычно нативно поддерживают размерность. Prometheus также хранит измерения в метках. В таких TSDB, как Graphite или OpenTSDB, вместо этого используется термин теги.

В табличных базах данных, таких как SQL, эти измерения обычно являются параметрами GROUP BY запроса.

Несколько измерений в табличном формате

В SQL или подобных SQL базах данных, возвращающих табличные ответы, дополнительные измерения обычно представлены в виде столбцов в таблице ответа на запрос.

Одно измерение

Например, рассмотрим запрос вида:

SQL
SELECT BUCKET(StartTime, 1h), AVG(Temperature) AS Temp, Location FROM T
  GROUP BY BUCKET(StartTime, 1h), Location
  ORDER BY time asc

Этот запрос вернёт таблицу с тремя столбцами с типами данных time, number и string соответственно:

StartTime Temp Location
09:00 24 LGA
09:00 20 BOS
10:00 26 LGA
10:00 22 BOS

Табличный формат — это длинный формат временного ряда, также называемый tall. В нём повторяются метки времени и повторяются значения в столбце Location. В этом случае в наборе есть два временных ряда, которые будут идентифицированы как Temp {Location=LGA} и Temp {Location=BOS}.

Отдельные временные ряды из набора извлекаются путём использования столбца типа time StartTime в качестве временного индекса временного ряда, столбца с числовым типом Temp в качестве имени ряда и имени и значений столбца строкового типа Location для построения меток, например Location=LGA.

Несколько измерений

Если запрос изменить так, чтобы выбирать и группировать более чем по одному строковому столбцу, например GROUP BY BUCKET(StartTime, 1h), Location, Sensor, то добавляется дополнительное измерение:

StartTime Temp Location Sensor
09:00 24 LGA A
09:00 24.1 LGA B
09:00 20 BOS A
09:00 20.2 BOS B
10:00 26 LGA A
10:00 26.1 LGA B
10:00 22 BOS A
10:00 22.2 BOS B

В этом случае метки, представляющие измерения, будут иметь два ключа на основе двух строковых столбцов Location и Sensor. Эти данные дают четыре ряда: Temp {Location=LGA,Sensor=A}, Temp {Location=LGA,Sensor=B}, Temp {Location=BOS,Sensor=A} и Temp {Location=BOS,Sensor=B}.

Note

Более одного измерения в настоящее время поддерживается только в запросах Logs в сервисе Azure Monitor начиная с версии 7.1.

Note

Несколько измерений не поддерживаются способом, который отображается на несколько оповещений в Grafana, — вместо этого они рассматриваются как несколько условий для одного оповещения. Дополнительные сведения см. в документации по созданию оповещений с несколькими рядами.

Несколько значений

В случае источников данных, подобных SQL, можно выбрать более одного числового столбца, с дополнительными строковыми столбцами в качестве измерений или без них. Например, AVG(Temperature) AS AvgTemp, MAX(Temperature) AS MaxTemp. Это в сочетании с несколькими измерениями может дать очень много рядов. Выбор нескольких значений в настоящее время предназначен для использования только с визуализацией.

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