Mittetäielikud logid vs struktureeritud jälgitavuse andmed
Mittetäielikud logid jäädvustavad osalisi süsteemisündmusi lihttekstina, sageli ilma kriitilise kontekstita, samas kui struktureeritud jälgitavusandmed korraldavad mõõdikud, jäljed ja logid päringukõlblikesse vormingutesse. Struktureeritud lähenemisviis võimaldab kiiremat silumist, sügavamat korrelatsiooni ja ennetavat intsidentidele reageerimist tänapäevastes hajusüsteemides.
Esiletused
Struktureeritud andmed võimaldavad väljatasemel päringuid, mis valmivad sekunditega, samas kui mittetäielikud logid nõuavad aeglast regulaaravaldiste parsimist.
Jäljekorrelatsioon töötab automaatselt struktureeritud jälgitavusega, kuid fragmenteeritud logidest on seda peaaegu võimatu rekonstrueerida.
Pärast struktureerimata logidelt skeemidega rikastatud telemeetriale üleminekut langevad salvestuskulud tavaliselt 40–60%.
OpenTelemetry standardiseerimine tähendab, et struktureeritud andmed integreeruvad koheselt moodsate platvormidega, erinevalt traditsioonilistest logivormingutest.
Mis on Mittetäielikud logid?
Fragmenteeritud lihtteksti logikirjed, millel puudub kontekst, ajatemplid või korrelatsiooniidentifikaatorid, mis on vajalikud süsteemi täielikuks rekonstrueerimiseks.
Lihtteksti logid salvestavad tavaliselt struktureerimata stringe ilma sunnitud skeemideta, mistõttu automatiseeritud parsimine on ebausaldusväärne.
Logikadu tekib suure liiklusega sündmuste ajal, kui ketta sisend-/väljund- või võrgupuhvrid küllastuvad.
Puuduvad korrelatsiooni ID-d takistavad inseneridel ühe kasutaja päringu jälgimist mitme teenuse vahel.
Valimipõhised logisüsteemid võivad jätta välja madala prioriteediga kirjeid, tekitades intsidentide ajal lünki.
Struktureerimata logisid ei saa otsingumootorid tõhusalt indekseerida ilma regulaaravaldistel põhinevate ekstraktimisreegliteta.
Mis on Struktureeritud jälgitavuse andmed?
Skeemipõhine telemeetria, mis ühendab logisid, mõõdikuid ja jälgi JSON- või OpenTelemetry-vormingus ühtse analüüsi jaoks.
OpenTelemetryst on saanud struktureeritud jälgitavussignaalide genereerimise tööstusharu standardraamistik.
Struktureeritud logid kasutavad võtme-väärtuse paare, mis võimaldavad otsepäringuid ilma mustrite sobitamiseta.
Hajutatud jälgimine jäädvustab teenuste vahelisi põhjuslikke seoseid, kasutades vahemiku ID-sid ja jälgimiskontekste.
Logidega koos edastatavad mõõdikud võimaldavad reaalajas armatuurlaudu ja anomaaliate tuvastamise algoritme.
Platvormid nagu Datadog, Honeycomb ja Grafana tarbivad struktureeritud andmeid korrelatsiooniks natiivselt.
Võrdlustabel
Funktsioon
Mittetäielikud logid
Struktureeritud jälgitavuse andmed
Andmevorming
Lihttekst või poolstruktureeritud stringid
JSON-, Protobuf- või OpenTelemetry-kodeeringuga kasulikud koormused
Päringuvõimalus
Nõuab regulaaravaldistel või grep-põhistel otsingutel põhinevaid otsinguid
Natiivsed väljataseme päringud SQL-i või DSL-iga
Korrelatsioonitugi
Käsitsi õmblemine ajatemplite abil
Automaatne jälgimis-ID-de ja konteksti kaudu
Salvestustõhusus
Suur redundantsus, madal tihendussuhe
Deduplikeeritud väljad, parem tihendamine
Silumiskiirus
Aeglane, nõuab käsitsi logisukeldumist
Kiire, ristsignaali pööramisega
Skeemi jõustamine
Puudub, vorming varieerub arendajati
Määratletud OpenTelemetry või kohandatud skeemide abil
Häirete integreerimine
Piiratud logipõhiste päästikutega
Mõõdikud, jäljed ja logid on ühendatud ühte torujuhtmesse
Maksumus skaalal
Mahu ja parsimiskulude tõttu kallis
Ennustatav astmeliste säilituspoliitikatega
Üksikasjalik võrdlus
Andmete täpsus ja konteksti säilitamine
Mittetäielikud logid jätavad sageli väljad, näiteks kasutajatunnused, päringuteed või veavirnad, kui rakendused kirjutamise ajal krahhivad. Struktureeritud jälgitavusandmed rakendavad skeemi, mis jäädvustab need väljad järjepidevalt, nii et isegi osalised sündmused säilitavad piisavalt konteksti, et neist kasu oleks. Katkestust uurivad insenerid saavad struktureeritud jälgede põhjal rekonstrueerida kogu päringu elutsükli, samas kui tavalised logid jätavad nad sageli oletama, mis juhtus kahe säilinud kirje vahel.
Päringute ja analüüsi töövoog
Mittetäielike logidega töötamine tähendab tavaliselt keerukate regulaaravaldiste mustrite või grep-torustike kirjutamist oluliste väljade eraldamiseks. Struktureeritud andmed pööravad selle töövoo ümber: iga väli on juba märgistatud, seega päring nagu „näita kõiki kasutaja 4521 päringuid latentsusega üle 2 sekundi” töötab otse andmesalves. See nihe vähendab uurimisaega enamikus tootmisstsenaariumides tundidelt minutitele.
Teenustevaheline korrelatsioon
Hajutatud süsteemid genereerivad telemeetriat samaaegselt kümnetest teenustest ja mittetäielikel logidel on harva ühine identifikaator. Struktureeritud jälgitavus lahendab selle probleemi jälgimiskonteksti levitamise abil, kus üks jälgimis-ID järgneb serva koormuse tasakaalustaja päringule iga allavoolu mikroteenuse kaudu. Ilma selleta kasutavad meeskonnad ajatempli sobitamist, mis ebaõnnestub kellade nihkumise või sündmuste pakkimise korral.
Ladustamise ja kulude mõju
Struktureerimata logid kipuvad salvestusruumi paisutama, kuna iga kirje kordab sarnaseid stringe, näiteks ajatempleid ja teenuste nimesid, ilma deduplikatsioonita. Struktureeritud vormingud tihendatakse tõhusamalt, kuna korduvad võtmed kodeeritakse sõnastikuna ja väljataseme indekseerimine vähendab päringu kohta skannitavate andmete hulka. Aasta jooksul näevad organisatsioonid pärast toorlogidelt struktureeritud jälgitavustorustikele üleminekut sageli 40–60% salvestusruumi kokkuhoidu.
Tööriistad ja ökosüsteemi küpsus
Jälgitavuse ökosüsteem on suures osas standardiseerunud OpenTelemetry baasil, mis pakub SDK-sid enamiku peamiste keelte jaoks ja automaatset instrumenteerimist levinud raamistike jaoks. Pärandlogikanalitel see standardiseerimine puudub, sundides meeskondi iga teenuse jaoks kohandatud parsereid haldama. Sellised müüjad nagu Datadog, New Relic ja Grafana seavad nüüd esikohale struktureeritud sisestamise, mistõttu on mittetäielike logide integreerimine tänapäevaste tööriistadega üha raskem.
Juhtumitele reageerimine ja häiresüsteemid
Kui mittetäielike logide põhjal käivituvad hoiatused, puudub reageerijatel sageli kiireks tegutsemiseks vajalik kontekst. Struktureeritud jälgitavusandmed koondavad logid seotud mõõdikute ja jälgedega, nii et kõrgenenud veamäärade hoiatus saab olla otse seotud rikkumise ulatuse ja selle sõltuvustega. See vähendab keskmist lahendusaega ja aitab meeskondadel liikuda reaktiivselt tulekahjude kustutamiselt ennetava töökindluse projekteerimisele.
Plussid ja miinused
Mittetäielikud logid
Eelised
+Lihtne genereerida
+Skeemi pole vaja
+Töötab vanemate tööriistadega
+Madal esialgne seadistuskulu
Kinnitatud
−Raske küsida
−Puuduv kontekst
−Halb korrelatsioon
−Suur salvestusruumi üldkulu
Struktureeritud jälgitavuse andmed
Eelised
+Kiired väljapäringud
+Automaatne korrelatsioon
+Tõhus tihendamine
+Ühendatud teavitused
Kinnitatud
−Suurem seadistuse keerukus
−Skeemi hooldus on vajalik
−Tarnijaga seotuse oht
−Meeskondade õppimiskõver
Tavalised eksiarvamused
Müüt
Rohkem logisid tähendab alati paremat silumist.
Tõelisus
Mahust üksi ei ole abi, kui logidel puudub struktuur või korrelatsioon. Tuhat struktureerimata rida paljastab sageli vähem kui kümme hästi korreleeritud struktureeritud sündmust. Kvaliteet ja kontekst on palju olulisemad kui toores kvantiteet.
Müüt
Struktureeritud jälgitavus on lihtsalt uhke logimine.
Tõelisus
Jälgitavus laieneb logidest kaugemale, hõlmates mõõdikuid ja jälgi, mis kõik on omavahel ühendatud ühise konteksti kaudu. See kolmesambaline mudel võimaldab esitada küsimusi süsteemi käitumise kohta, millele pelgalt logimine ei suuda vastata, näiteks miks latentsus konkreetses juurutuses järsult suurenes.
Müüt
Struktureeritud andmetele migreerumine nõuab iga rakenduse ümberkirjutamist.
Tõelisus
OpenTelemetry automaatne instrumenteerimine jäädvustab enamiku telemeetriaandmeid ilma koodimuudatusteta ning kõrvalkorvikogujad saavad rikastada olemasolevaid logivooge. Paljud meeskonnad migreeruvad järk-järgult, alustades oma kõige mürarikkamatest teenustest.
Müüt
Mittetäielikud logid on odavamad, kuna need salvestavad vähem andmeid.
Tõelisus
Struktureerimata logid on sageli kallimad, kuna neid ei saa tihendada, need vajavad korduvat analüüsi ja genereerivad suuremaid indeksfaile. Struktureeritud vormingud eemaldavad väljade duplikaadid ja tihendavad neid tõhusamalt, vähendades salvestuskulusid.
Müüt
Logidel ja mõõdikutel on täiesti erinevad eesmärgid ja need peaksid eraldi püsima.
Tõelisus
Kaasaegsed jälgimisplatvormid käsitlevad logisid, mõõdikuid ja jälgi sama süsteemi täiendavate signaalidena. Nende eraldi hoidmine takistab signaalidevahelist analüüsi, mis aitab intsidente varakult tuvastada ja lühendab diagnostikaaega.
Sageli küsitud küsimused
Mis teeb logi praktikas mittetäielikuks?
Logi on mittetäielik, kui selles puuduvad toimunu rekonstrueerimiseks vajalikud väljad, näiteks puuduvad ajatemplid, kasutajatunnused või kärbitud pinujäljed. See juhtub sageli krahhide, puhvri ületäitumise või kirjete kadumise korral. Tulemuseks on kirje, mis kinnitab midagi juhtunut, kuid ei anna aimugi, miks või kuidas see juhtus.
Kuidas OpenTelemetry traditsioonilist logimist täiustab?
OpenTelemetry pakub müüjaneutraalseid SDK-sid, mis jäädvustavad automaatselt jälgi, mõõdikuid ja logisid ühtsete väljanimede ja korrelatsiooni ID-dega. Selle asemel, et iga meeskond leiutaks oma logivormingu, väljastab igaüks andmeid, mida iga taustsüsteem saab tarbida. See standardiseerimine kõrvaldab parseri hoolduskoormuse, mis vaevab traditsioonilisi logimisseadistusi.
Kas struktureeritud jälgitavusandmed saavad asendada kõik minu olemasolevad logid?
Enamasti küll, aga migreerimine toimub harva ühekordse ümberlülitusega. Meeskonnad käitavad tavaliselt mõlemat torujuhet nädalate kaupa paralleelselt, võrreldes leviala ja häälestades instrumentatsiooni. Kui usaldus on tekkinud, saab pärandlogide saatmise teenus haaval maha võtta, alustades sageli kõige instrumenteeritumate mikroteenustega.
Miks on mittetäielikud logid tootmissüsteemides nii levinud?
Mitmed tegurid aitavad kaasa logide agressiivsele valimite tegemisele kulude kontrollimiseks, puhvri ületäitumine liikluse tipphetkede ajal, ketta koormus, mis sunnib rotatsiooni, ja rakendused, mis enne logide puhvrite tühjendamist kokku jooksevad. Paljud meeskonnad eemaldavad ka tundlikke välju, mis tahtmatult eemaldavad silumiseks vajaliku konteksti.
Milline on tüüpiline hinnavahe struktureerimata ja struktureeritud logimise vahel?
Kulud varieeruvad tarnija ja mahu järgi, kuid struktureeritud jälgitavuse platvormid võtavad sageli vähem iga sisestatud GB kohta, kuna need tihendavad tõhusamalt ja võimaldavad astmelist salvestamist. Mõned organisatsioonid teatavad struktureerimata logide konsolideerimisest struktureeritud torujuhtmetesse nutika valimi abil jälgitavuse arvete 30–50% vähenemisest.
Kas mul on vaja hajutatud jälgimist, kui mul on juba logid olemas?
Logid näitavad, mis igas teenuses juhtus, kuid jälgimine näitab, kuidas päring nende vahel liikus. Ilma jälgedeta tugineb logide korreleerimine teenuste vahel ajatempli vastavusse viimisele, mis ebaõnnestub kellade triivimise või sündmuste partiidena saatmise korral. Jälgimine täidab lünga, mida logid üksi mikroteenuste arhitektuurides ei suuda täita.
Kui kaua võtab aega struktureeritud jälgitavuse rakendamine?
OpenTelemetry põhiseadistuse saab ühe teenuse puhul käivitada ühe päevaga, kuid täielik organisatsiooniline juurutamine võtab tavaliselt 3–6 kuud. Ajakava sõltub teenuste arvust, keelte mitmekesisusest ja sellest, kui palju kohandatud instrumente on vaja. Pilootteenusega alustamine ja järkjärguline laiendamine toimib tavaliselt kõige paremini.
Mis juhtub minu olemasolevate armatuurlaudadega, kui ma lülitun üle struktureeritud andmetele?
Enamik tänapäevaseid mõõdikutele tuginevaid armatuurlaudu jäävad üleminekust muutmata, kuna mõõdikud on juba struktureeritud. Logipõhiste armatuurlaudade puhul võib regulaaravaldiste mustrite asemel väljaselektorite kasutamiseks vaja minna päringute ümberkirjutamist. Tarnijad pakuvad tavaliselt migreerimistööriistu, mis tõlgivad tavalised logipäringud nende struktureeritud vasteteks.
Kas struktureeritud jälgitavusandmed on alati JSON-vormingus?
JSON on kõige levinum vorming, kuid mitte ainus. OpenTelemetry toetab efektiivsuse tagamiseks ka protokollipuhvreid ja mõned platvormid aktsepteerivad omaenda binaarvorminguid. Peamine nõue on väljade märgistamine ja tüübistamine, mitte juhtmel kasutatav spetsiifiline kodeering.
Kas ma saan kasutada struktureeritud jälgitavust serverita või servafunktsioonidega?
Jah, kuigi külmkäivitused ja täitmisaja piirangud lisavad keerukust. OpenTelemetry pakub kergeid SDK-sid, mis on loodud serverita käituskeskkondade jaoks, ja hallatud kogujad saavad telemeetriat pakkida ja edastada ilma kasutajataotlustele latentsust lisamata. AWS Lambda, Cloudflare Workers ja Vercel Functions toetavad kõik struktureeritud jälgitavust ametlike integratsioonide kaudu.
Otsus
Valige mittetäielikud logid ainult siis, kui töötate pärandsüsteemidega, mida ei saa muuta, või kui eelarvepiirangud muudavad struktureeritud torujuhtmed teostamatuks. Mis tahes tänapäevase hajutatud arhitektuuri puhul pakuvad struktureeritud jälgitavusandmed kiiremat silumist, paremat korrelatsiooni ja madalamaid pikaajalisi kulusid. Meeskonnad, kes suhtuvad usaldusväärsusse tõsiselt, peaksid migratsiooni käsitlema pigem põhiinvesteeringuna kui valikulise uuendusena.