ਇਹ ਨਿਰੀਖਣਯੋਗਤਾ ਦੇ ਤਿੰਨ ਅਨਮੋਲ ਸਤੰਭ ਹਨ। ਉਹ ਵੱਖ-ਵੱਖ ਸਵਾਲਾਂ ਦਾ ਜਵਾਬ ਦਿੰਦੇ ਹਨ: ਮੈਟ੍ਰਿਕਸ ਤੁਹਾਨੂੰ ਦੱਸਦੇ ਹਨ ਕਿ ਕੀ ਗਲਤ ਹੈ, ਲਾਗਸ ਤੁਹਾਨੂੰ ਦੱਸਦੇ ਹਨ ਕਿ ਕੀ ਹੋਇਆ, ਅਤੇ ਟ੍ਰੇਸਸ ਤੁਹਾਨੂੰ ਦੱਸਦੇ ਹਨ ਕਿ ਵੰਡੀ ਹੋਈ ਪ੍ਰਵਾਹ ਵਿੱਚ ਸਮਾਂ ਜਾਂ ਗਲਤੀ ਚਲੀ ਗਈ।
ਇਹ ਨਿਰੀਖਣਯੋਗਤਾ ਦੇ ਤਿੰਨ ਅਨਮੋਲ ਸਤੰਭ ਹਨ। ਉਹ ਵੱਖ-ਵੱਖ ਸਵਾਲਾਂ ਦਾ ਜਵਾਬ ਦਿੰਦੇ ਹਨ: ਮੈਟ੍ਰਿਕਸ ਤੁਹਾਨੂੰ ਦੱਸਦੇ ਹਨ ਕਿ ਕੀ ਗਲਤ ਹੈ, ਲਾਗਸ ਤੁਹਾਨੂੰ ਦੱਸਦੇ ਹਨ ਕਿ ਕੀ ਹੋਇਆ, ਅਤੇ ਟ੍ਰੇਸਸ ਤੁਹਾਨੂੰ ਦੱਸਦੇ ਹਨ ਕਿ ਵੰਡੀ ਹੋਈ ਪ੍ਰਵਾਹ ਵਿੱਚ ਸਮਾਂ ਜਾਂ ਗਲਤੀ ਚਲੀ ਗਈ।
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
ਮੈਟ੍ਰਿਕਸ ਤੁਹਾਨੂੰ ਇੱਕ ਲੱਛਣ ਅਤੇ ਸਮਾਂ ਖਿੜਕੀ ਤੱਕ ਸੀਮਿਤ ਕਰਦੇ ਹਨ; ਟ੍ਰੇਸਸ ਇਸਨੂੰ ਇੱਕ ਸੇਵਾ ਜਾਂ ਕਾਲ ਤੱਕ ਸਥਾਨਬੱਧ ਕਰਦੇ ਹਨ; ਲਾਗਸ ਸਹੀ ਕਾਰਨ ਦਿੰਦੇ ਹਨ। ਮੈਟ੍ਰਿਕਸ ਤੋਂ ਬਿਨਾਂ ਸਿੱਧੇ ਲਾਗਸ ਵਿੱਚ ਜਾਣਾ ਭਰੋਸੇ ਦੇ ਖੋਜ ਦੇ ਬਰਾਬਰ ਹੈ।
ਮੈਟ੍ਰਿਕਸ ਇਕੱਠੇ ਕੀਤੇ ਜਾਂਦੇ ਹਨ, ਇਸ ਲਈ ਉਹ ਸਕੇਲ ਤੇ ਵੀ ਸਸਤੇ ਰਹਿੰਦੇ ਹਨ — ਹਮੇਸ਼ਾ-ਚਾਲੂ ਡੈਸ਼ਬੋਰਡਸ ਅਤੇ ਅਲਰਟਸ ਲਈ ਆਦਰਸ਼। ਲਾਗਸ ਅਤੇ ਟ੍ਰੇਸਸ ਪ੍ਰਤੀ-ਘਟਨਾ ਹਨ ਅਤੇ ਮਹਿੰਗੇ ਹਨ, ਇਸ ਲਈ ਉਹ ਆਮ ਤੌਰ ਤੇ ਨਮੂਨਾ ਕੀਤੇ ਜਾਂਦੇ ਹਨ ਅਤੇ ਜਾਂਚ ਦੌਰਾਨ ਮੰਗ ਤੇ ਪੁੱਛੇ ਜਾਂਦੇ ਹਨ।
ਗਲਤ ਸਤੰਭ ਵਰਤਣਾ ਸਮਾਂ ਬਰਬਾਦ ਕਰਦਾ ਹੈ: ਤੁਸੀਂ ਕੱਚੇ ਲਾਗਸ (ਬਹੁਤ ਵਧੀਆ, ਬਹੁਤ ਮਹਿੰਗਾ) ਤੇ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਢੰਗ ਨਾਲ ਸਾਵਧਾਨ ਨਹੀਂ ਕਰ ਸਕਦੇ, ਅਤੇ ਤੁਸੀਂ ਸਮੁੱਚੇ ਮੈਟ੍ਰਿਕ ਤੋਂ ਇੱਕ ਖਾਸ ਅਸਫਲ ਬੇਨਤੀ ਨੂੰ ਸੁਧਾਰ ਨਹੀਂ ਸਕਦੇ। ਇਹ ਜਾਣਨਾ ਕਿ ਮੈਟ੍ਰਿਕਸ ਖੋਜ ਕਰਦੇ ਹਨ, ਟ੍ਰੇਸਸ ਸਥਾਨਬੱਧ ਕਰਦੇ ਹਨ, ਅਤੇ ਲਾਗਸ ਸਮਝਾਉਂਦੇ ਹਨ, ਤੁਹਾਨੂੰ "ਕੁਝ ਗਲਤ ਹੈ" ਤੋਂ ਮੂਲ ਕਾਰਨ ਤੱਕ ਇੱਕ ਤੇਜ਼, ਦੁਹਰਾਉਣਯੋਗ ਤਰੀਕਾ ਦਿੰਦਾ ਹੈ।