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

وثائق القياسات

تصف هذه الوثيقة قياسات Prometheus التي تعرضها مكونات خادم تطبيق IMS.

جدول المحتويات

نقاط نهاية القياسات

المنفذنقطة النهايةالغرضالانتقال إلى القسم
9090/metricsقياسات النظام، والبوابة، والاتصالات الأساسيةالمنفذ 9090 →
8080/metricsقياسات محرك TAS، والقطر، وHLR، وOCS، وVM Erlangالمنفذ 8080 →
9093/esl?module=defaultجودة الوسائط RTP/RTCP وإحصائيات المكالماتالمنفذ 9093 →

المنفذ 9090 - قياسات النظام

قياسات المكالمات والجلسات

اسم القياسالمنفذالوصف
freeswitch_bridged_calls9090عدد المكالمات الموصولة النشطة حاليًا
freeswitch_detailed_bridged_calls9090عدد المكالمات الموصولة المفصلة النشطة
freeswitch_current_calls9090عدد المكالمات النشطة حاليًا
freeswitch_detailed_calls9090عدد المكالمات المفصلة النشطة
freeswitch_current_channels9090عدد القنوات النشطة حاليًا
freeswitch_current_sessions9090عدد الجلسات النشطة حاليًا
freeswitch_current_sessions_peak9090الحد الأقصى لعدد الجلسات منذ بدء التشغيل
freeswitch_current_sessions_peak_last_5min9090الحد الأقصى لعدد الجلسات في آخر 5 دقائق
freeswitch_sessions_total9090إجمالي عدد الجلسات منذ بدء التشغيل (عداد)
freeswitch_current_sps9090الجلسات الحالية في الثانية
freeswitch_current_sps_peak9090الحد الأقصى للجلسات في الثانية منذ بدء التشغيل
freeswitch_current_sps_peak_last_5min9090الحد الأقصى للجلسات في الثانية في آخر 5 دقائق
freeswitch_max_sessions9090الحد الأقصى لعدد الجلسات المسموح بها
freeswitch_max_sps9090الحد الأقصى للجلسات في الثانية المسموح بها

قياسات موارد النظام

اسم القياسالمنفذالوصف
freeswitch_current_idle_cpu9090النسبة المئوية الحالية لوحدة المعالجة المركزية الخاملة
freeswitch_min_idle_cpu9090الحد الأدنى للنسبة المئوية لوحدة المعالجة المركزية الخاملة المسجلة
freeswitch_uptime_seconds9090وقت التشغيل بالثواني
freeswitch_time_synced9090ما إذا كان الوقت النظام متزامنًا مع وقت مضيف المصدر (1=متزامن، 0=غير متزامن)

قياسات الذاكرة

اسم القياسالمنفذالوصف
freeswitch_memory_arena9090إجمالي البايتات غير المخصصة (ساحة malloc)
freeswitch_memory_ordblks9090عدد الكتل الحرة
freeswitch_memory_smblks9090عدد كتل fastbin الحرة
freeswitch_memory_hblks9090عدد المناطق المخصصة
freeswitch_memory_hblkhd9090بايتات في المناطق المخصصة
freeswitch_memory_usmblks9090الحد الأقصى لإجمالي المساحة المخصصة
freeswitch_memory_fsmblks9090بايتات حرة محتفظ بها في fastbins
freeswitch_memory_uordblks9090إجمالي المساحة المخصصة
freeswitch_memory_fordblks9090إجمالي المساحة الحرة
freeswitch_memory_keepcost9090الكتلة القابلة للإفراج الأعلى

قياسات حالة الترميز

اسم القياسالمنفذالوصف
freeswitch_codec_status9090حالة الترميز مع التسميات: ikey (الوحدة)، name (اسم الترميز)، type (الترميز). القيمة=1 تشير إلى أن الترميز متاح

تشمل الترميزات المتاحة:

  • G.711 alaw/ulaw
  • PROXY PASS-THROUGH
  • PROXY VIDEO PASS-THROUGH
  • RAW Signed Linear (16 bit)
  • Speex
  • VP8/VP9 Video
  • AMR variants
  • B64
  • G.723.1, G.729, G.722, G.726 variants
  • OPUS
  • MP3
  • ADPCM, GSM, LPC-10

قياسات حالة النقاط النهائية

اسم القياسالمنفذالوصف
freeswitch_endpoint_status9090حالة النقطة النهائية مع التسميات: ikey (الوحدة)، name (اسم النقطة النهائية)، type (النقطة النهائية). القيمة=1 تشير إلى أن النقطة النهائية متاحة

تشمل النقاط النهائية المتاحة:

  • error, group, pickup, user (mod_dptools)
  • loopback, null (mod_loopback)
  • rtc (mod_rtc)
  • rtp, sofia (mod_sofia)
  • modem (mod_spandsp)

قياسات حالة الوحدة

اسم القياسالمنفذالوصف
freeswitch_load_module9090حالة تحميل الوحدة (1=محملة، 0=غير محملة) مع التسمية: الوحدة

الوحدات الرئيسية المراقبة:

  • mod_sofia (SIP)
  • mod_conference, mod_conference_ims
  • mod_opus, mod_g729, mod_amr, إلخ.
  • mod_event_socket
  • mod_dptools
  • mod_python3
  • mod_rtc
  • والعديد من الوحدات الأخرى...

قياسات التسجيل

اسم القياسالمنفذالوصف
freeswitch_registrations9090إجمالي عدد التسجيلات النشطة
freeswitch_registration_defails9090معلومات تسجيل مفصلة مع التسميات: expires, hostname, network_ip, network_port, network_proto, realm, reg_user, token, url

قياسات بوابة صوفيا

اسم القياسالمنفذالوصف
freeswitch_sofia_gateway_status9090حالة البوابة مع التسميات: context, name, profile, proxy, scheme, status (UP/DOWN)
freeswitch_sofia_gateway_call_in9090عدد المكالمات الواردة عبر البوابة
freeswitch_sofia_gateway_call_out9090عدد المكالمات الصادرة عبر البوابة
freeswitch_sofia_gateway_failed_call_in9090عدد المكالمات الواردة الفاشلة
freeswitch_sofia_gateway_failed_call_out9090عدد المكالمات الصادرة الفاشلة
freeswitch_sofia_gateway_ping9090آخر طابع زمني للـ ping (Unix epoch)
freeswitch_sofia_gateway_pingtime9090آخر وقت ping بالميلي ثانية
freeswitch_sofia_gateway_pingfreq9090تردد ping بالثواني
freeswitch_sofia_gateway_pingcount9090عدد الـ pings المرسلة
freeswitch_sofia_gateway_pingmin9090الحد الأدنى لوقت ping المسجل
freeswitch_sofia_gateway_pingmax9090الحد الأقصى لوقت ping المسجل

قياسات صحة المصدر

اسم القياسالمنفذالوصف
freeswitch_up9090ما إذا كانت آخر عملية سحب ناجحة (1=نجاح، 0=فشل)
freeswitch_exporter_total_scrapes9090إجمالي عدد عمليات السحب المنفذة (عداد)
freeswitch_exporter_failed_scrapes9090إجمالي عدد عمليات السحب الفاشلة (عداد)

↑ العودة إلى الأعلى

المنفذ 8080 - قياسات محرك TAS

تتعرض هذه القياسات من قبل محرك خادم تطبيق الهاتف وتوفر نظرة على معالجة المكالمات، وعمليات قاعدة البيانات، وأداء VM Erlang.

قياسات مكالمات التطبيق

اسم القياسالمنفذالوصف
call_simulations_total8080إجمالي عدد محاكيات المكالمات (عداد)
call_attempts_total8080إجمالي عدد محاولات المكالمات (عداد)
call_rejections_total8080إجمالي عدد رفض المكالمات حسب السبب (عداد)
call_param_errors_total8080إجمالي عدد أخطاء تحليل معلمات المكالمات (عداد)
active_calls8080عدد المكالمات النشطة حاليًا مع التسميات: call_type (mo/mt/emergency)
tracked_call_sessions8080عدد جلسات المكالمات المتعقبة حاليًا في ETS

قياسات بروتوكول القطر

اسم القياسالمنفذالوصف
diameter_peer_state8080حالة أقران القطر (1=متصل، 0=غير متصل) مع التسميات: peer_host, peer_realm, application
diameter_requests_total8080إجمالي عدد طلبات القطر (عداد)
diameter_responses_total8080إجمالي عدد استجابات القطر (عداد)
diameter_response_duration_milliseconds8080مدة طلبات القطر بالميلي ثانية (هيستوجرام)

قياسات عمليات الهاتف

اسم القياسالمنفذالوصف
hlr_lookups_total8080إجمالي عدد عمليات البحث في HLR (عداد)
hlr_data_duration_milliseconds8080مدة استرجاع بيانات HLR بالميلي ثانية (هيستوجرام)
subscriber_data_lookups_total8080إجمالي عدد عمليات البحث في بيانات المشتركين (عداد)
subscriber_data_duration_milliseconds8080مدة استرجاع بيانات المشتركين من Sh بالميلي ثانية (هيستوجرام)
ss7_map_operations_total8080إجمالي عدد عمليات SS7 MAP (عداد)
ss7_map_http_duration_milliseconds8080مدة طلبات SS7 MAP HTTP بالميلي ثانية (هيستوجرام)
tracked_registrations8080عدد التسجيلات SIP المتعقبة حاليًا

قياسات نظام الشحن عبر الإنترنت (OCS)

اسم القياسالمنفذالوصف
ocs_authorization_attempts_total8080إجمالي عدد محاولات تفويض OCS (عداد)
ocs_authorization_duration_milliseconds8080مدة تفويض OCS بالميلي ثانية (هيستوجرام)
online_charging_events_total8080إجمالي عدد أحداث الشحن عبر الإنترنت (عداد)
authorization_decisions_total8080إجمالي عدد قرارات التفويض (عداد)

ق��اسات خطة الاتصال والمعالجة

اسم القياسالمنفذالوصف
http_requests_total8080إجمالي عدد طلبات HTTP مع التسميات: endpoint, status_code (عداد)
http_dialplan_request_duration_milliseconds8080مدة طلبات خطة الاتصال HTTP بالميلي ثانية (هيستوجرام)
dialplan_module_duration_milliseconds8080مدة معالجة وحدة خطة الاتصال الفردية (هيستوجرام)
freeswitch_variable_set_duration_milliseconds8080مدة عمليات تعيين المتغيرات (هيستوجرام)

قياسات مقبس الأحداث

اسم القياسالمنفذالوصف
event_socket_connected8080حالة اتصال مقبس الأحداث (1=متصل، 0=غير متصل) مع التسمية: connection_type
event_socket_reconnections_total8080إجمالي عدد محاولات إعادة الاتصال بمقبس الأحداث (عداد)

قياسات قاعدة بيانات Erlang Mnesia

اسم القياسالمنفذالوصف
erlang_mnesia_held_locks8080عدد الأقفال المحتفظ بها
erlang_mnesia_lock_queue8080عدد المعاملات التي تنتظر قفلًا
erlang_mnesia_transaction_participants8080عدد معاملات المشاركين
erlang_mnesia_transaction_coordinators8080عدد معاملات المنسقين
erlang_mnesia_failed_transactions8080عدد المعاملات الفاشلة (المتوقفة) (عداد)
erlang_mnesia_committed_transactions8080عدد المعاملات الملتزمة (عداد)
erlang_mnesia_logged_transactions8080عدد المعاملات المسجلة (عداد)
erlang_mnesia_restarted_transactions8080إجمالي عدد إعادة تشغيل المعاملات (عداد)
erlang_mnesia_memory_usage_bytes8080إجمالي البايتات المخصصة من جميع جداول mnesia
erlang_mnesia_tablewise_memory_usage_bytes8080البايتات المخصصة لكل جدول mnesia مع التسمية: table
erlang_mnesia_tablewise_size8080عدد الصفوف لكل جدول مع التسمية: table

قياسات ذاكرة VM Erlang

اسم القياسالمنفذالوصف
erlang_vm_memory_atom_bytes_total8080الذاكرة المخصصة للذرات مع التسمية: usage (used/free)
erlang_vm_memory_bytes_total8080إجمالي الذاكرة المخصصة مع التسمية: kind (system/processes)
erlang_vm_memory_dets_tables8080عدد جداول DETS
erlang_vm_memory_ets_tables8080عدد جداول ETS
erlang_vm_memory_processes_bytes_total8080الذاكرة المخصصة للعمليات مع التسمية: usage (used/free)
erlang_vm_memory_system_bytes_total8080الذاكرة لمحاكي (غير مرتبطة بالعمليات) مع التسمية: usage (atom/binary/code/ets/other)

إحصائيات VM Erlang

اسم القياسالمنفذالوصف
erlang_vm_statistics_bytes_output_total8080إجمالي البايتات المخرجة إلى المنافذ (عداد)
erlang_vm_statistics_bytes_received_total8080إجمالي البايتات المستلمة عبر المنافذ (عداد)
erlang_vm_statistics_context_switches8080إجمالي تبديلات السياق منذ بدء التشغيل (عداد)
erlang_vm_statistics_dirty_cpu_run_queue_length8080طول قائمة تشغيل وحدة المعالجة المركزية المتسخة
erlang_vm_statistics_dirty_io_run_queue_length8080طول قائمة ت��غيل الإدخال/الإخراج المتسخة
erlang_vm_statistics_garbage_collection_number_of_gcs8080عدد عمليات جمع القمامة (عداد)
erlang_vm_statistics_garbage_collection_bytes_reclaimed8080البايتات المستردة بواسطة GC (عداد)
erlang_vm_statistics_garbage_collection_words_reclaimed8080الكلمات المستردة بواسطة GC (عداد)
erlang_vm_statistics_reductions_total8080إجمالي التخفيضات (عداد)
erlang_vm_statistics_run_queues_length8080طول قوائم التشغيل العادية
erlang_vm_statistics_runtime_milliseconds8080مجموع وقت التشغيل لجميع الخيوط (عداد)
erlang_vm_statistics_wallclock_time_milliseconds8080الوقت الحقيقي المقاس (عداد)

معلومات نظام VM Erlang

اسم القياسالمنفذالوصف
erlang_vm_dirty_cpu_schedulers8080عدد خيوط جدولة وحدة المعالجة المركزية المتسخة
erlang_vm_dirty_cpu_schedulers_online8080عدد جدولة وحدة المعالجة المركزية المتسخة المتصلة
erlang_vm_dirty_io_schedulers8080عدد خيوط جدولة الإدخال/الإخراج المتسخة
erlang_vm_ets_limit8080الحد الأقصى لعدد جداول ETS المسموح بها
erlang_vm_logical_processors8080عدد المعالجات المنطقية المكونة
erlang_vm_logical_processors_available8080عدد المعالجات المنطقية المتاحة
erlang_vm_logical_processors_online8080عدد المعالجات المنطقية المتصلة
erlang_vm_port_count8080عدد المنافذ الموجودة حاليًا
erlang_vm_port_limit8080الحد الأقصى لعدد المنافذ المسموح بها
erlang_vm_process_count8080عدد العمليات الموجودة حاليًا
erlang_vm_process_limit8080الحد الأقصى لعدد العمليات المسموح بها
erlang_vm_schedulers8080عدد خيوط الجدولة
erlang_vm_schedulers_online8080عدد المجدولين المتصلين
erlang_vm_smp_support80801 إذا تم تجميعه مع دعم SMP، 0 خلاف ذلك
erlang_vm_threads80801 إذا تم تجميعه مع دعم الخيوط، 0 خلاف ذلك
erlang_vm_thread_pool_size8080عدد خيوط غير المتزامنة في المسبح
erlang_vm_time_correction80801 إذا تم تمكين تصحيح الوقت، 0 خلاف ذلك
erlang_vm_wordsize_bytes8080حجم كلمات مصطلحات Erlang بالبايت
erlang_vm_atom_count8080عدد الذرات الموجودة حاليًا
erlang_vm_atom_limit8080الحد الأقصى لعدد الذرات المسموح بها

محاسبة الحالة الدقيقة لـ VM Erlang (MSACC)

تتبع الوقت التفصيلي لأنشطة الجدولة مع التسميات: type, id

اسم القياسالمنفذالوصف
erlang_vm_msacc_aux_seconds_total8080الوقت المستغرق في التعامل مع الوظائف المساعدة (عداد)
erlang_vm_msacc_check_io_seconds_total8080الوقت المستغرق في التحقق من أحداث الإدخال/الإخراج الجديدة (عداد)
erlang_vm_msacc_emulator_seconds_total8080الوقت المستغرق في تنفيذ عمليات Erlang (عداد)
erlang_vm_msacc_gc_seconds_total8080الوقت المستغرق في جمع القمامة (عداد)
erlang_vm_msacc_other_seconds_total8080الوقت المستغرق في الأنشطة غير المحسوبة (عداد)
erlang_vm_msacc_port_seconds_total8080الوقت المستغرق في تنفيذ المنافذ (عداد)
erlang_vm_msacc_sleep_seconds_total8080الوقت المستغرق في النوم (عداد)
erlang_vm_msacc_alloc_seconds_total8080الوقت المستغرق في إدارة الذاكرة (عداد)
erlang_vm_msacc_bif_seconds_total8080الوقت المستغرق في BIFs (عداد)
erlang_vm_msacc_busy_wait_seconds_total8080الوقت المستغرق في الانتظار المشغول (عداد)
erlang_vm_msacc_ets_seconds_total8080الوقت المستغرق في BIFs الخاصة بـ ETS (عداد)
erlang_vm_msacc_gc_full_seconds_total8080الوقت المستغرق في جمع القمامة الكامل (عداد)
erlang_vm_msacc_nif_seconds_total8080الوقت المستغرق في NIFs (عداد)
erlang_vm_msacc_send_seconds_total8080الوقت المستغرق في إرسال الرسائل (عداد)
erlang_vm_msacc_timers_seconds_total8080الوقت المستغرق في إدارة المؤقتات (عداد)

موزعات VM Erlang

قياسات موزع الذاكرة التفصيلية مع التسميات: alloc, instance_no, kind, usage

اسم القياسالمنفذالوصف
erlang_vm_allocators8080الذاكرة المخصصة (carriers_size) والمستخدمة (blocks_size) لموزعات مختلفة. انظر erts_alloc(3).

تشمل أنواع الموزعات: temp_alloc, sl_alloc, std_alloc, ll_alloc, eheap_alloc, ets_alloc, fix_alloc, literal_alloc, binary_alloc, driver_alloc


↑ العودة إلى الأعلى

المنفذ 9093 - قياسات الجودة الإعلامية والمكالمات

توفر هذه القياسات إحصائيات RTP/RTCP في الوقت الحقيقي ومعلومات جودة المكالمات لكل قناة.

اسم القياسالمنفذالوصف
freeswitch_info9093معلومات النظام مع التسمية: version
freeswitch_up9093حالة الاستعداد (1=جاهز، 0=غير جاهز)
freeswitch_stack_bytes9093حجم المكدس بالبايت
freeswitch_session_total9093إجمالي عدد الجلسات
freeswitch_session_active9093عدد الجلسات النشطة
freeswitch_session_limit9093حد الجلسات
rtp_channel_info9093معلومات قناة RTP مع التسميات لتفاصيل القناة

RTP الصوت - عدادات ا��بايت

اسم القياسالمنفذالوصف
rtp_audio_in_raw_bytes_total9093إجمالي البايتات المستلمة (بما في ذلك الرؤوس)
rtp_audio_out_raw_bytes_total9093إجمالي البايتات المرسلة (بما في ذلك الرؤوس)
rtp_audio_in_media_bytes_total9093إجمالي بايتات الوسائط المستلمة (payload فقط)
rtp_audio_out_media_bytes_total9093إجمالي بايتات الوسائط المرسلة (payload فقط)

RTP الصوت - عدادات الحزم

اسم القياسالمنفذالوصف
rtp_audio_in_packets_total9093إجمالي الحزم المستلمة
rtp_audio_out_packets_total9093إجمالي الحزم المرسلة
rtp_audio_in_media_packets_total9093إجمالي حزم الوسائط المستلمة
rtp_audio_out_media_packets_total9093إجمالي حزم الوسائط المرسلة
rtp_audio_in_skip_packets_total9093الحزم الواردة التي تم تجاهلها
rtp_audio_out_skip_packets_total9093الحزم الصادرة التي تم تجاهلها

RTP الصوت - أنواع الحزم الخاصة

اسم القياسالمنفذالوصف
rtp_audio_in_jitter_packets_total9093حزم الذاكرة المؤقتة المستلمة
rtp_audio_in_dtmf_packets_total9093حزم DTMF المستلمة
rtp_audio_out_dtmf_packets_total9093حزم DTMF المرسلة
rtp_audio_in_cng_packets_total9093حزم توليد الضوضاء المريحة المستلمة
rtp_audio_out_cng_packets_total9093حزم توليد الضوضاء المريحة المرسلة
rtp_audio_in_flush_packets_total9093الحزم التي تم تفريغها (إعادة تعيين الذاكرة المؤقتة)

RTP الصوت - قياسات التذبذب والجودة

اسم القياسالمنفذالوصف
rtp_audio_in_jitter_buffer_bytes_max9093أكبر حجم لذاكرة التذبذب بالبايت
rtp_audio_in_jitter_seconds_min9093الحد الأدنى للتذبذب بالثواني
rtp_audio_in_jitter_seconds_max9093الحد الأقصى للتذبذب بالثواني
rtp_audio_in_jitter_loss_rate9093معدل فقد الحزم بسبب التذبذب (نسبة)
rtp_audio_in_jitter_burst_rate9093معدل انفج��ر الحزم بسبب التذبذب (نسبة)
rtp_audio_in_mean_interval_seconds9093المتوسط الزمني بين الحزم الواردة
rtp_audio_in_flaw_total9093إجمالي العيوب الصوتية المكتشفة (تشويش، عيوب)
rtp_audio_in_quality_percent9093جودة الصوت كنسبة مئوية (0-100)
rtp_audio_in_quality_mos9093متوسط تقييم الرأي (1-5، حيث 5 هو الأفضل)

RTCP القياسات

اسم القياسالمنفذالوصف
rtcp_audio_bytes_total9093إجمالي بايتات RTCP
rtcp_audio_packets_total9093إجمالي حزم RTCP

قياسات وقت تشغيل Go

اسم القياسالمنفذالوصف
go_goroutines9090عدد خيوط goroutines النشطة حاليًا
go_threads9090عدد خيوط نظام التشغيل التي تم إنشاؤها
go_info9090معلومات حول بيئة Go (مع تسمية الإصدار)
go_gc_duration_seconds9090مدة توقف دورات جمع القمامة (ملخص)
go_memstats_alloc_bytes9090عدد البايتات المخصصة وما زالت قيد الاستخدا��
go_memstats_alloc_bytes_total9090إجمالي عدد البايتات المخصصة (عداد)
go_memstats_heap_alloc_bytes9090بايتات الكومة المخصصة وما زالت قيد الاستخدام
go_memstats_heap_idle_bytes9090بايتات الكومة التي تنتظر الاستخدام
go_memstats_heap_inuse_bytes9090بايتات الكومة المستخدمة حاليًا
go_memstats_heap_objects9090عدد كائنات الكومة المخصصة
go_memstats_heap_released_bytes9090بايتات الكومة المفرج عنها إلى نظام التشغيل
go_memstats_heap_sys_bytes9090بايتات الكومة التي تم الحصول عليها من النظام
go_memstats_sys_bytes9090إجمالي البايتات التي تم الحصول عليها من النظام

قياسات العملية

اسم القياسالمنفذالوصف
process_cpu_seconds_total9090إجمالي وقت CPU المستخدم في النظام والمستخدم (عداد)
process_max_fds9090الحد الأقصى لعدد أوصاف الملفات المفتوحة
process_open_fds9090العدد الحالي لأوصاف الملفات ا��مفتوحة
process_resident_memory_bytes9090حجم الذاكرة المقيمة بالبايت
process_virtual_memory_bytes9090حجم الذاكرة الافتراضية بالبايت
process_virtual_memory_max_bytes9090الحد الأقصى لمقدار الذاكرة الافتراضية المتاحة
process_start_time_seconds9090وقت بدء العملية منذ Unix epoch

قياسات HTTP لـ Prometheus

اسم القياسالمنفذالوصف
promhttp_metric_handler_requests_in_flight9090العدد الحالي لعمليات السحب التي يتم تقديمها
promhttp_metric_handler_requests_total9090إجمالي عدد عمليات السحب حسب رمز حالة HTTP (عداد)

↑ العودة إلى الأعلى

أنواع القياسات

  • gauge: قياس يمكن أن يرتفع أو ينخفض (مثل، current_calls، cpu_idle)
  • counter: قياس يزيد فقط (مثل، sessions_total، failed_scrapes)
  • summary: قياس يتتبع الكوانتيلات على مدى نافذة زمنية متحركة (مثل، gc_duration_seconds)

↑ العودة إلى الأعلى

الاستخدام

لسحب هذه القياسات، قم بتكوين خادم Prometheus الخاص بك لسحب جميع النقاط الثلاث:

scrape_configs:
- job_name: 'ims_as_system'
static_configs:
- targets: ['localhost:9090']

- job_name: 'ims_as_engine'
static_configs:
- targets: ['localhost:8080']
metrics_path: '/metrics'

- job_name: 'ims_as_media'
static_configs:
- targets: ['localhost:9093']
metrics_path: '/esl'
params:
module: ['default']

↑ العودة إلى الأعلى

استعلامات نموذجية

روابط سريعة:

القياسات العامة

حجم المكالمات الحالية:

freeswitch_current_calls

صحة البوابة:

freeswitch_sofia_gateway_status{status="UP"}

متوسط وقت ping إلى البوابات:

avg(freeswitch_sofia_gateway_pingtime)

معدل الجلسات في الثانية:

freeswitch_current_sps

استخدام الذاك��ة:

freeswitch_memory_uordblks

قياسات جودة الوسائط

جودة المكالمات (درجة MOS):

rtp_audio_in_quality_mos

نسبة جودة الصوت:

rtp_audio_in_quality_percent

معدل التذبذب:

rate(rtp_audio_in_jitter_packets_total[5m])

معدل فقد الحزم:

rtp_audio_in_jitter_loss_rate

متوسط التذبذب:

avg(rtp_audio_in_jitter_seconds_max - rtp_audio_in_jitter_seconds_min)

عرض النطاق الترددي RTP (الوارد):

rate(rtp_audio_in_media_bytes_total[1m]) * 8

العيوب الصوتية المكتشفة:

increase(rtp_audio_in_flaw_total[5m])

قياسات محرك TAS

المكالمات النشطة حسب النوع:

active_calls

صحة نظير القطر:

diameter_peer_state{application="sh"}

معدل محاولة المكالمات:

rate(call_attempts_total[5m])

زمن البحث في HLR (النسبة المئوية 95):

histogram_quantile(0.95, hlr_data_duration_milliseconds)

زمن تفويض OCS:

histogram_quantile(0.99, ocs_authorization_duration_milliseconds)

معدل البحث في بيانات المشتركين:

rate(subscriber_data_lookups_total[5m])

معدل نجاح طلبات القطر:

rate(diameter_responses_total[5m]) / rate(diameter_requests_total[5m])

حالة اتصال مقبس الأحداث:

event_socket_connected

أداء معاملات Mnesia:

rate(erlang_mnesia_committed_transactions[5m])

معدل معاملات Mnesia الفاشلة:

rate(erlang_mnesia_failed_transactions[5m])

عدد عمليات VM Erlang:

erlang_vm_process_count

استخدام الذاكرة في VM Erlang:

erlang_vm_memory_bytes_total

معدل جمع القمامة:

rate(erlang_vm_statistics_garbage_collection_number_of_gcs[5m])

طول قائمة تشغيل المجدول:

erlang_vm_statistics_run_queues_length

عدد جداول ETS:

erlang_vm_memory_ets_tables

مدة طلبات خطة الاتصال HTTP (الوسيط):

histogram_quantile(0.5, http_dialplan_request_duration_milliseconds)

↑ العودة إلى الأعلى

تكوين وحدة زمنية القياس

مهم للمطورين:

تستخدم جميع قياسات المدة في هذا النظام duration_unit: false في إعلانات الهيستوجرام الخاصة بها. هذا حرج لأنه:

  1. تكتشف مكتبة Elixir الخاصة بـ Prometheus تلقائيًا أسماء القياسات التي تنتهي بـ _milliseconds
  2. بشكل افتراضي، تقوم بتحويل وحدات الوقت الأصلية لـ Erlang إلى ميلي ثانية تلقائيًا
  3. يقوم كودنا بالفعل بتحويل الوقت إلى ميلي ثانية باستخدام System.convert_time_unit/3
  4. بدون duration_unit: false، ستقوم المكتبة بتحويل الميلي ثانية إلى نانو ثانية (تقسيمها على ~1,000,000)

مثال:

# التكوين الصحيح
Histogram.declare(
name: :http_dialplan_request_duration_milliseconds,
help: "مدة طلبات خطة الاتصال HTTP بالميلي ثانية",
labels: [:call_type],
buckets: [100, 250, 500, 750, 1000, 1500, 2000, 3000, 5000],
duration_unit: false # مطلوب لمنع التحويل المزدوج
)

# قياس الوقت بشكل صحيح
start_time = System.monotonic_time()
# ... القيام بالعمل ...
end_time = System.monotonic_time()
duration_ms = System.convert_time_unit(end_time - start_time, :native, :millisecond)
Histogram.observe([name: :http_dialplan_request_duration_milliseconds], duration_ms)

↑ العودة إلى الأعلى

تكامل لوحة معلومات Grafana

يمكن تصور القياسات في Grafana باستخدام مصدر بيانات Prometheus.

تخطيط لوحة المعلومات الموصى به

الصف 1: حجم المكالمات والصحة

  • مقياس المكالمات النشطة (active_calls)
  • معدل محاولات المكالمات حسب النوع (rate(call_attempts_total[5m]))
  • معدل رفض المكالمات (rate(call_rejections_total[5m]))
  • صحة البوابة (freeswitch_sofia_gateway_status)

الصف 2: الأداء (النسب المئوية للتأخير)

  • وقت طلب خطة الاتصال HTTP P95 حسب نوع المكالمة
  • وقت البحث في بيانات المشتركين Sh P95
  • وقت البحث في HLR P95
  • وقت تفويض OCS P95
  • وقت استجابة القطر P95 حسب التطبيق

الصف 3: معدلات النجاح

  • معدل نجاح البحث في بيانات المشتركين
  • معدل نجاح البحث في HLR
  • معدل نجاح تفويض OCS
  • حالة نظير القطر

الصف 4: جودة الوسائط

  • درجة جودة المكالمات MOS (rtp_audio_in_quality_mos)
  • نسبة جودة الصوت (rtp_audio_in_quality_percent)
  • إحصائيات التذبذب
  • معدل فقد الحزم

الصف 5: موارد النظام

  • عدد عمليات VM Erlang
  • استخدام الذاكرة في VM Erlang
  • عدد جداول ETS
  • طول قائمة تشغيل المجدول
  • معدل جمع القمامة

الصف 6: تتبع الأخطاء

  • أخطاء معلمات المكالمات
  • فشل التفويض
  • حالة اتصال مقبس الأحداث
  • فشل معاملات Mnesia

استعلامات اللوحة النموذجية

المكالمات النشطة حسب النوع:

sum by (call_type) (active_calls)

زمن توليد خطة الاتصال P95:

histogram_quantile(0.95,
rate(http_dialplan_request_duration_milliseconds_bucket[5m])
)

معدل نجاح القطر:

rate(diameter_responses_total{result="success"}[5m]) /
rate(diameter_requests_total[5m]) * 100

جودة الوسائط - متوسط MOS:

avg(rtp_audio_in_quality_mos)

↑ العودة إلى الأعلى

أمثلة على التنبيهات

التنبيهات الحرجة (صفحة على الفور)

النظام معطل - لا توجد محاولات مكال��ات:

alert: SystemDown
expr: rate(call_attempts_total[5m]) == 0
for: 2m
labels:
severity: critical
annotations:
summary: "يبدو أن نظام TAS معطل - لا توجد محاولات مكالمات"
description: "لم يتم اكتشاف أي محاولات مكالمات لمدة دقيقتين"

نظير القطر معطل:

alert: DiameterPeerDown
expr: diameter_peer_state == 0
for: 1m
labels:
severity: critical
annotations:
summary: "نظير القطر {{ $labels.peer_host }} معطل"
description: "النظير لتطبيق {{ $labels.application }} غير متاح"

مقبس الأحداث غير متصل:

alert: EventSocketDisconnected
expr: event_socket_connected == 0
for: 30s
labels:
severity: critical
annotations:
summary: "مقبس الأحداث {{ $labels.connection_type }} غير متصل"
description: "قناة الاتصال الحرجة معطلة"

تنبيهات عالية الخطورة

ارتفاع زمن التأخير في القطر:

alert: HighDiameterLatency
expr: |
histogram_quantile(0.95,
rate(diameter_response_duration_milliseconds_bucket[5m])
) > 1000
for: 5m
labels:
severity: high
annotations:
summary: "تم اكتشاف ارتفاع في زمن تأخير القطر"
description: "زمن P95 هو {{ $value }}ms"

فشل تفويض OCS:

alert: OCSAuthFailures
expr: |
rate(ocs_authorization_attempts_total{result="no_credit"}[5m]) /
rate(ocs_authorization_attempts_total[5m]) > 0.1
for: 5m
labels:
severity: high
annotations:
summary: "معدل مرتفع من استجابات OCS بدون رصيد"
description: "{{ $value | humanizePercentage }} من الطلبات تم رفضها"

معدل رفض المكالمات مرتفع:

alert: HighCallRejectionRate
expr: |
rate(call_rejections_total[5m]) /
rate(call_attempts_total[5m]) > 0.05
for: 5m
labels:
severity: high
annotations:
summary: "معدل رفض المكالمات فوق 5%"
description: "{{ $value | humanizePercentage }} من المكالمات تم رفضها"

جودة الوسائط رديئة:

alert: PoorMediaQuality
expr: avg(rtp_audio_in_quality_mos) < 3.5
for: 3m
labels:
severity: high
annotations:
summary: "تم اكتشاف جودة مكالمات رديئة"
description: "متوسط درجة MOS هو {{ $value }}"

تنبيهات تحذيرية

استخدام الذاكرة مرتفع:

alert: HighMemoryUsage
expr: |
erlang_vm_memory_bytes_total{kind="processes"} /
(erlang_vm_process_limit * 1000000) > 0.8
for: 10m
labels:
severity: warning
annotations:
summary: "استخدام الذاكرة في VM Erlang مرتفع"
description: "ذاكرة العملية عند {{ $value | humanizePercentage }}"

طول قائمة تشغيل المجدول مرتفع:

alert: HighSchedulerRunQueue
expr: erlang_vm_statistics_run_queues_length > 10
for: 5m
labels:
severity: warning
annotations:
summary: "طول قائمة تشغيل المجدول مرتفع"
description: "طول قائمة التشغيل هو {{ $value }}"

فشل معاملات Mnesia:

alert: MnesiaTransactionFailures
expr: rate(erlang_mnesia_failed_transactions[5m]) > 1
for: 5m
labels:
severity: warning
annotations:
summary: "تم اكتشاف فشل في معاملات Mnesia"
description: "{{ $value }} فشل في الثانية"

↑ العودة إلى الأعلى

استكشاف الأخطاء باستخدام القياسات

المشكلة: القياسات تظهر قيم غير واقعية (نانو ثانية بدلاً من ميلي ثانية)

الأعراض:

  • قيم الهيستوجرام في المليارات
  • قياسات التأخير تظهر قيم ميكروثانية/نانو ثا��ية

السبب: عدم وجود duration_unit: false في إعلان الهيستوجرام

الحل: أضف duration_unit: false إلى جميع إعلانات الهيستوجرام الخاصة بالمدة:

Histogram.declare(
name: :my_metric_duration_milliseconds,
# ... خيارات أخرى ...
duration_unit: false
)

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

خطوات التحقيق:

  1. تحقق من إجمالي وقت توليد خطة الاتصال:
histogram_quantile(0.95, rate(http_dialplan_request_duration_milliseconds_bucket[5m]))
  1. قم بتفكيكها حسب المكون:
# البحث في بيانات المشتركين
histogram_quantile(0.95, rate(subscriber_data_duration_milliseconds_bucket[5m]))

# البحث في HLR
histogram_quantile(0.95, rate(hlr_data_duration_milliseconds_bucket[5m]))

# تفويض OCS
histogram_quantile(0.95, rate(ocs_authorization_duration_milliseconds_bucket[5m]))
  1. تحقق من التأخيرات الخاصة بالوحدة:
histogram_quantile(0.95,
rate(dialplan_module_duration_milliseconds_bucket[5m])
) by (module)

الأسباب الشائعة:

  • تأخير النظام الخارجي (HSS، HLR، OCS)
  • مشكلات الشبكة
  • ت��افس قاعدة البيانات
  • تحميل النظام العالي

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

خطوات التحقيق:

  1. تحقق من أسباب رفض المكالمات:
sum by (reason) (rate(call_rejections_total[5m]))
  1. تحقق من قرارات التفويض:
sum by (decision) (rate(authorization_decisions_total[5m]))
  1. تحقق من صحة نظير القطر:
diameter_peer_state
  1. تحقق من اتصال مقبس الأحداث:
event_socket_connected

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

خطوات التحقيق:

  1. تحقق من حجم المكالمات:
rate(call_attempts_total[5m])
active_calls
  1. تحقق من موارد VM Erlang:
erlang_vm_process_count
erlang_vm_statistics_run_queues_length
erlang_vm_memory_bytes_total
  1. تحقق من جمع القمامة:
rate(erlang_vm_statistics_garbage_collection_number_of_gcs[5m])

المشكلة: جودة الوسائط رديئة

خطوات التحقيق:

  1. تحقق من درجات MOS:
rtp_audio_in_quality_mos
rtp_audio_in_quality_percent
  1. تحقق من التذبذب:
rtp_audio_in_jitter_seconds_max
rtp_audio_in_jitter_loss_rate
  1. تحقق من فقد الحزم:
rtp_audio_in_skip_packets_total
rtp_audio_in_flaw_total
  1. تحقق من استخدام عرض النطاق الترددي:
rate(rtp_audio_in_media_bytes_total[1m]) * 8

↑ العودة إلى الأعلى

أسس الأداء

القيم النموذجية (نظام مضبوط جيدًا)

التأخير (P95):

  • وقت طلب خطة الاتصال HTTP: 200-500ms
  • زمن البحث في بيانات المشتركين (Sh): 50-150ms
  • زمن البحث في بيانات HLR: 100-300ms
  • زمن تفويض OCS: 100-250ms
  • طلبات القطر: 50-200ms
  • معالجة وحدة خطة الاتصال: 10-50ms لكل وحدة

معدلات النجاح:

  • إكمال المكالمات: >95%
  • عمليات البحث في بيانات المشتركين: >99%
  • عمليات البحث في HLR: >98%
  • تفويضات OCS: >99% (باستثناء عدم الائتمان الشرعي)
  • وقت تشغيل نظير القطر: >99.9%

جودة الوسائط:

  • درجة MOS: >4.0
  • نسبة جودة الصوت: >80%
  • التذبذب: <30ms
  • معدل فقد الحزم: <1%

موارد النظام:

  • عدد عمليات Erlang: <50% من الحد
  • ا��تخدام الذاكرة في Erlang: <70% من المتاح
  • قائمة تشغيل المجدول: <5
  • جداول ETS: <1000

تخطيط السعة

سعة كل خادم (الحد الأقصى الموصى به):

  • المكالمات المتزامنة: 500-1000 (يعتمد على الأجهزة)
  • المكالمات في الثانية: 20-50 CPS
  • المشتركين المسجلين: 10,000-50,000

مؤشرات التوسع (أضف سعة عندما):

  • المكالمات النشطة باستمرار >70% من السعة
  • عدد عمليات Erlang >70% من الحد
  • تدهور زمن P95
  • قوائم تشغيل المجدول باستمرار >10

↑ العودة إلى الأعلى

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

استراتيجية المراقبة

  1. قم بإعداد لوحات معلومات لجماهير مختلفة:

    • لوحة معلومات العمليات: حجم المكالمات، معدلات النجاح، صحة النظام
    • لوحة معلومات الهندسة: النسب المئوية للتأخير، معدلات الأخطاء، استخدام الموارد
    • لوحة معلومات تنفيذية: مؤشرات الأداء الرئيسية على مستوى عالٍ، وقت التشغيل، قياسات التكلفة
  2. قم بتكوين التنبيهات على مستويات متعددة:

    • حرجة: صفحة على من يتواجد (النظام معطل، انقطاع كبير)
    • عالية: تنبيه خلال ساعات العمل (أداء متدهور)
    • تحذيرية: تتبع في نظام التذاكر (مشكلات محتملة)
  3. استخدم نطاقات زمنية مناسبة:

    • المراقبة في الوقت الحقيقي: نوافذ 5 دقائق
    • استكشاف الأخطاء: نوافذ من 15 دقيقة إلى ساعة واحدة
    • تخطيط السعة: تجميعات يومية/أسبوعية
  4. ركز على تأثير المستخدم:

    • أعط الأولوية لمؤشرات التأخير من النهاية إلى النهاية
    • تتبع معدلات النجاح بدلاً من عدادات الأخطاء الفردية
    • راقب جودة الوسائط لتجربة المستخدم

أداء الاستعلام

  1. استخدم قواعد التسجيل للاستعلامات المستخدمة بشكل متكرر:
groups:
- name: ims_as_aggregations
interval: 30s
rules:
- record: job:call_attempts:rate5m
expr: rate(call_attempts_total[5m])

- record: job:dialplan_latency:p95
expr: histogram_quantile(0.95, rate(http_dialplan_request_duration_milliseconds_bucket[5m]))
  1. تجنب التسميات ذات الكاردينالية العالية في الاستعلامات (مثل، لا تجمع حسب رقم الهاتف)

  2. استخدم فترات معدل مناسبة:

    • الاتجاهات قصيرة المدى: [5m]
    • الاتجاهات متوسطة المدى: [1h]
    • الاتجاهات طويلة المدى: [1d]

كاردينالية القياس

راقب الكاردينالية لمنع مشكلات أداء Prometheus:

# تحقق من كاردينالية القياس
count by (__name__) ({__name__=~".+"})

مخاطر الكاردينالية العالية:

  • تسميات ذات قيم فريدة لكل مكالمة (أرقام الهواتف، معرفات المكالمات)
  • قيم تسميات غير محدودة
  • تسميات بها >1000 قيمة فريدة

الحل:

  • استخدم التسميات لفئات، وليس لمعرفات فريدة
  • اجمع البيانات ذات الكاردينالية العالية في أنظمة خارجية
  • استخدم قواعد التسجيل للتجميع المسبق

↑ العودة إلى الأعلى