笔记: InfluxDB+Grafana使用示例

470 阅读1分钟

按月统计数据

Grafana变量设置时使用的FLUX语句

import "regexp"

from(bucket: "mybucket")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "cost")
  |> map(fn: (r) => ({r with billingMonth: regexp.replaceAllString(r: /-[0-9]{2}$/, v: r.billingDate, t: "")}))
  |> keep(columns: ["billingMonth"])
  |> keyValues(keyColumns: ["billingMonth"])
  |> distinct(column: "_value")

Grafana图表设置时使用的FLUX语句

import "regexp"

from(bucket: "mybucket")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "cost")
  |> map(fn: (r) => ({r with billingMonth: regexp.replaceAllString(r: /-[0-9]{2}$/, v: r.billingDate, t: "")}))
  |> filter(fn: (r) => r["billingMonth"] == "${billingMonth}")
  |> group(columns: ["billingDate"])
  |> sum(column: "_value")