غرافانا وتصور البيانات
(القسم: التكنولوجيا والهياكل الأساسية)
موجز موجز
Grafana هو عرض لجميع قابلية الملاحظة: المقاييس والسجلات والآثار ومؤشرات الأعمال والتنبيهات في مكان واحد. بالنسبة إلى iGaming، هذه هي: مراقبة p95/p99، وتحويل الدفع، و Time-to-Wallet، وتوافر مزود اللعبة، والتوزيع الجغرافي للحوادث، والاستقرار مقابل الكناري. النجاح: قوالب (متغيرات)، لوحات مفهومة، شروح الإصدار، لوحات معلومات SLO وانضباط حقوق الوصول.
1) بنية الاتصال
مصادر البيانات: Prometheus (المقاييس)، Loki/ELK (السجلات)، Tempo/Jaeger (المسارات)، ClickHouse/BigQuery/PG (بيانات الأعمال)، OTLP عبر البوابة.
الروابط الرئيسية: من النموذج → → تتبع → السجلات ذات الصلة بواسطة «تتبع _ معرف».
المجلدات و RBAC: مجلدات منفصلة 'SRE' و 'Payments' و 'Risk' و 'Games' و 'BizOps' ؛ роли 'Viewer/Editor/Admin' и الأذونات الدقيقة.
2) تصميم لوحة القيادة: المبادئ
1. الإجابة على السؤال بنقرات 1-2: من بطاقة SLO إلى التفاصيل.
2. RED/USE لكل خدمة + بطاقات النطاق (TTW، تحويل الودائع).
3. الشبكة المستقرة: 24 عمودًا، مؤشر أسعار كلوي كبير في الأعلى، تفاصيل في الأسفل.
4. الألوان والعتبات: الحد الأدنى، SLA/SLO فقط.
5. شروح الإصدار: Git SHA، الإصدار، نوع الإصدار (كناري/أزرق أخضر).
3) المتغيرات والنماذج (النماذج)
تحول المتغيرات لوحة القيادة إلى العديد.
مثال (Prometheus query-variable):- الاسم: «خدمة»
- استفسار: «قيم التسمية (أعلى، خدمة)»
- متعدد الاختيار + يشمل الكل - مناسب للمجاميع.
- 'region' → 'env' → 'service' → 'example'.
- استخدم «regex »/« sort' لـ UX و» refresh: On dashboard load'.
4) الألواح وأنواع العرض
السلسلة الزمنية: p50/p95/p99، معدل الخطأ، الإنتاجية.
Stat/Gauge: target KPI (available, TTW p95).
مقياس الشريط/الجدول: أفضل طرق N/PSP/مزودي الألعاب.
Geomap: خرائط الحوادث الحرارية/زمن الانتقال حسب البلد/ROR.
قماش: تدفقات تخطيطية (Player → API → PSP → Bank).
الرسم البياني للعقدة: تبعيات الخدمة، التلوين بالأخطاء.
- ملصقات للحقول، انضمام خارجي، تقليل (min/max/avg)، إضافة حقل من الحساب (التحويل).
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 قفز سريع إلى المسار (نماذج)
في لوحة "Time series"، قم بتشغيل Examplars → النقر فوق النقطة → يفتح Tempo بـ "trace _ id'.
5. 5 لوكي trace_id
logql
{service="$service"} = "$traceID"
6) الشروح والأحداث
شروح الإصدار: إضافة تلقائية لحدث أثناء النضوب (نسخة، مؤلف، وزن كناري).
الحادث/التجميد: علامات بدء/نهاية الحادث ونوافذ تجميد الإطلاق.
أحداث الأعمال: حملات/بطولات كبيرة - علامة على المخططات.
7) تنبيهات في جرافانا
قواعد التنبيه مركزيًا (بناءً على Prometheus/Loki/Cloud).
نقاط الاتصال: PagerDuty/Slack/Email ؛ سياسات الإخطار (التأصيل بالمجلدات/العلامات).
معدل الحرق متعدد النوافذ: التحميص السريع والبطيء للميزانية.
الصمت: في النوافذ المجدولة وبالنسخ المكررة.
promql histogram_quantile(0. 95,
sum by (le, service) (rate(http_request_duration_seconds_bucket{service="$service"}[5m]))
) > 0. 25
8) توفير الرمز (IaC)
مصادر التخزين/لوحات القيادة/التنبيهات في Git.
مصادر البيانات. يامل
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) الأمن والوصول
SSO (OIDC/SAML)، مجموعات → أدوار → مجلدات.
حقوق الحصول على مصادر البيانات: فقط المجلدات اللازمة، اقرأ فقط للمشاهد.
نظافة PII: لا تسحب الحقول مع PII في اللوحة ؛ للجذوع - مرشح/قناع.
الأسرار: فقط من خلال حقول JSON/الآمنة، بدون «نص عادي» في لوحات القيادة.
10) الأداء والتكلفة
تسجيل القواعد في بروميثيوس للتعبيرات الثقيلة.
تقليل الحجم/الاحتفاظ به في خلفيات التخزين طويلة الأجل.
مخبأ لوحة القيادة وفترات عادلة (ليس «1s» في كل مكان).
تقييد الكاردينالية للمتغيرات (لا تحل محل 'المستخدم _ id '/' الجلسة _ id').
إعادة التوزيع: حالات/مجلدات منفصلة للفرق الصاخبة.
11) لوحات القيادة المتخصصة لـ iGaming
المدفوعات: محاولات/نجاح/TTW p95، PSP/خطأ المسار، خريطة الانحراف الجغرافي.
الألعاب/مقدمو الخدمات: زمن الوصول ومعدل الخطأ حسب الاستوديو/اللعبة، تحويل الإطلاق.
المخاطر/الاحتيال: سرعة العمل، انفجارات الجهاز/بروتوكول الإنترنت، الارتباطات (الجدول + bar-gage).
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
يحتوي كل تنبيه على عنوان URL Runbook (تعليمات العمل).
روابط إلى لوحات القيادة ذات الصلة (المدفوعات ↔ Infra ↔ PSP).
Drilldown: نقرات على الملصقات → المرشحات (المنطقة/psp/الطريق).
المتغيرات الافتراضية: "env = prod'،" المنطقة = الاتحاد الأوروبي "- تسرع البداية.
14) قائمة التنفيذ المرجعية
1. ضبط البيانات: Prometheus/Loki/Tempo/SQL.
2. أدخل المجلدات و RBAC ؛ مراجعة الحقوق.
3. إنشاء متغيرات النماذج (المنطقة/البيئة/الخدمة).
4. قم ببناء لوحات تحكم SLO (التوافر، p95، معدل الخطأ، ميزانية الخطأ).
5. إضافة شروح الإصدار ومقارنات مستقرة/كناري.
6. تمكين النماذج والانتقال إلى الآثار/السجلات عن طريق النقر.
7. تنبيهات التهيئة (معدل حرق متعدد النوافذ) والتجذير.
8. قم بتوفير كل شيء كرمز، وتخزينه في Git، وقم بإجراء مراجعة.
9. تحسين الأداء: قواعد التسجيل والفواصل الزمنية والذاكرة المخبأة.
10. أدخل لوحات معلومات الأعمال (TTW، تحويل الدفع، بطاقات GGR).
15) أنتيباترن
لوحات القيادة غير المتسقة «حديقة الحيوان» بدون متغيرات ومعايير.
لوحات مع PromQL ثقيلة بدون قواعد تسجيل → واجهة المستخدم البطيئة.
وفرة الألوان/الأساطير/محور Y بمقاييس مختلفة.
تم فتح اتصال PII في اللوحات للمشاهد.
عدم وجود تعليقات توضيحية للإصدار - ليس من الواضح من أين تأتي القفزات.
لوحة عدادات واحدة «أحادية اللون» بدلاً من هيكل مجلد.
موجز
Grafana هي الواجهة التي تلتقي فيها التقنية بالمنتج: تتصل المقاييس والسجلات والمسارات بصور العمل. تحول القوالب واللوحات الصحيحة والشروح والتنبيهات البيانات إلى حلول: التشخيص السريع والإصدارات التي يمكن التنبؤ بها وتكلفة المراقبة التي يمكن التحكم فيها.