Hello friends, I have the following problem, my query works normally until the value of the variable becomes critical, as I am new to FLUX programming, I would like to know if the standard code contains any errors, below it and I have not changed anything.
Note: when I test send a test email through the Note, everything is correct (email, MailGun token), it arrives normally, but not through the script.
If you can shed some light, thanks in advance!
import "strings"
import "regexp"
import "influxdata/influxdb/secrets"
import "influxdata/influxdb/schema"
import "influxdata/influxdb/monitor"
import "http"
import "experimental"
option task = {name: "Notebook Task for ogc71l9675e6", every: 10m, offset: 1s}
option v = {timeRangeStart: -1h, timeRangeStop: now()}
check = {
_check_id: "ogc71l9675e6",
_check_name: "Notebook Generated Check",
_type: "custom",
tags: {},
}
notification = {
_notification_rule_id: "ogc71l9675e6",
_notification_rule_name: "Notebook Generated Rule",
_notification_endpoint_id: "ogc71l9675e6",
_notification_endpoint_name: "Notebook Generated Endpoint",
}
task_data =
from(bucket: "teste2")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "xxxxx")
|> filter(fn: (r) => r["L1"] == "xxxx")
|> filter(fn: (r) => r["_field"] == "xxxxx" or r["_field"] == "xxxxx")
|> filter(
fn:
(r) =>
r["id"]
==
"ns=2;s=xxxxxx.PLC.Program_blocks.xxxxxx.Dbs.xxxxxx.CorrenteMoinho",
)
trigger = (r) => r["xxxxxxx_xxxx"] > 100
messageFn = (r) =>
"${strings.title(v: r._type)} for ${r._source_measurement} triggered at ${time(
v: r._source_timestamp,
)}!"
apiKey = secrets.get(key: "MailGun")
auth = http.basicAuth(u: "api", p: "${apiKey}")
task_data
|> schema["fieldsAsCols"]()
|> set(
key: "_notebook_link",
value: "http://xxxx.xxxx.xxxx:8086/orgs/xxxxxx/notebooks/xxxxxxx",
)
|> filter(fn: (r) => r["_measurement"] == "xxxxxxx")
|> monitor["check"](data: check, messageFn: messageFn, crit: trigger)
|> filter(fn: trigger)
|> keep(columns: ["_value", "_time", "_measurement"])
|> limit(n: 1, offset: 0)
|> monitor["notify"](
data: notification,
endpoint:
http.endpoint(
url:
"https://api.mailgun.net/v3/xxxxxxxx.mailgun.org/messages",
)(
mapFn: (r) => {
data =
strings.joinStr(
arr: [
"from=mailgun@xxxxxxxxxxxx.mailgun.org",
"to=xxx-xxxx@hotmail.com",
"subject=InfluxDBAlert",
"text=${r._message}",
],
v: "&",
)
return {
headers: {
"Content-Type": "application/x-www-form-urlencoded",
"Authorization": "${auth}",
},
data: bytes(v: data),
}
},
),
)