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.

Mahi ngawari me nga matohi uaua. Ko te hitori ranei o te hanganga 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.

Nau mai nau mai me to Putanga me to PR.

Source: will.com

Tāpiri i te kōrero