دليل قياسات Prometheus والمراقبة
نظرة عامة
تقوم OmniTAS بتصدير قياسات تشغيلية شاملة بتنسيق Prometheus للمراقبة والتنبيه والرؤية. يغطي هذا الدليل جميع القياسات المتاحة، واستخدامها، واستكشاف الأخطاء، وأفضل الممارسات في المراقبة.
نقطة نهاية القياسات
جميع القياسات متاحة على: http://<tas-ip>:8080/metrics
مرجع القياسات الكامل
قياسات القطر
diameter_response_duration_milliseconds
النوع: هيستوجرام
الملصقات: application (ro, sh)، command (ccr, cca، إلخ)، result (success، error، timeout)
الدلاء: 10، 50، 100، 250، 500، 1000، 2500، 5000، 10000 مللي ثانية
الوصف: مدة طلبات القطر بالمللي ثانية
الاستخدام:
# متوسط زمن استجابة القطر
rate(diameter_response_duration_milliseconds_sum[5m]) /
rate(diameter_response_duration_milliseconds_count[5m])
# تأخير القطر P95
histogram_quantile(0.95, rate(diameter_response_duration_milliseconds_bucket[5m]))
تنبيه عند:
- P95 > 1000 مللي ثانية - استجابات القطر بطيئة
diameter_requests_total
النوع: عداد
الملصقات: application (ro, sh)، command (ccr، udr، إلخ)
الوصف: العدد الإجمالي لطلبات القطر المرسلة
الاستخدام:
# معدل الطلبات
rate(diameter_requests_total[5m])
diameter_responses_total
النوع: عداد
الملصقات: application (ro, sh)، command (ccr، udr، إلخ)، result_code (2001، 3002، 5xxx، إلخ)
الوصف: العدد الإجمالي لاستجابات القطر المستلمة
الاستخدام:
# معدل النجاح
rate(diameter_responses_total{result_code="2001"}[5m]) /
rate(diameter_responses_total[5m]) * 100
diameter_peer_state
النوع: مقياس
الملصقات: peer_host، peer_realm، application (ro، sh)
الوصف: حالة أقران القطر (1=نشط، 0=غير نشط)
فترة التحديث: كل 10 ثوانٍ
الاستخدام:
# تحقق من الأقران غير النشطين
diameter_peer_state == 0
تنبيه عند:
- أي نظير غير نشط لأكثر من دقيقة واحدة
قياسات توليد خطة الاتصال
1. قياسات طلب HTTP
http_dialplan_request_duration_milliseconds
النوع: هيستوجرام
الملصقات: call_type (mt، mo، emergency، unknown)
الوصف: مدة طلب HTTP من النهاية إلى النهاية من لحظة استلام طلب خطة الاتصال HTTP إلى لحظة إرسال الاستجابة. يشمل ذلك جميع المعالجات: تحليل المعلمات، التفويض، عمليات البحث في القطر (Sh/Ro)، عمليات البحث في HLR (SS7 MAP)، وتوليد XML.
الاستخدام:
# متوسط زمن طلب HTTP من النهاية إلى النهاية
rate(http_dialplan_request_duration_milliseconds_sum[5m]) /
rate(http_dialplan_request_duration_milliseconds_count[5m])
# P95 حسب نوع المكالمة
histogram_quantile(0.95,
rate(http_dialplan_request_duration_milliseconds_bucket[5m])
) by (call_type)
# مقارنة أداء MT مقابل MO
histogram_quantile(0.95,
rate(http_dialplan_request_duration_milliseconds_bucket{call_type="mt"}[5m])
)
vs
histogram_quantile(0.95,
rate(http_dialplan_request_duration_milliseconds_bucket{call_type="mo"}[5m])
)
تنبيه عند:
- P95 > 2000 مللي ثانية - أوقات استجابة HTTP بطيئة
- P95 > 3000 مللي ثانية - مشكلة أداء حرجة
- P99 > 5000 مللي ثانية - تدهور شديد في الأداء
- أي طلبات تظهر
call_type="unknown"- فشل في اكتشاف نوع المكالمة
رؤى:
- هذه هي أهم قياس لفهم التأخير الذي يواجهه المستخدم
- القيم النموذجية: P50: 100-500 مللي ثانية، P95: 500-2000 مللي ثانية، P99: 1000-3000 مللي ثانية
- تشمل جميع أوقات المكونات (Sh + HLR + OCS + المعالجة)
- إذا كانت هذه بطيئة، تحقق من قياسات المكونات (subscriber_data، hlr_data، ocs_authorization)
- النطاق المتوقع: 100 مللي ثانية (مكالمات محلية سريعة) إلى 5000 مللي ثانية (بطيئة مع إعادة المحاولة/أوقات الانتظار)
ملاحظات مهمة:
- تحل محل القياس الأقدم
dialplan_generation_duration_millisecondsالذي كان يقيس فقط توليد XML - تعكس بدقة ما يختبره FreeSWITCH/SBC
- استخدم هذا لمراقبة SLA وتخطيط السعة
2. قياسات بيانات المشتركين
subscriber_data_duration_milliseconds
النوع: هيستوجرام
الملصقات: result (success، error)
الوصف: الوقت المستغرق لاس��رجاع بيانات المشترك من واجهة Sh (HSS)
الاستخدام:
# متوسط زمن البحث في Sh
rate(subscriber_data_duration_milliseconds_sum[5m]) /
rate(subscriber_data_duration_milliseconds_count[5m])
# زمن البحث في Sh في النسبة المئوية 95
histogram_quantile(0.95,
rate(subscriber_data_duration_milliseconds_bucket[5m])
)
تنبيه عند:
- P95 > 100 مللي ثانية - استجابات HSS بطيئة
- P95 > 500 مللي ثانية - مشكلة أداء حرجة في HSS
subscriber_data_lookups_total
النوع: عداد
الملصقات: result (success، error)
الوصف: العدد الإجمالي لعمليات البحث في بيانات المشتركين
الاستخدام:
# معدل البحث في Sh
rate(subscriber_data_lookups_total[5m])
# معدل أخطاء Sh
rate(subscriber_data_lookups_total{result="error"}[5m])
# نسبة معدل نجاح Sh
(rate(subscriber_data_lookups_total{result="success"}[5m]) /
rate(subscriber_data_lookups_total[5m])) * 100
تنبيه عند:
- معدل الأخطاء > 5% - مشاكل في الاتصال بـ HSS
- معدل الأخطاء > 20% - فشل حرج في HSS
2. قياسات بيانات HLR
hlr_data_duration_milliseconds
النوع: هيستوجرام
الملصقات: result (success، error)
الوصف: الوقت المستغرق لاسترجاع بيانات HLR عبر SS7 MAP
الاستخدام:
# متوسط زمن البحث في HLR
rate(hlr_data_duration_milliseconds_sum[5m]) /
rate(hlr_data_duration_milliseconds_count[5m])
# زمن البحث في HLR في النسبة المئوية 95
histogram_quantile(0.95,
rate(hlr_data_duration_milliseconds_bucket[5m])
)
تنبيه عند:
- P95 > 500 مللي ثانية - استجابات SS7 MAP بطيئة
- P95 > 2000 مللي ثانية - مشكلة حرجة في SS7 MAP
hlr_lookups_total
النوع: عداد
الملصقات: result_type (msrn، forwarding، error، unknown)
الوصف: إجمالي عمليات البحث في HLR حسب نوع النتيجة
الاستخدام:
# معدل البحث في HLR حسب النوع
rate(hlr_lookups_total[5m])
# معدل اكتشاف MSRN (المشتركين المتجولين)
rate(hlr_lookups_total{result_type="msrn"}[5m])
# معدل اكتشاف تحويل المكالمات
rate(hlr_lookups_total{result_type="forwarding"}[5m])
# معدل أخطاء HLR
rate(hlr_lookups_total{result_type="error"}[5m])
تنبيه عند:
- معدل الأخطاء > 10% - مشاكل في SS7 MAP
- انخفاض مفاجئ في معدل MSRN - مشكلة تجوال محتملة
رؤى:
- ارتفاع معدل MSRN يشير إلى وجود العديد من المشتركين المتجولين
- ارتفاع معدل التحويل يشير إلى وجود العديد من المكالمات المحولة
- قارن مع حجم المكالمات لنسبة التجوال
3. قياسات تفويض OCS
ocs_authorization_duration_milliseconds
النوع: هيستوجرام
الملصقات: result (success، error)
الوصف: الوقت المستغرق لتفويض OCS
الاستخدام:
# متوسط زمن تفويض OCS
rate(ocs_authorization_duration_milliseconds_sum[5m]) /
rate(ocs_authorization_duration_milliseconds_count[5m])
# زمن تفويض OCS في النسبة المئوية 95
histogram_quantile(0.95,
rate(ocs_authorization_duration_milliseconds_bucket[5m])
)
تنبيه عند:
- P95 > 1000 مللي ثانية - استجابات OCS بطيئة
- P95 > 5000 مللي ثانية - مشكلة حرجة في أداء OCS
ocs_authorization_attempts_total
النوع: عداد
الملصقات: result (success، error)، skipped (yes، no)
الوصف: إجمالي محاولات تفويض OCS
الاستخدام:
# معدل تفويض OCS
rate(ocs_authorization_attempts_total{skipped="no"}[5m])
# معدل أخطاء OCS
rate(ocs_authorization_attempts_total{result="error",skipped="no"}[5m])
# معدل تخطي OCS (حالات الطوارئ، البريد الصوتي، إلخ)
rate(ocs_authorization_attempts_total{skipped="yes"}[5m])
# نسبة معدل نجاح OCS
(rate(ocs_authorization_attempts_total{result="success",skipped="no"}[5m]) /
rate(ocs_authorization_attempts_total{skipped="no"}[5m])) * 100
تنبيه عند:
- معدل الأخطاء > 5% - مشاكل في الاتصال بـ OCS
- معدل النجاح < 95% - OCS يرفض عددًا كبيرًا من المكالمات
رؤى:
- ارتفاع معدل التخطي يشير إلى وجود العديد من المكالمات الطارئة/المجاني��
- ارتفاع معدل الأخطاء يشير إلى انقطاع OCS
- قارن معدل النجاح بتوقعات العمل
4. قياسات معالجة المكالمات
call_param_errors_total
النوع: عداد
الملصقات: error_type (parse_failed، missing_required_params)
الوصف: أخطاء تحليل معلمات المكالمات
الاستخدام:
# معدل أخطاء المعلمات
rate(call_param_errors_total[5m])
# الأخطاء حسب النوع
rate(call_param_errors_total[5m]) by (error_type)
تنبيه عند:
- أي أخطاء > 0 - تشير إلى طلبات معلمات مكالمات مشوهة
- أخطاء > 1% من حجم المكالمات - مشكلة حرجة
authorization_decisions_total
النوع: عداد
الملصقات: disposition (mt، mo، emergency، unauthorized)، result (success، error)
الوصف: قرارات التفويض حسب نوع المكالمة
الاستخدام:
# معدل التفويض حسب الحالة
rate(authorization_decisions_total[5m]) by (disposition)
# معدل مكالمات MT
rate(authorization_decisions_total{disposition="mt"}[5m])
# معدل مكالمات MO
rate(authorization_decisions_total{disposition="mo"}[5m])
# معدل المكالمات الطارئة
rate(authorization_decisions_total{disposition="emergency"}[5m])
# معدل المكالمات غير المصرح بها
rate(authorization_decisions_total{disposition="unauthorized"}[5m])
تنبيه عند:
- معدل غير المصرح به > 1% - هجوم محتمل أو سوء تكوين
- ارتفاع مفاجئ في المكالمات الطارئة - حدث طارئ محتمل
- تغيير غير متوقع في نسبة MT/MO - مشكلة محتملة
رؤى:
- نسبة MT/MO تشير إلى أنماط الحركة
- معدل المكالمات الطارئة يشير إلى استخدام الخدمة
- معدل غير المصرح به يشير إلى الوضع الأمني
freeswitch_variable_set_duration_milliseconds
النوع: هيستوجرام
الملصقات: batch_size (1، 5، 10، 25، 50، 100)
الوصف: الوقت المستغرق لتعيين متغيرات خطة الاتصال
الاستخدام:
# متوسط زمن تعيين المتغيرات
rate(freeswitch_variable_set_duration_milliseconds_sum[5m]) /
rate(freeswitch_variable_set_duration_milliseconds_count[5m])
# زمن تعيين المتغيرات حسب حجم الدفعة
histogram_quantile(0.95,
rate(freeswitch_variable_set_duration_milliseconds_bucket[5m])
) by (batch_size)
تنبيه عند:
- P95 > 100 مللي ثانية - أداء بطيء في تعيين المتغيرات
- اتجاه متزايد - مشكلة محتملة في أداء النظام
5. قياسات معالجة الوحدات
dialplan_module_duration_milliseconds
النوع: هيستوجرام
الملصقات: module (MT، MO، Emergency، CallParams، إلخ)، call_type
الوصف: زمن المعالجة لكل وحدة من وحدات خطة الاتصال
الاستخدام:
# زمن المعالجة حسب الوحدة
histogram_quantile(0.95,
rate(dialplan_module_duration_milliseconds_bucket[5m])
) by (module)
# زمن معالجة وحدة MT
histogram_quantile(0.95,
rate(dialplan_module_duration_milliseconds_bucket{module="MT"}[5m])
)
تنبيه عند:
- أي وحدة P95 > 500 مللي ثانية - مشكلة في الأداء
- اتجاه متزايد في أي وحدة - تسرب أو مشكلة محتملة
رؤى:
- تحديد أي وحدة هي الأبطأ
- تحسين الوحدات الأبطأ أولاً
- قارن أوقات الوحدات عبر أنواع المكالمات
6. قياسات حجم المكالمات
call_attempts_total
النوع: عداد
الملصقات: call_type (mt، mo، emergency، unauthorized)، result (success، rejected)
الوصف: إجمالي محاولات المكالمات
الاستخدام:
# معدل محاولات المكالمات
rate(call_attempts_total[5m])
# معدل النجاح حسب نوع المكالمة
(rate(call_attempts_total{result="success"}[5m]) /
rate(call_attempts_total[5m])) * 100 by (call_type)
# معدل المكالمات المرفوضة
rate(call_attempts_total{result="rejected"}[5m])
تنبيه عند:
- معدل الرفض > 5% - مشكلة محتملة
- انخفاض مفاجئ في حجم المكالمات - انقطاع الخدمة
- ارتفاع مفاجئ في حجم المكالمات - هجوم محتمل
active_calls
النوع: مقياس
الملصقات: call_type (mt، mo، emergency)
الوصف: المكالمات النشطة حاليًا
الاستخدام:
# المكالمات النشطة الحالية
active_calls
# المكالمات النشطة حسب النوع
active_calls by (call_type)
# ذروة المكالمات النشطة (الساعة الأخيرة)
max_over_time(active_calls[1h])
تنبيه عند:
- المكالمات النشطة > السعة - تحميل زائد
- المكالمات النشطة = 0 لفترة طويلة - الخدمة متوقفة
7. قياسات المحاكاة
call_simulations_total
النوع: عداد
الملصقات: call_type (mt، mo، emergency، unauthorized)، source (web، api)
الوصف: عدد المحاكيات التي تم تشغيلها
الاستخدام:
# معدل المحاكاة
rate(call_simulations_total[5m])
# المحاكيات حسب النوع
rate(call_simulations_total[5m]) by (call_type)
رؤى:
- تتبع استخدام أدوات التشخيص
- تحديد المستخدمين الثقيلين
- الربط مع أنشطة استكشاف الأخطاء
8. قياسات SS7 MAP
ss7_map_http_duration_milliseconds
النوع: هيستوجرام
الملصقات: operation (sri، prn)، result (success، error، timeout)
الدلاء: 10، 50، 100، 250، 500، 1000، 2500، 5000، 10000 مللي ثانية
الوصف: مدة طلبات SS7 MAP HTTP بالمللي ثانية
الاستخدام:
# معدل أخطاء SS7 MAP
rate(ss7_map_operations_total{result="error"}[5m]) /
rate(ss7_map_operations_total[5m]) * 100
تنبيه عند:
- P95 > 500 مللي ��انية - استجابات SS7 MAP بطيئة
- معدل الأخطاء > 50% - مشكلة حرجة في SS7 MAP
ss7_map_operations_total
النوع: عداد
الملصقات: operation (sri، prn)، result (success، error)
الوصف: العدد الإجمالي لعمليات SS7 MAP
9. قياسات الشحن عبر الإنترنت
online_charging_events_total
النوع: عداد
الملصقات: event_type (authorize، answer، reauth، hangup)، result (success، nocredit، error، timeout)
الوصف: العدد الإجمالي لفعاليات الشحن عبر الإنترنت
الاستخدام:
# فشل ائتمان OCS
rate(online_charging_events_total{result="nocredit"}[5m])
تنبيه عند:
- ارتفاع معدل فشل الائتمان
10. قياسات حالة النظام
tracked_registrations
النوع: مقياس
الوصف: عدد التسجيلات النشطة حاليًا لـ SIP (من قاعدة بيانات تسجيل FreeSWITCH Sofia)
فترة التحديث: كل 10 ثوانٍ
ملاحظات:
- يتم تقليصها تلقائيًا عند انتهاء التسجيلات (يدير FreeSWITCH انتهاء الصلاحية)
tracked_call_sessions
النوع: مقياس
الوصف: عدد جلسات المكالمات المتعقبة حاليًا في ETS
فترة التحديث: كل 10 ثوانٍ
11. قياسات طلب HTTP
http_requests_total
النوع: عداد
الملصقات: endpoint (dialplan، call_event، directory، voicemail، sms_ccr، metrics)، status_code (200، 400، 500، إلخ)
الوصف: العدد الإجمالي لطلبات HTTP حسب نقطة النهاية
الاستخدام:
# معدل أخطاء HTTP
rate(http_requests_total{status_code=~"5.."}[5m]) /
rate(http_requests_total[5m]) * 100
تنبيه عند:
- معدل أخطاء HTTP 5xx > 10%
12. قياسات رفض المكالمات
call_rejections_total
النوع: عداد
الملصقات: call_type (mo، mt، emergency، unknown)، reason (nocredit، unauthorized، parse_failed، missing_params، hlr_error، إلخ)
الوصف: العدد الإجمالي لرفض المكالمات حسب السبب
الاستخدام:
# معدل رفض المكالمات حسب السبب
sum by (reason) (rate(call_rejections_total[5m]))
تنبيه عند:
- معدل الرفض > 1/ثانية - الحاجة إلى التحقيق
13. قياسات اتصال مقبس الأحداث
event_socket_connected
النوع: مقياس
الملصقات: connection_type (main، log_listener)
الوصف: حالة اتصال مقبس الأحداث (1=متصل، 0=غير متصل)
فترة التحديث: في الوقت الحقيقي عند تغييرات حالة الاتصال
الاستخدام:
# حالة اتصال مقبس الأحداث
event_socket_connected
تنبيه عند:
- الاتصال متوقف لأكثر من 30 ثانية
event_socket_reconnections_total
النوع: عداد
الملصقات: connection_type (main، log_listener)، result (attempting، success، failed)
الوصف: العدد الإجمالي لمحاولات إعادة الاتصال بمقبس الأحداث
تكامل لوحة معلومات Grafana
يمكن تصور القياسات في Grafana باستخدام مصدر بيانات Prometheus. اللوحات الموصى بها:
لوحة المعلومات 1: حجم المكالمات
- مقياس المكالمات النشطة
- معدل محاولات المكالمات حسب النوع (MO/MT/Emergency)
- معدل رفض المكالمات
لوحة المعلومات 2: أداء القطر
- خريطة حرارة زمن الاستجابة
- معدلات الطلب/الاستجابة
- جدول حالة الأقران
- معدل الأخطاء حسب رمز النتيجة
لوحة المعلومات 3: صحة الشحن عبر الإنترنت
- معدل نجاح تفويض الائتمان
- معدل حدث "لا ائتمان"
- معدل انتهاء مهلة OCS
لوحة المعلومات 4: أداء النظام
- زمن تأخير توليد خطة الاتصال (P50/P95/P99)
- أوقات استجابة SS7 MAP
- توافر النظام الكلي
تخطيط لوحة معلومات Grafana الموصى به
الصف 1: حجم المكالمات
- معدل محاولات المكالمات (حسب النوع)
- مقياس المكالمات النشطة
- نسبة معدل النجاح
الصف 2: الأداء
- P95 زمن طلب HTTP لخطة الاتصال (حسب نوع المكالمة) - القياس الأساسي
- P95 زمن البحث في Sh
- P95 زمن البحث في HLR
- P95 زمن تفويض OCS
- P95 زمن معالجة وحدة خطة الاتصال (حسب الوحدة)
الصف 3: معدلات النجاح
- معدل نجاح البحث في Sh
- معدل نجاح البحث في HLR
- معدل نجاح تفويض OCS
- معدل نجاح محاولات ا��مكالمات
الصف 4: أداء الوحدات
- P95 زمن المعالجة حسب الوحدة
- عدد مكالمات الوحدة
الصف 5: الأخطاء
- أخطاء المعلمات
- محاولات غير مصرح بها
- أخطاء Sh
- أخطاء HLR
- أخطاء OCS
التنبيهات الحرجة
الأولوية 1 (صفحة على الفور):
# خطة الاتصال متوقفة تمامًا
rate(call_attempts_total[5m]) == 0
# HSS متوقفة تمامًا
rate(subscriber_data_lookups_total{result="error"}[5m]) /
rate(subscriber_data_lookups_total[5m]) > 0.9
# OCS متوقفة تمامًا
rate(ocs_authorization_attempts_total{result="error"}[5m]) /
rate(ocs_authorization_attempts_total[5m]) > 0.9
الأولوية 2 (تنبيه):
# توليد خطة الاتصال بطيء
histogram_quantile(0.95,
rate(dialplan_generation_duration_milliseconds_bucket[5m])
) > 1000
# معدل أخطاء HSS مرتفع
rate(subscriber_data_lookups_total{result="error"}[5m]) /
rate(subscriber_data_lookups_total[5m]) > 0.2
# معدل أخطاء OCS مرتفع
rate(ocs_authorization_attempts_total{result="error"}[5m]) /
rate(ocs_authorization_attempts_total[5m]) > 0.1
الأولوية 3 (تحذير):
# تأخير HSS مرتفع
histogram_quantile(0.95,
rate(subscriber_data_duration_milliseconds_bucket[5m])
) > 100
# تأخير OCS مرتفع
histogram_quantile(0.95,
rate(ocs_authorization_duration_milliseconds_bucket[5m])
) > 1000
# معدل الأخطاء المعتدل
rate(call_attempts_total{result="rejected"}[5m]) /
rate(call_attempts_total[5m]) > 0.05
أمثلة على التنبيهات
نظير القطر غير نشط
alert: DiameterPeerDown
expr: diameter_peer_state == 0
for: 1m
annotations:
summary: "نظير القطر {{ $labels.peer_host }} غير نشط"
ارتفاع تأخير القطر
alert: HighDiameterLatency
expr: histogram_quantile(0.95, rate(diameter_response_duration_milliseconds_bucket[5m])) > 1000
for: 5m
annotations:
summary: "تأخير P95 للقطر فوق 1 ثانية"
فشل ائتمان OCS
alert: HighOCSCreditFailures
expr: rate(online_charging_events_total{result="nocredit"}[5m]) > 0.1
for: 2m
annotations:
summary: "معدل مرتفع من فشل ائتمان OCS"
أخطاء بوابة SS7 MAP
alert: SS7MapErrors
expr: rate(ss7_map_operations_total{result="error"}[5m]) / rate(ss7_map_operations_total[5m]) > 0.5
for: 3m
annotations:
summary: "معدل خطأ SS7 MAP فوق 50%"
مقبس الأحداث غير متصل
alert: EventSocketDown
expr: event_socket_connected == 0
for: 30s
annotations:
summary: "مقبس الأحداث {{ $labels.connection_type }} غير متصل"
معدل رفض المكالمات مرتفع
alert: HighCallRejectionRate
expr: rate(call_rejections_total[5m]) > 1
for: 2m
annotations:
summary: "معدل رفض المكالمات مرتفع: {{ $value }} رفضات/ثانية"
معدل خطأ HTTP مرتفع
alert: HighHTTPErrorRate
expr: rate(http_requests_total{status_code=~"5.."}[5m]) / rate(http_requests_total[5m]) > 0.1
for: 3m
annotations:
summary: "معدل خطأ HTTP 5xx فوق 10%"
استكشاف الأخطاء باستخدام القياسات
المشكلة: نوع المكالمة يظهر كـ "غير معروف"
الأعراض:
- جميع القياسات تظهر
call_type="unknown"بدلاً منmt،mo، أوemergency - لا يمكن التمييز بين الأداء بين أنواع المكالمات
السبب الجذري: فشل استخراج نوع المكالمة أو عدم تمريرها بشكل صحيح عبر خط معالجة البيانات.
التحقيق:
- تحقق من السجلات لرسائل "طلب خطة الاتصال HTTP" - يجب أن تظهر نوع المكالمة الصحيح
- راجع سجلات النظام لأخطاء معالجة نوع المكالمة
الحل: اتصل بالدعم إذا استمر فشل اكتشاف نوع المكالمة.
المشكلة: المكالمات بطيئة
التحقيق:
- تحقق من P95 لـ
http_dialplan_request_duration_milliseconds- ابدأ هنا - إذا كانت مرتفعة، تحقق من أوقات المكونات:
- تحقق من
subscriber_data_duration_millisecondsلتأخيرات Sh - تحقق من
hlr_data_duration_millisecondsلتأخيرات HLR - تحقق من
ocs_authorization_duration_millisecondsلتأخيرات OCS - تحقق من
dialplan_module_duration_millisecondsلتأخيرات محددة للوحدة
- تحقق من
- تحقق مما إذا كان
call_type="unknown"- يشير إلى فشل اكتشاف نوع المكالمة - قارن أوقات المعالجة لـ MT مقابل MO مقابل الطوارئ
- اربط مع سجلات النظام للحصول على رسائل خطأ مفصلة
الحل: تحسين المكون الأبطأ
المشكلة: المكالمات تفشل
التحقيق:
- تحقق من معدل
call_attempts_total{result="rejected"} - تح��ق من
subscriber_data_lookups_total{result="error"}لمشاكل Sh - تحقق من
hlr_lookups_total{result_type="error"}لمشاكل HLR - تحقق من
ocs_authorization_attempts_total{result="error"}لمشاكل OCS - تحقق من
authorization_decisions_total{disposition="unauthorized"}لمشاكل التفويض
الحل: إصلاح المكون الفاشل
المشكلة: تحميل مرتفع
التحقيق:
- تحقق من القيمة الحالية لـ
active_calls - تحقق من معدل
call_attempts_total - تحقق مما إذا كان المعدل يتطابق مع حركة المرور المتوقعة
- قارن نسبة MT مقابل MO
- تحقق من الأنماط غير العادية (ارتفاعات، نمو ثابت)
الحل: زيادة السعة أو التحقيق في حركة المرور غير العادية
المشكلة: مشاكل التجوال
التحقيق:
- تحقق من معدل
hlr_lookups_total{result_type="msrn"} - تحقق من
hlr_data_duration_millisecondsللتأخيرات - استخدم أداة بحث HLR للمشتركين المحددين
- تحقق مما إذا كان يتم استرداد MSRN بشكل صحيح
الحل: إصلاح الاتصال أو التكوين لـ HLR
معايير الأداء
القيم النموذجية (نظام مضبوط جيدًا)
- طلب HTTP لخطة الاتصال (من النهاية إلى النهاية): P50: 100-500 مللي ثانية، P95: 500-2000 مللي ثانية، P99: 1000-3000 مللي ثانية
- زمن البحث في Sh: P50: 15 مللي ثانية، P95: 50 مللي ثانية، P99: 100 مللي ثانية
- زمن البحث في HLR: P50: 100 مللي ثانية، P95: 300 مللي ثانية، P99: 800 مللي ثانية
- زمن تفويض OCS: P50: 150 مللي ثانية، P95: 500 مللي ثانية، P99: 1500 مللي ثانية
- معالجة وحدة خطة الاتصال: P50: 1-5 مللي ثانية، P95: 10-25 مللي ثانية، P99: 50 مللي ثانية
- معدل نجاح Sh: > 99%
- معدل نجاح HLR: > 95% (الأقل هو الطبيعي بسبب المشتركين غير المتصلين)
- معدل نجاح OCS: > 98%
- معدل نجاح المكالمات: > 99%
ملاحظة: زمن طلب خطة الاتصال HTTP هو مجموع جميع أوقات المكونات بالإضافة إلى النفقات العامة. يجب أن يساوي تقريبًا: زمن البحث في Sh + زمن البحث في HLR + زمن تفويض OCS + زمن معالجة وحدة ��طة الاتصال + النفقات العامة للشبكة/التحليل. الحد الأدنى للوقت المتوقع هو ~100 مللي ثانية (عندما يكون فقط البحث في Sh مطلوبًا)، والحد الأقصى للوقت النموذجي هو ~2000 مللي ثانية (مع جميع عمليات البحث وإعادة المحاولة).
تخطيط السعة
راقب هذه الاتجاهات:
- النمو في معدل
call_attempts_total - النمو في ذروة
active_calls - ثبات أو تحسين P95 latencies
- ثبات أو تحسين معدلات النجاح
خطط للتوسع عندما:
- تقترب المكالمات النشطة من 80% من السعة
- تنمو P95 latencies على الرغم من الحمل الثابت
- تنخفض معدلات النجاح على الرغم من استقرار الأنظمة الخارجية
التكامل مع السجلات
قم بربط القياسات بالسجلات:
- معدل خطأ مرتفع في القياسات → ابحث في السجلات عن رسائل ERROR
- أوقات استجابة بطيئة → ابحث في السجلات عن رسائل WARNING حول أوقات الانتظار
- مشاكل مكالمات محددة → ابحث في السجلات حسب معرف المكالمة أو رقم الهاتف
- استخدم أداة المحاكاة لإعادة الإنتاج واستكشاف الأخطاء
أفضل الممارسات
- قم بإعداد لوحات المعلومات قبل حدوث المشكلات
- حدد عتبات التنبيه بناءً على خط الأساس الخاص بك
- اختبر التنبيهات باستخدام محاكي المكالمات
- راجع القياسات أسبوعيًا لتحديد الاتجاهات
- قم بربط القياسات بالأحداث التجارية (الحملات، الانقطاعات، إلخ.)
- استخدم القياسات لتبرير استثمارات البنية التحتية
- شارك لوحات المعلومات مع فريق العمليات
- وثق إجراءات استجابة التنبيه الخاصة بك
التكوين
يتم تمكين جمع القياسات تلقائيًا عند بدء التطبيق. يتم عرض نقطة نهاية القياسات على نفس المنفذ مثل واجهة برمجة التطبيقات (الافتراضي: 8080).
لتكوين Prometheus لجمع القياسات، أضف هذه الوظيفة إلى prometheus.yml الخاص بك:
scrape_configs:
- job_name: 'omnitas'
static_configs:
- targets: ['<tas-ip>:8080']
metrics_path: '/metrics'
scrape_interval: 10s
كثافة القياسات
تم تصميم القياسات بكثافة محكومة لتجنب إغراق Prometheus:
- ملصقات الأقران: محدودة فقط للأقران المكونة
- أنواع المكالمات: مجموعة ثابتة (mo، mt، emergency، unauthorized)
- رموز النتائج: محدودة إلى رموز النتائج الفعلية المستلمة من القطر/OCS
- العمليات: مجموعة ثابتة لكل واجهة (sri/prn لـ MAP، ccr/cca لـ Diameter)
إجمالي السلاسل الزمنية المقدرة: ~200-500 اعتمادًا على عدد الأقران المكونة ورموز النتائج النشطة.
احتفاظ القياسات
فترات الاحتفاظ الموصى بها:
- القياسات الخام: 30 يومًا (دقة عالية)
- التجميعات كل 5 دقائق: 90 يومًا
- التجميعات كل ساعة: سنة واحدة
- التجميعات اليومية: 5 سنوات
يدعم هذا:
- استكشاف الأخطاء في الوقت الحقيقي (القياسات الخام)
- التحليل الأسبوعي/الشهري (التجميعات كل 5 دقائق/ساعة)
- تخطيط الس��ة (التجميعات اليومية)
- المقارنة التاريخية (التجميعات السنوية)