ProHoster > Блог > Whakahaerenga > Mahi ngawari me nga matohi uaua. Ko te hitori ranei o te hanganga o Balerter
Mahi ngawari me nga matohi uaua. Ko te hitori ranei o te hanganga o Balerter
He pai ki te katoa nga matohi.
Ko te tikanga, he pai ake te whakamohio ina kua pa mai tetahi mea (kua whakatikahia ranei) i te noho ki te titiro kauwhata me te rapu i nga mahi kino.
A he maha nga taputapu kua hangaia mo tenei. Kaitohutohu mai i te punaha rauropi Prometheus me te vmalert mai i te roopu hua VictoriaMetrics. Nga whakamohiotanga me nga matohi a Zabbix i Grafana. Ko nga tuhinga tuhi whaiaro i roto i te bash me te Telegram bots ka tohia etahi URL ka korero ki a koe mena kei te he. He maha nga mea katoa.
Ko matou, i roto i ta maatau kamupene, i whakamahi i nga rongoa rereke tae noa ki te wa e pa ana ki te uaua, engari, ko te kore e taea te hanga matohi uaua, hiato. Ko ta matou i hiahia ai me ta matou i mutu ai kei raro i te tapahi. TLDR: Koinei te ahua o te kaupapa tuwhera puna Balerter
Mo te wa roa i noho pai matou me nga matohi kua whirihorahia ki Grafana. Ae, ehara tenei i te huarahi pai. E taunaki ana kia whakamahia etahi rongoatanga motuhake, penei i te Alertmanager. A i titiro hoki matou ki te neke neke atu i te kotahi. Na, iti i te iti, ka hiahia matou ki etahi atu.
Me kii i te hekenga/te piki ake o tetahi tūtohi ma te XX%, kua noho ki reira mo te N meneti ka whakaritea ki te wa M haora o mua? Te ahua nei ka taea e koe te ngana ki te whakatinana i tenei me Grafana, Alertmanager ranei, engari ehara i te mea ngawari. (Kaore pea e taea, kaore au e kii inaianei)
Ka uaua ake nga mea ka whakatauhia te whakatau mataara i runga i nga raraunga mai i nga punaa rereke. Tauira ora:
Ka tirohia e matou nga raraunga mai i nga papaaarangi Clickhouse e rua, ka whakatauritea ki etahi raraunga mai i nga Postgres, ka whakatauhia he matohi. Waitohu whakakore ranei
Kua kohia e matou he maha nga hiahia rite mo matou ki te whakaaro mo ta matou whakatau. Na ka tamata matou ki te whakahiato i te rarangi tuatahi o nga whakaritenga / kaha o tenei ratonga, kaore ano kia hangaia.
uru atu ki nga puna raraunga rereke. Hei tauira, Prometheus, Clickhouse, Postgres
tuku matohi ki nga momo hongere - waea, mangere, aha atu.
i roto i te tukanga o te whakaaro, ka marama kaore au i te hiahia ki te whakamaarama korero, engari ko te kaha ki te tuhi tuhinga.
te whakahaere tuhinga i runga i te waarangi
te whakahou ngawari o nga tuhinga me te kore e timata ano i te ratonga
te kaha ki te whakawhānui i te mahi me te kore e hanga ano i te ratonga mai i nga waehere puna
He ahua tata tenei rarangi, me te mea kaore i tino tika. I huri etahi tohu, i mate etahi. He rite tonu nga mea katoa.
Inaa, koinei te timatanga o te hitori o Balerter.
Ka ngana ahau ki te whakaahua poto i nga mea i tupu i te mutunga me pehea te mahi. (Ae, ko te tikanga, ehara tenei i te mutunga. He maha nga mahere mo te whanaketanga hua. Ka mutu noa ahau i tenei ra)
Ka pēhea te mahi i te reira?
Ka tuhi koe i tetahi tuhinga ki Lua ka tukuna e koe nga tono (ki Prometheus, Clickhouse, etc.). Ka whiwhi koe i nga whakautu me te tukatuka me te whakataurite. Kātahi ka whakakā/whakaweto i ētahi momo mataara. Ka tukuna e Balerter he panui ki nga waahana kua whirihorahia e koe (Imeera, waea waea, mangere, me etahi atu). Ka mahia te tuhinga i nga waahi kua tohua. A... i te nuinga o te waa, koinei anake)
He pai ake te whakaatu me tetahi tauira:
-- @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
He aha kei konei:
ka tohu matou me mahi tenei tuhinga ia 10 hēkona
tohuhia te ingoa o te tuhinga (mo te API, hei whakaatu i roto i nga raarangi, hei whakamahi i nga whakamatautau)
hono te kōwae mō te whakaputa rākau
honoa he kōwae ki te uru ki te whare pawhiri me te ingoa ch1 (ko te hononga ake kei te whirihora)
tuku tono ki clickhouse
ki te he, ka whakaatu matou i te karere i roto i te rangitaki me te puta
whakatairitehia te hua uiui ki te taumau (i roto i te tauira ora, ka taea e tatou te tiki i tenei uara, hei tauira, mai i te paataka raraunga Postgres)
Whakahohe, whakakorehia ranei te matohi me te ID rps-min-limit
ka whiwhi koe i te whakamohiotanga mehemea kua huri te mana mataara
He tino ngawari te tauira me te maarama. Heoi, o te akoranga, i roto i te ora tūturu hōtuhi e taea e tino roa, me te uaua. He ngawari ki te raruraru me te mahi he.
Na reira, kua pakeke te hiahia arorau - kia taea e koe te tuhi whakamatautau mo o tuhinga. Na i roto i te putanga v0.4.0 puta tenei.
Te whakamatautau i nga tuhinga
He tauira whakamatautau mo ta maatau tuhinga mai i te tauira i runga ake nei:
-- @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')
Nga taahiraa:
tohuhia te ingoa o te tuhinga i tuhia ai te whakamatautau
ingoa whakamātautau (mō ngā rākau)
hono te kōwae whakamātautau
e kii ana matou he aha te hua me whakahoki mai mo tetahi tono motuhake ki te whare panui ch1
ka tirohia e matou ko te matohi (hapa) rps-min-tepe me te karere kua tohua i karangahia
tirohia ko te matohi rps-min-limit kaore i mono (angitu)
He aha atu ka taea e Balerter?
Ka ngana ahau ki te pa atu ki nga mea tino nui, ki taku whakaaro, nga pukenga Balerter. Ka taea e koe te kite i nga mea katoa i runga i te paetukutuku mana https://balerter.com
whiwhi raraunga mai
whare clickhouse
Tuhinga
mysql
prometheus
loki
tuku whakamohiotanga ki nga hongere
ngoikore
waea
syslog
whakamōhio (whakamōhiotanga UI i tō rorohiko)
īmēra
rereke
hanga kauwhata i runga i o raraunga, tuku ake te ahua ki te rokiroki hototahi S3 ka whakapiri atu ki nga whakamohiotanga (He tauira me nga pikitia)
ka taea e koe te whakawhiti raraunga i waenga i nga tuhinga - te rokiroki Key/Uara o te ao
tuhia o ake whare pukapuka ki Lua ka whakamahia ki roto i nga tuhinga (ma te taunoa, ka tukuna nga whare pukapuka lua mo te mahi tahi me json, csv)
tukuna nga tono HTTP mai i o tuhinga (ka whiwhi whakautu, o te akoranga)
he API (kaore ano kia rite ki ta matou e pai ai)
kaweake inenga ki te whakatakotoranga Prometheus
He aha atu e hiahia ana koe kia taea e koe?
Kua tino marama kei te hiahia nga kaiwhakamahi me taatau ki te whakahaere i te whakarewatanga o nga tuhinga ma te whakamahi i te syntax cron. Ka mahia tenei i mua i te putanga v1.0.0
Kei te pirangi au ki te tautoko i etahi atu puna raraunga me nga hongere tuku panui. Hei tauira, ka tino ngaro tetahi ki a MongoDB. Rapu Elastic mo etahi. Tukuna SMS me/ranei waea waea ki to waea pukoro. E hiahia ana matou ki te whiwhi tuhinga mai i nga konae anake, engari ano, hei tauira, mai i te putunga raraunga. I te mutunga, e hiahia ana matou kia pai ake te paetukutuku-kaiwhakamahi me nga tuhinga pai ake mo te kaupapa.
Kei te ngaro tetahi mea i nga wa katoa) I konei ka whakawhirinaki matou ki te tono a te hapori kia tika ai te whakatakoto kaupapa matua. A ki te awhina o te hapori ki te mohio ki nga mea katoa
I te mutunga
Ka whakamahia e maatau Balerter Kua roa kee ahau i tenei wa. He maha nga tuhinga e tiaki ana i to maatau hinengaro. Ko taku tumanako ka whai hua tenei mahi ki tetahi atu.