← Back
Home › Systems › Observability and operations

error-tracking

crash and error reporting

Sentry, Crashlytics

SystemTechniques · 10Primitives · 32 error-tracking Stack unwindingcompilers · medium: Frame-pointer, DWARF CFI and compact unwinding of call stacksSymbolicationcompilers · medium: Map addresses to functions and lines via DWARF, PDB and source mapsWindowed stream aggregationdistributed · medium: Group events by event-time window per key, keep one partial aggregate per slice, and emit a window when the watermark passes its end.›Log template miningsearch-sort · medium: Extract log templates and parameters by prefix-tree clustering (Drain)Columnar storagestorage · medium: Store each column contiguously so analytic scans read only the columns they need, compress well and run as tight SIMD loops.›Telemetry samplingsystems · medium: Head, tail and dynamic sampling of traces, events and logs to a budgetDebug info (DWARF)compilers · medium: DWARF stores a tree of typed entries (DIEs), a line-number bytecode, unwind tables and location expressions that map machine state back to source; pick it for ELF/Mach-O debug builds.›Token bucketsystems · low: A bucket of up to b tokens refilled at rate r; requests spend tokens, enforcing an average rate while allowing bursts of b.›Count-min sketchdata-structures · low: d rows of w counters estimate any item's frequency in a stream, overestimating by at most ε·N with probability 1-δ, in fixed tiny memory.›HyperLogLogdata-structures · low: Counts distinct elements in kilobytes with about 1 % error by tracking the longest run of leading zero bits in hashed values per bucket.›Event deduplication windowdistributed · low: Keep the ids of recently accepted events for a time window and drop repeats; memory stays bounded by rotating time buckets instead of per-entry timers.›Segmented logdistributed · low: Split an append-only log into files named by their first offset, write only the newest, and find any record by binary search plus a sparse index.›Crash signal handlinghardware-os · low: Async-signal-safe crash handlers, alternate stacks and minidump captureStack trace fingerprintingsearch-sort · low: Normalize and hash stack frames to group crashesTime partitioningstorage · low: Cut a table into fixed-interval time blocks so queries read only overlapping blocks and retention drops a whole block as one metadata change.›Calling conventions abicompilers · low: System V, Windows x64 and AAPCS64 ABIs: argument registers, stack frames, struct passing, FFIExecutable formats elf pecompilers · low: ELF, PE and Mach-O: sections, segments, symbol tables, relocations, dynamic loadingSource mapscompilers · low: Source map v3: VLQ-encoded mappings from generated to original positionsInterval treedata-structures · low: Index of ranges that answers "which intervals overlap this point or range?" in O(log n + k); static sorted-array form is the compact, cache-friendly choice.›Hash aggregationstorage · low: GROUP BY via hash tables with partitioning and spill to diskHierarchical timing wheelsystems · low: Timers bucketed by expiry into wheels of slots, coarser wheels for far deadlines: O(1) insert and cancel for millions of timeouts.›Radix triedata-structures · low: Compressed prefix tree for path routing, domain matching and prefix lookupsSwiss tabledata-structures · low: Open-addressing hash table that filters 8-16 slots at once with 1-byte hash tags and SIMD, giving fast lookups at 87.5 % load.›+ 3 more techniques+ 16 more primitives

Similar systems

Share the most building blocks with this one.