المقدمة
يوضح هذا المستند كيفية إستخدام Grafana/Prometheus في Cisco SMF لإنشاء استعلامات مخصصة لاستكشاف أخطاء تدفق المكالمات ذات الصلة وإصلاحها.
المختصرات
SMF |
وظيفة إدارة الجلسات |
UDM |
الإدارة الموحدة للبيانات |
AMF |
وظيفة الوصول والتنقل |
PDU |
وحدة بيانات البروتوكول |
لماذا تخصيص الاستعلامات لاستكشاف أخطاء تدفق مكالمات SMF وإصلاحها؟
بينما توفر لوحات المعلومات المدمجة رسوما بيانية رائعة فيما يتعلق بمؤشرات الأداء الرئيسية الهامة وإحصاءات صحة العقد، من أجل إستخدام الإمكانات الكاملة لاستعلامات PromQL والاستعلامات الخاصة باستكشاف أخطاء البرامج وإصلاحها في السيناريوهات العادية للمشاكل، تلعب الاستعلامات المخصصة دورا مهما. تضيف الاستعلامات والرسوم البيانية المخصصة المخصصة المزيد من تعدد الاستخدامات والراحة لعزل فشل معين.
فوائد لوحات المعلومات المدمجة:
- توفر Grafana واجهة رسومية سهلة الاستخدام لاستعراض إحصائيات SMF.
- هناك لوحات معلومات مدمجة متوفرة للتحقق من معظم مؤشرات الأداء الأساسية والإحصائيات.
مثال:
لوحة معلومات 5G SMF
- 5 وحدات توزيع الطاقة (PDU) لإنشاء معدل فشل/نجاح
- معدل نجاح/فشل إنشاء 4G PDN
- نسبة سبب فشل كل إجراء.
- نسبة سبب قطع الاتصال.
- النسبة المئوية للسبب الخاص بطلب HTTP والاستجابة المطابقة له.
لاستكشاف المزيد من الأخطاء وإصلاحها:
- لوحات المعلومات واللوحات المتوفرة تتمحور في الغالب حول النسب المئوية ومؤشرات الأداء الرئيسية. بينما تقوم بالتحقيق أكثر، قد يحتاج الشخص إلى النظر في التفاصيل الدقيقة لتحديد السيناريو والرسالة المحددين اللتين أطلقتا هذا الفشل.
- وتساعد الاستفسارات المخصصة التي تستخدم تعبيرات منتظمة محددة على ربط هذه الإحصاءات وعزل الزناد.
- يمكن إستخدام هذه الاستعلامات لرسم الرسومات البيانية في SMF grafana أو في الرسومات غير المتصلة مع تفريغ المقاييس من حزمة TAC-debug.
- يمكن إستخدام نطاق المقاييس المرتبطة بالخدمات المختلفة، كما يمكن تصفيتها من خلال مفاتيح التسمية/أزواج القيم لاستكشاف أخطاء السيناريو المحدد وإصلاحها.
غرافانا وبروميثيوس
غرافانا
"إن جرافانا عبارة عن برنامج للتصور والتحليل مفتوح المصدر. فهي تتيح لك إمكانية الاستعلام عن المقاييس التي قمت بتخزينها، وتصورها، والتنبيه عليها، واستكشافها أينما كانت.
يستخدم SMF الداخلي من Cisco غرافانا لرسم بيانات إحصائيات الوقت الفعلي من حاويات التطبيقات.
بروميثيوس
توفر Prometheus نموذج بيانات متعدد الأبعاد مع بيانات سلاسل زمنية محددة حسب الاسم المتري وأزواج المفاتيح/القيم ولغة استعلام مرنة تسمى PromQL للوصول إلى هذه البيانات.
يستخدم بروميثيوس لجمع الإحصاءات/العدادات من الخدمات المتناهية الصغر.
المقاييس- هي معرفات إحصائيات السلسلة الزمنية.
التسميات- تتكون المقاييس من تسميات. أيهما في الأساس هما أزواج القيم الرئيسية؟ مجموعات التسميات الخاصة بمقياس معين تحدد مثيل معين لبيانات السلاسل الزمنية
مثال:
يحتوي مقياس "smf_service_stats" المميز بالأخضر على العديد من التسميات، والتي يتم إبرازها بالأصفر.
باستخدام مفاتيح/أزواج قيم التسمية هذه، يمكن تحديد سلسلة معينة من البيانات.
استعلام PromQL
يوفر Prometheus لغة استعلام وظيفية تسمى PromQL. الوظائف المضمنة متوفرة في PromQl (على سبيل المثال، Sum()، by()، count() وما إلى ذلك) تتيح لنا تحديد بيانات معينة للفئة الزمنية بتنسيق رسومي أو جدولي.
مثال:
sum(smf_service_stats{status="success"}) by (procedure_type)
يقوم هذا المثال بتحديد البيانات من مقياس smf_service_stats حسب الإجراء_type حيث الحالة = "نجاح"
مجموع (حساب المبلغ على الأبعاد)
BY(تجميع الإخراج حسب التسميات)
يمكن إستخدام المرشحات داخل المجموع باستخدام مفاتيح التسمية/أزواج القيم لمزيد من تصفية الرسومات البيانية.
مثال 1:
sum(smf_disconnect_stats{namespace="smf-data",reason=~"disc_eutra.*"})by(reason, rat_type)
تم تحديد مساحة الاسم smf-data هنا، وكسبب لذلك، يجب مراعاة جميع أسباب قطع الاتصال بدءا من disk_eutra (أي أسباب قطع اتصال 4G).
مثال 2:
sum(smf_restep_http_msg{namespace="smf-data", api_name=~"sdm_.*"}) by(api_name,message_direction,response_status,response_cause)
يجب أن يؤسس هذا الاستعلام رسائل اشتراك SMF - UDM SDM مع سبب الاستجابة.
كيف يتم إنشاء لوحة معلومات ولوحة؟
لإضافة لوحة معلومات جديدة.
الخطوة 1. انتقل إلى إنشاء > لوحة المعلومات، كما هو موضح في هذه الصورة.
لإضافة لوحة جديدة - أضف استعلام.
الخطوة 2. انتقل إلى خيار إضافة لوحة في الأعلى لإضافة لوحة جديدة.
الخطوة 3. حدد الزر إضافة استعلام.
حدد نوع الاستعلام- Prometheus hi-res.
الخطوة 4. حدد خيار Prometheus hi-res في القائمة المنسدلة للاستعلام.
الخطوة 5. ثم قم بإضافة الاستعلام الأولي في المربع المحدد.
الخطوة 6. احفظ اللوحة.
مثال: أستخدم الاستعلام المخصص والرسومات البيانية لاستكشاف الأخطاء وإصلاحها
فشل إنشاء جلسة PDU - فشل الاستجابة N1N2
الخطوة 1. مراقبة KPI Dip والتعرف على جلسة عمل PDU لإنشاء فشل.
Query: sum by (procedure_type, pdu_type, status, reason) (smf_service_stats{namespace="smf",procedure_type="pdu_sess_create"})
الخطوة 2. سبب الفشل هو "n1n2_transfer_failure_rsp_code". دعنا نلقي نظرة على أسباب الانفصال:
Query: sum(smf_disconnect_stats{namespace=”smf"}) by (reason)
الخطوة 3. يشير سبب قطع الاتصال "disk_pdusetup_n1n2_transfer_rsp_failure" إلى إستجابة سالبة من نظير AMF. نظرا لأن تفاعل SMF-AMF عبر الواجهة المستندة إلى خدمة HTTP، يلزم النظر إلى حالات HTTP بشكل أكبر (metric: smf_restep_http_msg)
تشير إحصائيات HTTP إلى أنه خلال الفشل، تلقى SMF رمز حالة HTTP رقم 401 - غير مصرح به من AMF
Query: sum(smf_restep_http_msg{namespace="smf"}) by(api_name,message_direction,response_status)
مقاييس مهمة لاستكشاف الأخطاء وإصلاحها:
smf_disconnect_stats
smf_proto_pfcp_msg_total
smf_service_stats
smf_restep_http_msg
smf_n1_message_stats
smf_proto_pfcp_msg_total
nodemgr_msg_stats
nodemgr_gtpc_msg_stats
chf_message_stats
policy_msg_processing_status
procedure_protocol_total
procedure_service_total
مزيد من المعلومات حول مقاييس SMF:
وكما هو موضح في هذه الأمثلة، يمكن للمرء رسم بياناته البيانية المخصصة الخاصة كما وعندما يكون مطلوبا لسيناريو الفشل المحدد لربط رسائل مختلفة وعزل الفشل. يمكن تشغيل مثل هذه الاستعلامات في الأنظمة المحلية أيضا بعد تركيب البيانات المترية من TAC_debug_pkg على grafana المحلية.