Grafana Flux - Получение прироста значения в час

Рейтинг: 0Ответов: 1Опубликовано: 03.03.2023

У меня есть метрика, которая собирается раз в минуту. Мне нужно получить число (на панели Legend или отдельным графиком) где указывалось бы значение выражения (последнее значение - первое значение) / время интервала (сек) * 3600 т.е. скорость изменения в час

Но я не пойму как работает aggregateWindow. Следующее выражение (тут min/max) не работает:

from(bucket: "jmeter")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)  
|> filter(fn: (r) => r["_measurement"] =~ /${stand:pipe}/)  
|> filter(fn: (r) => r["_field"] == "offer_count")  
|> aggregateWindow(every: v.windowPeriod, fn: (max-min)/v.windowPeriod)  
|> yield(name: "offer_count")

Ответы

▲ 0

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

Пример использования функции можно подсмотреть во встроенном (дефолтном) дашборде influxdb:

from(bucket: v.bucket)
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r._measurement == "http_api_requests_total")
  |> filter(fn: (r) => r.path == "/api/v2/query")
  |> filter(fn: (r) => r._field == "counter")
  |> derivative(unit: v.windowPeriod, nonNegative: true)
  |> yield(name: "derivative")

Вместо плавающего окна unit: v.windowPeriod можно задать жестко unit: 1h