अवलोकन: लॉग, मैट्रिक्स, निशान
अवलोकन: लॉग, मैट्रिक्स, निशान
1) आपको इसकी आवश्यकता क्यों है
अवलोकन - इसकी स्थिति के बारे में अनियोजित सवालों के जवाब देने की प्रणाली की क्षमता। यह तीन मुख्य संकेतों पर निर्भर करता है:- मेट्रिक्स SLI/SLO और लक्षण अलर्टिंग के लिए कॉम्पैक्ट एग्रीगेट हैं।
- ट्रेस - एंड-टू-एंड क्वेरी चेन।
- लॉग - जांच और ऑडिट के लिए विस्तृत कार्यक्रम।
उद्देश्य: तेजी से आरसीए, निवारक अलर्ट और एक त्रुटि बजट के भीतर विश्वसनीयता का प्रबंधन।
2) वास्तुकला सिद्धांत
एकल संदर्भ: हर जगह हम 'ट्रेस _ आईडी', 'स्पैन _ आईडी', 'टेनेंट _ आईडी', 'रिक्वेस्ट _ आईडी', 'यूजर _ एजेंट', 'क्लाइंट _ आईपी _ हैश' फेंकते हैं।
मानक: SDK/एजेंटों के लिए OpenTelemetry (Otel), JSON लॉग प्रारूप (स्कीमा के साथ विहित)।
लक्षण> कारण: उपयोगकर्ता लक्षणों (विलंबता/त्रुटियों) द्वारा सतर्क, सीपीयू द्वारा नहीं।
सिग्नल संचार: → मीट्रिक से उदाहरण के लिए → 'ट्रेस _ आईडी' द्वारा विशिष्ट लॉग तक।
सुरक्षा और गोपनीयता: लॉग में पीआईआई मास्किंग, पारगमन में एन्क्रिप्शन/आराम पर, अपरिवर्तनीय ऑडिट लॉग।
बहु-किरायेदारी: नामस्थान/कुंजियों/नीतियों का पृथक्करण।
3) सिग्नल टैक्सोनॉमी और योजनाएं
3. 1 मेट्रिक्स
बुनियादी ढांचे के लिए सेवाओं और उपयोग (उपयोग, संतृप्ति, त्रुटियां) के लिए रेड (दर, त्रुटियां, अवधि)।
Типы: काउंटर, गेज, हिस्टोग्राम/सारांश। विलंबता के लिए, निश्चित बाल्टी के साथ हिस्टोग्राम।
उदाहरण: "हॉट" हिस्टोग्राम डिब्बे में 'ट्रेस _ आईडी' का संदर्भ।
मैट्रिक्स की मिनी-योजना (तर्क)। मॉडल)::
name: http_server_duration_seconds labels: {service, route, method, code, tenant}
type: histogram buckets: [0. 01, 0. 025, 0. 05, 0. 1, 0. 25, 0. 5, 1, 2, 5]
exemplar: trace_id
3. 2 निशान
स्पैन = 'नाम', 'स्टार्ट/एंड', 'गुण', 'इवेंट्स', 'स्थिति' के साथ ऑपरेशन।
सहिष्णुता के लिए W3C ट्रेस संदर्भ।
नमूना: मूल (सिर) + गतिशील (पूंछ) + "महत्व" के नियम (त्रुटियां, उच्च p95)।
3. 3 लॉग्स
केवल संरचित JSON; स्तर: DEBUG/INFO/WARN/ERROR.
आवश्यक क्षेत्र हैं 'ts _ utc', 'स्तर', 'संदेश', 'trace _ id', 'span _ id', 'किरायेदार _ id', 'env', 'क्षेत्र', 'होस्ट', 'लेबल {}'.
वर्जित: रहस्य, टोकन, पैन, पासवर्ड। PII - टोकन/नकाबपोश केवल।
लॉग स्ट्रिंग का उदाहरण (JSON):json
{"ts":"2025-10-31T12:05:42. 123Z","level":"ERROR","service":"checkout","env":"prod",
"trace_id":"c03c...","span_id":"9ab1...","tenant_id":"t-42","route":"/pay",
"code":502,"msg":"payment gateway timeout","retry":true}
4) संग्रह और परिवहन
एजेंट/निर्यातक (डेमोंसेट/साइडकार) - बस/इनगेस्ट नोड (टीएलएस/एमटीएलएस) पर एक बफर सिग्नल स्टोर।
आवश्यकताएं: बैक-प्रेशर, रिट्रे, डिडुप्लिकेशन, कार्डिनैलिटी प्रतिबंध (लेबल!), "लॉग स्टॉर्म" के खिलाफ सुरक्षा।
मेट्रिक्स: पुल (प्रोमेथियस-संगत) या ओटीएलपी के माध्यम से धक्का।
निशान: OTLP/HTTP (gRPC), कलेक्टर पर पूंछ के नमूने।
लॉग: स्थानीय संग्रह (जर्नल/डॉकर/stdout) → पार्सर → नॉर्मलाइज़र।
5) भंडारण और प्रतिधारण (tiered)
मेट्रिक्स: गर्म टीएसडीबी 7-30 दिन (डाउनसैम्पल के साथ), लंबी अवधि (90-365 दिन) के लिए एकत्र होता है।
निशान: 1-7 दिन पूर्ण, फिर "महत्वपूर्ण" सेवाओं के कुल/फैलाव; 'सेवा', 'स्थिति', 'त्रुटि' पर स्टोर इंडेक्स।
लॉग: हॉट इंडेक्स 7-14 दिन, गर्म 3-6 महीने, 1-7 साल (अनुपालन) तक संग्रह। ऑडिट - WORM।
लागत अनुकूलन: डाउनसैम्पलिंग, बिक्री में DEBUG फ़िल्टरिंग, लेबल कोटा, पटरियों के लिए नमूना।
6) SLI/SLO, अलर्ट और ड्यूटी
SLI: उपलब्धता (% सफल अनुरोध), विलंबता (p95/p99), 5xx शेयर, डेटा ताजगी, सफल नौकरियों का हिस्सा।
SLO: SLI पर लक्ष्य (उदा। 99. 9% सफल ≤ 400 एमएस)।
त्रुटि बजट: 0। 1% "त्रुटि के लिए मार्जिन" - फिक्शन/प्रयोगों के नियम।
लक्षणों द्वारा सचेत (उदाहरण):- 'ALERT हाईलेटेंसी' если 'p99 (http_server_duration_seconds{route="/pay"})> 1s' 5мин।
- 'ALERT रेट' 'दर ( )/दर ( )> 0। 02`.
- साइलो अलर्ट (सीपीयू/डिस्क) - केवल सहायक के रूप में, बिना पेजिंग के।
7) सिग्नल सहसंबंध
मीट्रिक "लाल" है - एक विशिष्ट 'ट्रेस _ आईडी' पर क्लिक करें - "स्लो" स्पैन पर देखें - उसी 'ट्रेस _ आईडी' द्वारा लॉग खोलें।
रिलीज़ के साथ सहसंबंध: विशेषता 'संस्करण', 'छवि _ शा', 'फ़ीचर _ फ़्लैग'.
डेटा/ईटीएल के लिए: 'dataset _ urn', 'run _ id', वंश से लिंक (संबंधित लेख देखें)।
8) नमूना और कार्डिनैलिटी
मेट्रिक्स: प्रतिबंधित लेबल ('उपयोगकर्ता _ आईडी', 'सत्र _ आईडी' के बिना); पंजीकरण पर कोटा/सत्यापन।
निशान: सिर-नमूना (इनपुट पर) और पूंछ-नमूना (कलेक्टर पर) को नियमों के साथ जोड़ें: "सब कुछ जो 5xx, p99, त्रुटियां हैं - 100%।"
लॉग: स्तर और थ्रॉटलिंग; लगातार आवर्ती त्रुटियों के लिए - कुल घटनाओं (dedupe कुंजी)।
उदाहरण पूंछ-नमूना (वैचारिक रूप से, ओटेल कलेक्टर):yaml processors:
tailsampling:
decision_wait: 2s policies:
- type: status_code status_code: ERROR rate_allocation: 1. 0
- type: latency threshold_ms: 900 rate_allocation: 1. 0
- type: probabilistic hash_seed: 42 sampling_percentage: 10
9) सुरक्षा और गोपनीयता
ट्रांजिट/एट रेस्ट: एन्क्रिप्शन (टीएलएस 1। 3, AEAD, KMS/HSM)।
PII/रहस्य: शिपमेंट, टोकन, मास्किंग से पहले सैनिटाइज़र।
पहुंच: पढ़ ने के लिए ABAC/RBAC; उत्पादकों/पाठकों/प्रशासकों की भूमिकाओं का पृथक्करण।
लेखा परीक्षा: लॉग/ट्रेस तक पहुंच का अपरिवर्तित लॉग; निर्यात - एन्क्रिप्टेड रूप में।
बहु-किरायेदारी: नीतियों के साथ नेमस्पेस/किरायेदार-लेबल; एन्क्रिप्शन कुंजी अलगाव।
10) कॉन्फ़िगरेशन प्रोफाइल (टुकड़े)
प्रोमेथियस (HTTP मेट्रिक्स + अलर्टिंग):yaml global: { scrape_interval: 15s, evaluation_interval: 30s }
scrape_configs:
- job_name: 'app'
static_configs: [{ targets: ['app-1:8080','app-2:8080'] }]
rule_files: ['slo. rules. yaml']
स्लो। नियम। yaml (उदाहरण RED):
yaml groups:
- name: http_slo rules:
- record: job:http_request_duration_seconds:p99 expr: histogram_quantile(0. 99, sum(rate(http_server_duration_seconds_bucket[5m])) by (le,route))
- alert: HighLatencyP99 expr: job:http_request_duration_seconds:p99{route="/pay"} > 1 for: 5m
OpenTelemetry SDK (स्यूडोकोड):
python provider = TracerProvider(resource=Resource. create({"service. name":"checkout","service. version":"1. 8. 3"}))
provider. add_span_processor(BatchSpanProcessor(OTLPExporter(endpoint="otel-collector:4317")))
set_tracer_provider(provider)
with tracer. start_as_current_span("pay", attributes={"route":"/pay","tenant":"t-42"}):
business logic pass
अनुप्रयोग लॉग (stdout JSON):
python log. info("gw_timeout", extra={"route":"/pay","code":502,"trace_id":get_trace_id()})
11) डेटा/ईटीएल और स्ट्रीमिंग
डेटा के लिए SLI: ताजगी (अधिकतम अंतराल), पूर्णता (पंक्तियाँ बनाम अपेक्षा), "गुणवत्ता" (वैधता/डुप्लिकेट)।
अलर्ट: विंडो स्किपिंग, कंज्यूमर लैग, डीएलक्यू ग्रोथ।
सहसंबंध: 'run _ id', 'dataset _ urn', वंश की घटनाएँ; पाइपलाइनों के लिए निशान (प्रति बैच/विभाजन)।
काफ्का/एनएटीएस: निर्माता/उपभोक्ता मैट्रिक्स, अंतराल/विफलता; हेडर द्वारा निशान ('ट्रेसपेरेंट' सहित)।
12) प्रोफाइलिंग और ईबीपीएफ (अतिरिक्त संकेत)
निम्न-स्तरीय गर्म रास्ते CPU/alloc/IO; प्रति घटना प्रोफाइल।
ईबीपीएफ टेलीमेट्री (नेटवर्क देरी, डीएनएस, सिस्टम कॉल) 'ट्रेस _ आईडी '/पीआईडी से जुड़ा हुआ है।
13) अवलोकन परीक्षण
सिग्नल संविदा - सीआई को मैट्रिक्स/लेबल/हिस्टोग्राम के निर्यात की जांच करता है।
सिंथेटिक जांच: बाहरी एसएलआई के लिए आरयूएम परिदृश्य/नकली ग्राहक।
अराजकता/अग्नि अभ्यास: निर्भरता को अक्षम करना, गिरावट - हम देखते हैं कि अलर्ट और परिचारक कैसे प्रतिक्रिया करते हैं।
स्मोक इन प्रोड: पोस्ट-डिप्लॉय की जाँच करें कि नए एंडपॉइंट में मैट्रिक्स और ट्रेस हैं।
14) लागत और मात्रा नियंत्रण
सिग्नल/कमांड द्वारा बजट; डैशबोर्ड "प्रति सिग्नल लागत"।
बजट के तहत कार्डिनैलिटी (कार्डिनैलिटी के लिए एसएलओ), नए लेबल पर सीमा।
ऑडिटिंग के लिए डाउनसैम्पलिंग, डेटा क्लास प्रेजेंटेशन, कोल्ड आर्काइव और वर्म।
15) वेधशाला प्लेटफॉर्म का संचालन और एसएलओ
प्लेटफ़ॉर्म SLO: 99। सफल अंतर्ग्रहण का 9%; मीट्रिक इंडेक्स ≤ 30 s में देरी, लॉग ≤ 2 मिनट, निशान ≤ 1 मिनट।
प्लेटफ़ॉर्म अलर्ट: इंजेक्शन लैग, ड्रॉप ग्रोथ, सिग्नेचर/एन्क्रिप्शन त्रुटि, बफर ओवरफ्लो।
DR/HA: मल्टी-एरिया, प्रतिकृति, कॉन्फिग/रूल बैकअप।
16) चेकलिस्ट
बेचने से पहले:- हर जगह 'ट्रेस _ आईडी '/' स्पैन _ आईडी' फेंका जाता है; JSON एक आरेख के साथ लॉग करता है।
- हिस्टोग्राम के साथ RED/USE मेट्रिक्स; अनुकरणीय → संरेखण।
- पूंछ-नमूना सक्षम; 5xx/p99 नियम = 100%।
- लक्षणों से अलर्ट + रनीबुक; शांत घंटे/एंटी-फ्लैप।
- पीआईआई सैनिटाइज़र; लेखा परीक्षा के लिए विश्राम/पारगमन WORM में एन्क्रिप्शन।
- वॉल्यूम/कार्डिनैलिटी के लिए रिटेंशन और बजट।
- मासिक सतर्क समीक्षा (शोर/सटीकता), ट्यूनिंग थ्रेसहोल्ड।
- त्रुटि बजट रिपोर्ट और कार्रवाई की गई (fichfreeze, सख्त)।
- महत्वपूर्ण रास्तों के लिए डैशबोर्ड/लॉग/ट्रेस कोटिंग्स की जाँच करें।
- प्रशिक्षण घटनाओं और रनबुक अपडेट।
17) Runbook'и
आरसीए: p99/वेतन वृद्धि
1. 'चेकआउट' के लिए RED डैशबोर्ड खोलें।
2. अनुकरणीय पर जाएं - एक धीमी गति से ट्रैक एक "संकीर्ण अवधि" प्रकट करता है (उदा। 'गेटवे। कॉल ')।
3. 'trace _ id' → view timeout/retrays द्वारा लॉग खोलें।
4. रोलबैक सुविधा/आरपीएस सीमा सक्षम करें, निर्भरता मालिकों को सूचित करें।
5. स्थिरीकरण के बाद - आरसीए, अनुकूलन टिकट, प्लेबैक परीक्षण।
डेटा में विसंगति (लॉग DWH):1. SLI "ताजगी" लाल ट्रैक नौकरी - असफल पिच।
2. ब्रोकर/डीएलक्यू लॉग, कनेक्टर त्रुटियों की जाँच करें।
3. पुनर्प्रसंस्करण प्रारंभ करें, स्थिति चैनल के माध्यम से उपभोक्ताओं (बीआई/उत्पाद) को सूचित
18) बार-बार त्रुटियाँ
स्कीमा के बिना और 'ट्रेस _ आईडी' के बिना लॉग। जांच में कई बार देरी होती है।
लक्षणों के बजाय बुनियादी ढांचे पर अलर्ट। पेजिंग "दूध में जाता है।"
मैट्रिक्स की असीम कार्डिनैलिटी। लागत विस्फोट और अस्थिरता।
सभी 100% ट्रैक करते हैं। महंगा और अनावश्यक; स्मार्ट नमूना सक्षम करें।
लॉग में पीआईआई/रहस्य। Sanitizers और लाल सूची शामिल करें।
"म्यूट" सुविधाएँ। बिना मेट्रिक्स/ट्रेस/लॉग के नया कोड।
19) एफएक्यू
प्रश्न: क्या मुझे लॉग के कच्चे पाठ को संग्रहीत करने की आवश्यकता है?
A: हाँ, लेकिन प्रतिधारण और अभिलेखागार के साथ; अलर्ट और एसएलओ के लिए, समुच्चय पर्याप्त हैं। ऑडिट - WORM में।
प्रश्न: पटरियों के लिए क्या चुनना है - सिर या पूंछ का नमूना?
A: संयोजन: त्रुटियों और विसंगतियों के लिए बेसकोट + पूंछ-नियमों के लिए सिर-संभाव्य।
प्रश्न: मैं उपयोगकर्ता मैट्रिक्स और तकनीकी मैट्रिक्स को कैसे लिंक करूं?
A: सामान्य 'ट्रेस _ आईडी' और व्यावसायिक लेबल ('मार्ग', 'किरायेदार', 'योजना') के माध्यम से, साथ ही ट्रैक के सहसंबंध के साथ उत्पाद घटनाओं (रूपांतरण) के माध्यम से।
प्रश्न: अलर्ट में कैसे नहीं डूबना है?
A: लक्षणों पर हरा, शांत घंटों में प्रवेश करें, डीडुप्लिकेशन, समूह, SLO प्राथमिकता और प्रति अलर्ट के मालिक-दर-डिफ़ॉल्ट।
संबंधित सामग्री:- "ऑडिट और अपरिवर्तनीय लॉग"
- "ट्रांजिट/एट रेस्ट एन्क्रिप्शन" में
- "गुप्त प्रबंधन"
- "डेटा ओरिजिन (वंश)"
- "डिजाइन द्वारा गोपनीयता (GDPR)"
- "वेबहुक डिलीवरी गारंटी"