Flux language preview
1. Filtering a time range
pipe-forward operator, built-in functions, and durations
horizon-dark
from(bucket: "example-bucket")
|> range(start: -1h)
|> filter(fn: (r) => r._measurement == "cpu" and r._field == "usage_system")
|> group(columns: ["host"])
|> mean()
|> yield(name: "mean") atom-one-dark
from(bucket: "example-bucket")
|> range(start: -1h)
|> filter(fn: (r) => r._measurement == "cpu" and r._field == "usage_system")
|> group(columns: ["host"])
|> mean()
|> yield(name: "mean") github-dark
from(bucket: "example-bucket")
|> range(start: -1h)
|> filter(fn: (r) => r._measurement == "cpu" and r._field == "usage_system")
|> group(columns: ["host"])
|> mean()
|> yield(name: "mean") dracula
from(bucket: "example-bucket")
|> range(start: -1h)
|> filter(fn: (r) => r._measurement == "cpu" and r._field == "usage_system")
|> group(columns: ["host"])
|> mean()
|> yield(name: "mean") nord
from(bucket: "example-bucket")
|> range(start: -1h)
|> filter(fn: (r) => r._measurement == "cpu" and r._field == "usage_system")
|> group(columns: ["host"])
|> mean()
|> yield(name: "mean") github
from(bucket: "example-bucket")
|> range(start: -1h)
|> filter(fn: (r) => r._measurement == "cpu" and r._field == "usage_system")
|> group(columns: ["host"])
|> mean()
|> yield(name: "mean") 2. Windowed aggregation
aggregateWindow, keywords, and lambda arrows
horizon-dark
import "strings"
option task = {name: "cpu-alert", every: 1m}
from(bucket: "telegraf")
|> range(start: -6h)
|> filter(fn: (r) => r._measurement == "cpu")
|> aggregateWindow(every: 5m, fn: mean, createEmpty: false)
|> filter(fn: (r) => r._value > 80.0) atom-one-dark
import "strings"
option task = {name: "cpu-alert", every: 1m}
from(bucket: "telegraf")
|> range(start: -6h)
|> filter(fn: (r) => r._measurement == "cpu")
|> aggregateWindow(every: 5m, fn: mean, createEmpty: false)
|> filter(fn: (r) => r._value > 80.0) github-dark
import "strings"
option task = {name: "cpu-alert", every: 1m}
from(bucket: "telegraf")
|> range(start: -6h)
|> filter(fn: (r) => r._measurement == "cpu")
|> aggregateWindow(every: 5m, fn: mean, createEmpty: false)
|> filter(fn: (r) => r._value > 80.0) dracula
import "strings"
option task = {name: "cpu-alert", every: 1m}
from(bucket: "telegraf")
|> range(start: -6h)
|> filter(fn: (r) => r._measurement == "cpu")
|> aggregateWindow(every: 5m, fn: mean, createEmpty: false)
|> filter(fn: (r) => r._value > 80.0) nord
import "strings"
option task = {name: "cpu-alert", every: 1m}
from(bucket: "telegraf")
|> range(start: -6h)
|> filter(fn: (r) => r._measurement == "cpu")
|> aggregateWindow(every: 5m, fn: mean, createEmpty: false)
|> filter(fn: (r) => r._value > 80.0) github
import "strings"
option task = {name: "cpu-alert", every: 1m}
from(bucket: "telegraf")
|> range(start: -6h)
|> filter(fn: (r) => r._measurement == "cpu")
|> aggregateWindow(every: 5m, fn: mean, createEmpty: false)
|> filter(fn: (r) => r._value > 80.0) 3. String interpolation
template strings and comments
horizon-dark
// build a dynamic tag filter
host = "server-01"
query = "host = ${host}"
from(bucket: "example-bucket")
|> range(start: -1h)
|> filter(fn: (r) => r.host == host) atom-one-dark
// build a dynamic tag filter
host = "server-01"
query = "host = ${host}"
from(bucket: "example-bucket")
|> range(start: -1h)
|> filter(fn: (r) => r.host == host) github-dark
// build a dynamic tag filter
host = "server-01"
query = "host = ${host}"
from(bucket: "example-bucket")
|> range(start: -1h)
|> filter(fn: (r) => r.host == host) dracula
// build a dynamic tag filter
host = "server-01"
query = "host = ${host}"
from(bucket: "example-bucket")
|> range(start: -1h)
|> filter(fn: (r) => r.host == host) nord
// build a dynamic tag filter
host = "server-01"
query = "host = ${host}"
from(bucket: "example-bucket")
|> range(start: -1h)
|> filter(fn: (r) => r.host == host) github
// build a dynamic tag filter
host = "server-01"
query = "host = ${host}"
from(bucket: "example-bucket")
|> range(start: -1h)
|> filter(fn: (r) => r.host == host)