Shaqo fudud oo leh digniino adag. Ama taariikhda abuurkii Balerter
Qof kastaa wuu jecel yahay digniinaha.
Dabcan, waxa aad uga wanaagsan in la ogaysiiyo marka ay wax dhacaan (ama la hagaajiyo) intii la fadhiisan lahaa oo la eegi lahaa garaafyada oo la raadin lahaa cillado.
Qalab badan ayaana loo sameeyay tan. Maamulaha digniinta ee nidaamka deegaanka Prometheus iyo vmalert oo ka socda kooxda wax soo saarka ee VictoriaMetrics. Ogeysiinta Zabbix iyo ogeysiisyada gudaha Grafana. Qoraallo iskood isku qoray oo ku jira bash iyo bots Telegram kuwaas oo si xilliyo ah u soo jiida URL oo kuu sheega haddii ay wax khaldan yihiin. Wax badan oo ka mid ah.
Anaga, shirkaddeena, sidoo kale waxaan isticmaalnay xalal kala duwan ilaa aan ku dhex orno kakanaanta, ama, halkii, suurtagal maaha abuurista digniino isku dhafan. Wixii aanu rabnay iyo wixii aanu ku dhammaynay ayaa ka hooseeya goynta. TLDR: Tani waa sida mashruuca isha furan uu u muuqday Balerter
Muddo dheer waxaan si fiican ugu noolayn digniinaha lagu habeeyay Grafana. Haa, tani maaha habka ugu fiican. Had iyo jeer waxaa lagu talinayaa in la isticmaalo xalal gaar ah, sida Alertmanager. Waxaan sidoo kale eegnay inaan u dhaqaaqno wax ka badan hal mar. Ka dibna, in yar, waxaan rabnay wax badan.
Sheeg marka jaantus gaar ah uu hoos u dhacay/kordhay XX% oo uu jiray daqiiqado N marka loo eego saacadihii hore ee M? Waxay u muuqataa inaad isku dayi karto inaad tan ku hirgaliso Grafana ama Alertmanager, laakiin ma fududa. (Ama waxaa laga yaabaa inaysan suurtagal ahayn, hadda ma dhihi doono)
Arrimuhu way sii adkaanayaan marka go'aanka digniinta lagu saleeyo xogta ilo kala duwan. Tusaalaha tooska ah:
Waxaan ka hubinaa xogta laba kayd oo Clickhouse ah, ka dibna barbar dhig xogta qaar ka mid ah Postgres, oo go'aan ka gaarno digniin. Signal ama tirtir
Waxa aanu ururinay rabitaano badan oo la mid ah si aanu uga fikirno go'aankayaga. Kadibna waxaan isku daynay inaan soo koobno ββliiska ugu horreeya ee shuruudaha / awoodaha adeeggan, oo aan weli la abuurin.
cusboonaysiinta fudud ee qoraallada adiga oo aan dib u bilaabin adeegga
Awood u leh in si uun loo ballaariyo shaqeynta iyada oo aan dib loo dhisin adeegga laga soo bilaabo koodhadhka isha
Liiskani waa qiyaas waxana ay u badan tahay in aanu sax ahayn. Qodobbada qaar ayaa isbeddelay, qaarna way dhinteen. Wax walba waa sidii caadiga ahayd.
Dhab ahaantii, tani waa sida taariikhda Balerter ku bilaabatay.
Waxaan isku dayi doonaa inaan si kooban u qeexo wixii dhacay dhamaadkii iyo sida ay u shaqeyso. (Haa, dabcan, tani maaha dhamaadka. Waxaa jira qorshayaal badan oo loogu talagalay horumarinta alaabta. Waxaan joojin doonaa maanta)
Sidee u shaqeeyaan?
Waxaad ku qortaa qoraal gudaha Lua halkaas oo aad si cad ugu dirto codsiyada (Prometheus, Clickhouse, iwm.). Waxaad helaysaa jawaabo oo si uun baad uga baaraandegtaa oo is barbar dhig. Dabadeed dami/dami nooc ka mid ah digniinta. Balerter laftiisa ayaa ogeysiin u diri doona kanaalada aad habaysay (Email, telegram, slack, iwm.). Qoraalka waxaa lagu fuliyaa waqtiyo cayiman. Iyo... guud ahaan, taasi waa dhammaan)
Way fiicantahay in lagu muujiyo tusaale:
-- @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
Maxaa halkan ka socda:
waxaanu tilmaamaynaa in qoraalkan la fuliyo 10kii ilbiriqsi kasta
Tilmaan magaca qoraalka (ee API, si loogu soo bandhigo diiwaanka, loogu isticmaalo imtixaannada)
ku xidhid moduleka si aad u soo saarto logyada
ku xidh module si aad u gasho guriga gujin ee magaca ch1 (xidhiidhka laftiisa ayaa lagu habeeyey config)
codsi u dir clickhouse
Haddii ay dhacdo qalad, waxaan ku soo bandhignaa fariin log iyo bixitaan
barbar dhig natiijada weydiinta mid joogto ah (tusaale nool, waxaan ka heli karnaa qiimahan, tusaale ahaan, xogta Postgres)
karti ama dami digniinta aqoonsiga rps-min-limit
waxaad heli doontaa ogeysiin haddii heerka feejignaanta uu isbedelay
Tusaalaha waa mid fudud oo la fahmi karo. Si kastaba ha ahaatee, dabcan, qoraallada nolosha dhabta ah waxay noqon karaan kuwo aad u dheer oo adag. Way fududahay in la jahawareeriyo oo aad khalad samayso.
Sidaa darteed, rabitaan macquul ah ayaa qaan gaadhay - si aad u awooddo inaad u qorto imtixaannada qoraalladaada. Iyo nooca v0.4.0 tani waxay u muuqatay.
Qoraalada tijaabada
Imtixaanka tusaalaha qoraalkayaga ee tusaalaha sare:
-- @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')
Tallaabooyinka:
Tilmaan magaca qoraalka imtixaanku u qoran yahay
magaca tijaabada (loogu talagalay)
isku xidh moduleka imtixaanka
waxaanu nidhi waxa natiijada lagu soo celinayo codsi gaar ah oo loo dirayo clickhouse ch1
Waxaan hubineynaa in digniinta (qaladka) rps-min-limit ee fariinta la cayimay la soo wacay
hubi in digniinta rps-min-limit aanu naafo ahayn (guul)
Maxaa kale oo Balerter samayn karaa?
Waxaan isku dayi doonaa inaan taabto kuwa ugu muhiimsan, fikradayda, xirfadaha Balerter. Waxaad ka arki kartaa wax walba si faahfaahsan website-ka rasmiga ah https://balerter.com
xogta ka hel
clickhouse
postgres
MySQL
socodsiinta
loki
ogeysiis u dir kanaalada
gooyay
telegram
syslog
ogeysiin (Ogaysiisyada UI ee kumbuyuutarkaaga)
email
khilaafaad
dhis garaafyo ku salaysan xogtaada, ku dheji sawirka kaydinta ku habboon S3 oo ku dheji ogeysiisyada (Tusaale sawiro leh)
Waxay kuu ogolaanaysaa inaad ku beddesho xogta u dhaxaysa qoraallada - kaydinta furaha/qiimaha caalamiga ah
ku qor maktabadahaaga Lua oo u isticmaal qoraallo (sida caadiga ah, Lua maktabadaha waxaa loo keenay la shaqaynta json, csv)
Codsiyada HTTP ka soo dir qoraaladaada (oo hel jawaabaha, dabcan)
waxay bixisaa API (wali uma shaqayn sidii aan jeclaan lahayn)
dhoofinta metrics qaab Prometheus
Maxaa kale oo aad jeclaan lahayd inaad awooddo?
Way caddahay in dadka isticmaala iyo waxaan rabnaa awoodda lagu xakameynayo bilaabista qoraallada iyadoo la adeegsanayo syntax text. Tan waxa la samayn doonaa ka hor nooca v1.0.0
Waxaan jeclaan lahaa inaan taageero ilo xog badan iyo kanaalada gaarsiinta ogeysiiska. Tusaale ahaan, qof ayaa hubaal ahaan u tabi doona MongoDB. Raadi Laastik ah qaar. U dir SMS iyo/ama wicitaano ka samee taleefankaaga gacanta. Waxaan rabnaa inaan awoodno inaan ka helno qoraallada kaliya maahan faylalka, laakiin sidoo kale, tusaale ahaan, keydka xogta. Dhammaadka, waxaan rabnaa degel isticmaale-saaxiibtinimo badan iyo dukumeenti ka wanaagsan mashruuca.
Qof had iyo jeer wax baa ka maqan) Halkan waxaan ku tiirsannahay codsiga bulshada si loo dejiyo mudnaanta si sax ah. Iyo in la caawiyo bulshada si loo xaqiijiyo wax walba
Gabagabada
Waxaan isticmaalnaa Balerter In muddo ah ayaan haystay hadda. Daraasiin qoraal ah ayaa ilaaliya nabaddayada maskaxda. Waxaan rajeynayaa in shaqadani ay faa'iido u yeelan doonto qof kale.