Neišsamūs žurnalai ir struktūrizuoti stebimumo duomenys
Neišsamūs žurnalai fiksuoja dalinius sistemos įvykius paprasto teksto formatu, dažnai praleidžiant svarbų kontekstą, o struktūrizuoti stebimumo duomenys tvarko metrikas, pėdsakus ir žurnalus į užklausoms tinkamus formatus. Struktūrizuotas metodas leidžia greičiau derinti, atlikti gilesnę koreliaciją ir aktyviai reaguoti į incidentus šiuolaikinėse paskirstytose sistemose.
Akcentai
Struktūrizuoti duomenys leidžia atlikti lauko lygio užklausas per kelias sekundes, o nepilniems žurnalams reikia lėtos reguliariųjų išraiškų analizės.
Pėdsakų koreliacija veikia automatiškai su struktūrizuotu stebimumu, tačiau jos beveik neįmanoma atkurti iš fragmentiškų žurnalų.
Perėjus nuo nestruktūrizuotų žurnalų prie schemomis praturtintos telemetrijos, saugojimo išlaidos paprastai sumažėja 40–60 %.
„OpenTelemetry“ standartizavimas reiškia, kad struktūrizuoti duomenys iš karto integruojami su moderniomis platformomis, kitaip nei seni žurnalų formatai.
Kas yra Neišsamūs žurnalai?
Fragmentuoti paprasto teksto žurnalo įrašai, kuriuose trūksta konteksto, laiko žymų ar koreliacijos identifikatorių, reikalingų visai sistemos rekonstrukcijai.
Paprasto teksto žurnaluose paprastai saugomos nestruktūrizuotos eilutės be priverstinių schemų, todėl automatinis analizavimas yra nepatikimas.
Žurnalų praradimas įvyksta didelio srauto įvykių metu, kai disko įvesties / išvesties arba tinklo buferiai perpildomi.
Trūkstami koreliacijos ID neleidžia inžinieriams atsekti vieno vartotojo užklausos keliose paslaugose.
Imčių ėmimo pagrindu veikiančios registravimo sistemos gali atmesti įrašus, kurie laikomi mažai svarbiais, todėl incidentų metu gali atsirasti spragų.
Paieškos sistemos negali efektyviai indeksuoti nestruktūrizuotų žurnalų be reguliariosiomis išraiškomis pagrįstų ištraukimo taisyklių.
Kas yra Struktūrizuoti stebimumo duomenys?
Schemomis pagrįsta telemetrija, apjungianti žurnalus, metriką ir pėdsakus tokiais formatais kaip JSON arba „OpenTelemetry“, kad būtų galima atlikti vieningą analizę.
„OpenTelemetry“ tapo pramonės standartine sistema struktūrizuotiems stebimumo signalams generuoti.
Struktūrizuoti žurnalai naudoja raktų ir reikšmių poras, kurios leidžia tiesiogiai atlikti užklausas be šablonų atitikimo.
Paskirstytas sekimas fiksuoja priežastinius ryšius tarp paslaugų naudodamas span ID ir sekimo kontekstus.
Kartu su žurnalais skleidžiami rodikliai įgalina realaus laiko ataskaitų suvestines ir anomalijų aptikimo algoritmus.
Tokios platformos kaip „Datadog“, „Honeycomb“ ir „Grafana“ koreliacijai naudoja struktūrizuotus duomenis.
Palyginimo lentelė
Funkcija
Neišsamūs žurnalai
Struktūrizuoti stebimumo duomenys
Duomenų formatas
Paprastas tekstas arba pusiau struktūruotos eilutės
JSON, Protobuf arba OpenTelemetry užkoduoti naudingieji kroviniai
Užklausų galimybė
Reikalingos paieškos, pagrįstos reguliariosiomis išraiškomis arba grep
Gimtosios lauko lygio užklausos su SQL arba DSL
Koreliacijos palaikymas
Rankinis susiuvimas naudojant laiko žymas
Automatiškai naudojant sekimo ID ir aprėpties kontekstą
Sandėliavimo efektyvumas
Didelis perteklius, mažas suspaudimo laipsnis
Deduplikuoti laukai, geresnis glaudinimas
Derinimo greitis
Lėtas, reikia rankinio nardymo
Greitas, su kryžminio signalo pasukimu
Schemos vykdymas
Nėra, formatas priklauso nuo kūrėjo
Apibrėžta „OpenTelemetry“ arba pasirinktinių schemų
Įspėjimų integracija
Apribota žurnalais pagrįstais paleidikliais
Metrika, pėdsakai ir žurnalai sujungti viename sraute
Kaina pagal mastą
Brangus dėl apimties ir analizavimo išlaidų
Nuspėjama naudojant pakopines saugojimo politikas
Išsamus palyginimas
Duomenų tikslumas ir konteksto išsaugojimas
Neišsamūs žurnalai dažnai praranda tokius laukus kaip naudotojų ID, užklausų keliai arba klaidų rinkiniai, kai programos užstringa rašymo metu. Struktūrizuoti stebimumo duomenys užtikrina schemą, kuri nuosekliai fiksuoja šiuos laukus, todėl net daliniai įvykiai išlaiko pakankamai konteksto, kad būtų naudingi. Inžinieriai, tiriantys sutrikimus, gali atkurti visą užklausos gyvavimo ciklą iš struktūrizuotų pėdsakų, o paprasti žurnalai dažnai leidžia jiems spėlioti, kas nutiko tarp dviejų išlikusių įrašų.
Užklausų ir analizės darbo eiga
Darbas su nepilnais žurnalais paprastai reiškia sudėtingų reguliariųjų išraiškų šablonų arba grep kanalų rašymą, kad būtų išgauti prasmingi laukai. Struktūrizuoti duomenys apverčia šį darbo eigą aukštyn kojomis: kiekvienas laukas jau yra pažymėtas, todėl užklausa, pvz., „rodyti visas vartotojo 4521 užklausas, kurių delsa viršija 2 sekundes“, vykdoma tiesiai duomenų saugykloje. Šis pokytis daugumoje gamybinių scenarijų sutrumpina tyrimo laiką nuo kelių valandų iki minučių.
Koreliacija tarp paslaugų
Paskirstytos sistemos vienu metu generuoja telemetriją iš dešimčių paslaugų, o nepilni žurnalai retai turi bendrą identifikatorių. Struktūrizuotas stebimumas šią problemą išsprendžia sekimo konteksto sklaidos būdu, kai vienas sekimo ID seka užklausą iš krašto apkrovos balansavimo įrenginio per kiekvieną žemesnio lygio mikropaslaugą. Be to, komandos naudojasi laiko žymų suderinimu, kuris sugenda, kai laikrodžiai pasislenka arba įvykiai sujungiami paketais.
Saugojimo ir išlaidų pasekmės
Nestruktūrizuoti žurnalai linkę užimti daug vietos saugykloje, nes kiekvienas įrašas kartoja panašias eilutes, pvz., laiko žymas ir paslaugų pavadinimus, be deduplikacijos. Struktūrizuoti formatai suspaudžiami efektyviau, nes pasikartojantys raktai užkoduojami žodynu, o lauko lygio indeksavimas sumažina nuskaitomų duomenų kiekį vienai užklausai. Per metus organizacijos dažnai sutaupo 40–60 % saugyklos vietos, pereidamos nuo neapdorotų žurnalų prie struktūrizuotų stebėjimo srautų.
Įrankiai ir ekosistemos branda
Stebėjimo ekosistema iš esmės standartizuota „OpenTelemetry“ platformoje, kuri teikia SDK daugumai pagrindinių kalbų ir automatinius instrumentus įprastoms platformoms. Senesniems žurnalų srautams trūksta šios standartizacijos, todėl komandos turi kiekvienai paslaugai palaikyti individualius analizatorius. Tokie tiekėjai kaip „Datadog“, „New Relic“ ir „Grafana“ dabar teikia pirmenybę struktūrizuotam įkėlimui, todėl nepilnus žurnalus vis sunkiau integruoti su šiuolaikiniais įrankiais.
Reagavimas į incidentus ir įspėjimai
Kai įspėjimai suveikia dėl nepilnų žurnalų, gelbėtojai dažnai neturi aplinkinio konteksto, reikalingo greitam reagavimui. Struktūrizuoti stebimumo duomenys sujungia žurnalus su susijusiais rodikliais ir pėdsakais, todėl įspėjimas apie padidėjusį klaidų dažnį gali būti tiesiogiai susietas su pažeidimo laikotarpiu ir jo priklausomybėmis. Tai sutrumpina vidutinį sprendimo laiką ir padeda komandoms pereiti nuo reaktyvaus gaisrų gesinimo prie proaktyvaus patikimumo inžinerijos.
Privalumai ir trūkumai
Neišsamūs žurnalai
Privalumai
+Paprasta generuoti
+Schemos nereikia
+Veikia su senesniais įrankiais
+Mažos pradinės sąrankos išlaidos
Pasirinkta
−Sunku užduoti klausimą
−Trūksta konteksto
−Prasta koreliacija
−Didelės saugyklos išlaidos
Struktūrizuoti stebimumo duomenys
Privalumai
+Greitos lauko užklausos
+Automatinė koreliacija
+Efektyvus suspaudimas
+Vieningas įspėjimas
Pasirinkta
−Didesnis sąrankos sudėtingumas
−Reikalinga schemos priežiūra
−Pardavėjo priklausomybės rizika
−Komandų mokymosi kreivė
Dažni klaidingi įsitikinimai
Mitas
Daugiau žurnalų visada reiškia geresnį derinimą.
Realybė
Vien apimtis nepadeda, jei žurnalams trūksta struktūros ar koreliacijos. Tūkstantis nestruktūrizuotų eilučių dažnai atskleidžia mažiau nei dešimt gerai koreliuotų struktūrizuotų įvykių. Kokybė ir kontekstas yra daug svarbesni nei neapdorotas kiekis.
Stebimumas apima ne tik žurnalus, bet ir metriką bei pėdsakus, visus susietus bendru kontekstu. Šis trijų pakopų modelis leidžia užduoti klausimus apie sistemos elgseną, į kuriuos vien žurnalai negali atsakyti, pavyzdžiui, kodėl konkrečiame diegime smarkiai padidėjo delsa.
Mitas
Norint pereiti prie struktūrizuotų duomenų, reikia perrašyti kiekvieną programą.
Realybė
„OpenTelemetry“ automatinė instrumentacija fiksuoja didžiąją dalį telemetrijos duomenų be kodo pakeitimų, o šalutiniai rinkėjai gali praturtinti esamus žurnalų srautus. Daugelis komandų migruoja palaipsniui, pradėdamos nuo triukšmingiausių paslaugų.
Mitas
Neišsamūs žurnalai yra pigesni, nes juose saugoma mažiau duomenų.
Realybė
Nestruktūrizuoti žurnalai dažnai kainuoja brangiau, nes jų neįmanoma suspausti, juos reikia pakartotinai analizuoti ir jie generuoja didesnius indekso failus. Struktūrizuoti formatai pašalina pasikartojančius laukus ir efektyviau suspaudžia, taip sumažindami bendras saugojimo išlaidas.
Mitas
Žurnalai ir metrika atlieka visiškai skirtingus tikslus ir turėtų likti atskiri.
Realybė
Šiuolaikinės stebėjimo platformos žurnalus, metriką ir pėdsakus traktuoja kaip vienas kitą papildančius tos pačios sistemos signalus. Jų laikymas atskirai neleidžia atlikti kryžminės signalų analizės, kuri anksti aptinka incidentus ir sutrumpina diagnostikos laiką.
Dažnai užduodami klausimai
Kas praktiškai žurnalą vadina „neišsamiu“?
Žurnalas yra nepilnas, kai jame trūksta laukų, reikalingų įvykio atkūrimui, pvz., trūksta laiko žymų, nėra naudotojų identifikatorių arba yra sutrumpintų steko pėdsakų. Tai dažnai nutinka gedimų, buferio perpildymo metu arba kai atrankos metu prarandami įrašai. Rezultatas yra įrašas, patvirtinantis, kad kažkas įvyko, bet nepateikia jokios informacijos apie tai, kodėl ar kaip.
Kuo „OpenTelemetry“ patobulina tradicinį registravimą?
„OpenTelemetry“ teikia nuo tiekėjo nepriklausomus SDK, kurie automatiškai fiksuoja pėdsakus, metriką ir žurnalus su nuosekliais laukų pavadinimais ir koreliacijos ID. Užuot kiekvienai komandai kuriant savo žurnalų formatą, visi skleidžia duomenis, kuriuos gali apdoroti bet kuri serverio sistema. Ši standartizacija pašalina analizatoriaus priežiūros naštą, kuri kamuoja tradicines žurnalų kūrimo sistemas.
Ar struktūrizuoti stebimumo duomenys gali pakeisti visus mano esamus žurnalus?
Daugeliu atvejų taip, tačiau perkėlimas retai kada būna momentinis. Komandos paprastai kelias savaites lygiagrečiai paleidžia abu srautus, lygindamos aprėptį ir derindamos įrangą. Kai padidėja pasitikėjimas, senųjų žurnalų siuntimas gali būti nutrauktas kiekviena paslauga po kitos, dažnai pradedant nuo labiausiai instrumentuotų mikropaslaugų.
Kodėl nepilni žurnalai tokie dažni gamybinėse sistemose?
Prie to prisideda keli veiksniai: agresyvus žurnalų atrankos procesas siekiant kontroliuoti išlaidas, buferio perpildymas srauto pikų metu, disko apkrova, priverstinis rotavimas, ir programos, kurios užstringa neišvaliusios žurnalų buferių. Daugelis komandų taip pat pašalina laukus, kuriuos laiko jautriais, netyčia pašalindamos kontekstą, reikalingą derinimui.
Koks yra tipinis nestruktūrizuoto ir struktūrizuoto registravimo kainos skirtumas?
Kainos skiriasi priklausomai nuo tiekėjo ir apimties, tačiau struktūrizuotos stebimumo platformos dažnai ima mažesnį mokestį už įkeltą GB, nes jos efektyviau suspaudžia ir leidžia naudoti pakopinį saugojimą. Kai kurios organizacijos praneša apie 30–50 % sumažėjusias stebimumo sąskaitas, konsolidavus nestruktūrizuotus žurnalus į struktūrizuotus srautus naudojant išmanųjį atranką.
Ar man reikia paskirstyto sekimo, jei jau turiu žurnalus?
Žurnalai nurodo, kas nutiko kiekvienoje paslaugoje, o sekimas parodo, kaip užklausa vyko tarp jų. Be sekimo, žurnalų koreliacija tarp paslaugų priklauso nuo laiko žymų suderinimo, kuris neveikia, kai laikrodžiai nukrypsta nuo norimo laiko arba įvykiai grupuojami. Sekimas užpildo spragą, kurios vien žurnalai negali užpildyti mikropaslaugų architektūrose.
Kiek laiko užtrunka įdiegti struktūrizuotą stebimumą?
Bazinė „OpenTelemetry“ sąranka vienai paslaugai gali būti paleista per dieną, tačiau visiškas organizacijos diegimas paprastai trunka 3–6 mėnesius. Laikas priklauso nuo paslaugų skaičiaus, kalbų įvairovės ir to, kiek reikia pasirinktinės įrangos. Geriausia pradėti nuo bandomosios paslaugos ir ją palaipsniui plėsti.
Kas nutiks mano esamoms ataskaitų suvestinėms, kai pereisiu prie struktūrizuotų duomenų?
Dauguma šiuolaikinių ataskaitų sričių, sukurtų remiantis metrika, išgyvena perėjimą nepakitusios, nes metrika jau yra struktūrizuota. Žurnalais pagrįstoms ataskaitų sritims gali reikėti perrašyti užklausas, kad būtų naudojami laukų selektoriai, o ne reguliariosios išraiškos šablonai. Pardavėjai paprastai teikia perkėlimo įrankius, kurie verčia įprastas žurnalų užklausas į jų struktūrinius atitikmenis.
Ar struktūrizuoti stebimumo duomenys visada yra JSON formatu?
JSON yra labiausiai paplitęs formatas, bet ne vienintelis. „OpenTelemetry“ taip pat palaiko protokolų buferius efektyvumui užtikrinti, o kai kurios platformos priima savo dvejetainius formatus. Pagrindinis reikalavimas yra tas, kad laukai būtų pažymėti ir įvesti, o ne konkretus laiduose naudojamas kodavimas.
Ar galiu naudoti struktūrizuotą stebimumą su serverio neturinčiomis arba krašto funkcijomis?
Taip, nors šaltasis paleidimas ir vykdymo laiko apribojimai padidina sudėtingumą. „OpenTelemetry“ siūlo lengvus SDK, skirtus serverių neturintiems vykdymo aplinkoms, o valdomi rinkėjai gali paketuoti ir persiųsti telemetriją nepadidindami vartotojų užklausų delsos. „AWS Lambda“, „Cloudflare Workers“ ir „Vercel Functions“ palaiko struktūrizuotą stebimumą per oficialias integracijas.
Nuosprendis
Nepilnus žurnalus rinkitės tik dirbdami su pasenusiomis sistemomis, kurių negalima modifikuoti, arba kai dėl biudžeto apribojimų struktūrizuoti srautai yra neįmanomi. Bet kurioje modernioje paskirstytoje architektūroje struktūrizuoti stebimumo duomenys užtikrina greitesnį derinimą, geresnę koreliaciją ir mažesnes ilgalaikes išlaidas. Komandos, rimtai žiūrinčios į patikimumą, turėtų vertinti perkėlimą kaip pagrindinę investiciją, o ne kaip pasirenkamą atnaujinimą.