انتقل إلى المحتوى الرئيسي

دليل مقاييس Prometheus والمراقبة

نظرة عامة​

يقوم OmniTAS بتصدير مقاييس تشغيلية شاملة بتنسيق Prometheus للمراقبة والتنبيه والرؤية. يغطي هذا الدليل جميع المقاييس المتاحة، واستخدامها، واستكشاف الأخطاء، وأفضل الممارسات للمراقبة.

نقطة نهاية المقاييس​

تتعرض جميع المقاييس على: http://<tas-ip>:9094/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
  • لا يمكن تمييز الأداء بين أنواع المكالمات

السبب الجذري: فشل استخراج نوع المكالمة أو عدم تمريره بشكل صحيح عبر خط معالجة البيانات.

التحقيق:

  1. تحقق من السجلات لرسائل "طلب خطة الاتصال HTTP" - يجب أن تظهر نوع المكالمة الصحيح
  2. راجع سجلات النظام لأخطاء معالجة نوع المكالمة

الحل: اتصل بالدعم إذا استمر فشل اكتشاف نوع المكالمة.

المشكلة: المكالمات بطيئة​

التحقيق:

  1. تحقق من http_dialplan_request_duration_milliseconds P95 - ابدأ هنا
  2. إذا كانت مرتفعة، تحقق من أوقات المكونات:
    • تحقق من subscriber_data_duration_milliseconds لتأخيرات Sh
    • تحقق من hlr_data_duration_milliseconds لتأخيرات HLR
    • تحقق من ocs_authorization_duration_milliseconds لتأخيرات OCS
    • تحقق من dialplan_module_duration_milliseconds لتأخيرات محددة للوحدات
  3. تحقق مما إذا كان call_type="unknown" - يشير إلى فشل اكتشاف نوع المكالمة
  4. قارن أوقات المعالجة MT مقابل MO مقابل الطوارئ
  5. اربط مع سجلات النظام للحصول على رسائل خطأ مفصلة

الحل: تحسين أبطأ مكون

المشكلة: فشل المكالمات​

التحقيق:

  1. تحقق من معدل call_attempts_total{result="rejected"}
  2. تحقق من subscriber_data_lookups_total{result="error"} لمشاكل Sh
  3. تحقق من hlr_lookups_total{result_type="error"} لمشاكل HLR
  4. تحقق من ocs_authorization_attempts_total{result="error"} لمشاكل OCS
  5. تحقق من authorization_decisions_total{disposition="unauthorized"} لمشاكل التفويض

الحل: إصلاح المكون الفاشل

المشكلة: تحميل مرتفع​

التحقيق:

  1. تحقق من القيمة الحالية لـ active_calls
  2. تحقق من معدل call_attempts_total
  3. تحقق مما إذا كان المعدل يتطابق مع حركة المرور المتوقعة
  4. قارن نسبة MT مقابل MO
  5. تحقق من الأنماط غير العادية (ارتفاعات، نمو ثابت)

الحل: زيادة السعة أو التحقيق في حركة المرور غير العادية

المشكلة: مشاكل التجوال​

التحقيق:

  1. تحقق من معدل hlr_lookups_total{result_type="msrn"}
  2. تحقق من hlr_data_duration_milliseconds للتأخيرات
  3. استخدم أداة بحث HLR لمشتركين محددين
  4. تحقق مما إذا كان يتم استرجاع 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
  • استقرار أو تحسين في معدلات النجاح

خطط للتوسع عندما:

  • تقترب المكالمات النشطة من 80% من السعة
  • تنمو P95 على الرغم من الحمل المستقر
  • تنخفض معدلات النجاح على الرغم من استقرار الأنظمة الخارجية

التكامل مع السجلات​

ربط المقاييس بالسجلات:

  1. معدل خطأ مرتفع في المقاييس → ابحث في السجلات عن رسائل ERROR
  2. أوقات استجابة بطيئة → ابحث في السجلات عن رسائل WARNING حول انتهاء المهلة
  3. مشاكل مكالمات محددة → ابحث في السجلات حسب معرف المكالمة أو رقم الهاتف
  4. استخدم أداة المحاكاة لإعادة الإنتاج واستكشاف الأخطاء

أفضل الممارسات​

  1. قم بإعداد لوحات التحكم قبل حدوث المشاكل
  2. حدد عتبات التنبيه بناءً على خط الأساس الخاص بك
  3. اختبر التنبيهات باستخدام محاكي المكالمات
  4. راجع المقاييس أسبوعيًا لتحديد الاتجاهات
  5. ربط المقاييس بالأحداث التجارية (الحملات، الانقطاعات، إلخ)
  6. استخدم المقاييس لتبرير استثمارات البنية التحتية
  7. شارك لوحات التحكم مع فريق العمليات
  8. وثق إجراءات استجابة التنبيه الخاصة بك

التكوين​

يتم تمكين جمع المقاييس تلقائيًا عند بدء التطبيق. يتم عرض نقطة نهاية المقاييس على نفس المنفذ مثل واجهة برمجة التطبيقات (الافتراضي: 9094).

لتكوين Prometheus لجمع المقاييس، أضف هذه الوظيفة إلى prometheus.yml الخاص بك:

scrape_configs:
- job_name: 'omnitas'
static_configs:
- targets: ['<tas-ip>:9094']
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 دقائق/ساعة)
  • تخطيط السعة (التجميعات اليومية)
  • المقارن�� التاريخية (التجميعات السنوية)