Grafana — показывать поле даты / времени, НЕ совпадающее с данными, по оси X

#datetime #monitoring #grafana #metrics #x-axis

#datetime #мониторинг #grafana #показатели #ось x

Вопрос:

Версии Grafana 6.x / 7.x, особенно версии 7.x

Если у меня есть следующие данные в индексе Elasticsearch (<—Grafana: на который он ссылается) или в плоском файле (csv)

 Sprint Velocity:    10  20  15  35  22
--------------------------------------
Sprint Name:        S1  S2  S3  S4  S5
Sprint Number:      1   2   3   4   5
  

Затем, в Grafana, возможно ли отображать поле скорости по оси Y и либо Sprint Name/Number по оси X (которые не являются полями, основанными на дате и времени).

В ELK (графический интерфейс Kibana) у меня есть визуализация, которая указывает на индекс Elasticsearch с помощью шаблона индекса (для приведенных выше данных), и я могу легко визуализировать / показывать визуализацию СТРОКИ с осью X (термины: использование имени спринта или номера спринта).

Я пытаюсь добиться того же в Grafana, но испытываю трудности. https://grafana.com/grafana/plugins/natel-plotly-panel тоже не помогло, так как он поддерживается только до версии Grafana 6.

Кроме того, если я использую опцию «series», это не позволяет соединять точки на графике, поскольку Grafana считает, что все они разделяют ряды. Например: если я использую этот подход: https://github.com/gipong/grafana-groupedbarchart-panel Я не могу получить одну метрику (Velocity) по оси Y в виде ЛИНЕЙНОЙ диаграммы и другую метрику (TotalSprintPoints) по оси Y в виде гистограммы.

Комментарии:

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

2. Пользователь может попробовать установить значение оси x для отображения series вместо времени. В Grafana версии 6.7.x вы можете найти эту опцию на вкладке Визуализация (под осью X выберите mode как Series )

3. Здесь упоминается еще один способ для сгруппированных диаграмм: github.com/gipong/grafana-groupedbarchart-panel

Ответ №1:

@AKS ваш пример действительно информационный вы устали от линейной диаграммы? Я могу следовать вашим шагам для гистограммы и т. Д., Когда я перехожу к строке, она не работает. Также мне нравится показывать 4 разные строки на графике, но я получаю только одну.

Комментарии:

1. Добро пожаловать в Grafana. Вот почему я выбрал ELK Kibana. Что именно происходит, когда вы переходите от строки к строке, на самом деле оно должно отображать строку, если у вас нет 4 линий по оси Y, и используемая вами версия Grafana может этого не поддерживать.

Ответ №2:

В Grafana есть несколько возможностей (но это требует некоторой работы). Пользователь может использовать MySQL (в качестве источника данных) для визуализации данных, не относящихся к временным рядам, на оси X. Также можно использовать PostgreSQL.Для получения дополнительной информации прочитайте блог ниже. Спасибо за Шона Брэдли.

https://medium.com/grafana-tutorials/graphing-non-time-series-sql-data-in-grafana-8a0ea8c55ee3

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

Пример данных, отличных от временных рядов, в виде плоской таблицы.

введите описание изображения здесь

И вы хотите видеть эти простые данные в виде графиков, подобных приведенным ниже. введите описание изображения здесь

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

Чтобы проверить это самостоятельно, у вас должна быть база данных MySQL и создать подключение к источнику данных в Grafana. Если у вас нет базы данных MySQL, но у вас есть сервер Grafana, вы можете следовать инструкциям на https://sbcode.net/grafana/create-mysql-data-source / чтобы быстро установить себе сервер MySQL и настроить источник данных MySQL внутри Grafana.

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

На моем сервере MySQL у нас может быть схема с именем exampledb. В нем давайте создадим таблицу с именем flat_table_example

Откройте приглашение MySQL на вашем сервере и создайте таблицу с помощью этого скрипта

 CREATE TABLE `exampledb`.`flat_table_example` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(45) DEFAULT NULL,
  `total` decimal(10,0) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1;
  

Теперь давайте вставим некоторые данные:

 INSERT INTO `exampledb`.`flat_table_example`
(`username`,
`total`)
VALUES
('Cat',56),
('Dog',5),
('Lizard',4),
('Crocodile',2),
('Koala',50),
('Cassowary',2),
('Peacock',1),
('Emu',1),
('Kangaroo',1);
  

Чтобы проверить, существуют ли данные, выполните следующее:

 SELECT * FROM ``exampledb`.`flat_table_example`;
  

** Теперь ** Откройте свой ** Пользовательский интерфейс Grafana **, ** убедитесь, что ** ваш ** Источник данных MySQL ** настроен и подключен **, затем перейдите на вкладку «Исследовать».

Выберите источник данных MySQL, нажмите кнопку Редактировать SQL введите описание изображения здесь

Замените SQL по умолчанию следующим образом,

 SELECT username AS metric, total as value FROM flat_table_example ORDER BY id
  

И выберите Формат как = Таблица, чтобы просмотреть ваши данные в виде таблицы внутри Grafana.
введите описание изображения здесь

Теперь эти данные не являются данными временных рядов, в них нет столбцов временных меток, поэтому Grafana не будет знать, как их отобразить. Итак, вот в чем хитрость,

Измените инструкцию SQL, чтобы,

 SELECT NOW() AS "time", username AS metric, total as value FROM flat_table_example ORDER BY id
  

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

Теперь Grafana может отображать эти данные в виде красивого графика.

Теперь покиньте страницу изучения, перейдите к управлению панелями мониторинга, создайте новую панель мониторинга и добавьте запрос

Выберите источник данных MySQL, нажмите кнопку Редактировать SQL, как и раньше, вставьте новый SQL-скрипт в текстовую область. Но на этот раз оставьте формат как = Временные ряды вместо таблицы введите описание изображения здесь

Теперь перейдите к визуализации, выберите Bar Gauge . Сразу же у вас есть это ниже. введите описание изображения здесь

Вы можете выбрать ориентацию = по горизонтали и единицу измерения поля = процентам (0-100)
введите описание изображения здесь

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

И даже выберите визуализацию графика по умолчанию, но убедитесь, что вы также выбрали режим оси X = Серия
введите описание изображения здесь

Видеоурок Чтобы просмотреть этот видеоурок по просмотру данных, отличных от временных рядов, в Grafana, затем посетите, https://youtu.be/Q6aw9oInsyw

Особая благодарность Шону Б.

Здесь упоминается еще один способ для сгруппированных диаграмм: https://github.com/gipong/grafana-groupedbarchart-panel

Комментарии:

1. Вопрос заключался в том, чтобы иметь линейный график с осью X, отличной от временных рядов.

2. да, и я пробовал оба инструмента, оба инструмента работали, но мы выбрали Kibana, простую в реализации, когда речь идет о записях, отличных от tsdb, по оси X, особенно при работе с несколькими проекциями по оси Y на диаграммах виджетов / визуализаций / панелей мониторинга. На последнем графике показана ось X, не относящаяся к временным рядам. в Grafana вы можете легко изменить тип с Bar на Line, но если у вас есть Y1 в качестве bar, а Y2 в качестве line или Y3 в качестве bar, тогда появляются магические ошибки.