ग्राफाना और डेटा दृश्य
(धारा: प्रौद्योगिकी और बुनियादी ढांचा)
संक्षिप्त सारांश
ग्राफाना सभी अवलोकन के लिए एक शोकेस है: एक स्थान पर मैट्रिक्स, लॉग, निशान, व्यवसाय संकेतक और अलर्ट। IGaming के लिए, ये हैं: p95/p99 निगरानी, भुगतान रूपांतरण, समय-से-बटुआ, खेल प्रदाता उपलब्धता, घटनाओं का भू-वितरण, और स्थिर बनाम कैनरी। सफलता: टेम्पलेट (चर), समझने योग्य पैनल, रिलीज एनोटेशन, एसएलओ डैशबोर्ड और एक्सेस राइट्स अनुशासन।
1) कनेक्शन वास्तुकला
डेटासोर्स: प्रोमेथियस (मैट्रिक्स), लोकी/ईएलके (लॉग), टेम्पो/जेगर (ट्रेल्स), क्लिकहाउस/बिगक्वेरी/पीजी (बिजनेस डेटा), गेटवे के माध्यम से ओटीएलपी।
मुख्य लिंक: → exemplar → trace metric → संबंधित लॉग से 'trace _ id' द्वारा।
फ़ोल्डर और आरबीएसी: अलग फ़ोल्डर 'एसआरई', 'भुगतान', 'जोखिम', 'गेम्स', 'बिज़ोप्स'; роли 'प्रदर्शक/संपादक/प्रशासक' и दानेदार अनुमतियाँ।
2) डैशबोर्ड डिजाइन: सिद्धांत
1. 1-2 क्लिक में प्रश्न का उत्तर: एसएलओ कार्ड से विवरण तक।
2. प्रत्येक सेवा + डोमेन कार्ड (TTW, जमा रूपांतरण) के लिए RED/USE।
3. स्थिर ग्रिड: 24-स्तंभ, शीर्ष पर बड़ा केपीआई, नीचे का विवरण।
4. रंग और थ्रेसहोल्ड: न्यूनतम, एसएलए/एसएलओ।
5. रिलीज एनोटेशन: Git SHA, संस्करण, रिलीज़ टाइप (कैनरी/ब्लू-ग्रीन)।
3) चर और टेम्पलेट (टेम्पलेटिंग)
चर एक डैशबोर्ड को कई में बदल देते हैं।
उदाहरण (प्रोमेथियस क्वेरी-वेरिएबल):- नाम: 'सेवा'
- क्वैरी: 'लेबल मान (ऊपर, सेवा)'
- मल्टी-सेलेक्ट + में सभी शामिल हैं - समुच्चय के लिए सुविधाजनक।
- 'रीजन' 'env' 'सेवा' 'उदाहरण'।
- UX और 'रिफ्रेश: ऑन डैशबोर्ड लोड' के लिए 'regex '/' सॉर्ट' का उपयोग करें।
4) पैनल और रेंडरिंग प्रकार
समय श्रृंखला: p50/p95/p99, त्रुटि-दर, थ्रूपुट।
स्टेट/गेज: लक्ष्य केपीआई (उपलब्धता, टीटीडब्ल्यू पी 95)।
बार गेज/तालिका: शीर्ष एन मार्ग/पीएसपी/गेम प्रदाता।
जियोमैप: देश/आरओआर द्वारा थर्मल घटना/विलंबता मानचित्र।
कैनवास: योजनाबद्ध धाराएँ (खिलाड़ी → API → PSP → बैंक)।
नोड ग्राफ: सेवा निर्भरता, त्रुटियों द्वारा रंग।
परिवर्तन:- फ़ील्ड में लेबल, बाहरी जुड़ें, कम करें (न्यूनतम/अधिकतम/एवीजी), गणना से क्षेत्र जोड़ें (रूपांतरण)।
5) प्रश्नों और पैनलों के उदाहरण
5. 1 p95 विलंबता (PromQL)
promql histogram_quantile(0. 95,
sum by (le, route) (rate(http_request_duration_seconds_bucket{service="$service",region="$region"}[5m]))
)
5. 2 अनुरोधों की सफलता (SLO प्रॉक्सी)
promql sum(rate(http_requests_total{service="$service",status=~"2.. 3.."}[5m]))
/
sum(rate(http_requests_total{service="$service"}[5m]))
5. 3 भुगतान रूपांतरण (PromQL कुल)
promql sum(rate(payments_success_total{psp=~"$psp",currency=~"$currency"}[15m]))
/
sum(rate(payments_attempt_total{psp=~"$psp",currency=~"$currency"}[15m]))
5. 4 त्वरित ट्रैक में कूदें (उदाहरण)
'टाइम सीरीज़' पैनल में, उदाहरणों को चालू करें - बिंदु पर क्लिक करें - टेम्पो 'ट्रेस _ आईडी' के साथ खुलता है।
5. 5 लोकी trace_id
logql
{service="$service"} = "$traceID"
6) एनोटेशन और इवेंट्स
रिलीज एनोटेशन: कमी के दौरान एक घटना का ऑटो-जोड़ (संस्करण, लेखक, कैनरी वजन)।
हादसा/फ्रीज: हादसा स्टार्ट/एंड मार्क्स और फ्रीज विंडो जारी करें।
व्यावसायिक कार्यक्रम: बड़े अभियान/टूर्नामेंट - चार्ट पर चिह्नि
7) ग्राफाना में अलर्ट
केंद्रीय रूप से अलर्ट नियम (प्रोमेथियस/लोकी/क्लाउड पर आधारित)।
संपर्क बिंदु: PagerDuty/Slack/Email; अधिसूचना नीतियाँ (फ़ोल्डर/टैग द्वारा रूटिंग)।
मल्टी-विंडो बर्न-रेट: तेज और धीमी गति से बजट रोस्टिंग।
मौन: अनुसूचित खिड़कियों में और डुप्लिकेट के साथ।
p95 के लिए उदाहरण अभिव्यक्ति:promql histogram_quantile(0. 95,
sum by (le, service) (rate(http_request_duration_seconds_bucket{service="$service"}[5m]))
) > 0. 25
8) कोड के रूप में प्रावधान (IaC)
गीत में स्रोत/डैशबोर्ड/अलर्ट स्टोर करें।
डेटासोर्स। यमल
yaml apiVersion: 1 datasources:
- name: Prometheus type: prometheus access: proxy url: http://prometheus:9090 isDefault: true
- name: Loki type: loki url: http://loki:3100
- name: Tempo type: tempo url: http://tempo:3100
डैशबोर्ड। यमल
yaml apiVersion: 1 providers:
- name: sres folder: SRE type: file disableDeletion: false options:
path: /var/lib/grafana/dashboards/sre
ग्राफाना। ini (टुकड़ा)
ini
[auth]
disable_login_form = false
[users]
viewers_can_edit = false
[alerting]
enabled = true
[unified_alerting. screenshots]
capture = true
9) सुरक्षा और पहुंच
एसएसओ (OIDC/SAML), समूह → भूमिकाएँ → फ़ोल्डर।
डेटासोर्स के अधिकार: केवल आवश्यक फ़ोल्डर, केवल दर्शक के लिए पढ़ें।
पीआईआई स्वच्छता: पैनल में पीआईआई के साथ क्षेत्रों को न खींचें; लॉग - फ़िल्टर/मास्क के लिए।
रहस्य: केवल वॉल्ट/सुरक्षित JSON क्षेत्रों के माध्यम से, डैशबोर्ड में "सादे पाठ" के बिना।
10) प्रदर्शन और लागत
भारी अभिव्यक्तियों के लिए प्रोमेथियस में रिकॉर्डिंग नियम।
दीर्घकालिक भंडारण बैकएंड में डाउनसैम्पलिंग/रिटेंशन।
डैशबोर्ड कैश और उचित अंतराल (हर जगह "1s" नहीं)।
चर की कार्डिनैलिटी प्रतिबंध ('उपयोगकर्ता _ id '/' सत्र _ id' को स्थानापन्न न करें).
पुनर्वितरण: शोर टीमों के लिए अलग उदाहरण/फ़ोल्डर।
11) iGaming के लिए विशेष डैशबोर्ड
भुगतान: प्रयास/सफलता/TTW p95, PSP/मार्ग त्रुटि, भू-विचलन मानचित्र।
खेल/प्रदाता: स्टूडियो/गेम द्वारा विलंबता और त्रुटि-दर, लॉन्च रूपांतरण।
जोखिम/धोखाधड़ी: कार्रवाई की गति, डिवाइस फटना/आईपी, सहसंबंध (तालिका + बार-गेज)।
आरजी/अनुपालन: सत्र> थ्रेसहोल्ड, स्टेक ग्रोथ, विसंगति अलर्ट।
रिलीज तुलना: p95/त्रुटि/व्यवसाय मैट्रिक्स द्वारा स्थिर बनाम कैनरी।
Infra/USE: क्लस्टर और कतार द्वारा उपयोग/संतृप्ति/त्रुटियां।
12) एक JSON डैशबोर्ड (टुकड़ा) का उदाहरण
json
{
"title": "Payments SLO",
"tags": ["slo","payments"],
"time": {"from":"now-6h","to":"now"},
"panels": [
{
"type":"stat",
"title":"Availability",
"targets":[{"expr":"sum(rate(http_requests_total{service=\"payments-api\",status=~\"2.. 3..\"}[5m]))/sum(rate(http_requests_total{service=\"payments-api\"}[5m]))"}],
"thresholds":{"mode":"absolute","steps":[{"color":"red","value":0},{"color":"green","value":0. 999}]}
},
{
"type":"timeseries",
"title":"p95 latency",
"exemplars": {"color":"rgba(31,120,193,0. 6)"},
"targets":[{"expr":"histogram_quantile(0. 95,sum by (le) (rate(http_request_duration_seconds_bucket{service=\"payments-api\"}[5m])))"}]
}
]
}
13) रनबुक और यूएक्स सुधार
प्रत्येक अलर्ट में एक रनबुक यूआरएल (एक्शन इंस्ट्रक्शन) है।
संबंधित डैशबोर्ड (भुगतान ↔ Infra ↔ PSP) के लिंक।
ड्रिलडाउन: लेबल → फिल्टर (क्षेत्र/psp/मार्ग) पर क्लिक करें।
चर चूक: 'env = prod', 'क्षेत्र = यूरोपीय संघ' - शुरुआत को गति देता है।
14) कार्यान्वयन चेकलिस्ट
1. डेटासोर्स कॉन्फ़िगर करें: प्रोमेथियस/लोकी/टेम्पो/एसक्यूएल।
2. फ़ोल्डर और आरबीएसी भरें; अधिकार लेखा परीक्षा
3. टेम्पलेट चर (क्षेत्र/env/सेवा) बनाएँ।
4. SLO डैशबोर्ड बनाएँ (उपलब्धता, p95, त्रुटि दर, त्रुटि बजट).
5. रिलीज एनोटेशन और स्थिर/कैनरी तुलना जोड़ें।
6. अनुकरणीय सक्षम करें और क्लिक करके निशान/लॉग पर जाएँ।
7. अलर्ट कॉन्फ़िगर करें (मल्टी विंडो बर्न-रेट) और रूटिंग।
8. सब कुछ कोड के रूप में प्रावधान करें, गिट में स्टोर करें, एक समीक्षा करें।
9. अनुकूलन प्रदर्शन: रिकॉर्डिंग नियम, अंतराल, कैश।
10. बिजनेस डैशबोर्ड (TTW, भुगतान रूपांतरण, GGR कार्ड) दर्ज करें।
15) एंटीपैटर्न
चर और मानकों के बिना "चिड़ियाघर" असंगत डैशबोर्ड।
नियमों को रिकॉर्ड किए बिना भारी PromQL के साथ पैनल - धीमा UI।
विभिन्न तराजू के साथ रंगों/किंवदंतियों/वाई-अक्ष की अधिकता।
प्रदर्शक के लिए खोले गए पैनल में पीआईआई कनेक्शन।
रिलीज एनोटेशन की कमी - यह स्पष्ट नहीं है कि कूदना कहां से आता है।
एक फ़ोल्डर संरचना के बजाय एक "मोनोव्यू" डैशबोर्ड।
सारांश
ग्राफाना वह इंटरफ़ेस है जहाँ तकनीक उत्पाद से मिलती है: मैट्रिक्स, लॉग और ट्रैक व्यावसायिक चित्रों से जुड़ ते हैं। टेम्पलेट, सही पैनल, एनोटेशन और अलर्ट डेटा को समाधान में बदल देते हैं: तेजी से निदान, पूर्वानुमान योग्य रिलीज और प्रबंधनीय अवलोकन लागत।