Count Links to sn07 with TQ < 95% over Time
from(bucket:"yanic_harvester/autogen")
|> range(start:-1h)
|> filter(fn:(r) =>
r._measurement == "link" and
r["source.hostname"] == "sn07" and
r["target.hostname"] !~ /^harvester$/ and
r["target.hostname"] !~ /^sn/
)
|> aggregateWindow(every: 10m, fn: last)
|> group(columns: ["_time"])
|> histogram(
bins: linearBins(start:90.0, width:5.0, count:2)
)
|> pivot(rowKey:["_time"], columnKey: ["le"], valueColumn: "_value")
|> map(fn: (r) => ({
r with
_value: if r["+Inf"] > 0 then r["9.5E+01"]/r["+Inf"] else 0.0
})
)
|> group()
|> keep(columns: ["_time", "_value"])
Some previous State.
from(bucket:"yanic_harvester/autogen")
|> range(start:-100h)
|> filter(fn:(r) =>
r._measurement == "link" and
r["source.hostname"] == "sn07" and
r["target.hostname"] !~ /^harvester$/ and
r["target.hostname"] !~ /^sn/
)
|> aggregateWindow(every: 1h, fn: last)
|> group(columns: ["_time"])
|> histogram(
bins: linearBins(start:0.0, width:5.0, count:21)
)
|> difference()
|> group(columns: ["le"])
Router Traffic:
from(bucket: "yanic_harvester/autogen")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn:(r) =>
r._measurement == "node" and
r._field == "traffic.forward.bytes" and
r.nodeid == "${node}"
)
|> aggregateWindow(every: v.windowPeriod, fn: last)
|>derivative(
unit: v.windowPeriod,
nonNegative: true,
)
Etwas advancetere Abfrage des Traffics
from(bucket: "yanic_harvester/autogen")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn:(r) =>
r._measurement == "node" and
r._field =~ /traffic.[^m].*.bytes/ and
r.nodeid == "${node}"
)
|> derivative(
unit: 1s,
nonNegative: true,
)
|> aggregateWindow(every: v.windowPeriod, fn: mean)
|> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")
|> map(fn: (r) => ({
_time: r._time,
fwd_down: 8.0*r["traffic.forward.bytes"],
fwd_up: -8.0*r["traffic.forward.bytes"],
up: -8.0*r["traffic.tx.bytes"],
down: 8.0*r["traffic.rx.bytes"]
})
)
--
LeMoer - 04 Jul 2021