เจเจผเจฟเจเจฆเจพเจคเจฐ เจธเฉฐเจญเจพเจตเจจเจพ เจนเฉ, เจ
เฉฑเจ เจเฉเจ เจจเจนเฉเจ เจชเฉเฉฑเจเจฆเจพ เจเจฟ เจธเฉเจตเจพ เจฎเฉเจเฉเจฐเจฟเจเจธ เจจเฉเฉฐ เจเจเฉฑเจ เจพ เจเจฐเจจเจพ เจเจฟเจเจ เจเจผเจฐเฉเจฐเฉ เจนเฉ. เจ
เจเจฒเจพ เจฒเจพเจเจผเฉเจเจฒ เจเจฆเจฎ เจนเฉ เจเจเฉฑเจ เฉ เจเฉเจคเฉ เจเจ เจฎเฉเจเฉเจฐเจฟเจเจธ เจฒเจ เจเฉฑเจ เจเฉเจคเจพเจตเจจเฉ เจธเฉเจ เจ
เจช เจเจฐเจจเจพ, เจเฉ เจคเฉเจนเจพเจกเฉ เจฒเจ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจเฉเจจเจฒเจพเจ (เจฎเฉเจฒ, เจธเจฒเฉเจ, เจเฉเจฒเฉเจเฉเจฐเจพเจฎ) เจตเจฟเฉฑเจ เจกเฉเจเจพ เจตเจฟเฉฑเจ เจเจฟเจธเฉ เจตเฉ เจตเจฟเจตเจนเจพเจฐ เจฌเจพเจฐเฉ เจธเฉเจเจฟเจค เจเจฐเฉเจเจพเฅค เจเจจเจฒเจพเจเจจ เจนเฉเจเจฒ เจฌเฉเจเจฟเฉฐเจ เจธเฉเจตเจพ เจตเจฟเฉฑเจ
Kapacitor TICK เจธเจเฉเจ เจฆเจพ เจนเจฟเฉฑเจธเจพ เจนเฉ เจเฉ InfluxDB เจคเฉเจ เจฎเฉเจเฉเจฐเจฟเจเจธ เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจเจฐ เจธเจเจฆเจพ เจนเฉเฅค เจเจน เจเจ เจฎเจพเจชเจพเจ เจจเฉเฉฐ เจเจเฉฑเจ เฉ เจเฉเฉ เจธเจเจฆเจพ เจนเฉ (เจธเจผเจพเจฎเจฒ เจนเฉ เจธเจเจฆเจพ เจนเฉ), เจชเฉเจฐเจพเจชเจค เจเฉเจคเฉ เจกเฉเจเจพ เจคเฉเจ เจเฉเจ เจฒเจพเจญเจฆเจพเจเจ เจฆเฉ เจเจฃเจจเจพ เจเจฐ เจธเจเจฆเจพ เจนเฉ, เจจเจคเฉเจเจพ เจตเจพเจชเจธ InfluxDB 'เจคเฉ เจฒเจฟเจ เจธเจเจฆเจพ เจนเฉ, Slack/Telegram/mail 'เจคเฉ เจเฉฑเจ เจเฉเจคเจพเจตเจจเฉ เจญเฉเจ เจธเจเจฆเจพ เจนเฉเฅค
เจธเจพเจฐเจพ เจธเจเฉเจ เจ เฉฐเจกเจพ เจ
เจคเฉ เจตเจฟเจธเจคเฉเจฐเจฟเจค เจนเฉ
เจซเจฒเฉเจ เจ เจคเฉ เจเฉฐเจ, เจเจฃเจจเจพ เจฆเฉเจเจ เจเจฒเจคเฉเจเจ
เจเฉฑเจ เจฌเจฟเจฒเจเฉเจฒ เจฎเจฟเจเจฐเฉ เจธเจฎเฉฑเจธเจฟเจ, เจเจพเจคเจพเจ เจฐเจพเจนเฉเจ เจนเฉฑเจฒ:
var alert_float = 5.0
var alert_int = 10
data|eval(lambda: float("value") > alert_float OR float("value") < float("alert_int"))
เจกเจฟเจซเฉเจฒเจ () เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเจพ
เจเฉเจเจฐ เจเฉเจ เจเฉเจ/เจซเฉเจฒเจก เจจเจนเฉเจ เจญเจฐเจฟเจ เจเจพเจเจฆเจพ เจนเฉ, เจคเจพเจ เจเจฃเจจเจพ เจฆเฉเจเจ เจเจฒเจคเฉเจเจ เจนเฉเจฃเจเฉเจเจ:
|default()
.tag('status', 'empty')
.field('value', 0)
เจเฉเจเจเจจ เจญเจฐเฉ (เจ เฉฐเจฆเจฐเฉเจจเฉ เจฌเจจเจพเจฎ เจฌเจพเจนเจฐเฉ)
เจฎเฉเจฒ เจฐเฉเจช เจตเจฟเฉฑเจ, เจเฉเฉเจจเจพ เจเจนเจจเจพเจ เจชเฉเจเจเฉฐเจเจพเจ เจจเฉเฉฐ เจฐเฉฑเจฆ เจเจฐ เจฆเฉเจตเฉเจเจพ เจเจฟเฉฑเจฅเฉ เจเฉเจ เจกเจพเจเจพ (เจ
เฉฐเจฆเจฐเฉเจจเฉ) เจจเจนเฉเจ เจนเฉเฅค
เจญเจฐเจจ ('เจจเจฒ') เจฆเฉ เจจเจพเจฒ, เจเฉฑเจ เจฌเจพเจนเจฐเฉ เจเฉเฉเจจ เจเฉเจคเจพ เจเจพเจตเฉเจเจพ, เจเจฟเจธ เจคเฉเจ เจฌเจพเจ
เจฆ เจคเฉเจนเจพเจจเฉเฉฐ เจเฉฑเจ เจกเจฟเจซเจพเจฒเจ() เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ เจ
เจคเฉ เจเจพเจฒเฉ เจฎเฉเฉฑเจฒ เจญเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ:
var data = res1
|join(res2)
.as('res1', 'res2)
.fill('null')
|default()
.field('res1.value', 0.0)
.field('res2.value', 100.0)
เจเฉฑเจฅเฉ เจ
เจเฉ เจตเฉ เจเฉฑเจ เจธเฉเจเจฎเจคเจพ เจนเฉ. เจเจชเจฐเฉเจเจค เจเจฆเจพเจนเจฐเจจ เจตเจฟเฉฑเจ, เจเฉเจเจฐ เจเฉฑเจ เจฒเฉเฉ (res1 เจเจพเจ res2) เจเจพเจฒเฉ เจนเฉ, เจคเจพเจ เจจเจคเฉเจเฉ เจตเจเฉเจ เจฒเฉเฉ (เจกเฉเจเจพ) เจตเฉ เจเจพเจฒเฉ เจนเฉเจตเฉเจเฉเฅค Github 'เจคเฉ เจเจธ เจตเจฟเจธเจผเฉ 'เจคเฉ เจเจ เจเจฟเจเจเจพเจ เจนเจจ (
เจเจฃเจจเจพ เจตเจฟเฉฑเจ เจธเจฅเจฟเจคเฉเจเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเจพ (เจเฉ เจฒเจพเจเจฌเจกเจพ เจตเจฟเฉฑเจ)
|eval(lambda: if("value" > 0, true, false)
เจฎเจฟเจเจฆ เจฒเจ เจชเจพเจเจชเจฒเจพเจเจจ เจคเฉเจ เจเจเจฐเฉ เจชเฉฐเจ เจฎเจฟเฉฐเจ
เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจชเจฟเจเจฒเฉ เจนเจซเจผเจคเฉ เจฆเฉ เจจเจพเจฒ เจชเจฟเจเจฒเฉ เจชเฉฐเจ เจฎเจฟเฉฐเจเจพเจ เจฆเฉ เจฎเฉเฉฑเจฒเจพเจ เจฆเฉ เจคเฉเจฒเจจเจพ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจคเฉเจธเฉเจ เจฆเฉ เจตเฉฑเจเจฐเฉ เจฌเฉเจเจพเจ เจตเจฟเฉฑเจ เจกเฉเจเจพ เจฆเฉ เจฆเฉ เจฌเฉเจ เจฒเฉ เจธเจเจฆเฉ เจนเฉ เจเจพเจ เจเฉฑเจ เจตเฉฑเจกเฉ เจฎเจฟเจเจฆ เจคเฉเจ เจกเฉเจเจพ เจฆเฉ เจเฉเจ เจนเจฟเฉฑเจธเฉ เจจเฉเฉฐ เจเจเจธเจเจฐเฉเจเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ:
|where(lambda: duration((unixNano(now()) - unixNano("time"))/1000, 1u) < 5m)
เจชเจฟเจเจฒเฉ เจชเฉฐเจ เจฎเจฟเฉฐเจเจพเจ เจฒเจ เจเฉฑเจ เจตเจฟเจเจฒเจช เจฌเฉเจฐเฉเจ เจฐ เจจเฉเจก เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเจพ เจนเฉเจตเฉเจเจพ, เจเฉ เจจเจฟเจฐเจงเจพเจฐเจค เจธเจฎเฉเจ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจกเฉเจเจพ เจจเฉเฉฐ เจเฉฑเจ เจฆเจฟเฉฐเจฆเจพ เจนเฉ:
|barrier()
.period(5m)
เจธเฉเจจเฉเจนเฉ เจตเจฟเฉฑเจ เจเฉ เจเฉเจเจชเจฒเฉเจเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเฉเจเจ เจเจฆเจพเจนเจฐเจจเจพเจ
เจเฉเจเจชเจฒเฉเจ เจชเฉเจเฉเจ เจฆเฉ เจซเจพเจฐเจฎเฉเจ เจจเจพเจฒ เจฎเฉเจฒ เจเจพเจเจฆเฉ เจนเจจ
เจเฉ-เจนเฉเจฐ
เจ เจธเฉเจ เจเฉเจเจผเจพเจ เจจเฉเฉฐ เจเฉเจฐเจฎเจฌเฉฑเจง เจเจฐเจฆเฉ เจนเจพเจ เจ เจคเฉ เจฒเฉเจเจพเจ เจจเฉเฉฐ เจเฉฑเจ เจตเจพเจฐ เจฆเฉเจฌเจพเจฐเจพ เจเฉเจเจธเจ เจจเจพเจฒ เจเจฐเจฟเฉฑเจเจฐ เจจเจนเฉเจ เจเจฐเจฆเฉ เจนเจพเจ:
|alert()
...
.message(
'{{ if eq .Level "OK" }}It is ok now{{ else }}Chief, everything is broken{{end}}'
)
เจธเฉเจจเฉเจนเฉ เจตเจฟเฉฑเจ เจฆเจธเจผเจฎเจฒเจต เจฌเจฟเฉฐเจฆเฉ เจคเฉเจ เจฌเจพเจ เจฆ เจฆเฉ เจ เฉฐเจ
เจธเฉเจจเฉเจนเฉ เจฆเฉ เจชเฉเฉเจนเจจเจฏเฉเจเจคเจพ เจตเจฟเฉฑเจ เจธเฉเจงเจพเจฐ:
|alert()
...
.message(
'now value is {{ index .Fields "value" | printf "%0.2f" }}'
)
เจธเฉฐเจฆเฉเจธเจผ เจตเจฟเฉฑเจ เจตเฉเจฐเฉเจเจฌเจฒ เจฆเจพ เจตเจฟเจธเจคเจพเจฐ เจเจฐเจจเจพ
เจ เจธเฉเจ "เจเจน เจเจฟเจเจ เจเฉเจ เจฐเจฟเจนเจพ เจนเฉ" เจธเจตเจพเจฒ เจฆเจพ เจเจตเจพเจฌ เจฆเฉเจฃ เจฒเจ เจธเฉเจจเฉเจนเฉ เจตเจฟเฉฑเจ เจนเฉเจฐ เจเจพเจฃเจเจพเจฐเฉ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจเจฐเจฆเฉ เจนเจพเจ?
var warnAlert = 10
|alert()
...
.message(
'Today value less then '+string(warnAlert)+'%'
)
เจตเจฟเจฒเฉฑเจเจฃ เจเฉเจคเจพเจตเจจเฉ เจชเจเจพเจฃเจเจฐเจคเจพ
เจเจน เจเฉฑเจ เจเจผเจฐเฉเจฐเฉ เจเฉเจเจผ เจนเฉ เจเจฆเฉเจ เจกเฉเจเจพ เจตเจฟเฉฑเจ เจเฉฑเจ เจคเฉเจ เจตเฉฑเจง เจธเจฎเฉเจน เจนเฉเฉฐเจฆเฉ เจนเจจ, เจจเจนเฉเจ เจคเจพเจ เจธเจฟเจฐเจซ เจเฉฑเจ เจเฉเจคเจพเจตเจจเฉ เจเจจเจฐเฉเจ เจเฉเจคเฉ เจเจพเจตเฉเจเฉ:
|alert()
...
.id('{{ index .Tags "myname" }}/{{ index .Tags "myfield" }}')
เจเจธเจเจฎ เจนเฉเจเจกเจฒเจฐ เจฆเจพ
เจนเฉเจเจกเจฒเจฐเจพเจ เจฆเฉ เจตเฉฑเจกเฉ เจธเฉเจเฉ เจตเจฟเฉฑเจ exec เจธเจผเจพเจฎเจฒ เจนเฉ, เจเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจเจชเจฃเฉ เจธเจเฉเจฐเจฟเจชเจ เจจเฉเฉฐ เจชเจพเจธ เจเฉเจคเฉ เจชเฉเจฐเจพเจฎเฉเจเจฐเจพเจ (stdin) เจจเจพเจฒ เจเจฒเจพเจเจฃ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉ - เจฐเจเจจเจพเจคเจฎเจเจคเจพ เจ เจคเฉ เจนเฉเจฐ เจเฉเจ เจจเจนเฉเจ!
เจธเจพเจกเฉ เจฐเฉเจคเฉ-เจฐเจฟเจตเจพเจเจพเจ เจตเจฟเฉฑเจเฉเจ เจเฉฑเจ เจธเจฒเฉเจ เจจเฉเฉฐ เจธเฉเจเจจเจพเจตเจพเจ เจญเฉเจเจฃ เจฒเจ เจเฉฑเจ เจเฉเจเฉ เจชเจพเจเจฅเจจ เจธเจเฉเจฐเจฟเจชเจ เจนเฉ.
เจชเจนเจฟเจฒเจพเจ, เจ
เจธเฉเจ เจเฉฑเจ เจธเฉฐเจฆเฉเจธเจผ เจตเจฟเฉฑเจ เจเฉฑเจ เจ
เจงเจฟเจเจพเจฐ-เจธเฉเจฐเฉฑเจเจฟเจ
เจค เจเฉเจฐเจพเจซเจพเจจเจพ เจคเจธเจตเฉเจฐ เจญเฉเจเจฃเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจธเฉเฅค เจเจธ เจคเฉเจ เจฌเจพเจ
เจฆ, เจเจธเฉ เจเจฐเฉเฉฑเจช เจคเฉเจ เจชเจฟเจเจฒเฉ เจเฉเจคเจพเจตเจจเฉ เจฒเจ เจฅเฉเจฐเฉเจก เจตเจฟเฉฑเจ เจ เฉเจ เจฒเจฟเจเฉ, เจจเจพ เจเจฟ เจตเฉฑเจเจฐเฉ เจธเฉฐเจฆเฉเจธเจผ เจตเจเฉเจเฅค เจฅเฉเฉเฉ เจฆเฉเจฐ เจฌเจพเจ
เจฆ - เจเจเจฐเฉ X เจฎเจฟเฉฐเจเจพเจ เจตเจฟเฉฑเจ เจธเจญ เจคเฉเจ เจเจฎ เจเจฒเจคเฉ เจธเฉเจจเฉเจนเฉ เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจเจฐเฉเฅค
เจเฉฑเจ เจตเฉฑเจเจฐเจพ เจตเจฟเจธเจผเจพ เจนเฉเจฐ เจธเฉเจตเจพเจตเจพเจ เจจเจพเจฒ เจธเฉฐเจเจพเจฐ เจนเฉ เจ
เจคเฉ เจเฉฑเจ เจเฉเจคเจพเจตเจจเฉ เจฆเฉเจเจฐเจพ เจธเจผเฉเจฐเฉ เจเฉเจคเฉ เจเจ เจเฉเจ เจตเฉ เจเจพเจฐเจตเจพเจ เจนเฉ (เจธเจฟเจฐเจซเจผ เจเฉเจเจฐ เจคเฉเจนเจพเจกเฉ เจจเจฟเจเจฐเจพเจจเฉ เจเฉฐเจเฉ เจคเจฐเฉเจนเจพเจ เจเฉฐเจฎ เจเจฐเจฆเฉ เจนเฉ)เฅค
เจนเฉเจเจกเจฒเจฐ เจตเจฐเจฃเจจ เจฆเฉ เจเฉฑเจ เจเจฆเจพเจนเจฐเจจ, เจเจฟเฉฑเจฅเฉ slack_handler.py เจธเจพเจกเฉ เจธเจตเฉ-เจฒเจฟเจเจค เจธเจเฉเจฐเจฟเจชเจ เจนเฉ:
topic: slack_graph
id: slack_graph.alert
match: level() != INFO AND changed() == TRUE
kind: exec
options:
prog: /sbin/slack_handler.py
args: ["-c", "CHANNELID", "--graph", "--search"]
เจกเฉเจฌเฉฑเจ เจเจฟเจตเฉเจ เจเจฐเฉเจ?
เจฒเฉเจ เจเจเจเจชเฉเฉฑเจ เจฆเฉ เจจเจพเจฒ เจตเจฟเจเจฒเจช
|log()
.level("error")
.prefix("something")
เจตเจพเจ (cli): kapacitor -url
httpOut เจฆเฉ เจจเจพเจฒ เจตเจฟเจเจฒเจช
เจฎเฉเจเฉเจฆเจพ เจชเจพเจเจชเจฒเจพเจเจจ เจตเจฟเฉฑเจ เจกเฉเจเจพ เจฆเจฟเจเจพเจเจเจฆเจพ เจนเฉ:
|httpOut('something')
เจฆเฉเจเฉ (เจชเฉเจฐเจพเจชเจค เจเจฐเฉ):
เจเจเจเจผเฉเจเจฟเจเจธเจผเจจ เจกเจพเจเจเฉเจฐเจพเจฎ
- เจนเจฐเฉเจ เจเฉฐเจฎ เจซเจพเจฐเจฎเฉเจ เจตเจฟเฉฑเจ เจเจชเจฏเฉเจเฉ เจธเฉฐเจเจฟเจเจตเจพเจ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจเจเจเจผเฉเจเจฟเจเจธเจผเจจ เจเฉเจฐเฉ เจฆเจฟเฉฐเจฆเจพ เจนเฉ
เจเฉเจฐเจพเจซเจตเจฟเจเจผ . - เจเฉฑเจ เจฌเจฒเจพเจ เจฒเจตเฉ
เจฌเจฟเฉฐเจฆเฉ . - เจเจธเจจเฉเฉฐ เจฆเจฐเจธเจผเจ เจตเจฟเฉฑเจ เจชเฉเจธเจ เจเจฐเฉ
เจเจจเฉฐเจฆ เจฎเจพเจฃเฉ .
เจคเฉเจธเฉเจ เจฐเฉเจ เจเจฟเฉฑเจฅเฉเจ เจชเฉเจฐเจพเจชเจค เจเจฐ เจธเจเจฆเฉ เจนเฉ?
เจฐเจพเจเจเจฌเฉเจ 'เจคเฉ influxdb เจตเจฟเฉฑเจ เจเจพเจเจฎเจธเจเฉเจเจช
เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจ เจธเฉเจ เจชเฉเจฐเจคเฉ เจเฉฐเจเจพ เจฌเฉเจจเจคเฉเจเจ เจฆเฉ เจเฉเฉ (groupBy(1h)) เจฒเจ เจเฉฑเจ เจเฉเจคเจพเจตเจจเฉ เจธเฉเจ เจ เจช เจเจฐเจฆเฉ เจนเจพเจ เจ เจคเฉ influxdb เจตเจฟเฉฑเจ เจเจ เจเฉเจคเจพเจตเจจเฉ เจจเฉเฉฐ เจฐเจฟเจเจพเจฐเจก เจเจฐเจจเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจนเจพเจ (เจเจฐเจพเจซเจจเจพ เจตเจฟเฉฑเจ เจเฉเจฐเจพเจซ 'เจคเฉ เจธเจฎเฉฑเจธเจฟเจ เจฆเฉ เจคเฉฑเจฅ เจจเฉเฉฐ เจธเฉเฉฐเจฆเจฐเจคเจพ เจจเจพเจฒ เจฆเจฟเจเจพเจเจฃ เจฒเจ)เฅค
influxDBOut() เจเฉเจคเจพเจตเจจเฉ เจคเฉเจ เจเจพเจเจฎเจธเจเฉเจเจช เจคเฉฑเจ เจธเจฎเฉเจ เจฆเจพ เจฎเฉเฉฑเจฒ เจฒเจฟเจเฉเจเจพ; เจเจธเจฆเฉ เจ เจจเฉเจธเจพเจฐ, เจเจพเจฐเจ 'เจคเฉ เจฌเจฟเฉฐเจฆเฉ เจเฉเจคเจพเจตเจจเฉ เจเจเจฃ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ/เจฌเจพเจ เจฆ เจตเจฟเฉฑเจ เจฒเจฟเจเจฟเจ เจเจพเจตเฉเจเจพเฅค
เจเจฆเฉเจ เจธเจผเฉเฉฑเจงเจคเจพ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ: เจ เจธเฉเจ เจเฉฑเจ เจเจธเจเจฎ เจนเฉเจเจกเจฒเจฐ เจจเฉเฉฐ เจเจพเจฒ เจเจฐเจเฉ เจเจธ เจธเจฎเฉฑเจธเจฟเจ เจฆเฉ เจนเฉฑเจฒ เจฒเจ เจเฉฐเจฎ เจเจฐเจฆเฉ เจนเจพเจ, เจเฉ เจฎเฉเจเฉเจฆเจพ เจเจพเจเจฎเจธเจเฉเจเจช เจฆเฉ เจจเจพเจฒ influxdb เจจเฉเฉฐ เจกเฉเจเจพ เจฒเจฟเจ เจฆเฉเจตเฉเจเจพเฅค
เจกเฉเจเจฐ, เจฌเจฟเจฒเจก เจ เจคเฉ เจกเจฟเจชเจฒเจพเจเจฎเฉเจเจ
เจธเจผเฉเจฐเฉเจเจคเฉ เจธเจฎเฉเจ, kapacitor [load] เจฌเจฒเจพเจ เจตเจฟเฉฑเจ เจธเฉฐเจฐเจเจจเจพ เจตเจฟเฉฑเจ เจจเจฟเจฐเจงเจพเจฐเจฟเจค เจกเจพเจเจฐเฉเจเจเจฐเฉ เจคเฉเจ เจเจพเจธเจ, เจเฉเจเจชเจฒเฉเจ เจ เจคเฉ เจนเฉเจเจกเจฒเจฐ เจฒเฉเจก เจเจฐ เจธเจเจฆเจพ เจนเฉเฅค
เจเฉฑเจ เจเฉฐเจฎ เจจเฉเฉฐ เจธเจนเฉ เจขเฉฐเจ เจจเจพเจฒ เจฌเจฃเจพเจเจฃ เจฒเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจนเฉเจ เจฒเจฟเจเฉเจเจ เจเฉเจเจผเจพเจ เจฆเฉ เจฒเฉเฉ เจนเฉ:
- เจซเจพเจเจฒ เจฆเจพ เจจเจพเจฎ - เจธเจเฉเจฐเจฟเจชเจ เจเจเจกเฉ/เจจเจพเจฎ เจตเจฟเฉฑเจ เจซเฉเจฒเจพเจเจ เจเจฟเจ
- เจเจฟเจธเจฎ - เจธเจเฉเจฐเฉเจฎ/เจฌเฉเจ
- dbrp - เจธเจเฉเจฐเจฟเจชเจ เจเจฟเจธ เจกเฉเจเจพเจฌเฉเจธ + เจจเฉเจคเฉ เจตเจฟเฉฑเจ เจเจฒเจฆเฉ เจนเฉ เจเจน เจฆเจฐเจธเจพเจเจฃ เจฒเจ เจเฉเจตเจฐเจก (dbrp "เจธเจชเจฒเจพเจเจฐ." "เจเจเฉเจเจจ")
เจเฉเจเจฐ เจเฉเจ เจฌเฉเจ เจเจพเจธเจ เจตเจฟเฉฑเจ dbrp เจจเจพเจฒ เจเฉฑเจ เจฒเจพเจเจจ เจธเจผเจพเจฎเจฒ เจจเจนเฉเจ เจนเฉ, เจคเจพเจ เจชเฉเจฐเฉ เจธเฉเจตเจพ เจธเจผเฉเจฐเฉ เจเจฐเจจ เจคเฉเจ เจเจจเจเจพเจฐ เจเจฐ เจฆเฉเจตเฉเจเฉ เจ เจคเฉ เจฒเฉเจ เจตเจฟเฉฑเจ เจเจธ เจฌเจพเจฐเฉ เจเจฎเจพเจจเจฆเจพเจฐเฉ เจจเจพเจฒ เจฒเจฟเจ เจฆเฉเจตเฉเจเฉเฅค
เจเฉเจฐเฉเจจเฉเจเฉเจฐเจพเจซ เจตเจฟเฉฑเจ, เจเจธเจฆเฉ เจเจฒเจ, เจเจน เจฒเจพเจเจจ เจฎเฉเจเฉเจฆ เจจเจนเฉเจ เจนเฉเจฃเฉ เจเจพเจนเฉเจฆเฉ; เจเจน เจเฉฐเจเจฐเจซเฉเจธ เจฆเฉเจเจฐเจพ เจธเจตเฉเจเจพเจฐ เจจเจนเฉเจ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจ เจคเฉ เจเฉฑเจ เจเจฒเจคเฉ เจชเฉเจฆเจพ เจเจฐเจฆเฉ เจนเฉเฅค
เจเฉฐเจเฉเจจเจฐ เจฌเจฃเจพเจเจเจฆเฉ เจธเจฎเฉเจ เจนเฉเจ เจเจฐเฉ: เจกเฉเจเจฐเจซเจพเจเจฒ -1 เจจเจพเจฒ เจฌเจพเจนเจฐ เจจเจฟเจเจฒเจฆเฉ เจนเฉ เจเฉเจเจฐ //.+dbrp เจจเจพเจฒ เจฒเจพเจเจจเจพเจ เจนเจจ, เจเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจฌเจฟเจฒเจก เจจเฉเฉฐ เจ เจธเฉเจเจฌเจฒ เจเจฐเจจ เจตเฉเจฒเฉ เจ เจธเจซเจฒเจคเจพ เจฆเฉ เจเจพเจฐเจจ เจจเฉเฉฐ เจคเฉเจฐเฉฐเจค เจธเจฎเจเจฃ เจฆเฉ เจเจเจฟเจ เจฆเฉเจตเฉเจเฉเฅค
เจเฉฑเจ เจคเฉเจ เจฌเจนเฉเจค เจธเจพเจฐเฉ เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจนเฉเจตเฉ
เจเจฆเจพเจนเจฐเจจ เจเจพเจฐเจ: เจคเฉเจนเจพเจจเฉเฉฐ เจเฉฑเจ เจนเจซเจผเจคเฉ เจฒเจ เจธเฉเจตเจพ เจฆเฉ เจธเฉฐเจเจพเจฒเจจ เจธเจฎเฉเจ เจฆเจพ 95เจตเจพเจ เจชเฉเจฐเจคเฉเจธเจผเจค เจฒเฉเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ, เจเจธ เจฎเฉเฉฑเจฒ เจจเจพเจฒ เจเจเจฐเฉ 10 เจฆเฉ เจนเจฐเฉเจ เจฎเจฟเฉฐเจ เจฆเฉ เจคเฉเจฒเจจเจพ เจเจฐเฉเฅค
เจคเฉเจธเฉเจ เจเฉฑเจ-เจคเฉเจ-เจเจ เจเฉเจเจเจจ เจจเจนเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ, เจฌเจฟเฉฐเจฆเฉเจเจ เจฆเฉ เจเฉฑเจ เจธเจฎเฉเจน เจเฉฑเจคเฉ เจเจเจฐเฉ/เจฎเฉเจจ/เจฎเฉเจกเฉเจ เจจ เจจเฉเจก เจจเฉเฉฐ เจเฉฑเจ เจธเจเฉเจฐเฉเจฎ เจตเจฟเฉฑเจ เจฌเจฆเจฒ เจฆเจฟเฉฐเจฆเจพ เจนเฉ, เจเจฒเจคเฉ "เจเจพเจเจฒเจก เจฎเฉเจฒ เจจเจพ เจนเฉเจฃ เจตเจพเจฒเฉ เจเจฟเจจเจพเจฐเจฟเจเจ เจจเฉเฉฐ เจธเจผเจพเจฎเจฒ เจจเจนเฉเจ เจเจฐ เจธเจเจฆเฉ: เจฌเฉเจ -> เจธเจเฉเจฐเฉเจฎ" เจตเจพเจชเจธ เจ เจเจพเจตเฉเจเฉเฅค
เจเฉฑเจ เจฌเฉเจ เจฆเจพ เจจเจคเฉเจเจพ, เจเฉฑเจ เจฒเฉเจเจฌเจกเจพ เจธเจฎเฉเจเจฐเจจ เจตเจฟเฉฑเจ เจเฉฑเจ เจตเฉเจฐเฉเจเจฌเจฒ เจตเจเฉเจ, เจตเฉ เจฌเจฆเจฒเจฟเจ เจจเจนเฉเจ เจเจพเจเจฆเจพ เจนเฉเฅค
เจชเจนเจฟเจฒเฉ เจฌเฉเจ เจคเฉเจ เจฒเฉเฉเฉเจเจฆเฉ เจจเฉฐเจฌเจฐเจพเจ เจจเฉเฉฐ udf เจฐเจพเจนเฉเจ เจเฉฑเจ เจซเจผเจพเจเจฒ เจตเจฟเฉฑเจ เจธเฉเจต เจเจฐเจจ เจ เจคเฉ เจเจธ เจซเจผเจพเจเจฒ เจจเฉเฉฐ เจธเจพเจเจกเจฒเฉเจก เจฐเจพเจนเฉเจ เจฒเฉเจก เจเจฐเจจ เจฆเจพ เจตเจฟเจเจฒเจช เจนเฉเฅค
เจ เจธเฉเจ เจเจธ เจจเจพเจฒ เจเฉ เจนเฉฑเจฒ เจเฉเจคเจพ?
เจธเจพเจกเฉ เจเฉเจฒ เจฒเจเจญเจ 100 เจนเฉเจเจฒ เจธเจชเจฒเจพเจเจฐ เจนเจจ, เจเจนเจจเจพเจ เจตเจฟเฉฑเจเฉเจ เจนเจฐ เจเฉฑเจ เจฆเฉ เจเจ เจเฉเจจเฉเจเจธเจผเจจ เจนเฉ เจธเจเจฆเฉ เจนเจจ, เจเจ เจเจธเจจเฉเฉฐ เจเฉฑเจ เจเฉเจจเจฒ เจเจนเฉเจเฅค เจเจจเฉเจนเจพเจ เจตเจฟเฉฑเจเฉเจ เจฒเจเจญเจ 300 เจเฉเจจเจฒ เจนเจจ, เจนเจฐ เจเฉฑเจ เจเฉเจจเจฒ เจกเจฟเฉฑเจ เจธเจเจฆเจพ เจนเฉเฅค เจธเจพเจฐเฉ เจฐเจฟเจเจพเจฐเจก เจเฉเจคเฉ เจฎเฉเจเฉเจฐเจฟเจเจธ เจตเจฟเฉฑเจเฉเจ, เจ เจธเฉเจ เจเจฒเจคเฉ เจฆเจฐ (เจฌเฉเจจเจคเฉ เจ เจคเฉ เจคเจฐเฉเฉฑเจเฉเจเจ) เจฆเฉ เจจเจฟเจเจฐเจพเจจเฉ เจเจฐเจพเจเจเฉเฅค
เจเฉเจฐเจพเจซเจพเจจเจพ เจเจฟเจเจ เจจเจนเฉเจ?
เจเฉเจฐเจพเจซเจพเจจเจพ เจตเจฟเฉฑเจ เจธเฉฐเจฐเจเจฟเจค เจเจฒเจคเฉ เจเฉเจคเจพเจตเจจเฉเจเจ เจฆเฉ เจเจ เจจเฉเจเจธเจพเจจ เจนเจจเฅค เจเฉเจ เจจเจพเจเจผเฉเจ เจนเจจ, เจเฉเจ เจคเฉเจธเฉเจ เจธเจฅเจฟเจคเฉ 'เจคเฉ เจจเจฟเจฐเจญเจฐ เจเจฐเจฆเจฟเจเจ เจเจชเจฃเฉเจเจ เจ เฉฑเจเจพเจ เจฌเฉฐเจฆ เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค
เจเฉเจฐเจพเจซเจพเจจเจพ เจจเจนเฉเจ เจเจพเจฃเจฆเจพ เจเจฟ เจฎเจพเจช + เจเฉเจคเจพเจตเจจเฉ เจฆเฉ เจตเจฟเจเจเจพเจฐ เจเจฟเจตเฉเจ เจเจฃเจจเจพ เจเจฐเจจเฉ เจนเฉ, เจชเจฐ เจธเจพเจจเฉเฉฐ เจเฉฑเจ เจฆเจฐ (เจฌเฉเจจเจคเฉ-เจคเจฐเฉเฉฑเจเฉเจเจ)/เจฌเฉเจจเจคเฉ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค
เจเจฒเจคเฉเจเจ เจญเฉเฉเฉเจเจ เจฒเฉฑเจเจฆเฉเจเจ เจนเจจ:
เจ
เจคเฉ เจธเจซเจฒ เจฌเฉเจจเจคเฉเจเจ เจจเจพเจฒ เจฆเฉเจเฉ เจเจพเจฃ 'เจคเฉ เจเฉฑเจ เจฌเฉเจฐเจพเจ:
เจ เฉเจ เจนเฉ, เจ
เจธเฉเจ เจเฉเจฐเจพเจซเจพเจจเจพ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจธเฉเจตเจพ เจตเจฟเฉฑเจ เจฆเจฐ เจฆเฉ เจชเฉเจฐเจต-เจเจฃเจจเจพ เจเจฐ เจธเจเจฆเฉ เจนเจพเจ, เจ
เจคเฉ เจเฉเจ เจฎเจพเจฎเจฒเจฟเจเจ เจตเจฟเฉฑเจ เจเจน เจเฉฐเจฎ เจเจฐเฉเจเจพ. เจชเจฐ เจธเจพเจกเฉ เจตเจฟเฉฑเจ เจจเจนเฉเจ เจเจฟเจเจเจเจฟ... เจนเจฐเฉเจ เจเฉเจจเจฒ เจฒเจ เจเจธเจฆเจพ เจเจชเจฃเจพ เจ
เจจเฉเจชเจพเจค "เจเจฎ" เจฎเฉฐเจจเจฟเจ เจเจพเจเจฆเจพ เจนเฉ, เจ
เจคเฉ เจเฉเจคเจพเจตเจจเฉเจเจ เจธเจฅเจฟเจฐ เจฎเฉเฉฑเจฒเจพเจ เจฆเฉ เจ
เจจเฉเจธเจพเจฐ เจเฉฐเจฎ เจเจฐเจฆเฉเจเจ เจนเจจ (เจ
เจธเฉเจ เจเจนเจจเจพเจ เจจเฉเฉฐ เจเจชเจฃเฉเจเจ เจ
เฉฑเจเจพเจ เจจเจพเจฒ เจฆเฉเจเจฆเฉ เจนเจพเจ, เจเฉเจเจฐ เจ
เจเจธเจฐ เจเฉเจคเจพเจตเจจเฉเจเจ เจนเฉเฉฐเจฆเฉเจเจ เจนเจจ เจคเจพเจ เจเจนเจจเจพเจ เจจเฉเฉฐ เจฌเจฆเจฒเจฆเฉ เจนเจพเจ)เฅค
เจเจน เจตเฉฑเจ-เจตเฉฑเจ เจเฉเจจเจฒเจพเจ เจฒเจ "เจเจฎ" เจฆเฉเจเจ เจเจฆเจพเจนเจฐเจจเจพเจ เจนเจจ:
เจ
เจธเฉเจ เจชเจฟเจเจฒเฉ เจฌเจฟเฉฐเจฆเฉ เจจเฉเฉฐ เจจเจเจผเจฐเจ
เฉฐเจฆเจพเจเจผ เจเจฐเจฆเฉ เจนเจพเจ เจ
เจคเฉ เจเจน เจฎเฉฐเจจเจฆเฉ เจนเจพเจ เจเจฟ "เจเจฎ" เจคเจธเจตเฉเจฐ เจธเจพเจฐเฉ เจธเจชเจฒเจพเจเจฐเจพเจ เจฒเจ เจธเจฎเจพเจจ เจนเฉเฅค เจนเฉเจฃ เจธเจญ เจเฉเจ เจ เฉเจ เจนเฉ, เจ
เจคเฉ เจ
เจธเฉเจ เจเฉเจฐเจพเจซเจพเจจเจพ เจตเจฟเฉฑเจ เจเฉเจคเจพเจตเจจเฉเจเจ เจฆเฉ เจจเจพเจฒ เจชเฉเจฐเจพเจชเจค เจเจฐ เจธเจเจฆเฉ เจนเจพเจ?
เจ
เจธเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเจพเจ, เจชเจฐ เจ
เจธเฉเจ เจ
เจธเจฒ เจตเจฟเฉฑเจ เจจเจนเฉเจ เจเจพเจนเฉเฉฐเจฆเฉ, เจเจฟเจเจเจเจฟ เจธเจพเจจเฉเฉฐ เจตเจฟเจเจฒเจชเจพเจ เจตเจฟเฉฑเจเฉเจ เจเฉฑเจ เจฆเฉ เจเฉเจฃ เจเจฐเจจเฉ เจชเจตเฉเจเฉ:
a) เจนเจฐเฉเจ เจเฉเจจเจฒ เจฒเจ เจตเฉฑเจเจฐเฉ เจคเฉเจฐ 'เจคเฉ เจฌเจนเฉเจค เจธเจพเจฐเฉ เจเฉเจฐเจพเจซ เจฌเจฃเจพเจ (เจ
เจคเฉ เจฆเจฐเจฆ เจจเจพเจฒ เจเจนเจจเจพเจ เจฆเฉ เจจเจพเจฒ)
b) เจธเจพเจฐเฉ เจเฉเจจเจฒเจพเจ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจเจพเจฐเจ เจเฉฑเจกเฉ (เจ
เจคเฉ เจฐเฉฐเจเฉเจจ เจฒเจพเจเจจเจพเจ เจ
เจคเฉ เจ
เจจเฉเจเฉเจฒเจฟเจค เจเฉเจคเจพเจตเจจเฉเจเจ เจตเจฟเฉฑเจ เจเฉเจเจ เจเจพเจ)
เจคเฉเจธเฉเจ เจเจน เจเจฟเจตเฉเจ เจเฉเจคเจพ?
เจฆเฉเจฌเจพเจฐเจพ, เจฆเจธเจคเจพเจตเฉเจเจผ เจตเจฟเฉฑเจ เจเฉฑเจ เจเฉฐเจเฉ เจธเจผเฉเจฐเฉเจเจคเฉ เจเจฆเจพเจนเจฐเจฃ เจนเฉ (
เจ เจธเฉเจ เจ เฉฐเจค เจตเจฟเฉฑเจ เจเฉ เจเฉเจคเจพ:
- เจเฉเจจเจฒเจพเจ เจฆเฉเจเจฐเจพ เจธเจฎเฉเจนเฉเจเจฐเจจ, เจเฉเจ เจเฉฐเจเจฟเจเจ เจตเจฟเฉฑเจ เจฆเฉ เจฒเฉเฉ เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจนเฉเจตเฉ;
- เจเฉเจเจฐ เจเฉเจ เจกเจพเจเจพ เจจเจนเฉเจ เจธเฉ เจคเจพเจ เจธเจฎเฉเจน เจฆเฉเจเจฐเจพ เจฒเฉเฉ เจญเจฐเฉ;
- เจชเจฟเจเจฒเฉ 10 เจฎเจฟเฉฐเจเจพเจ เจฆเฉ เจฎเฉฑเจงเจฎเจพเจจ เจฆเฉ เจชเจฟเจเจฒเฉ เจกเฉเจเจพ เจจเจพเจฒ เจคเฉเจฒเจจเจพ เจเจฐเฉ;
- เจเฉ เจธเจพเจจเฉเฉฐ เจเฉเจ เจฎเจฟเจฒเจฆเจพ เจนเฉ เจคเจพเจ เจ เจธเฉเจ เจฐเฉเจฒเจพ เจชเจพเจเจเจฆเฉ เจนเจพเจ;
- เจ เจธเฉเจ เจเจฃเจจเจพ เจเฉเจคเฉเจเจ เจฆเจฐเจพเจ เจ เจคเฉ เจเฉเจคเจพเจตเจจเฉเจเจ เจฒเจฟเจเจฆเฉ เจนเจพเจ เจเฉ influxdb เจตเจฟเฉฑเจ เจเจเจเจ เจนเจจ;
- เจขเจฟเฉฑเจฒเฉ เจจเฉเฉฐ เจเฉฑเจ เจฒเจพเจญเจฆเจพเจเจ เจธเฉเจจเฉเจนเจพ เจญเฉเจเฉ.
เจฎเฉเจฐเฉ เจฐเจพเจ เจตเจฟเฉฑเจ, เจ เจธเฉเจ เจนเจฐ เจเฉเจเจผ เจจเฉเฉฐ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจตเจฟเฉฑเจ เจเจพเจฎเจฏเจพเจฌ เจนเฉเจ เจเฉ เจ เจธเฉเจ เจ เฉฐเจค เจตเจฟเฉฑเจ เจชเฉเจฐเจพเจชเจค เจเจฐเจจเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจธเฉ (เจ เจคเฉ เจเจธเจเจฎ เจนเฉเจเจกเจฒเจฐเจพเจ เจจเจพเจฒ เจฅเฉเฉเจพ เจนเฉเจฐ เจตเฉ) เจเจฟเฉฐเจจเจพ เจธเฉฐเจญเจต เจนเฉ เจธเจเฉ เจธเฉเฉฐเจฆเจฐเจคเจพ เจจเจพเจฒ.
เจคเฉเจธเฉเจ github.com 'เจคเฉ เจฆเฉเจ เจธเจเจฆเฉ เจนเฉ
เจจเจคเฉเจเฉ เจเฉเจก เจฆเฉ เจเฉฑเจ เจเจฆเจพเจนเจฐเจจ:
dbrp "supplier"."autogen"
var name = 'requests.rate'
var grafana_dash = 'pczpmYZWU/mydashboard'
var grafana_panel = '26'
var period = 8h
var todayPeriod = 10m
var every = 1m
var warnAlert = 15
var warnReset = 5
var reqQuery = 'SELECT sum("count") AS value FROM "supplier"."autogen"."requests"'
var errQuery = 'SELECT sum("count") AS value FROM "supplier"."autogen"."errors"'
var prevErr = batch
|query(errQuery)
.period(period)
.every(every)
.groupBy(1m, 'channel', 'supplier')
var prevReq = batch
|query(reqQuery)
.period(period)
.every(every)
.groupBy(1m, 'channel', 'supplier')
var rates = prevReq
|join(prevErr)
.as('req', 'err')
.tolerance(1m)
.fill('null')
// ะทะฐะฟะพะปะฝัะตะผ ะทะฝะฐัะตะฝะธั ะฝัะปัะผะธ, ะตัะปะธ ะธั
ะฝะต ะฑัะปะพ
|default()
.field('err.value', 0.0)
.field('req.value', 0.0)
// if ะฒ lambda: ััะธัะฐะตะผ ัะตะนั, ัะพะปัะบะพ ะตัะปะธ ะพัะธะฑะบะธ ะฑัะปะธ
|eval(lambda: if("err.value" > 0, 100.0 * (float("req.value") - float("err.value")) / float("req.value"), 100.0))
.as('rate')
// ะทะฐะฟะธััะฒะฐะตะผ ะฟะพััะธัะฐะฝะฝัะต ะทะฝะฐัะตะฝะธั ะฒ ะธะฝัะปัะบั
rates
|influxDBOut()
.quiet()
.create()
.database('kapacitor')
.retentionPolicy('autogen')
.measurement('rates')
// ะฒัะฑะธัะฐะตะผ ะดะฐะฝะฝัะต ะทะฐ ะฟะพัะปะตะดะฝะธะต 10 ะผะธะฝัั, ััะธัะฐะตะผ ะผะตะดะธะฐะฝั
var todayRate = rates
|where(lambda: duration((unixNano(now()) - unixNano("time")) / 1000, 1u) < todayPeriod)
|median('rate')
.as('median')
var prevRate = rates
|median('rate')
.as('median')
var joined = todayRate
|join(prevRate)
.as('today', 'prev')
|httpOut('join')
var trigger = joined
|alert()
.warn(lambda: ("prev.median" - "today.median") > warnAlert)
.warnReset(lambda: ("prev.median" - "today.median") < warnReset)
.flapping(0.25, 0.5)
.stateChangesOnly()
// ัะพะฑะธัะฐะตะผ ะฒ message ัััะปะบั ะฝะฐ ะณัะฐัะธะบ ะดะฐัะฑะพัะดะฐ ะณัะฐัะฐะฝั
.message(
'{{ .Level }}: {{ index .Tags "channel" }} err/req ratio ({{ index .Tags "supplier" }})
{{ if eq .Level "OK" }}It is ok now{{ else }}
'+string(todayPeriod)+' median is {{ index .Fields "today.median" | printf "%0.2f" }}%, by previous '+string(period)+' is {{ index .Fields "prev.median" | printf "%0.2f" }}%{{ end }}
http://grafana.ostrovok.in/d/'+string(grafana_dash)+
'?var-supplier={{ index .Tags "supplier" }}&var-channel={{ index .Tags "channel" }}&panelId='+string(grafana_panel)+'&fullscreen&tz=UTC%2B03%3A00'
)
.id('{{ index .Tags "name" }}/{{ index .Tags "channel" }}')
.levelTag('level')
.messageField('message')
.durationField('duration')
.topic('slack_graph')
// "today.median" ะดัะฑะปะธััะตะผ ะบะฐะบ "value", ัะฐะบะถะต ะฟะธัะตะผ ะฒ ะธะฝัะปัะบั ะพััะฐะปัะฝัะต ัะธะปะดั ะฐะปะตััะฐ (keep)
trigger
|eval(lambda: "today.median")
.as('value')
.keep()
|influxDBOut()
.quiet()
.create()
.database('kapacitor')
.retentionPolicy('autogen')
.measurement('alerts')
.tag('alertName', name)
เจธเจฟเฉฑเจเจพ เจเฉ เจนเฉ?
Kapacitor เจธเจฎเฉเจนเจพเจ เจฆเฉ เจเฉฑเจ เจธเจฎเฉเจน เจฆเฉ เจจเจพเจฒ เจจเจฟเจเจฐเจพเจจเฉ-เจธเฉเจเฉเจคเจจเจพ เจเจฐเจจ, เจชเจนเจฟเจฒเจพเจ เจคเฉเจ เจฐเจฟเจเจพเจฐเจก เจเฉเจคเฉ เจฎเฉเจเฉเจฐเจฟเจเจธ เจฆเฉ เจ เจงเจพเจฐ เจคเฉ เจตเจพเจงเฉ เจเจฃเจจเจพ เจเจฐเจจ, เจเจธเจเจฎ เจเจเจธเจผเจจ เจเจฐเจจ เจ เจคเฉ เจธเจเฉเจฐเจฟเจชเจเจพเจ (udf) เจเจฒเจพเจเจฃ เจตเจฟเฉฑเจ เจฌเจนเฉเจค เจตเจงเฉเจ เจนเฉเฅค
เจฆเจพเจเจฒเฉ เจฒเจ เจฐเฉเจเจพเจตเจ เจฌเจนเฉเจค เจเจผเจฟเจเจฆเจพ เจจเจนเฉเจ เจนเฉ - เจเจธเจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเฉ เจเฉเจเจฐ เจเฉเจฐเจพเจซเจพเจจเจพ เจเจพเจ เจนเฉเจฐ เจธเจพเจงเจจ เจคเฉเจนเจพเจกเฉเจเจ เจเฉฑเจเจพเจตเจพเจ เจจเฉเฉฐ เจชเฉเจฐเฉ เจคเจฐเฉเจนเจพเจ เจชเฉเจฐเจพ เจจเจนเฉเจ เจเจฐเจฆเฉ เจนเจจ.
เจธเจฐเฉเจค: www.habr.com