Я создал такие графики, хотя это потребовало некоторой работы.
Для начала, InfluxDB еще не поддерживает timeShift, как подробно описано здесь:
https://github.com/influxdata/influxdb/issues/142
Поэтому я использовал отдельный HTTP-сервер, названный прокси-сервером Infxdb-Timeshift:
https://github.com/maxsivanov/influxdb-timeshift-proxy
Мой стек выглядел так:
Grafana Dashboard --> influxdb-timeshift-proxy --> InfluxDB
Вот описания двух "->" на схеме выше:
- Значок -> слева: я создал источник данных Grafana, чтобы указать на порт tcp для infxdb-timeshift-proxy.
- Значок -> справа: конфигурация запуска «Influxdb-timeshift-proxy» указывает на сервер InfluxDB.
При этом, чтобы сдвиг времени произошел, SQL-подобные операторы InfluxDB нуждаются в тщательно отформатированном поле 'alias', например:
"SELECT mean( "meanAT" ) AS shift_855296_seconds" blah blah sql blah.
Подробную информацию о синтаксисе см. На странице github infxdb-timeshift-proxy выше.
С помощью панели управления Grafana, чтобы получить две строки (также известные как ряды) на графике временных рядов, я настраиваю два оператора sql. Вышеупомянутый представляет собой один SQL из теста 9-10 дней назад, тогда я бы ВЫБРАЛ другой тест (мой базовый план, который я провел сегодня) со сдвигом во времени 0:
"SELECT mean( "meanAT" ) AS shift_0_seconds" blah blah sql blah.
Итак, это отвечает на ваш вопрос, но его использование ограничено - потому что какой-то бедняк должен вычислить разницу между временем тестирования, а затем набрать результат (shift_855296_seconds) в SQL на панели инструментов.
Почему? потому что по умолчанию панели мониторинга Grafana выполняют операторы SQL, которые (в основном) жестко сконфигурированы в панели мониторинга.
Чтобы Grafana выполняла SQL, где псевдоним сдвига генерируется динамически, я написал панель инструментов Grafana Scripted на javascript. Вот общие инструкции для скриптовых дашбордов:
http://docs.grafana.org/reference/scripting/
К вашему сведению, панели мониторинга Grafana плохо документированы, а «среда разработки» для отладки в лучшем случае примитивна, и мне не удалось заставить работать javascript «require» (который включает сторонние библиотеки). Но на доске обсуждений Grafana есть ограниченная помощь, и она действительно работает - возможно создание очень красивой панели инструментов с переключением времени на лету.
URL-адреса http для запуска / отображения «скриптовой информационной панели» можно легко встроить в другую созданную вами информационную панель. Просто добавьте URL своей скриптовой панели инструментов в «Текстовую панель», используя уценку:
http://docs.grafana.org/features/panels/text/
В конечном счете, InfxDB-timeshift-proxy - временное решение. Я не пробовал, но похоже, что Kapacitor также можно использовать для переключения во времени, как описано здесь:
https://docs.influxdata.com/kapacitor/v1.3/nodes/shift_node/
- Эрик
person
Erik Ostermueller
schedule
14.09.2017