แงแแแแแก แฃแงแแแ แก แแแคแ แแฎแแแแแแแ.
แ แ แแฅแแ แฃแแแ, แแแแ แแ แฃแแแแแกแแ แจแแขแงแแแแแแแแแ, แ แแแแกแแช แ แแฆแแช แแแฎแแ (แแ แแแแแกแฌแแ แแ), แแแแ แ แแฏแแ แแ แฃแงแฃแ แ แแ แแคแแแแแก แแ แแแซแแแแ แแแแแแแแแแ.
แแ แแแแกแแแแก แจแแแฅแแแ แแ แแแแแ แแแกแขแ แฃแแแแขแ. Alertmanager แแ แแแแแแก แแแแกแแกแขแแแแแแ แแ vmalert VictoriaMetrics แแ แแแฃแฅแชแแแก แฏแแฃแคแแแแ. Zabbix แจแแขแงแแแแแแแแแ แแ แแแคแ แแฎแแแแแแแ Grafana-แจแ. แกแแแฃแแแ แ แฎแแแแ แแแฌแแ แแแ แกแแ แแแขแแแ bash-แจแ แแ Telegram-แแก แแแขแแแจแ, แ แแแแแแแช แแแ แแแแฃแแแ แแฆแแแแ URL-แแแก แแ แแแขแงแแแแ, แแฃ แ แแแ แแ แแกแฌแแ แแ. แแแแ แ แงแแแแแคแแ แ.
แฉแแแ, แฉแแแแก แแแแแแแแแจแ, แแกแแแ แแแงแแแแแแแ แกแฎแแแแแกแฎแแ แแแแแฌแงแแแขแแแแแแแก, แกแแแแ แแ แจแแแแแฅแแแ แกแแ แแฃแแ, แฃแคแ แ แกแฌแแ แแ, แ แแฃแแ, แแแแแแแแขแฃแ แ แกแแแแแแแแแก แจแแฅแแแแก แจแแฃแซแแแแแแแ. แ แ แแแแแแแแ แแ แ แแกแ แแแแแแแแแช แแแแแกแ แฃแแแ, แฅแแแแแแแ. TLDR: แแกแ แแแแแฉแแแ แฆแแ แแแแแก แแ แแแฅแขแ
แกแแแแแแ แแแแ แฎแแแก แแแแแแแแแแแจแ แฉแแแ แแแ แแแ แแชแฎแแแ แแแแแ แแ แแคแแแแจแ แแแแคแแแฃแ แแ แแแฃแแ แแแคแ แแฎแแแแแแแแ. แแแแฎ, แแก แแ แแ แแก แกแแฃแแแแแกแ แแแ. แงแแแแแแแแก แ แแแแแแแแแแฃแแแ แกแแแชแแแแแแแแฃแแ แแแแแฌแงแแแขแแแแแแแแก แแแแแงแแแแแ, แ แแแแ แแชแแ Alertmanager. แฉแแแ แแกแแแ แแแแแแฎแแแแ แแแแแแแแแแแแแก แแ แแแ แแฎแแ. แจแแแแแ แแ, แแแ-แแแแ, แแแขแ แแแแแแแแ.
แแฅแแแ, แ แแแแกแแช แแแ แแแแฃแแ แแแแแ แแแ แแแแชแ/แแแแแแ แแ XX%-แแ แแ แแงแ แแฅ N แฌแฃแแแก แแแแแแแแแแแจแ M แกแแแแแก แฌแแแ แแแ แแแแแแ แจแแแแ แแแแ? แ แแแแ แช แฉแแแก, แจแแแแซแแแแ แกแชแแแแ แแแแก แแแแฎแแ แชแแแแแแ Grafana-แกแแแ แแ Alertmanager-แแแ, แแแแ แแ แแก แแ แช แแกแ แแแแแแแ. (แแ แจแแแซแแแแ แแก แจแแฃแซแแแแแแแ, แแฎแแ แแ แแแขแงแแ)
แกแแฅแแ แแแแแ แฃแคแ แ แ แแฃแแแแแ, แ แแแแกแแช แแแคแ แแฎแแแแแแก แแแแแฌแงแแแขแแแแแ แฃแแแ แแฅแแแก แแแฆแแแฃแแ แกแฎแแแแแกแฎแแ แฌแงแแ แแก แแแแแชแแแแแแ แแแงแ แแแแแแ. แชแแชแฎแแแ แแแแแแแแ:
แฉแแแ แแแแแฌแแแแ แแแแแชแแแแแก แแ แ Clickhouse แแแแแชแแแแ แแแแแแแ, แจแแแแแ แแแแแ แแแ แแแก Postgres-แแก แแแแแแ แ แแแแแชแแแก แแ แแฌแงแแแขแ แแแคแ แแฎแแแแแแก. แกแแแแแแ แแ แแแฃแฅแแแแ
แกแแแแแแ แแแแ แ แแกแแแแกแ แกแฃแ แแแแ แแแแแแแ แแแแ, แ แแ แฉแแแแก แแแแแฌแงแแแขแแแแแแแ แแแคแแฅแ แแ. แจแแแแแ แแ แจแแแแชแแแแ แจแแแแแแแแแ แแ แกแแ แแแกแแก แแแแฎแแแแแแ/แจแแกแแซแแแแแแแแแแก แแแ แแแแ แกแแ, แ แแแแแแช แฏแแ แแ แแ แแก แจแแฅแแแแแ.
-
แฌแแแแแ แกแฎแแแแแกแฎแแ แแแแแชแแแแ แฌแงแแ แแแแแ. แแแแแแแแแ, แแ แแแแแ, Clickhouse, Postgres
-
แแแแแแแแแ แจแแขแงแแแแแแแแแ แกแฎแแแแแกแฎแแ แแ แฎแแแแ - แขแแแแแ แแแ, 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-แกแแแแก, แแฃแ แแแแแแจแ แแแแแกแแขแแแแ, แขแแกแขแแแจแ แแแแแกแแงแแแแแแแ)
-
แแแแแแแจแแ แแ แแแแฃแแ แแฃแ แแแแแแแก แแแแแกแแขแแแแ
-
แแแแแแแจแแ แแ แแแแฃแแ แกแแฎแแแแ clickhouse-แแ แฌแแแแแแกแแแแก
ch1
(แแแแแ แแแแจแแ แ แแแแคแแแฃแ แแ แแแฃแแแ แแแแคแแแฃแ แแชแแแจแ) -
แแแแแแแแแ แแแแฎแแแแ clickhouse-แแ
-
แจแแชแแแแแก แจแแแแฎแแแแแจแ แแแฉแแแแแแ แจแแขแงแแแแแแแแก แแฃแ แแแแจแ แแ แแแแแแแแแแ แ
-
แจแแแแแ แแ แจแแแแแฎแแแก แจแแแแแ แแฃแแแแแแแ (แชแแชแฎแแ แแแแแแแแจแ, แฉแแแ แจแแแแแซแแแ แแแแแฆแแ แแก แแแแจแแแแแแแ, แแแแแแแแแ, Postgres แแแแแชแแแแ แแแแแแแ)
-
แแแคแ แแฎแแแแแแก แฉแแ แแแ แแ แแแแแ แแแ ID-แแ
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')
แแแแแฏแแแจแ:
-
แแแฃแแแแแ แกแชแแแแ แแก แแแกแแฎแแแแแ, แ แแแแแแแแแช แแแฌแแ แแแแ แขแแกแขแ
-
แขแแกแขแแก แกแแฎแแแ (แแแแแกแแแแก)
-
แแแแแแแจแแ แแ แขแแกแขแแ แแแแก แแแแฃแแ
-
แฉแแแ แแแแแแแ, แ แ แจแแแแแ แฃแแแ แแแแ แฃแแแแก แแแแแ แแขแฃแแ แแแแฎแแแแแกแแแแก clickhouse-แจแ
ch1
-
แฉแแแ แแแแแฌแแแแ, แ แแ แแแแแซแแฎแแแฃแแ แแงแ แแแคแ แแฎแแแแแ (แจแแชแแแแ) rps-min-limit แแแแแแแแฃแแ แแแแแแแแแ
-
แจแแแแแฌแแแ, แ แแ rps-min-limit แแแคแ แแฎแแแแแ แแ แแงแ แแแแแ แแฃแแ (แฌแแ แแแขแแแฃแแ)
แแแแแ แ แ แจแแฃแซแแแ แแแแแ แขแแ แก?
แจแแแแชแแแแ แจแแแแฎแ แงแแแแแแ แแแแจแแแแแแแแ, แฉแแแ แแแ แแ, แแแแแ แขแแ แแก แฃแแแ แแแก. แงแแแแแคแแ แ แแแขแแแฃแ แแ แจแแแแซแแแแ แแแฎแแ แแคแแชแแแแฃแ แแแแแแแ แแแ
-
แแแแแชแแแแแแก แแแฆแแแ
-
clickhouse
-
แแแกแขแแ แแแ
-
mysql
-
แแ แแแแแ
-
loki
-
-
แแแแแแแแแ แจแแขแงแแแแแแแแแ แแ แฎแแแแ
-
slack
-
แแแแแจแ
-
syslog
-
แจแแขแงแแแแแแแ (UI แจแแขแงแแแแแแแแแ แแฅแแแแก แแแแแแฃแขแแ แแ)
-
แแแคแแกแขแแแ
-
แฃแแแแฎแแแแแ
-
-
แจแแฅแแแแแ แแ แแคแแแแแ แแฅแแแแก แแแแแชแแแแแแ แแแงแ แแแแแแ, แแขแแแ แแแ แกแฃแ แแแ S3 แแแแกแแแแ แกแแชแแแจแ แแ แแแแแแแ แแ แจแแขแงแแแแแแแแแก (
แแแแแแแแ แกแฃแ แแแแแแ ) -
แกแแจแฃแแแแแแก แแแซแแแแ แแแชแแแแแ แแแแแชแแแแแ แกแแ แแแขแแแก แจแแ แแก - แแแแแแแฃแ แ Key/Value แกแแชแแแ
-
แแแฌแแ แแ แแฅแแแแ แกแแแฃแแแ แ แแแแแแแแแแแแ Lua-แจแ แแ แแแแแแงแแแแ แแกแแแ แกแแ แแแขแแแจแ (แแแแฃแแแกแฎแแแแแ, lua แแแแแแแแแแแแ แแแฌแแแแแฃแแแ json, csv-แแแ แแฃแจแแแแแกแแแแก)
-
แแแแแแแแแ HTTP แแแแฎแแแแแแ แแฅแแแแ แกแแ แแแขแแแแแแ (แแ แแแแฆแแ แแแกแฃแฎแแแ, แ แ แแฅแแ แฃแแแ)
-
แฃแแ แฃแแแแแงแแคแก API-แก (แฏแแ แแ แแ แแก แแกแแแ แคแฃแแฅแชแแแแแแฃแ แ, แ แแแแ แช แฉแแแ แแแกแฃแ แก)
-
แแแขแ แแแแก แแฅแกแแแ แขแก แแ แแแแแแก แคแแ แแแขแจแ
แแแแแ แ แแกแ แแแแแแแแ แแกแฃแ แ?
แฃแแแ แแแแแแแ, แ แแ แแแแฎแแแ แแแแแแก แแ แฉแแแ แแแแแแ แกแแ แแแขแแแแก แแแจแแแแแก แแแแขแ แแแ แกแแแขแแฅแกแแก แแแแแงแแแแแแ cron. แแก แแแแแแแแแ v1.0.0 แแแ แกแแแแแ
แแ แแกแฃแ แก แแแขแ แแแแแชแแแแ แฌแงแแ แแแแแก แแ แจแแขแงแแแแแแแแแแก แแแฌแแแแแแก แแ แฎแแแแก แแฎแแ แแแญแแ แ. แแแแแแแแแ, แแแแแแก แแฃแชแแแแแแแ แแแแแขแแแแแก MongoDB. แแแแกแขแแฃแ แ แซแแแแ แแแแแแ แแแกแแแแก. แแแแแแแแแ SMS แแ/แแ แแแ แแแแ แแฅแแแแก แแแแแแฃแ แขแแแแคแแแแ. แฉแแแ แแแแแแ แจแแแซแแแ แกแแ แแแขแแแแก แแแฆแแแ แแ แ แแฎแแแแ แคแแแแแแแแแ, แแ แแแแ, แแแแแแแแแ, แแแแแชแแแแ แแแแแแแ. แกแแแแแแ แฏแแแจแ, แฉแแแ แแแแแแ แฃแคแ แ แแแกแแฎแแ แฎแแแแแ แแแแกแแแขแ แแ แฃแแแแแกแ แแแแฃแแแแขแแชแแ แแ แแแฅแขแแกแแแแก.
แแแฆแแชแแก แงแแแแแแแแก แ แแฆแแช แแแแแ) แแฅ แฉแแแ แแแงแ แแแแแแ แกแแแแแแแแแแแก แแแแฎแแแแแก, แ แแแ แกแฌแแ แแ แแแแแแแแแแ แแ แแแ แแขแแขแแแ. แแ แกแแแแแแแแแแแก แแแฎแแแ แแแแก แงแแแแแคแ แแก แ แแแแแแแแแจแ
แแแกแแกแ แฃแแก
แฉแแแ แแแงแแแแแ
แแ แแแแแกแแแแแแ แแฅแแแแก แกแแแแแฎแก แแ PR-แก.
แฌแงแแ แ: www.habr.com