GH GambleHub

प्रोमेथियस: मेट्रिक्स एकत्र करना

(धारा: प्रौद्योगिकी और बुनियादी ढांचा)

संक्षिप्त सारांश

प्रोमेथियस टाइम मैट्रिक्स के लिए एक औद्योगिक मानक है: यह HTTP पर लक्ष्य को स्क्रैप करता है, TSDB में श्रृंखला स्टोर करता है, PromQL में समुच्चय गिनता है और Alertmanager के माध के माध्यम से अलर्यम को ट्यान करता है। IGaming के लिए, यह SLO दृष्टिकोण (RED/USE, बिजनेस पेमेंट मेट्रिक्स), फास्ट p95/p99 डायग्नोस्टिक्स और ऑटोमैटिक सॉल्यूशंस (फ्रीज/रोलबैक) का आधार है।

1) डेटा मॉडल और कार्डिनैलिटी

मीट्रिक: 'नाम {label1 = "v1, label2 =" v2 "} मान @ timestamp'।

कार्डिनैलिटी = सभी अद्वितीय लेबल सेट का बिजली उत्पाद; मुख्य लागत कारक।

लेबल अभ्यास:
  • базовые: 'सेवा', 'एनवी', 'क्षेत्र', 'उदाहरण', 'पॉड', 'कंटेनर', 'संस्करण';
  • डोमेन: 'रूट', 'psp', 'किरायेदार' (सावधानी!), 'गेम _ प्रदाता'।
  • आप 'उपयोगकर्ता _ id', 'सत्र _ id', यादृच्छिक/उच्च कार्डिनल मान नहीं रख सकते.

2) मैट्रिक्स के प्रकार

काउंटर केवल बढ़ ता है (उदाहरण के लिए, 'http _ requests _ total')।

गेज - तात्कालिक मान (उदाहरण के लिए, 'पंक्ति _ depth')।

हिस्टोग्राम/सारांश - विलंबता वितरण। प्रोड में - हिस्टोग्राम ('हिस्टोग्राम _ क्वांटाइल ()' और उदाहरण के लिए समर्थन के साथ)।

देशी हिस्टोग्राम परिवर्तनशील बाल्टी हैं जो सटीकता में सुधार करते हैं और आकार को बचाते हैं (जहां उपलब्ध हैं शामिल हैं)।

उदाहरण (जाओ):
go var httpLatency = prometheus. NewHistogramVec(
prometheus. HistogramOpts{
Name:  "http_request_duration_seconds",
Help:  "HTTP latency",
Buckets: prometheus. DefBuckets ,//or custom
},
[]string{"route","method"},
)

3) निर्यातकों और क्या मापना है

सेवा: आपका कोड (गो/जावा/नोड/पायथन के लिए एसडीके), रेड एपीआई मैट्रिक्स, बिजनेस मैट्रिक्स (भुगतान रूपांतरण)।

सिस्टम: node_exporter, cAdvisor/kubelet।

थर्ड-पार्टी: डीबी/कैश (mysqld_exporter, postgres_exporter, redis_exporter), NGINX/HAProxy, Kafka/RabbitMQ।

ओटेल मेट्रिक्स: ओपनटेलीमेट्री कलेक्टर के माध्यम से प्रोमेथियस रिमोट राइट या प्रोमेथियस-रिसीवर - एक सामान्य स्टैक में।

4) स्क्रैप और रिलेबल: लक्ष्य को कैसे जोड़ें

बेसिक 'प्रोमेथियस। वाईएमएल '

yaml global:
scrape_interval: 15s evaluation_interval: 15s external_labels:
env: "prod"
region: "eu-west"

scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['10. 0. 1. 10:9100','10. 0. 1. 11:9100']

- job_name: 'payments-api'
metrics_path: /metrics scheme: https tls_config:
ca_file: /etc/ssl/ca. crt cert_file: /etc/ssl/tls. crt key_file: /etc/ssl/tls. key relabel_configs:
- source_labels: [__address__]
regex: '(.):\d+'
target_label: instance replacement: '$1'

कुबेरनेट्स через प्रोमेथियस ऑपरेटर

Manual 'scrape _ configs' के बजाय Service Monitor/PodMonitor का उपयोग करें.

yaml apiVersion: monitoring. coreos. com/v1 kind: ServiceMonitor metadata: { name: payments-api }
spec:
selector: { matchLabels: { app: payments-api } }
namespaceSelector: { matchNames: [ "prod" ] }
endpoints:
- port: metrics interval: 15s scheme: http relabelings:
- action: replace targetLabel: service replacement: "payments-api"

एनोटेशन K8s (ऑपरेटर के बिना, सरलीकृत)

yaml metadata:
annotations:
prometheus. io/scrape: "true"
prometheus. io/port: "9102"
prometheus. io/path: "/metrics"

5) भंडारण: TSDB, WAL और प्रतिधारण

WAL (राइट-अहेड लॉग) → पुनरारंभ से तेजी से वसूली।

संपीडनः ब्लॉक संपीड़न, डिस्क/सीपीयू बचत.

प्रतिधारण: 7-30 दिनों के लिए गर्म डेटा रखें; दीर्घकालिक - चाल (स्केलिंग देखें)।

ट्यूनिंग:
  • '-storage। tsdb। प्रतिधारण। समय = 15d '
  • '-storage। tsdb। मैक्स-ब्लॉक-चंक-सेगमेंट-आकार '
  • ड्राइव: तेज SSD/NVMe; अनावश्यक रूप से नेटवर्क वॉल्यूम से बचें।

6) PromQL: बुनियादी बातें और लगातार पैटर्न

दर/irate

promql rate(http_requests_total{route="/deposit"}[5m])

त्रुटियाँ और सफलता दर

promql sum(rate(http_requests_total{status=~"2..    3.."}[5m]))
/ sum(rate(http_requests_total[5m]))

p95 विलंबता

promql histogram_quantile(0. 95,
sum by (le, route) (rate(http_request_duration_seconds_bucket[5m]))
)

कतार/संतृप्ति

promql max(queue_depth{queue="withdrawals"}) by (region)

7) रिकॉर्डिंग नियम और प्रदर्शन

पहले से भारी अभिव्यक्तियों पर विचार करें और श्रृंखला के रूप में स्टोर

yaml groups:
- name: api. rules interval: 30s rules:
- record: job:http:request_duration_seconds:p95 expr:
histogram_quantile(0. 95,
sum by (le, job) (rate(http_request_duration_seconds_bucket[5m])))
- record: job:http:success_ratio expr:
sum(rate(http_requests_total{status=~"2..    3.."}[5m]))
/ sum(rate(http_requests_total[5m]))

प्लस: फास्ट डैशबोर्ड, प्रोमेथियस सीपीयू पर कम लोड।

8) अलर्टिंग и एसएलओ (बर्न रेट)

बर्न-रेट अलर्ट (मल्टी-विंडो, मल्टी-बर्न)

yaml groups:
- name: slo. payments rules:
- alert: PaymentsSLOFastBurn expr: (1 - job:http:success_ratio{job="payments-api"}) > (1 - 0. 999) 14 for: 5m labels: { severity: "page" }
annotations:
summary: "SLO fast burn"
runbook: "https://runbooks/payments/slo"
- alert: PaymentsSLOSlowBurn expr: (1 - job:http:success_ratio{job="payments-api"}) > (1 - 0. 999) 6 for: 1h labels: { severity: "ticket" }

Alertmanager: सेवा/क्षेत्र मार्ग, डुप्लिकेट दमन, ChatOps।

9) निशान और लॉग के साथ सहसंबंध

अनुकरणीय सक्षम करें: हिस्टोग्राम बाल्टी में क्लिकेबल 'ट्रेस _ id'।

मेट्रिक्स में लेबल 'सेवा', 'संस्करण', 'क्षेत्र' फोर "रिलीज तुलना" रखें।

डैशबोर्ड पर - एनोटेशन (Git SHA/संस्करण) जारी करें।

10) स्केलिंग और दीर्घकालिक भंडारण

फेडरेशन: ऊपरी प्रोमेथियस निचले (नौकरी/लेबल फिल्टर द्वारा) से एकत्र होता है।

रिमोट राइट: दीर्घकालिक भंडारण बैकेंड/क्लस्टर (थानोस/कॉर्टेक्स/मिमिर) को पंक्तियाँ भेजना।

पेशेवरों: अनंत प्रतिधारण, क्षैतिज स्केलिंग, वैश्विक दृश्य।

विपक्ष: संचालित करना अधिक कठिन, लागत।

फ़ंक्शन द्वारा शार्टिंग: सिस्टम मैट्रिक्स, व्यवसाय, सुरक्षा के लिए अलग उदाह

11) सुरक्षा

TLS/mTLS प्रोमेथियस ↔/Alertmanager/remote _ राइट लक्ष्य के बीच।

मूल/टोकन प्रमाणीकरण/लक्ष्य और एपीआई के लिए (प्रॉक्सी गेटवे के सामने)।

RBAC: भूमिका द्वारा UI/श्रृंखला तक पहुंच को प्रतिबंधित करें; निजी लेबल छिपाएँ।

पीआईआई स्वच्छता: मेट्रिक्स में पीआईआई न लिखें; हैश/उपनाम का उपयोग करें।

12) कुबेरनेट्स प्रथाएं

प्रोमेथियस ऑपरेटर: सीआरडी (सर्विसमॉनिटर, पॉडमॉनिटर, अलर्टमैनेजर, प्रोमेथियस)।

kube-state-metrics + cAdvisor - क्लस्टर की एक पूरी तस्वीर।

tainings और संसाधन: निगरानी के लिए समर्पित नोड्स; सीपीयू/रैम सीमा।

शोर में कमी: "उत्पादन" नेमस्पेस के लिए लेबल चयनकर्ता, पैडिंग - जहां संभव हो।

13) व्यापार मेट्रिक्स और उत्पाद

Платежи: 'भुगतान _ सफलता _ कुल {psp, मुद्रा}', 'भुगतान _ रूपांतरण _ अनुपात', 'ttw _ seconds _ histogram'।

खेल गतिविधि: दांव/मिनट, गेज के रूप में सत्र आयोजित करना, त्रुटियों पर ड्रॉप-ऑफ।

जोखिम/धोखाधड़ी: गति विसंगतियों/भू के लिए ट्रिगर; अलग से लॉगिंग, मेट्रिक्स - समुच्चय।

14) लागत और प्रदर्शन (FinOps)

कार्डिनैलिटी को नियंत्रित करें (नया लेबल जोड़ ने से पहले टैग समीक्षा क

गैर-महत्वपूर्ण लक्ष्यों के लिए नमूना हिस्टोग्राम/दुर्लभ निर्यातकों '।

दीर्घकालिक भंडारण बैकएंड में डाउनसैम्पलिंग।

डैशबोर्ड कैशिंग और रिकॉर्डिंग नियमों पर व्यापक निर्भरता।

15) "तेज शुरुआत" के उदाहरण

अनुप्रयोग में लाल निर्यातक (अजगर)

python from prometheus_client import Counter, Histogram, start_http_server reqs = Counter('http_requests_total','', ['route','method','status'])
lat = Histogram('http_request_duration_seconds','', ['route','method'])
start_http_server(8000)

def handle(req):
with lat. labels(req. route, req. method). time():
status = app(req)
reqs. labels(req. route, req. method, str(status)). inc()
return status

थ्रेशोल्ड अलर्ट p95

promql alert: HighLatencyP95 expr: histogram_quantile(0. 95,
sum by (le, service) (rate(http_request_duration_seconds_bucket[5m]))) > 0. 25 for: 10m labels: { severity: "page", service: "api" }

16) कार्यान्वयन चेकलिस्ट

1. मूल मैट्रिक्स (RED/USE) और डोमेन मैट्रिक्स के एक सेट को परिभाषित करें।

2. कार्डिनैलिटी द्वारा समन्वय लेबल और गाइड।

3. स्क्रैप/सर्विसमॉनिटर, टीएलएस/एमटीएलएस, रिलेबल कॉन्फ़िगर करें।

4. कुंजी पथ और अनुकरणों के लिए हिस्टोग्राम शामिल करें।

5. p95, सफलता अनुपात, व्यापार समुच्चय के लिए रिकॉर्डिंग नियम बनाएं।

6. SLO अलर्ट भरें (लिखने की दर) और Alertmanager जड़ें.

7. डैशबोर्ड उठाएं: सर्विस मैप, रिलीज तुलना, भुगतान।

8. फेडरेशन/रिमोट _ राइट और रिटेंशन के बारे में निर्णय लें।

9. प्रतिबंधित पहुंच (आरबीएसी), पीआईआई की अनुपस्थिति की जांच करें।

10. रनबुक और गेम-डे जांच सक्षम करें।

17) एंटी-पैटर्न

उच्च कार्डिनैलिटी वाले लेबल (user/session/request_id)।

कुंजी SLO के लिए Histogram के बजाय सारांश - कोई 'histogram _ quantile' नहीं है।

फ़िल्टरिंग/रोटेशन के बिना "सभी को एक पंक्ति में" स्क्रैच करें - लागत और शोर में वृद्धि।

SLO → अलर्ट-फाटिग के बिना कच्चे मेट्रिक्स पर अलर्ट।

रिकॉर्डिंग नियमों की कमी - "भारी" डैशबोर्ड।

TLS/mTLS के बिना मैट्रिक्स पर भरोसा करें - स्पूफिंग/रिसाव का जोखिम।

सारांश

Prometheus iGaming प्लेटफ़ॉर्म गोल-बाउंड वेधशाला देता है: सटीक हिस्टोग्राम, स्थिर समुच्चय, स्पष्ट SLO अलर्ट, और एक बहु-क्षेत्र मानचित्र को स्केलिंग। लेबल अनुशासन, सही रिकॉर्डिंग नियम, ट्रेस/लॉग लिंक, और एक विचारशील भंडारण वास्तुकला पीक समय पर भी त्वरित रिलीज और अनुमानित p99 प्रदान करता है।

Contact

हमसे संपर्क करें

किसी भी प्रश्न या सहायता के लिए हमसे संपर्क करें।हम हमेशा मदद के लिए तैयार हैं!

Telegram
@Gamble_GC
इंटीग्रेशन शुरू करें

Email — अनिवार्य है। Telegram या WhatsApp — वैकल्पिक हैं।

आपका नाम वैकल्पिक
Email वैकल्पिक
विषय वैकल्पिक
संदेश वैकल्पिक
Telegram वैकल्पिक
@
अगर आप Telegram डालते हैं — तो हम Email के साथ-साथ वहीं भी जवाब देंगे।
WhatsApp वैकल्पिक
फॉर्मैट: देश कोड और नंबर (उदा. +91XXXXXXXXXX)।

बटन दबाकर आप अपने डेटा की प्रोसेसिंग के लिए सहमति देते हैं।