Данные счетчика запросов Grafana / InfluxDB с временным диапазоном

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

Я пробовал использовать функцию РАЗНИЦА, но график показывает правильное значение только в течение 10 секунд, а затем отображается как ноль.

как правильно этого добиться?

Пример:

T1 : 10
T1+10minutes : 12

Я хочу видеть график как 2 между T2 и T1 (10 минут), в моем случае он показывает 2 в течение 10 секунд, а затем сбрасывается до нуля.

Я использую приведенный ниже запрос притока / графаны

select difference(sum("Counter_Metrics")) FROM "My_Measurement" WHERE $timeFilter GROUP BY time(10s), host fill(null)

заранее спасибо


person user3435964    schedule 27.02.2018    source источник
comment
Если честно, не могу понять ваш вопрос. Что вы пытаетесь визуализировать? Что означает тип данных счетчика? Вы пытаетесь показать прирост значения, а не само значение?   -  person WindyFields    schedule 28.02.2018
comment
На краях временного диапазона могут появиться нули - две точки, необходимые для вычисления разницы. Есть ли более новая точка данных после T1 + 10 минут?   -  person Yuri Lachin    schedule 28.02.2018
comment
@WindyFields да, это правильно, поскольку мое приложение не сбрасывает счетчик, я хочу показать приращение, а не фактическое значение   -  person user3435964    schedule 28.02.2018
comment
@YuriLachin да, после T1 + 10min появится более новая точка данных с новым значением. Я хочу видеть только разницу между метками времени   -  person user3435964    schedule 28.02.2018
comment
Я подозреваю, что это может быть связано с группировкой по временному шагу. Если ваши данные имеют интервал точек данных 10 минут, и вы группируете по 10 секундам, большинство интервалов будут пустыми. Можете ли вы попробовать использовать время GROUP BY (10 мин)? Также вам действительно нужна sum () внутри разницы ()? Я не ожидал, что вообще никакой функции или last () ...   -  person Yuri Lachin    schedule 01.03.2018


Ответы (1)


Если все, что вам нужно, это просто разница между текущим и предыдущим значениями счетчика с течением времени (по сути, приращение значения), тогда просто используйте функцию DIFFERENCE без каких-либо SUM:

SELECT * FROM api_calls
name: api_calls
time                         value
----                         -----
2018-03-02T17:22:53.5335191Z 1
2018-03-02T17:22:56.3249691Z 2
2018-03-02T17:22:59.619759Z  4
2018-03-02T17:23:01.6130663Z 6
2018-03-02T17:23:04.1959738Z 7

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

Вызов DIFFERENCE даст мне приращение счетчика в отчете о показателях (по метке времени):

SELECT DIFFERENCE(value) FROM api_calls
name: api_calls
time                         difference
----                         ----------
2018-03-02T17:22:56.3249691Z 1
2018-03-02T17:22:59.619759Z  2
2018-03-02T17:23:01.6130663Z 2
2018-03-02T17:23:04.1959738Z 1
person WindyFields    schedule 02.03.2018