Trace sampling behoudt alleen geselecteerde request-traces, waardoor opslag en verwerking afnemen, maar het risico ontstaat dat het exacte workflowpad dat voor diagnose nodig is, verloren gaat.
Een lokaal AI-verzoek kan een gateway, modelrouter, vectorzoekservice, toolsandbox en bridge voor domotica doorkruisen, waarbij per interactie veel spans worden geproduceerd. Elk pad onbeperkt vastleggen is duur. Sampling bepaalt welke volledige traces of gedeeltelijke waarnemingen behouden blijven, maar het tijdstip en de criteria van die beslissing bepalen of een zeldzame time-out, geweigerde toolaanroep of stille fallback zichtbaar blijft.
Trace sampling selecteert requestgeschiedenissen, geen afzonderlijke feiten
Een trace vertegenwoordigt één verzoek als samenhangende spans over verschillende services. Sampling bepaalt of die requestgeschiedenis wordt vastgelegd of geëxporteerd, meestal op basis van waarschijnlijkheid, attributen of een beleid. Metrics en logs kunnen nog steeds bestaan, maar ze kunnen hetzelfde causale pad niet reconstrueren tenzij ze compatibele identifiers behouden.
De documentatie over samplingconcepten maakt onderscheid tussen head sampling, dat vlak na de start van een verzoek wordt bepaald, en tail sampling, dat wordt bepaald nadat de meeste spans zijn binnengekomen. Head sampling is eenvoudig en goedkoop, terwijl tail sampling traces kan behouden op basis van de uiteindelijke latentie, foutstatus of attributen die pas later zijn ontdekt.
Sampling verandert dus de diagnostische dekking en niet het gedrag van de applicatie. Een verzoek kan identiek slagen of mislukken, ongeacht of de trace wordt behouden, maar na de gebeurtenis ziet de operator een andere hoeveelheid bewijsmateriaal. Dit onderscheid blijft zichtbaar tijdens latere tests in huiselijke omstandigheden.
Head-beslissingen kunnen een fout die later optreedt niet zien
Een waarschijnlijkheidsbeslissing op de root-span kan niet weten dat de uiteindelijke toolaanroep een time-out zal krijgen of dat een downstreamservice een fout zal retourneren. Als het verzoek aan het begin wordt verwijderd, zijn mogelijk alle latere spans niet beschikbaar, ook al is de gebeurtenis operationeel belangrijk.
Een voorbeeld van retentie op basis van tail sampling in OpenTelemetry beschrijft hoe mislukte activiteiten met een tail-gerichte aanpak kunnen worden behouden. Het illustreert het belangrijkste voordeel: de beslissing kan de voltooide uitkomst gebruiken in plaats van het belang te raden op basis van attributen die aan het begin beschikbaar zijn.
Head sampling werkt nog steeds voor brede prestatie- trends wanneer de percentages stabiel zijn en identifiers consequent worden doorgegeven. Het wordt riskant wanneer fouten zeldzaam zijn, zich concentreren op een route met weinig verkeer of pas na meerdere agentstappen kunnen worden ontdekt.
Tail-beleidsregels brengen status, vertraging en eigen blinde vlekken met zich mee
Tail sampling buffert spans totdat een beslisvenster sluit, groepeert ze op trace-ID en past geordende beleidsregels toe. Late spans, gesplitste routering, herstarts van de collector, geheugendruk of een venster dat korter is dan de workflow kunnen ertoe leiden dat de sampler een onvolledige trace heeft.
De vereisten voor de collector waarschuwen dat alle spans voor een trace dezelfde collectorinstantie moeten bereiken en dat wachtende spans geheugen verbruiken. Die vereisten zijn belangrijk op een kleine thuisserver, waar het observabilityproces om RAM concurreert met inferentie.
De foutgrens ontstaat bij een workflow waarvan de beslissende foutspan na de beslissing van de sampler arriveert, een andere collector bereikt of het statusattribuut mist dat door het beleid wordt gebruikt. Tail sampling verbetert de selectie alleen wanneer het samenvoegen van traces zelf betrouwbaar blijft.
Voer een test uit voor de dekking van traces met bekende fouten
Maak gecontroleerde workflows die mislukken bij de router, retrievalservice, modelserver, toolsandbox en de uiteindelijke aanroep van de domoticabridge. Wijs een testcorrelatie-ID toe, leg de verwachte spanvolgorde vast en herhaal elke fout vaak genoeg om het geconfigureerde waarschijnlijkheids- en tail-beleid te testen.
Gebruik de servicemap in end-to-end tracing om te controleren of elke behouden fouttrace de root, tussenliggende aanroepen, uiteindelijke fout en relevante beleidsattributen bevat. Tel mislukte verzoeken daarnaast in een niet-gesamplede metric, zodat ontbrekende traces kunnen worden gedetecteerd in plaats van ten onrechte als ontbrekende fouten te worden beschouwd.
Slaag alleen wanneer kritieke fouten met de vereiste frequentie worden behouden en onvolledige traces expliciet meetbaar zijn. Reserveer regels voor altijd samplen voor waardevolle foutklassen, beperk het buffiergeheugen en test herstarts van de collector en situaties met late spans voordat je op traces vertrouwt voor het reconstrueren van incidenten.
Tech & AI HUB
Meer om te lezen

Kan een lokale LLM de generatie hervatten nadat het proces opnieuw is gestart?
Een mechanismegerichte uitleg van het hervatten van LLM-generatie, de afwegingen rond gedeelde resources, drie veelgestelde vragen over query-fan-out en een praktisch verificatieprotocol.

Kan een homeserver embeddings genereren en video transcoderen op dezelfde geïntegreerde GPU?
Een uitleg waarin het mechanisme centraal staat van gedeelde iGPU-embeddings en transcodering, de afwegingen rond gedeelde resources, drie veelgestelde vragen over query-fan-out en een...

Welke invloed heeft de levensduur van toegangstokens op de beveiliging en het gedoe in het huishouden?
Een mechanismegerichte uitleg van de levensduur van toegangstokens, de afwegingen rond gedeelde resources, drie veelgestelde vragen over query-fan-out en een praktisch verificatieprotocol.

