Basa riri nyore rine chenjedzo dzakaoma. Kana kuti nhoroondo yekusikwa kweBalerter

Basa riri nyore rine chenjedzo dzakaoma. Kana kuti nhoroondo yekusikwa kweBalerter

Munhu wese anoda chenjedzo.

Ehe, zviri nani kuziviswa kana chimwe chinhu chakaitika (kana kuti chagadziriswa) pane kugara uye kutarisa magirafu uye kutsvaga anomalies.

Uye zvishandiso zvakawanda zvakagadzirirwa izvi. Alertmanager kubva kuPrometheus ecosystem uye vmalert kubva kuVictoriaMetrics chigadzirwa boka. Zabbix zviziviso uye chenjedzo muGrafana. Anozvinyora ega mubash uye Telegraph bots ayo nguva nenguva anodhonza imwe URL uye anokuudza kana chimwe chinhu chisina kunaka. Zvizhinji zvezvose.

Isu, mukambani yedu, takashandisawo mhinduro dzakasiyana kudzamara tapinda mukuoma, kana kuti kusaita, kwekugadzira yakaoma, inoumbwa chenjedzo. Zvataida uye zvatakapedzisira kuita zviri pazasi pekucheka. TLDR: Aya ndiwo maitiro akavhurwa sosi purojekiti yakaonekwa Balerter

Kwenguva yakareba takagara zvakanaka nechenjedzo dzakagadzirirwa muGrafana. Hongu, iyi haisi iyo nzira yakanakisisa. Zvinogara zvichikurudzirwa kushandisa mamwe ehunyanzvi mhinduro, senge Alertmanager. Uye isu takatarisawo kune kufamba kanopfuura kamwe. Uyezve, zvishoma nezvishoma, taida zvakawanda.

Iti kana imwe chati yadonha / yakawedzera neXX% uye yave iripo kwemaminetsi eN kana ichienzaniswa nenguva yapfuura yeM maawa? Zvinoita sekuti unogona kuedza kuita izvi neGrafana kana Alertmanager, asi hazvisi nyore. (Kana kuti pamwe hazvigoneke, handisi kuzotaura izvozvi)

Zvinhu zvinotowedzera kuoma kana sarudzo yekuchenjerera ichifanira kuitwa zvichibva pane data kubva kwakasiyana masosi. Live muenzaniso:

Isu tinotarisa iyo data kubva maviri Clickhouse dhatabhesi, tozoienzanisa neimwe data kubva kuPostgres, uye sarudza pane yambiro. Chiratidzo kana kukanzura

Takaunganidza zvishuwo zvakawanda zvakafanana zvekuti isu tifunge nezvechisarudzo chedu. Uye zvino takaedza kuunganidza rondedzero yekutanga yezvinodiwa / kugona kwesevhisi iyi, iyo isati yagadzirwa.

  • kuwana kwakasiyana data masosi. Semuenzaniso, Prometheus, Clickhouse, Postgres

  • tumira zviziviso kune akasiyana chiteshi - telegraph, slack, nezvimwe.

  • mukati mekufunga, zvakava pachena kuti ini ndakanga ndisingadi rondedzero yekuzivisa, asi kugona kunyora zvinyorwa.

  • kushandisa zvinyorwa pachirongwa

  • Kugadziridza kuri nyore kwezvinyorwa pasina kutangazve sevhisi

  • kugona neimwe nzira kuwedzera mashandiro pasina kuvaka patsva sevhisi kubva kusource codes

Rondedzero iyi ndeyekufungidzira uye kazhinji haina kunyatsojeka. Dzimwe pfungwa dzakachinja, dzimwe dzakafa. Zvese zviri semazuva ese.

Chaizvoizvo, iyi ndiyo nzira yakatanga nhoroondo yeBalerter.

Basa riri nyore rine chenjedzo dzakaoma. Kana kuti nhoroondo yekusikwa kweBalerter

Ini ndichaedza kutsanangura muchidimbu zvakaitika pakupedzisira uye kuti zvinoshanda sei. (Hongu, hongu, uku hakusi kuguma. Pane zvirongwa zvakawanda zvekuvandudzwa kwechigadzirwa. Ndichangomira nhasi)

Sei kushanda?

Iwe unonyora script muLua kwaunotumira zvakajeka zvikumbiro (kuPrometheus, Clickhouse, nezvimwewo). Iwe unogamuchira mhinduro uye neimwe nzira unozvigadzira nekuzvienzanisa. Wobva wabatidza/dzima imwe mhando yechenjedzo. Balerter pachayo inotumira chiziviso kune chiteshi chawakagadzira (Email, telegraph, slack, nezvimwewo). Iyo script inoitwa panguva dzakatarwa. Uye ... kazhinji, ndizvo chete)

Zvakanakisa kuratidza nemuenzaniso:

-- @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 

Chii chiri kuitika pano:

  • isu tinoratidza kuti script iyi inofanirwa kuitwa masekonzi gumi ega ega

  • ratidza zita rechinyorwa (cheAPI, chekuratidzira mumatanda, chekushandisa mubvunzo)

  • batanidza iyo module yekuburitsa matanda

  • batanidza module kuti uwane iyo clickhouse ine zita ch1 (iyo yekubatanidza pachayo inogadziriswa mune config)

  • tumira chikumbiro kune clickhouse

  • kana paine chikanganiso, tinoratidza meseji mulogi uye tobuda

  • enzanisa mhedzisiro yemubvunzo neinogara (mumuenzaniso mhenyu, tinogona kuwana kukosha uku, semuenzaniso, kubva kuPostgres dhatabhesi)

  • gonesa kana kudzima yambiro neID rps-min-limit

  • iwe uchagamuchira chiziviso kana mamiriro echenjedzo achinja

Muenzaniso wacho uri nyore uye unonzwisisika. Nekudaro, chokwadi, muhupenyu chaihwo zvinyorwa zvinogona kureba uye zvakaoma. Zviri nyore kuvhiringika uye kukanganisa.

Nokudaro, chido chine musoro chakura - kukwanisa kunyora bvunzo dzezvinyorwa zvako. Uye muvhezheni v0.4.0 izvi zvakaonekwa.

Kuedza zvinyorwa

Muenzaniso bvunzo yescript yedu kubva pamuenzaniso uri pamusoro:

-- @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')

Mbichana mbichana:

  • ratidza zita rezvinyorwa zvakanyorerwa bvunzo

  • bvunzo zita (yematanda)

  • batanidza test module

  • tinoti mhedzisiro inofanira kudzoserwa kune chaiyo chikumbiro kune clickhouse ch1

  • tinotarisa kuti yambiro (mhosho) rps-min-limit ine meseji yakataurwa yakadanwa

  • tarisa kuti rps-min-limit alert haina kuvharwa (kubudirira)

Chii chimwe chinogona kuitwa naBalerter?

Ini ndichaedza kubata pane zvakanyanya kukosha, mumaonero angu, hunyanzvi hweBalerter. Iwe unogona kuona zvese zvakadzama pane yepamutemo webhusaiti https://balerter.com

  • gamuchira data kubva

    • clickhouse

    • postgres

    • mysql

    • promethean

    • loki

  • tumira zviziviso kumachaneli

    • slack

    • teregiramu

    • syslog

    • zivisa (UI zviziviso pakombuta yako)

    • e

    • kusawirirana

  • gadzira magirafu zvichienderana nedata rako, rodha chifananidzo kuS3 chinoenderana chengetedzo uye chisungirire kune zviziviso (Muenzaniso nemifananidzo)

  • inokutendera iwe kuchinjanisa data pakati pezvinyorwa - yepasi rose Kiyi / Kukosha kuchengetedza

  • nyora ako ega maraibhurari muLua uye uashandise mune zvinyorwa (nekuda, lua maraibhurari anopihwa kushanda nejson, csv)

  • tumira zvikumbiro zveHTTP kubva kune zvinyorwa zvako (uye gamuchira mhinduro, hongu)

  • inopa API (isati yashanda sezvatinoda)

  • inotumira kunze metrics muPrometheus fomati

Chii chimwe chaungade kuti ugone kuita?

Zvatove pachena kuti vashandisi uye isu tinoda kugona kudzora kutangwa kwezvinyorwa tichishandisa syntax cron they. Izvi zvichaitwa pamberi pevhezheni v1.0.0

Ndinoda kutsigira mamwe data masosi uye zviziviso zvekuendesa zviteshi. Semuenzaniso, mumwe munhu achapotsa MongoDB. Elastic Tsvaga yevamwe. Tumira SMS uye/kana kufona kunharembozha yako. Tinoda kukwanisa kugamuchira zvinyorwa kwete kubva kumafaira, asiwo, semuenzaniso, kubva kune database. Mukupedzisira, isu tinoda yakawanda-mushandisi-inoshamwaridzika webhusaiti uye zvirinani zvinyorwa zvepurojekiti.

Mumwe munhu anogara achishayiwa chimwe chinhu) Pano tinovimba nechikumbiro chenharaunda kuitira kuti tigadzire zvakakosha. Uye nerubatsiro rwenharaunda kuziva zvese

Mukupedzisa

Tinoshandisa Balerter Ndava nayo kwenguva yakati rebei. Mazhinji ezvinyorwa anochengetedza rugare rwedu rwepfungwa. Ndinovimba kuti basa iri richabatsira mumwe munhu.

Uye gamuchirwa neChinyorwa chako uye PR.

Source: www.habr.com

Voeg