content/flux/v0/stdlib/contrib/bonitoo-io/tickscript/alert.md
tickscript.alert() identifies events of varying severity levels
and writes them to the statuses measurement in the InfluxDB _monitoring
system bucket.
This function is comparable to
TICKscript alert().
(
<-tables: stream[M],
check: {A with tags: E, _type: D, _check_name: C, _check_id: B},
?crit: (r: {F with _time: H, _measurement: G}) => bool,
?details: (r: {I with id: J, _check_name: C, _check_id: B}) => K,
?id: (r: {I with _check_name: C, _check_id: B}) => J,
?info: (r: {F with _time: H, _measurement: G}) => bool,
?message: (
r: {
F with
_type: D,
_time: H,
_time: time,
_source_timestamp: int,
_source_measurement: G,
_measurement: G,
_measurement: string,
_level: string,
_check_name: C,
_check_id: B,
},
) => L,
?ok: (r: {F with _time: H, _measurement: G}) => bool,
?topic: string,
?warn: (r: {F with _time: H, _measurement: G}) => bool,
) => stream[{
F with
_type: D,
_time: H,
_time: time,
_source_timestamp: int,
_source_measurement: G,
_message: L,
_measurement: G,
_measurement: string,
_level: string,
_check_name: C,
_check_id: B,
}] where E: Record, I: Record, M: Record
{{% caption %}} For more information, see Function type signatures. {{% /caption %}}
({{< req >}})
InfluxDB check data.
See tickscript.defineCheck().
Function that returns the InfluxDB check ID provided by the check record.
Default is (r) => "${r._check_id}".
Function to return the InfluxDB check details using data from input rows.
Default is (r) => "".
Function to return the InfluxDB check message using data from input rows.
Default is (r) => "Threshold Check: ${r._check_name} is: ${r._level}".
Predicate function to determine crit status. Default is (r) => false.
Predicate function to determine warn status. Default is (r) => false.
Predicate function to determine info status. Default is (r) => false.
Predicate function to determine ok status. Default is (r) => true.
Check topic. Default is "".
Input data. Default is piped-forward data (<-).
import "contrib/bonitoo-io/tickscript"
option task = {name: "Example task", every: 1m}
check = tickscript.defineCheck(id: "000000000000", name: "Errors", type: "threshold")
from(bucket: "example-bucket")
|> range(start: -task.every)
|> filter(fn: (r) => r._measurement == "errors" and r._field == "value")
|> count()
|> tickscript.alert(
check: {check with _check_id: "task/${r.service}"},
message: "task/${r.service} is ${r._level} value: ${r._value}",
crit: (r) => r._value > 30,
warn: (r) => r._value > 20,
info: (r) => r._value > 10,
)