GH GambleHub

بروميثيوس: جمع المقاييس

(القسم: التكنولوجيا والهياكل الأساسية)

موجز موجز

Prometheus هو معيار صناعي لمقاييس الوقت: فهو يكشط الأهداف عبر HTTP، وسلسلة المتاجر في TSDB، ويحسب المجاميع في PromQL ويطلق التنبيهات من خلال Alertmanager. بالنسبة إلى iGaming، هذا هو أساس نهج SLO (RED/USE، مقاييس دفع الأعمال)، التشخيص السريع p95/p99 والحلول التلقائية (التجميد/التراجع).

1) نموذج البيانات والكردينية

Metric:' name {label1 =» v1», label2 =» v2»} value @ timestamp'.
Cardinality = منتج الطاقة لجميع مجموعات الملصقات الفريدة ؛ عامل التكلفة الرئيسي.

ممارسات التسمية:
  • базовые: 'الخدمة'، 'البيئة'، 'المنطقة'، 'الحالة'، 'الكبسولة'، 'الحاوية'، 'النسخة' ؛
  • المجال: «الطريق»، «psp»، «المستأجر» (تحذير!)، «game _ provider».
  • لا يمكنك وضع «مستخدم _ معرف»، «جلسة _ معرف»، قيم أساسية عشوائية/عالية.

2) أنواع المقاييس

العداد - ينمو فقط (على سبيل المثال، «http _ requests _ total»).
المقياس - القيم الفورية (على سبيل المثال، «قائمة الانتظار _ العمق»).
Histogram/Summary - latency distributions. في prod - Histogram (مع دعم «histogram _ quantile ()» والنماذج).
النسيج الأصلي عبارة عن دلاء متغيرة تعمل على تحسين الدقة وتوفير الحجم (بما في ذلك حيثما كان ذلك متاحًا).

مثال (اذهب):
go var httpLatency = prometheus. NewHistogramVec(
prometheus. HistogramOpts{
Name:  "http_request_duration_seconds",
Help:  "HTTP latency",
Buckets: prometheus. DefBuckets ,//or custom
},
[]string{"route","method"},
)

3) المصدرون وماذا يقيسون

الخدمة: رمزك (SDK for Go/Java/Node/Python)، مقاييس RED API، مقاييس الأعمال (تحويل الدفع).
النظام: node_exporter، cAdvisor/kubelet.
الطرف الثالث: DB/caches (mysqld_exporter، postgres_exporter، redis_exporter)، NGINX/HAProxy، Kafka/RabbitMQ.
مقاييس OTEL: من خلال OpenTelemetry Collector → Prometheus Remote Write أو Prometheus-receiver → في كومة مشتركة.

4) الكشط وإعادة التسمية: كيفية ربط الأهداف

أساسي 'بروميثيوس. ym '

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'

Kubernetes через Prometheus Operator

استخدم ServiceMonitor/PodMonitor بدلاً من «scrape _ conferences» اليدوي.

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 يومًا ؛ - الانتقال الطويل الأجل (انظر المقياس).

ضبط:
  • -- على المسرح. tsdb. الاحتفاظ. الوقت = 15d '
  • -- على المسرح. tsdb. حجم الجزء الأقصى بلوك-قطعة-مقطوعة '
  • محرك الأقراص: SSD/NVMe سريع ؛ تجنب أحجام الشبكات دون داع.

6) PromQL: الأساسيات والأنماط المتكررة

المعدل/الغضب

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) تنبيه SLO и (معدل الحرق)

تنبيهات معدل الحرق (متعدد النوافذ ومتعدد الحروق)

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) الارتباط بالآثار والسجلات

مكّن نماذج: clickable 'trace _ id' in histogram bulets.
ضع الملصقات «خدمة»، «إصدار»، «منطقة» لـ «release compare» في المقاييس.
على لوحات القيادة - شروح الإصدار (Git SHA/الإصدار).

10) التحجيم والتخزين طويل الأجل

الاتحاد: تجمع بروميثيوس العلوي من الأسفل (عن طريق مرشحات الوظيفة/التسمية).
الكتابة عن بعد: إرسال صفوف إلى الخلفيات/المجموعات التخزينية طويلة الأجل (Thanos/Cortex/Mimir).

الإيجابيات: الاحتفاظ اللانهائي، القياس الأفقي، الرؤية العالمية.
السلبيات: أصعب في التشغيل، التكلفة.
الشحن حسب الوظيفة: حالات منفصلة لمقاييس النظام والأعمال التجارية والأمن.

11) السلامة

TLS/mTLS بين بروميثيوس ↔/Alertmanager/remote _ أكتب الأهداف.
المصادقة الأساسية/الرمزية للأهداف وواجهة برمجة التطبيقات (أمام بوابة الوكيل).
المكتب الإقليمي لآسيا والمحيط الهادئ: تقييد الوصول إلى واجهة المستخدم/السلسلة حسب الدور ؛ إخفاء الملصقات الخاصة.
نظافة PII: لا تكتب PII في المقاييس ؛ استخدام التجزئة/الأسماء المستعارة.

12) ممارسات Kubernetes

مشغل Prometheus: CRD (ServiceMonitor و PodMonitor و Alertmanager و Prometheus).
kube-state-metrics + cAdvisor → صورة كاملة للمجموعة.
الملفات والموارد: عقد مخصصة للرصد ؛ حدود وحدة المعالجة المركزية/ذاكرة الوصول العشوائي.
تقليل الضوضاء: محددات الملصقات لمساحات الأسماء «الإنتاج»، scrape_interval الحشو حيثما أمكن ذلك.

13) مقاييس الأعمال والمنتجات

Платежи: 'المدفوعات _ النجاح _ المجموع {psp، العملة}'، 'الدفع _ التحويل _ النسبة'، 'ttw _ seconds _ histogram'.
نشاط اللعبة: الرهانات/الدقائق، عقد الجلسات كمقياس، التسليم عند الأخطاء.
المخاطر/الاحتيال: أسباب شذوذ السرعة/الجغرافيا ؛ قطع الأشجار بشكل منفصل، المقاييس - المجاميع.

14) التكلفة والأداء (FinOps)

تحكم في الكاردينالية (مراجعة العلامة قبل إضافة ملصق جديد).
رسم نسيجي لأخذ العينات/ → scrape_interval'↑ المصدرين النادرة للأهداف غير الحرجة.
تقليل الحجم في خلفيات التخزين طويلة الأجل.
خزانة لوحة القيادة والاعتماد الواسع على قواعد التسجيل.

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. ضبط scrape/ServiceMonitor, TLS/mTLS, relabel.
4. قم بتضمين الرسوم البيانية للمسارات والنماذج الرئيسية.
5. إنشاء قواعد تسجيل لـ p95، نسبة النجاح، مجاميع الأعمال.
6. أدخل تنبيهات SLO (معدل الحرق) وتجذير Alertmanager.
7. رفع لوحات القيادة: خريطة الخدمة، مقارنة الإصدار، المدفوعات.
8. اتخاذ قرار بشأن الاتحاد/عن بعد _ الكتابة والاحتفاظ.
9. تقييد الوصول (RBAC)، والتحقق من عدم وجود PII.
10. مكّن دفاتر التشغيل وفحوصات يوم اللعبة.

17) الأنماط المضادة

ملصقات ذات كردينية عالية (user/session/request_id).
ملخص بدلاً من Histogram لـ SLOs الرئيسية → لا يوجد «histogram _ quantile».
خدش «الكل على التوالي» دون تصفية/دوران → زيادة في التكاليف والضوضاء.
تنبيهات حول المقاييس الخام بدون SLO → تنبيه فاتيج.
عدم وجود قواعد تسجيل → لوحات القيادة «الثقيلة».
الثقة في المقاييس بدون TLS/mTLS → خطر الانتحال/التسرب.

موجز

يمنح Prometheus إمكانية ملاحظة منصة iGaming المحددة الهدف: مخططات هيستوغرافية دقيقة، ومجموعات ثابتة، وتنبيهات SLO واضحة، وتوسع إلى خريطة متعددة المناطق. يوفر انضباط التسمية وقواعد التسجيل الصحيحة ووصلات التتبع/السجل وهندسة التخزين المدروسة إصدارات سريعة ويمكن التنبؤ بها p99 حتى في أوقات الذروة.

Contact

اتصل بنا

تواصل معنا لأي أسئلة أو دعم.نحن دائمًا جاهزون لمساعدتكم!

Telegram
@Gamble_GC
بدء التكامل

البريد الإلكتروني — إلزامي. تيليغرام أو واتساب — اختياري.

اسمك اختياري
البريد الإلكتروني اختياري
الموضوع اختياري
الرسالة اختياري
Telegram اختياري
@
إذا ذكرت تيليغرام — سنرد عليك هناك أيضًا بالإضافة إلى البريد الإلكتروني.
WhatsApp اختياري
الصيغة: رمز الدولة + الرقم (مثال: +971XXXXXXXXX).

بالنقر على الزر، فإنك توافق على معالجة بياناتك.