ืืืื ืืืืืื ืืชืจืืืช.
ืืืืื ืฉืืจืื ืืืชืจ ืืื ืืงืื ืืืืขื ืืฉืืฉืื ืงืจื (ืื ืชืืงื) ืืืฉืจ ืืฉืืช ืืืืกืชืื ืขื ืืจืคืื ืืืืคืฉ ืืจืืืืช.
ืืืืื ืจืืื ื ืืฆืจื ืืื. Alertmanager ืืืืขืจืืช ืืืงืืืืืืช ืฉื Prometheus ื-vmalert ืืงืืืฆืช ืืืืฆืจืื VictoriaMetrics. ืืชืจืืืช ืืืชืจืืืช Zabbix ืืืจืคืื ื. ืกืงืจืืคืืื ืฉื ืืชืื ืืขืฆืื ื-bash ืืืืืืื ืฉื Telegram ืฉืืจืืืื ืืขืช ืืขืช ืืชืืืช URL ืืืฉืื ืืืืืจืื ืื ืื ืืฉืื ืื ืืกืืจ. ืืจืื ืืืื.
ืื ืื ืื ื, ืืืืจื ืฉืื ื, ืืฉืชืืฉื ื ืืคืชืจืื ืืช ืฉืื ืื ืขื ืฉื ืชืงืื ื ืืืืจืืืืช, ืื ืืืชืจ ืืืืง, ืืืืกืจ ืืืคืฉืจืืช ืืืฆืืจ ืืชืจืืืช ืืืจืืืืช ืืืืจืืืืช. ืื ืฉืจืฆืื ื ืืื ืฉืขืฉืื ื ืืกืืคื ืฉื ืืืจ ืื ืืชืืช ืืืืจื. TLDR: ืื ืืืคืืข ืคืจืืืงื ืืงืื ืืคืชืื
ืืืฉื ืื ืืจืื ืืื ืืืื ื ืืื ืขื ืืชืจืืืช ืฉืืืืืจื ืืืจืคืื ื. ืื, ืื ืื ืืืจื ืืืืื ืืืืชืจ. ืชืืื ืืืืืฅ ืืืฉืชืืฉ ืืืื ืคืชืจืื ืืช ืืืืืืื, ืืืื Alertmanager. ืืื ืืกืชืืื ื ืืขืืจ ืชื ืืขื ืืืชืจ ืืคืขื ืืืช. ืืื, ืืื ืืื, ืจืฆืื ื ืืืชืจ.
ื ืืื ืืชื ืชืจืฉืื ืืกืืื ืืจื/ืขืื ื-XX% ืืืื ืฉื N ืืงืืช ืืืฉืืืื ืืชืงืืคื ืืงืืืืช ืฉื M ืฉืขืืช? ื ืจืื ืฉืืชื ืืืื ืื ืกืืช ืืืืฉื ืืช ืื ืขื Grafana ืื Alertmanager, ืืื ืื ืื ืืืฉ ืงื. (ืื ืฉืืืื ืื ืื ืืคืฉืจื, ืื ื ืื ืืืื ืขืืฉืื)
ืืืืจืื ืืกืชืืืื ืขืื ืืืชืจ ืืืฉืจ ืืืืืช ืืืชืจืื ืืืืืช ืืืืขืฉืืช ืขื ืกืื ื ืชืื ืื ืืืงืืจืืช ืฉืื ืื. ืืืืื ืืื:
ืื ืื ื ืืืืงืื ืืช ืื ืชืื ืื ืืฉื ื ืืกืื ื ืชืื ืื ืฉื Clickhouse, ืืื ืืฉืืืื ืืืชื ืืืื ื ืชืื ืื ื-Postgres ืืืืืืืื ืขื ืืชืจืื. ืกืืื ืื ืืื
ืฆืืจื ื ืื ืืจืื ืจืฆืื ืืช ืืืืื ืืื ืฉื ืืฉืื ืขื ืืืืืื ืฉืื ื. ืืื ื ืืกืื ื ืืืจืืื ืืช ืืจืฉืืื ืืจืืฉืื ื ืฉื ืืจืืฉืืช/ืืืืืืช ืฉื ืืฉืืจืืช ืืื, ืฉืขืืืื ืื ื ืืฆืจื.
-
ืืืฉืช ืืืงืืจืืช ื ืชืื ืื ืฉืื ืื. ืืืืืื, Prometheus, Clickhouse, Postgres
-
ืืฉืืื ืืชืจืืืช ืืขืจืืฆืื ืฉืื ืื - ืืืืจื, slack ืืื'.
-
ืืชืืืื ืืืฉืืื ืืชืืจืจ ืฉืื ื ืื ืจืืฆื ืชืืืืจ ืืฆืืจืชื, ืืื ืืืืืช ืืืชืื ืชืกืจืืืื
-
ืืคืขืืช ืกืงืจืืคืืื ืืคื ืืื ืืื ืื
-
ืขืืืื ืงื ืฉื ืกืงืจืืคืืื ืืืื ืืืคืขืื ืืืืฉ ืืช ืืฉืืจืืช
-
ืืืืืืช ืืืจืืื ืืืืฉืื ืืช ืืคืื ืงืฆืืื ืืืืช ืืืื ืืื ืืช ืืืืฉ ืืช ืืฉืืจืืช ืืงืืื ืืงืืจ
ืจืฉืืื ืื ืืื ืืฉืืขืจืช ืืกืืืจ ืืื ืื ืฉืืื ื ืืืืืงืช ืืืืืื. ืืืง ืืื ืงืืืืช ืืฉืชื ื, ืืืง ืืชื. ืืื ืืจืืื.
ืืืขืฉื, ืื ืืชืืื ืืกืืคืืจ ืฉื ืืืืจ.
ืื ืกื ืืชืืจ ืืงืฆืจื ืื ืงืจื ืืกืืคื ืฉื ืืืจ ืืืื ืื ืขืืื. (ืื, ืืืืื, ืื ืื ืืกืืฃ. ืืฉ ืืจืื ืชืืื ืืืช ืืคืืชืื ืืืฆืจ. ืืขืฆืืจ ืจืง ืืืื)
ืืื ืื ืขืืื?
ืืชื ืืืชื ืชืกืจืื ื-Lua ืฉืื ืืชื ืฉืืื ืืงืฉืืช (ืืคืจืืืชืืืก, ืงืืืงืืืืก ืืื'). ืืชื ืืงืื ืชืฉืืืืช ืืืืืฉืื ืืขืื ืืืฉืืื ืืืชื. ืืืืจ ืืื ืืคืขื/ืืื ืืชืจืื ืืืฉืื. Balerter ืขืฆืื ืชืฉืื ืืืืขื ืืขืจืืฆืื ืฉืืืืจืชื (ืืืื, ืืืจืง, slack ืืื'). ืืกืงืจืืคื ืืืืฆืข ืืืจืืืื ืืื ืืืืืจืื. ื... ืืืืคื ืืืื, ืื ืืื)
ืขืืืฃ ืืืจืืืช ืขื ืืืืื:
-- @interval 10s
-- @name script1
local minRequestsRPS = 100
local log = require("log")
local ch1 = require("datasource.clickhouse.ch1")
local res, err = ch1.query("SELECT sum(requests) AS rps FROM some_table WHERE date = now()")
if err ~= nil then
log.error("clickhouse 'ch1' query error: " .. err)
return
end
local resultRPS = res[1].rps
if resultRPS < minResultRPS then
alert.error("rps-min-limit", "Requests RPS are very small: " .. tostring(resultRPS))
else
alert.success("rps-min-limit", "Requests RPS ok")
end
ืื ืงืืจื ืคื:
-
ืื ื ืืฆืืื ืื ืฉืืฉ ืืืคืขืื ืืช ืืกืงืจืืคื ืืื ืื 10 ืฉื ืืืช
-
ืฆืืื ืืช ืฉื ืืกืงืจืืคื (ืขืืืจ ื-API, ืืืฆืื ืืืืื ืื, ืืฉืืืืฉ ืืืืืงืืช)
-
ืืืจ ืืช ืืืืืื ืืืืฆืืช ืืืื ืื
-
ืืืจ ืืืืื ืืื ืืืฉืช ืื ืืืช ืืงืืืง ืขื ืืฉื
ch1
(ืืืืืืจ ืขืฆืื ืืืืืจ ืืชืฆืืจื) -
ืฉืื ืืงืฉื ืืงืืืงืืืืก
-
ืืืงืจื ืฉื ืฉืืืื, ืื ื ืืฆืืืื ืืืืขื ืืืืื ืืืืฆืืื
-
ืืฉืืื ืืช ืชืืฆืืช ืืฉืืืืชื ืขื ืงืืืข (ืืืืืื ืืื, ื ืืื ืืงืื ืขืจื ืื, ืืืฉื, ืืืกื ืื ืชืื ืื ืฉื Postgres)
-
ืืคืขื ืื ืืฉืืช ืืชืจืื ืขื ืืืื
rps-min-limit
-
ืชืงืื ืืชืจืื ืื โโืกืืืืก ืืืชืจืื ืืฉืชื ื
ืืืืืื ืื ืคืฉืืื ืืืืื ืช. ืขื ืืืช, ืืืืื, ืืืืื ืืืืืชืืื ืชืกืจืืืื ืืืืืื ืืืืืช ืื ืืจืืืื ืืืืจืืืื. ืงื ืืืชืืืื ืืืขืฉืืช ืืขืืืืช.
ืืื, ืืืฉืื ืจืฆืื ืืืืื ื - ืืืืืช ืืกืืื ืืืชืื ืืืื ืื ืืชืกืจืืืื ืฉืื. ืืืืจืกื v0.4.0 ืื ืืืคืืข.
ืืืืงืช ืกืงืจืืคืืื
ืืืืงื ืืืืืื ืขืืืจ ืืกืงืจืืคื ืฉืื ื ืืืืืืื ืืืขืื:
-- @test script1
-- @name script1-test
test = require('test')
local resp = {
{
rps = 10
}
}
test.datasource('clickhouse.ch1').on('query', 'SELECT sum(requests) AS rps FROM some_table WHERE date = now()').response(resp)
test.alert().assertCalled('error', 'rps-min-limit', 'Requests RPS are very small: 10')
test.alert().assertNotCalled('success', 'rps-min-limit', 'Requests RPS ok')
ืืฉืืืื ืืืืื:
-
ืฆืืื ื ืืช ืฉื ืืชืกืจืื ืฉืขืืืจื ื ืืชื ืืืืื
-
ืฉื ืืืืงื (ืขืืืจ ืืืื ืื)
-
ืืืจ ืืช ืืืืื ืืืืืงื
-
ืื ื ืืืืจืื ืืืื ืชืืฆืื ืืฉ ืืืืืืจ ืขืืืจ ืืงืฉื ืกืคืฆืืคืืช ืืืืช ืืงืืืง
ch1
-
ืื ื ืืืืงืื ืฉืืืชืจืื (ืฉืืืื) rps-min-limit ืขื ืืืืืขื ืฉืฆืืื ื ื ืงืจืื
-
ืืืืง ืฉืืชืจืืช rps-min-limit ืื ืืืฉืืชื (ืืฆืืื)
ืื ืขืื ืืืื ืืืืืจ ืืขืฉืืช?
ืื ืกื ืืืขืช ืืืืฉืืจื ืืืืืจ ืืืฉืืืื ืืืืชืจ ืืืขืชื. ืืชื ืืืื ืืจืืืช ืืื ืืคืืจืื ืืืชืจ ืืจืฉืื
-
ืืงืื ื ืชืื ืื ื
-
ืืืช ืงืืืง
-
postgres
-
MySQL
-
ืคืจืืืชืืืก
-
ืืืงื
-
-
ืืฉืืื ืืืืขืืช ืืขืจืืฆืื
-
ืจึธืคืึผื
-
ืืืจืง
-
syslog
-
ืืชืจืื (ืืืืขืืช ืืืฉืง ืืฉืชืืฉ ืืืืฉื ืฉืื)
-
ืืืืื
-
ืืืืืงืช
-
-
ืื ื ืืจืคืื ืขื ืกืื ืื ืชืื ืื ืฉืื, ืืขืื ืืช ืืชืืื ื ืืืืกืื ืชืืื S3 ืืฆืจืฃ ืืืชื ืืืชืจืืืช (
ืืืืื ืขื ืชืืื ืืช ) -
ืืืคืฉืจ ืื ืืืืืืฃ ื ืชืื ืื ืืื ืกืงืจืืคืืื - ืืืกืื ืืคืชื/ืขืจื ืืืืืื
-
ืืชืื ืกืคืจืืืช ืืฉืื ื-Lua ืืืฉืชืืฉ ืืื ืืกืงืจืืคืืื (ืืืจืืจืช ืืืื, ืกืคืจืืืช lua ืืกืืคืงืืช ืืขืืืื ืขื json, csv)
-
ืฉืื ืืงืฉืืช HTTP ืืืกืงืจืืคืืื ืฉืื (ืืงืื ืชืืืืืช, ืืืืื)
-
ืืกืคืง API (ืขืืืื ืื ืคืื ืงืฆืืื ืื ืืคื ืฉืืืื ื ืจืืฆืื)
-
ืืืืฆื ืืืืื ืืคืืจืื ืคืจืืืชืืืก
ืื ืขืื ืืืืช ืจืืฆื ืืืืืช ืืกืืื ืืขืฉืืช?
ืืืจ ืืจืืจ ืฉืืฉืชืืฉืื ืืื ืื ื ืจืืฆืื ืืช ืืืืืืช ืืฉืืื ืืืฉืงืช ืกืงืจืืคืืื ืืืืฆืขืืช ืืชืืืืจ cron. ืื ืืืขืฉื ืืคื ื ืืจืกื v1.0.0
ืื ื ืจืืฆื ืืชืืื ืืืงืืจืืช ื ืชืื ืื ื ืืกืคืื ืืืขืจืืฆื ืืกืืจืช ืืืืขืืช. ืืืืืื, ืืืฉืื ืืืืื ืืชืืขืืข ื-MongoDB. ืืืคืืฉ ืืืกืื ืขืืืจ ืืื. ืฉืื SMS ื/ืื ืืฆืข ืฉืืืืช ืืืืคืื ืื ืืื ืฉืื. ืื ืื ื ืจืืฆืื ืืืืืช ืืกืืืืื ืืงืื ืกืงืจืืคืืื ืื ืจืง ืืงืืฆืื, ืืื ืื, ืืืฉื, ืืืกื ื ืชืื ืื. ืืกืืคื ืฉื ืืืจ, ืื ืื ื ืจืืฆืื ืืชืจ ืืืืืืชื ืืืชืจ ืืืฉืชืืฉ ืืชืืขืื ืืื ืืืชืจ ืขืืืจ ืืคืจืืืงื.
ืืืฉืื ืชืืื ืืคืกืคืก ืืฉืื) ืืื ืื ื ืืกืชืืืื ืขื ืืงืฉืช ืืงืืืื ืขื ืื ืช ืืงืืืข ืกืืจ ืขืืืคืืืืช ื ืืื. ืืืขืืจืช ืืงืืืื ืืืืฉ ืืื
ืืกืืืื
ืื ื ืืฉืชืืฉืื
ืืืจืื ืืื ืขื ืื ืืฉื ืืืืกื ืืฆืืืืจ ืฉืื.
ืืงืืจ: www.habr.com