Ăshte publikuar njĂ« lĂ«shim i projektit IncidentRelay 2.0, i cili zhvillon njĂ« sistem tĂ« hapur pĂ«r organizimin e turneve, pĂ«rcjelljen e njoftimeve dhe mbĂ«shtetje tĂ« incidenteve, tĂ« cilat janĂ« implementuar nĂ« serverin tuaj tĂ« vet (self-hosted). Projekti Ă«shtĂ« orientuar pĂ«r SRE, DevOps dhe ekipet infrastrukturore, tĂ« cilĂ«ve u nevojitet njĂ« alternativĂ« lokale ndaj platformave tĂ« menaxhimit tĂ« turneve nĂ« cloud. Kodi Ă«shtĂ« shkruar nĂ« Python dhe shpĂ«rndahet nĂ«n licencĂ«n MIT.
IncidentRelay pranon ngjarje nga Prometheus Alertmanager, Grafana Alerting, Zabbix, Sentry, LibreNMS, RMON, AWS SNS/CloudWatch, Datadog, Uptime Kuma dhe nga përpunuesit e webhook-ve të rastësishëm. Pas normalizimit, ngjarja lidhet me shërbimin, ekipin dhe rotatën, i aplikohen rregullat e përcjelljes dhe politikave të eskalimit, pas çka njoftimi i dërgohet turnit aktual. Për dërgimin mbështeten Mattermost, Slack, Telegram, Discord, Microsoft Teams, email, webhook, shtytjet e shfletuesit/PWA dhe ofrues të thirrjeve me zë.
Noviteti kryesor i versionit 2.0 është mekanizmi Event Orchestration, i cili ofron një shtresë të veçantë për përpunimin e ngjarjeve ndërmjet integrimeve hyrëse dhe ciklit të jetës së alartit. Ndryshimet kryesore janë:
- Shtuar një redaktor vizual të rregullave të orkestrimit. Rregullat mund të aplikohen në mënyrë globale ose për një shërbim të veçantë, të grupohen në grupe të thelluara kushtesh dhe të ndryshojnë renditjen, nivelin e rëndësisë, etiketat, ekipin, rrugën, mënyrën e grupimit, politikat e njoftimeve dhe eskalimit;
- Kryer veprime për të ndaluar, përjashtuar dhe pezulluar përpunimin e ngjarjeve, për të nxjerrë vlera duke përdorur shprehje të rregullta dhe JSON Path, për të ndarë vargje, për të krijuar variabla dhe për të transformuar vlera;
- Konfigurimi i orkestrimit është i ndarë në skica të redaktueshme dhe versione të publikuara të pandryshueshme. Mbështetet verifikimi i konfigurimit, publikimi, rikthimi në versionin e mëparshëm dhe shtimi i komentëve mbi ndryshimet;
- Parashikohen modulet disabled, shadow dhe active. Në modin shadow, rezultatet e realizimit të rregullave ruhet për analizë, por nuk ndikojnë në përcjelljen reale. Për periudhën kalimtare janë të disponueshme modulet e kompatibilitetit legacy, hybrid dhe orchestration;
- Shtohen mjete për simulimin dhe riprodhimin e ngjarjeve. Ato lejojnë kontrollimin e rregullave mbi një ngjarje të normalizuar ose një payload të burimit të integrimit pa krijuar një alarëm real. Për analizimin e rezultateve, ofrohen gjurmimi i ekzekutimit, të dhënat Explain dhe metrikat e modit të hijes;
- Janë zbatuar veprime webhooks të ri-përdorshme, që kryhen asinkronisht pas përpunimit të ngjarjes. Titujt ruhen në formë të koduar, sekretet fshihen në API dhe në regjistrat, dhe qasjet në rrjetet private janë të ndaluara sipas parazgjedhjes. Mund të konfigurohen kohëmatës, përpjekje të përsëritura dhe një listë adresash të lejuara;
- Shtuar integrimi me Uptime Kuma, që pranon mesazhe webhook standarde për gjendjen e monitorëve. Janë realizuar normalizimi i gjendjeve UP dhe DOWN, përcaktimi i rëndësisë, përpunimi i etiketave dhe një lloj i ri i rrugës hyrëse uptime_kuma;
- Për heshtjet dhe dritaret e punimeve të planifikuara janë shtuar parametrat apply_to_existing dhe reactivate_on_end. I pari lejon të aplikohet ndalimi në alarmin e hapur, ndërsa tjetri përcakton nëse duhet të rifillojë përpunimi pas përfundimit të periudhës së ndalimit. Ndërpritet dhe rifillon njoftimet, kujtesat dhe zinxhirët e eskalimit;
- Për tokenët personalë API janë futur të drejta të veçanta për lexim dhe ndryshim për grupe, ekipe, përdorues, rrugë, kanale, shërbime, rotacione, politikat, dritaret e shërbimit, testet e heartbeat, SSO dhe orkestrimin. Të drejtat e vjetra të agreguara resources:read, resources:write dhe * janë ruajtur për përputhshmërinë e prapme;
- Shtuar ndërfaqja e regjistrit të auditit me filtrimin dhe shfaqjen në faqe. Në regjistër regjistrohen operacionet me orkestrimin, veprimet e webhook, heshtjet dhe dritaret e punimeve të planifikuara, ndërsa vlerat e ndjeshme fshihen nga të dhënat e shfaqura;
- Në ndërfaqen web është shtuar një temë e errët dhe parametra personalizues të gjuhës dhe dizajnit. Janë shtuar lokalizimi në frëngjisht, janë zgjeruar përkthimet e seksioneve të orkestrimit dhe shërbimit, është korrigjuar redaktimi i rregullave të përputhjes së grupeve SSO;
- ĂshtĂ« pĂ«rmirĂ«suar funksionimi i kontrolleve tĂ« heartbeat: Ă«shtĂ« pĂ«rjashtuar krijimi i pĂ«rsĂ«ritur i ngjarjeve mbi skadimin, rikthimi i sinjalit mbyll saktĂ« alarmin dhe dĂ«rgon njoftimin pĂ«r zgjidhjen e problemit, Ă«shtĂ« unifikuar paraqitja e vulave tĂ« kohĂ«s;
- Dokumentacioni për shpërndarjen në Kubernetes përmes Helm është përgatitur. Në Helm-chart është shtuar një trajtues veçanërisht për Slack Socket Mode, i nevojshëm për funksionimin e butonave interaktivë për konfirmimin dhe mbylljen e incidenteve;
- Forca mbrojtëse e kërkesave HTTP të daljes, shprehjet e rregullta dhe të dhënat e ndjeshme janë përforcuar, përpunimi i UTC dhe zonave të kohës është centralizuar, llogaritë e grafikëve të rotacioneve janë rishikuar dhe mbulimi me teste automatike është zgjeruar.
Para përditësimit, rekomandohet të krijoni një kopje rezervë të bazës së të dhënave. Ndryshimet e nevojshme në skemë realizohen nga mekanizmi standard i migrimeve të IncidentRelay. Për një hyrje gradualë në Event Orchestration, zhvilluesit rekomandojnë fillimisht të përdorin modet shadow dhe hybrid, të kontrollojnë gjurmët e ekzekutimit të rregullave dhe vetëm pas kësaj të kalojnë orkestrimin në modalitetin aktiv.
Burimi: opennet.ru
