2015-05-03 2 views
6

Как вычесть два раза в Grafana? Или добавьте два вместе, разделите друг на друга и т. Д.?? Я нашел неопределенные подсказки в Интернете о том, как принимать различия между тайм-аутами, но ничего, что на самом деле говорит мне, как это сделать. Я использую Grafana v2.0.2 с Influxdb v0.8, и вы неплохо поработали с элементами управления графиками, чтобы обнаружить такие вещи, как оператор difference, который я могу применить, но я понятия не имею, как его использовать. Я попытался найти документацию по этому поводу, но closest I can find в значительной степени молчал по этой теме, а также выглядит немного устаревшим, поскольку интерфейс изменился с тех пор, как были сделаны эти скриншоты.Многозадачные операции в Графане

Спасибо!

+0

С графитом это очень просто. Не знаете, как это сделать с InfluxDB. Место, которое нужно задать, находится в списке рассылки InfluxDB или на их канале irc на freenode. – Torkel

+0

Не могли бы вы объяснить, как это сделать с помощью Graphite? Это было бы полезно, поскольку я мог бы сопоставлять концепции самостоятельно, и я бы, по крайней мере, знал, в какой форме должен быть вопрос, если не ответ. – staticfloat

ответ

6

Эта функция была добавлена ​​в issue 177 of Grafana:

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

grafana - graphite queries

Это работает только в графите (я хотел бы, чтобы работать на приток плохо также)

+0

Отлично, спасибо за скриншот! Можете ли вы немного разъяснить, почему существует разница между притоком и графитом? Являются ли операции серии внутри механизма базы данных? Мне это кажется странным, поскольку я предполагаю, что все будет намного лучше, если бы клиенты выполнили манипуляции с данными, но потом я не писал графану. : P – staticfloat

+0

ну, я не проектировал графану, поэтому я не могу сказать вам, почему .. может быть, потому что запросы напрямую отправляются на уровень tghe DB? – XFMoulet

5

InfluxDB v0.12 поддержки следующие операции:

арифметической операции на агрегацию функция:

SELECT 10* MEAN(usage_system) AS avg 
FROM cpu WHERE time > now() - 10s; 

или арифметическая операция между поля:

SELECT usage_system + usage_user AS avg 
FROM cpu WHERE time > now() - 10s; 

и самое главное вы можете выполнить арифметическую операцию между результатами функций агрегации:

SELECT MEAN(usage_system) + MEAN(usage_user) AS avg 
FROM cpu 
    WHERE time > now() - 10s 
    GROUP BY host; 

Пришло not supported by Grafana GUI editor еще (но вы можете записать его в ручном режиме).

3

Другим возможным решением (которое я только пробовал с графитом) является использование функций sumSeries и scale. Для того, чтобы добавить два временных Seriers вместе, сделать

sumSeries(first.time.series, second.time.series) 

и получить разницу делают

sumSeries(first.time.series, scale(second.time.series, -1)) 

Это должно быть сделано с помощью текстового редактора для метрик.