Acestea sunt cei trei stâlpi ai observabilității. Ele răspund la întrebări diferite: metricile îți spun că ceva este greșit, jurnalele îți spun ce s-a întâmplat, iar urmele îți spun într-un flux distribuit a mers timpul sau eroarea.
Acestea sunt cei trei stâlpi ai observabilității. Ele răspund la întrebări diferite: metricile îți spun că ceva este greșit, jurnalele îți spun ce s-a întâmplat, iar urmele îți spun într-un flux distribuit a mers timpul sau eroarea.
METRICS aggregate numbers over time (counters, gauges, histograms)
→ cheap, low cardinality, great for trends & ALERTING
→ e.g. error rate = 2%, p99 latency = 800ms
LOGS discrete, timestamped events with detail (often structured JSON)
→ rich context for DEBUGGING a specific request
→ e.g. {"level":"error","user":123,"msg":"payment declined"}
TRACES the path of one request across services, with timing per span
→ shows latency BREAKDOWN and where a call fails
→ e.g. checkout 800ms = api 50ms + db 700ms + email 50ms
1. METRIC alerts: "checkout p99 latency jumped to 2s" → you know THERE's a problem
2. TRACE a slow request: 1.8s of 2s is spent in the inventory service
→ you know WHERE it is
3. LOGS of the inventory service at that time: "slow query: missing index"
→ you know WHAT happened
Metricile te restrâng la un simptom și o fereastră de timp; urmele o localizează la un serviciu sau apel; jurnalele dau cauza exactă. Mergerea directă la jurnale fără metrici înseamnă a căuta pe orb.
Metricile sunt agregate, deci rămân ieftine chiar și la scară — ideale pentru dashboard-uri și alerte mereu active. Jurnalele și urmele sunt per-eveniment și scumpe, deci de obicei sunt eșantionate și interogări la cerere în timpul investigației.
Folosirea stâlpului greșit pierde timp: nu poți alerta eficient pe jurnalele brute (prea mult zgomot, prea scump), și nu poți depana o cerere specifică eșuată dintr-o metrică agregată. Știind că metricile detectează, urmele localizează și jurnalele explică îți dă o cale rapidă și repetabilă de la "ceva este greșit" la cauza rădăcinii.