GH GambleHub

פרומתאוס: איסוף מדדים

(סעיף: טכנולוגיה ותשתיות)

תקציר

פרומתאוס הוא סטנדרט תעשייתי למדדי זמן: הוא מגרד מטרות מעל HTTP, אוגר סדרות ב-TSDB, סופר אגרגטים ב-PromQL ומפעיל התראות באמצעות Alertmanager. עבור iGaming, זהו הבסיס של גישת ה-SLO (RED/USE, מדדי תשלומים עסקיים), אבחון p95/p99 מהיר ופתרונות אוטומטיים (הקפאה/רולבק).

1) מודל נתונים וקרדינליות

מטרי:' שם ~ label1 =” v1”, label2 =” v2”? value @ timestamp.
Cardinality = תוצר הכוח של כל מערכי התווית הייחודיים; גורם העלות העיקרי.

פרקטיקות תווית:
  • ”שירות”, ”env”, ”אזור”, ”דוגמה”, ”פוד”, ”מיכל”, ”גרסה”;
  • תחום: ”מסלול”, ”psp”, ”דייר” (זהירות), ”משחק _ ספק”.
  • לא ניתן לשים את ”user _ id',” session _ id', ערכים אקראיים/גבוהים של חשמן.

2) סוגי מדדים

Counter - רק גדל (לדוגמה, http _ positions _ total).
ערכי מד - מיידיים (לדוגמה, ”תור _ עומק”).
היסטוגרמה/תקציר - התפלגויות אחוריות. בפרוד - היסטוגרמה (עם תמיכה ב- ”histogram _ quantle ()” ובמופת).
היסטוגרמות ילידיות הן דליים משתנים המשפרים את הדיוק ושומרים את הגודל (כולל את המקום בו זמין).

דוגמה (קדימה):
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 עבור Go/Java/Node/Python), מדדי API אדומים, מדדים עסקיים (המרת תשלום).
מערכת: node_exporter, יועצת/קובלט.
צד שלישי: DB/caches (mysqld_exporter, postgres_exporter, redis_exporter), NGINX/HAPROXY, Kafka/RabbitMQ.
Otel metrics: באמצעות OpenTelemetry Collector # Prometheus Servate Write או Prometheus-Capter # לתוך ערימה משותפת.

4) לגרד ולחבר מחדש: כיצד לחבר מטרות

פרומתאוס בסיסי. iml&ft

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'

קוברנטס Cubernetes Operator Prometheus

השתמש ב ־ Service Monitor/PodMonitor במקום ב ־ manual 'scrape _ configs'.

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. שימור. זמן = 15 &fost
  • '- סערה. tsdb. max-block-chunk-fint-size&pos
  • כונן: 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 latency

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) התראת SULSLO (קצב צריבה)

התראות שרפה (רב-חלון, רב-צריבה)

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" }

התראה: ניתוב שירות/אזור, דיכוי שכפול, שאטופים.

9) קורלציה עם עקבות ויומנים

אפשר מופת: clickable 'trace _ id' בדליי היסטוגרמה.
שים את התוויות 'שירות', 'גרסה', 'אזור' עבור ”השוואה שחרור” במדדים.
בלוחות מחוונים - הערות לשחרור (גיט SHA/גרסה).

10) הגדלה ואחסון לטווח ארוך

פדרציה: פרומתאוס העליון מצטבר מלמטה (על ידי מסנני עבודה/תווית).
כתב מרוחק: שליחת שורות לאחסון ארוך טווח/אשכולות (Thanos/Cortex/Mimir).

יתרונות: שמירה אינסופית, איזון אופקי, תצוגה גלובלית.
חסרונות: יותר קשה לתפעול, עלות.
שריטה על ידי פונקציה: מקרים נפרדים עבור מדדי מערכת, עסק, אבטחה.

11) בטיחות

TLS/mTLS בין מטרות פרומתאוס ↔/Alertmanager/remote _ write.
אימות בסיסי/אסימון עבור/מטרות ו-API (מול שער הפרוקסי).
RBAC: להגביל את הגישה ל UI/סדרה אחר תפקיד; להסתיר תוויות פרטיות.
היגיינת PII: אל תכתוב PII במדדים; השתמש בחשיש/כינויים.

12) מנהגי קוברנטס

פרומתאוס אופרטור: CRD (ServiceMonitor, PodMonitor, Alertmanager, Prometheus).
Kube-state-metrics + causter = = תמונה מלאה של האשכול.
תוספות ומשאבים: צמתים ייעודיים לניטור; גבולות מעבד/RAM.
הפחתת רעש: סלקטורי תווית ל ”ייצור” שמות, ריפוד scrape_interval היכן שאפשר.

13) מדדים עסקיים ומוצר

processions _ procession _ total {psp, concey}, 'payment _ conversion _ ratio', 'tw _ seconds _ histogram'.
פעילות משחק: הימורים/מין, הפעלות אחזקה כמד, ירידה-off כאשר טעויות.
סיכון/הונאה: גורמים לחריגות מהירות/גיאו; כריתת עצים בנפרד, מדדים - צבירים.

14) עלות וביצועים (FinOps)

בקרת הקרדינליות (סקירת תגיות לפני הוספת תווית חדשה).
דגימת היסטוגרמות/יצואנים נדירים * ”scrape _ interval” records עבור מטרות לא קריטיות.
מנמיכים את האחסון לטווח ארוך.
זימון לוח מחוונים והסתמכות רחבה על כללי הקלטה.

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. הגדרות שריטה/Service Monitor, TLS/mTLS, relabel.
4. כולל היסטוגרמות למסלולי מפתח ומופת.
5. צור כללי הקלטה עבור p95, יחס הצלחה, צבירה עסקית.
6. הזן התראות SLO (קצב צריבה) והשתרשות Alertmanager.
7. להעלות לוחות מחוונים: מפת שירות, השוואה שחרור, תשלומים.
8. החלט על הפדרציה/מרוחקת _ כתיבה ושמירה.
9. הגבלת גישה (RBAC), בדוק את היעדר מח "ש.
10. אפשר ריצות ובדיקות יום משחק.

17) אנטי דפוסים

תוויות עם קרדינליות גבוהה (user/session/request_id).
Summary במקום Histogram עבור מפתח SLOS # there 'histogram _ quantle'.
לגרד ”כל בשורה” ללא סינון/סיבוב = עלייה בעלויות ורעש.
התראות על מדדים גולמיים ללא SLO # התראה-פאטיג.
היעדר כללי הקלטה = לוחות מחוונים ”כבדים”.
אמון במדדים ללא TLS/mTLS * סיכון של זיוף/דליפה.

תקציר

פרומתאוס מעניק לפלטפורמת iGaming יכולת תצפית כבדת מטרה: היסטוגרמות מדויקות, אגרגטים יציבים, התראות SLO ברורות, דיסציפלינת תוויות, כללי הקלטה נכונים, קישורי עקבות/רישום, וארכיטקטורת אחסון מתחשבת מספקים שחרור מהיר ו-p99 צפוי אפילו בזמני שיא.

Contact

צרו קשר

פנו אלינו בכל שאלה או צורך בתמיכה.אנחנו תמיד כאן כדי לעזור.

Telegram
@Gamble_GC
התחלת אינטגרציה

Email הוא חובה. Telegram או WhatsApp — אופציונליים.

השם שלכם לא חובה
Email לא חובה
נושא לא חובה
הודעה לא חובה
Telegram לא חובה
@
אם תציינו Telegram — נענה גם שם, בנוסף ל-Email.
WhatsApp לא חובה
פורמט: קידומת מדינה ומספר (לדוגמה, +972XXXXXXXXX).

בלחיצה על הכפתור אתם מסכימים לעיבוד הנתונים שלכם.