גרפנה ודמיית נתונים
(סעיף: טכנולוגיה ותשתיות)
תקציר
גראפנה היא תצוגה לכל יכולת התצפית: מדדים, בולי עץ, עקבות, אינדיקטורים עסקיים והתראות במקום אחד. עבור iGaming, אלה הם: p95/p99 ניטור, המרת תשלום, זמן-אל-וולט, זמינות ספק משחק, גיאו-הפצה של תקריות, ואורווה נגד קנרית. הצלחה: תבניות (משתנים), לוחות מובנים, הערות שחרור, לוחות מחוונים של SLO ודיסציפלינת זכויות גישה.
1) ארכיטקטורת חיבור
Datasources: Prometheus (מטריצות), Loki/ELK (יומנים), Tempo/Jager (שבילים), ClickHouse/BigQuery/PG (נתונים עסקיים), OTLP באמצעות Gateway.
קישורי מפתח: מ ־ examplar _ trace metric # logs by "trace _ id'.
תיקיות ו-RBAC: תיקיות נפרדות "SRE", "תשלומים", "סיכון", "משחקים", "BizOps'; Viewer/Editor/Administing 'Edministrations.
2) עיצוב לוח מחוונים: עקרונות
1. התשובה לשאלה ב-1-2 קליקים: מכרטיס ה-SLO לפרטים.
2. RED/USE עבור כל שירות + כרטיסי דומיין (TTW, המרת הפקדה).
3. רשת יציבה: 24 עמודים, KPI גדול למעלה, פרטים בתחתית.
4. צבעים וסף: מינימום, SLA/SLO בלבד.
5. שחרור אנוטציות: Git SHA, גרסה, שחרור סוג (קנרית/כחול-ירוק).
3) משתנים ותבניות (תבנית)
משתנים הופכים לוח מחוונים אחד לרבים.
דוגמה (פרומתאוס שאילתה משתנה):- שם: "service&fost
- שאילתה: ”תווית _ ערכים (למעלה, שירות)”
- Multi-select + כולל הכל - נוח להצטברות.
- 'region' 'ab' even 'ab' service 'image'.
- השתמש ב ”רגקס ”/” מיון” עבור UX ו ”רענון: בלוח המחוונים”.
4) לוחות וסוגי עיצוב
סדרת זמן: p50/p95/p99, קצב שגיאה, תפוקה.
Stat/Gauge: המטרה KPI (זמינות, TTW p95).
מד בר/שולחן: מסלולים N עליונים/PSP/ספקי משחק.
Geomap: תקרית תרמית/מפות latency על ידי מדינה/ROR.
קנבס: זרמים סכמטיים (Player # API # PSP # Bank).
גרף צומת: תלות שירות, צביעה על ידי שגיאות.
- תוויות לשדות, הצטרפות חיצונית, הפחתה (min/max/avg), הוספת שדה מחישוב (המרה).
5) דוגמאות לשאילתות ולוחות
5. 1 p95 latency (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 קפיצה מהירה למסלול (מופת)
בלוח "Time series", הפעל את Examplars * לחיצה על הנקודה _ Tempo נפתחת עם "trace _ id'.
5. 5 לוקי trace_id
logql
{service="$service"} = "$traceID"
6) הערות ואירועים
שחררו אנוטציות: הוספה אוטומטית של אירוע במהלך דלדול (גרסה, מחבר, משקל כנרי).
תקרית/הקפאה: סימני התחלה/סיום תקרית ושחרור חלונות מקפיאים.
אירועים עסקיים: קמפיינים/טורנירים גדולים - סימן על התרשימים.
7) התראות בגרפנה
כללי התראה מרכזיים (מבוססים על פרומתאוס/לוקי/ענן).
נקודות מגע: Pgrag Duty/Slack/DiML; מדיניות הודעה (השתרשות בתיקייה/תגיות).
קצב שריפה רב חלונות: מהיר ואיטי תקציב צלייה.
שתיקות: בחלונות מתוכננים ועם שכפולים.
promql histogram_quantile(0. 95,
sum by (le, service) (rate(http_request_duration_seconds_bucket{service="$service"}[5m]))
) > 0. 25
8) התגבשות כקוד (איי-סי)
מקורות אחסון/לוחות מחוונים/התראות בגיט.
datasource. יאמל (yaml)
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)
yaml apiVersion: 1 providers:
- name: sres folder: SRE type: file disableDeletion: false options:
path: /var/lib/grafana/dashboards/sre
grafana. ini (שבר)
ini
[auth]
disable_login_form = false
[users]
viewers_can_edit = false
[alerting]
enabled = true
[unified_alerting. screenshots]
capture = true
9) ביטחון וגישה
SSO (ראשי תיבות של OIDC/SAML), קבוצה של lack actors actors.
זכויות לאסורות מידע: רק התיקיות הדרושות, קריאה בלבד עבור הצופה.
PII היגיינה: לא למשוך שדות עם PII בלוח; עבור יומנים - מסנן/מסכה.
סודות: רק דרך כספת/שדות JSON מאובטחים, ללא ”טקסט רגיל” בלוחות מחוונים.
10) ביצועים ועלות
הקלטת כללים בפרומתאוס לביטויים כבדים.
הורדה/שימור באחסון לטווח ארוך.
מטמון לוח מחוונים ומרווחים הוגנים (לא ”1” בכל מקום).
הגבלת קרדינליות של משתנים (לא החלפת ”user _ id'/” session _ id').
חלוקה מחדש: מקרים/תיקיות נפרדות עבור צוותים רועשים.
11) לוחות מחוונים מיוחדים עבור iGaming
תשלומים: ניסיונות/הצלחה/TTW p95, שגיאת PSP/מסלול, מפת גיאו-סטייה.
Games/Spectures: Latency and Every-rate by studio/game, השקת המרה.
סיכון/הונאה: מהירות פעולה, התפרצויות התקן/IP, קורלציות (שולחן + בר-גיל).
RG/ציות: הפעלות> סף, גידול סטייק, התראות אנומליה.
השוואה: יציבה נגד קנרית על ידי מדדי 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) ספרי ריצה ושיפורי UX
לכל התראה יש כתובת Runbook (הוראה לפעולה).
קישורים ללוחות מחוונים קשורים (תשלומים ↔ Infra ↔ PSP).
קידוח: לחיצות על תוויות * מסננים (אזור/psp/מסלול).
המשתנים מברירים מחדל: "env = prod'," area = eu "- מאיץ את ההתחלה.
14) רשימת מימושים
1. הגדרת מסורות נתונים: Prometheus/Loki/Tempo/SQL.
2. הזן תיקיות ו ־ RBAC; ביקורת זכויות.
3. צור משתני תבנית (region/env/service).
4. בנה לוחות מחוונים של SLO (זמינות, p95, שיעור שגיאה, תקציב שגיאה).
5. הוסף הערות שחרור והשוואות יציבה/כנרית.
6. אפשר מופת ועבור לעקבות/רישומים על ידי לחיצה.
7. הגדרת התראות (קצב צריבה רב חלונות) והשתרשות.
8. לספק הכל כקוד, לאחסן בגיט, לעשות סקירה.
9. לייעל את הביצועים: כללי הקלטה, מרווחים, מטמון.
10. הזן לוחות מחוונים עסקיים (TTW, המרת תשלום, כרטיסי GGR).
15) תרופות אנטי ־ פטריות
לוחות מחוונים לא עקביים ללא משתנים וסטנדרטים.
לוחות עם פרומQL כבד ללא תקליטי כללים = איטי UI.
שפע של צבעים/אגדות/ציר Y עם קשקשים שונים.
חיבור PII בפנלים נפתח לצופה.
חוסר הערות שחרור - זה לא ברור מאיפה הקפיצות מגיעות.
לוח מחוונים ”מונוביו” אחד במקום מבנה תיקייה.
תקציר
Grafana הוא הממשק שבו הטכניקה פוגשת את המוצר: מדדים, רישומים ועקבות מתחברים לתמונות עסקיות. תבניות, לוחות נכונים, הערות והתראות הופכים נתונים לפתרונות: אבחנה מהירה, שחרור צפוי ועלות תצפית ניתנת לניהול.