وثائق القياسات
تصف هذه الوثيقة قياسات Prometheus التي تعرضها مكونات خادم تطبيق IMS.
جدول المحتويات
- نقاط نهاية القياسات
- المنفذ 9090 - قياسات النظام
- المنفذ 8080 - قياسات محرك TAS
- قياسات مكالمات التطبيق
- قياسات بروتوكول القطر
- قياسات عمليات الهاتف
- قياسات نظام الشحن عبر الإنترنت (OCS)
- قياسات خطة الاتصال والمعالجة
- قياسات مقبس الأحداث
- قياسات قاعدة بيانات Erlang Mnesia
- قياسات ذاكرة VM Erlang
- إحصائيات VM Erlang
- معلومات نظام VM Erlang
- محاسبة الحالة الدقيقة لـ VM Erlang (MSACC)
- موزعات VM Erlang
- المنفذ 9093 - قياسات الجودة الإعلامية والمكالمات
- قياسات ��قت تشغيل Go
- قياسات العملية
- قياسات HTTP لـ Prometheus
- أنواع القياسات
- الاستخدام
- استعلامات نموذجية
- تكوين وحدة زمنية القياس
- تكامل لوحة معلومات Grafana
- أمثلة على التنبيهات
- استكشاف الأخطاء باستخدام القياسات
- أسس الأداء
- أفضل الممارسات
نقاط نهاية القياسات
| المنفذ | نقطة النهاية | الغرض | الانتقال إلى القسم |
|---|---|---|---|
| 9090 | /metrics | قياسات النظام، والبوابة، والاتصالات الأساسية | المنفذ 9090 → |
| 8080 | /metrics | قياسات محرك TAS، والقطر، وHLR، وOCS، وVM Erlang | المنفذ 8080 → |
| 9093 | /esl?module=default | جودة الوسائط RTP/RTCP وإحصائيات المكالمات | المنفذ 9093 → |
المنفذ 9090 - قياسات النظام
قياسات المكالمات والجلسات
| اسم القياس | المنفذ | الوصف |
|---|---|---|
freeswitch_bridged_calls | 9090 | عدد المكالمات الموصولة النشطة حاليًا |
freeswitch_detailed_bridged_calls | 9090 | عدد المكالمات الموصولة المفصلة النشطة |
freeswitch_current_calls | 9090 | عدد المكالمات النشطة حاليًا |
freeswitch_detailed_calls | 9090 | عدد المكالمات المفصلة النشطة |
freeswitch_current_channels | 9090 | عدد القنوات النشطة حاليًا |
freeswitch_current_sessions | 9090 | عدد الجلسات النشطة حاليًا |
freeswitch_current_sessions_peak | 9090 | الحد الأقصى لعدد الجلسات منذ بدء التشغيل |
freeswitch_current_sessions_peak_last_5min | 9090 | الحد الأقصى لعدد الجلسات في آخر 5 دقائق |
freeswitch_sessions_total | 9090 | إجمالي عدد الجلسات منذ بدء التشغيل (عداد) |
freeswitch_current_sps | 9090 | الجلسات الحالية في الثانية |
freeswitch_current_sps_peak | 9090 | الحد الأقصى للجلسات في الثانية منذ بدء التشغيل |
freeswitch_current_sps_peak_last_5min | 9090 | الحد الأقصى للجلسات في الثانية في آخر 5 دقائق |
freeswitch_max_sessions | 9090 | الحد الأقصى لعدد الجلسات المسموح بها |
freeswitch_max_sps | 9090 | الحد الأقصى للجلسات في الثانية المسموح بها |
قياسات موارد النظام
| اسم القياس | المنفذ | الوصف |
|---|---|---|
freeswitch_current_idle_cpu | 9090 | النسبة المئوية الحالية لوحدة المعالجة المركزية الخاملة |
freeswitch_min_idle_cpu | 9090 | الحد الأدنى للنسبة المئوية لوحدة المعالجة المركزية الخاملة المسجلة |
freeswitch_uptime_seconds | 9090 | وقت التشغيل بالثواني |
freeswitch_time_synced | 9090 | ما إذا كان الوقت النظام متزامنًا مع وقت مضيف المصدر (1=متزامن، 0=غير متزامن) |
قياسات الذاكرة
| اسم القياس | المنفذ | الوصف |
|---|---|---|
freeswitch_memory_arena | 9090 | إجمالي البايتات غير المخصصة (ساحة malloc) |
freeswitch_memory_ordblks | 9090 | عدد الكتل الحرة |
freeswitch_memory_smblks | 9090 | عدد كتل fastbin الحرة |
freeswitch_memory_hblks | 9090 | عدد المناطق المخصصة |
freeswitch_memory_hblkhd | 9090 | بايتات في المناطق المخصصة |
freeswitch_memory_usmblks | 9090 | الحد الأقصى لإجمالي المساحة المخصصة |
freeswitch_memory_fsmblks | 9090 | بايتات حرة محتفظ بها في fastbins |
freeswitch_memory_uordblks | 9090 | إجمالي المساحة المخصصة |
freeswitch_memory_fordblks | 9090 | إجمالي المساحة الحرة |
freeswitch_memory_keepcost | 9090 | الكتلة القابلة للإفراج الأعلى |
قياسات حالة الترميز
| اسم القياس | المنفذ | الوصف |
|---|---|---|
freeswitch_codec_status | 9090 | حالة الترميز مع التسميات: 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_status | 9090 | حالة النقطة النهائية مع التسميات: 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_module | 9090 | حالة تحميل الوحدة (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_registrations | 9090 | إجمالي عدد التسجيلات النشطة |
freeswitch_registration_defails | 9090 | معلومات تسجيل مفصلة مع التسميات: expires, hostname, network_ip, network_port, network_proto, realm, reg_user, token, url |
قياسات بوابة صوفيا
| اسم القياس | المنفذ | الوصف |
|---|---|---|
freeswitch_sofia_gateway_status | 9090 | حالة البوابة مع التسميات: context, name, profile, proxy, scheme, status (UP/DOWN) |
freeswitch_sofia_gateway_call_in | 9090 | عدد المكالمات الواردة عبر البوابة |
freeswitch_sofia_gateway_call_out | 9090 | عدد المكالمات الصادرة عبر البوابة |
freeswitch_sofia_gateway_failed_call_in | 9090 | عدد المكالمات الواردة الفاشلة |
freeswitch_sofia_gateway_failed_call_out | 9090 | عدد المكالمات الصادرة الفاشلة |
freeswitch_sofia_gateway_ping | 9090 | آخر طابع زمني للـ ping (Unix epoch) |
freeswitch_sofia_gateway_pingtime | 9090 | آخر وقت ping بالميلي ثانية |
freeswitch_sofia_gateway_pingfreq | 9090 | تردد ping بالثواني |
freeswitch_sofia_gateway_pingcount | 9090 | عدد الـ pings المرسلة |
freeswitch_sofia_gateway_pingmin | 9090 | الحد الأدنى لوقت ping المسجل |
freeswitch_sofia_gateway_pingmax | 9090 | الحد الأقصى لوقت ping المسجل |
قياسات صحة المصدر
| اسم القياس | المنفذ | الوصف |
|---|---|---|
freeswitch_up | 9090 | ما إذا كانت آخر عملية سحب ناجحة (1=نجاح، 0=فشل) |
freeswitch_exporter_total_scrapes | 9090 | إجمالي عدد عمليات السحب المنفذة (عداد) |
freeswitch_exporter_failed_scrapes | 9090 | إجمالي عدد عمليات السحب الفاشلة (عداد) |
المنفذ 8080 - قياسات محرك TAS
تتعرض هذه القياسات من قبل محرك خادم تطبيق الهاتف وتوفر نظرة على معالجة المكالمات، وعمليات قاعدة البيانات، وأداء VM Erlang.
قياسات مكالمات التطبيق
| اسم القياس | المنفذ | الوصف |
|---|---|---|
call_simulations_total | 8080 | إجمالي عدد محاكيات المكالمات (عداد) |
call_attempts_total | 8080 | إجمالي عدد محاولات المكالمات (عداد) |
call_rejections_total | 8080 | إجمالي عدد رفض المكالمات حسب السبب (عداد) |
call_param_errors_total | 8080 | إجمالي عدد أخطاء تحليل معلمات المكالمات (عداد) |
active_calls | 8080 | عدد المكالمات النشطة حاليًا مع التسميات: call_type (mo/mt/emergency) |
tracked_call_sessions | 8080 | عدد جلسات المكالمات المتعقبة حاليًا في ETS |
قياسات بروتوكول القطر
| اسم القياس | المنفذ | الوصف |
|---|---|---|
diameter_peer_state | 8080 | حالة أقران القطر (1=متصل، 0=غير متصل) مع التسميات: peer_host, peer_realm, application |
diameter_requests_total | 8080 | إجمالي عدد طلبات القطر (عداد) |
diameter_responses_total | 8080 | إجمالي عدد استجابات القطر (عداد) |
diameter_response_duration_milliseconds | 8080 | مدة طلبات القطر بالميلي ثانية (هيستوجرام) |
قياسات عمليات الهاتف
| اسم القياس | المنفذ | الوصف |
|---|---|---|
hlr_lookups_total | 8080 | إجمالي عدد عمليات البحث في HLR (عداد) |
hlr_data_duration_milliseconds | 8080 | مدة استرجاع بيانات HLR بالميلي ثانية (هيستوجرام) |
subscriber_data_lookups_total | 8080 | إجمالي عدد عمليات البحث في بيانات المشتركين (عداد) |
subscriber_data_duration_milliseconds | 8080 | مدة استرجاع بيانات المشتركين من Sh بالميلي ثانية (هيستوجرام) |
ss7_map_operations_total | 8080 | إجمالي عدد عمليات SS7 MAP (عداد) |
ss7_map_http_duration_milliseconds | 8080 | مدة طلبات SS7 MAP HTTP بالميلي ثانية (هيستوجرام) |
tracked_registrations | 8080 | عدد التسجيلات SIP المتعقبة حاليًا |
قياسات نظام الشحن عبر الإنترنت (OCS)
| اسم القياس | المنفذ | الوصف |
|---|---|---|
ocs_authorization_attempts_total | 8080 | إجمالي عدد محاولات تفويض OCS (عداد) |
ocs_authorization_duration_milliseconds | 8080 | مدة تفويض OCS بالميلي ثانية (هيستوجرام) |
online_charging_events_total | 8080 | إجمالي عدد أحداث الشحن عبر الإنترنت (عداد) |
authorization_decisions_total | 8080 | إجمالي عدد قرارات التفويض (عداد) |
ق��اسات خطة الاتصال والمعالجة
| اسم القياس | المنفذ | الوصف |
|---|---|---|
http_requests_total | 8080 | إجمالي عدد طلبات HTTP مع التسميات: endpoint, status_code (عداد) |
http_dialplan_request_duration_milliseconds | 8080 | مدة طلبات خطة الاتصال HTTP بالميلي ثانية (هيستوجرام) |
dialplan_module_duration_milliseconds | 8080 | مدة معالجة وحدة خطة الاتصال الفردية (هيستوجرام) |
freeswitch_variable_set_duration_milliseconds | 8080 | مدة عمليات تعيين المتغيرات (هيستوجرام) |
قياسات مقبس الأحداث
| اسم القياس | المنفذ | الوصف |
|---|---|---|
event_socket_connected | 8080 | حالة اتصال مقبس الأحداث (1=متصل، 0=غير متصل) مع التسمية: connection_type |
event_socket_reconnections_total | 8080 | إجمالي عدد محاولات إعادة الاتصال بمقبس الأحداث (عداد) |
قياسات قاعدة بيانات Erlang Mnesia
| اسم القياس | المنفذ | الوصف |
|---|---|---|
erlang_mnesia_held_locks | 8080 | عدد الأقفال المحتفظ بها |
erlang_mnesia_lock_queue | 8080 | عدد المعاملات التي تنتظر قفلًا |
erlang_mnesia_transaction_participants | 8080 | عدد معاملات المشاركين |
erlang_mnesia_transaction_coordinators | 8080 | عدد معاملات المنسقين |
erlang_mnesia_failed_transactions | 8080 | عدد المعاملات الفاشلة (المتوقفة) (عداد) |
erlang_mnesia_committed_transactions | 8080 | عدد المعاملات الملتزمة (عداد) |
erlang_mnesia_logged_transactions | 8080 | عدد المعاملات المسجلة (عداد) |
erlang_mnesia_restarted_transactions | 8080 | إجمالي عدد إعادة تشغيل المعاملات (عداد) |
erlang_mnesia_memory_usage_bytes | 8080 | إجمالي البايتات المخصصة من جميع جداول mnesia |
erlang_mnesia_tablewise_memory_usage_bytes | 8080 | البايتات المخصصة لكل جدول mnesia مع التسمية: table |
erlang_mnesia_tablewise_size | 8080 | عدد الصفوف لكل جدول مع التسمية: table |
قياسات ذاكرة VM Erlang
| اسم القياس | المنفذ | الوصف |
|---|---|---|
erlang_vm_memory_atom_bytes_total | 8080 | الذاكرة المخصصة للذرات مع التسمية: usage (used/free) |
erlang_vm_memory_bytes_total | 8080 | إجمالي الذاكرة المخصصة مع التسمية: kind (system/processes) |
erlang_vm_memory_dets_tables | 8080 | عدد جداول DETS |
erlang_vm_memory_ets_tables | 8080 | عدد جداول ETS |
erlang_vm_memory_processes_bytes_total | 8080 | الذاكرة المخصصة للعمليات مع التسمية: usage (used/free) |
erlang_vm_memory_system_bytes_total | 8080 | الذاكرة لمحاكي (غير مرتبطة بالعمليات) مع التسمية: usage (atom/binary/code/ets/other) |
إحصائيات VM Erlang
| اسم القياس | المنفذ | الوصف |
|---|---|---|
erlang_vm_statistics_bytes_output_total | 8080 | إجمالي البايتات المخرجة إلى المنافذ (عداد) |
erlang_vm_statistics_bytes_received_total | 8080 | إجمالي البايتات المستلمة عبر المنافذ (عداد) |
erlang_vm_statistics_context_switches | 8080 | إجمالي تبديلات السياق منذ بدء التشغيل (عداد) |
erlang_vm_statistics_dirty_cpu_run_queue_length | 8080 | طول قائمة تشغيل وحدة المعالجة المركزية المتسخة |
erlang_vm_statistics_dirty_io_run_queue_length | 8080 | طول قائمة ت��غيل الإدخال/الإخراج المتسخة |
erlang_vm_statistics_garbage_collection_number_of_gcs | 8080 | عدد عمليات جمع القمامة (عداد) |
erlang_vm_statistics_garbage_collection_bytes_reclaimed | 8080 | البايتات المستردة بواسطة GC (عداد) |
erlang_vm_statistics_garbage_collection_words_reclaimed | 8080 | الكلمات المستردة بواسطة GC (عداد) |
erlang_vm_statistics_reductions_total | 8080 | إجمالي التخفيضات (عداد) |
erlang_vm_statistics_run_queues_length | 8080 | طول قوائم التشغيل العادية |
erlang_vm_statistics_runtime_milliseconds | 8080 | مجموع وقت التشغيل لجميع الخيوط (عداد) |
erlang_vm_statistics_wallclock_time_milliseconds | 8080 | الوقت الحقيقي المقاس (عداد) |
معلومات نظام VM Erlang
| اسم القياس | المنفذ | الوصف |
|---|---|---|
erlang_vm_dirty_cpu_schedulers | 8080 | عدد خيوط جدولة وحدة المعالجة المركزية المتسخة |
erlang_vm_dirty_cpu_schedulers_online | 8080 | عدد جدولة وحدة المعالجة المركزية المتسخة المتصلة |
erlang_vm_dirty_io_schedulers | 8080 | عدد خيوط جدولة الإدخال/الإخراج المتسخة |
erlang_vm_ets_limit | 8080 | الحد الأقصى لعدد جداول ETS المسموح بها |
erlang_vm_logical_processors | 8080 | عدد المعالجات المنطقية المكونة |
erlang_vm_logical_processors_available | 8080 | عدد المعالجات المنطقية المتاحة |
erlang_vm_logical_processors_online | 8080 | عدد المعالجات المنطقية المتصلة |
erlang_vm_port_count | 8080 | عدد المنافذ الموجودة حاليًا |
erlang_vm_port_limit | 8080 | الحد الأقصى لعدد المنافذ المسموح بها |
erlang_vm_process_count | 8080 | عدد العمليات الموجودة حاليًا |
erlang_vm_process_limit | 8080 | الحد الأقصى لعدد العمليات المسموح بها |
erlang_vm_schedulers | 8080 | عدد خيوط الجدولة |
erlang_vm_schedulers_online | 8080 | عدد المجدولين المتصلين |
erlang_vm_smp_support | 8080 | 1 إذا تم تجميعه مع دعم SMP، 0 خلاف ذلك |
erlang_vm_threads | 8080 | 1 إذا تم تجميعه مع دعم الخيوط، 0 خلاف ذلك |
erlang_vm_thread_pool_size | 8080 | عدد خيوط غير المتزامنة في المسبح |
erlang_vm_time_correction | 8080 | 1 إذا تم تمكين تصحيح الوقت، 0 خلاف ذلك |
erlang_vm_wordsize_bytes | 8080 | حجم كلمات مصطلحات Erlang بالبايت |
erlang_vm_atom_count | 8080 | عدد الذرات الموجودة حاليًا |
erlang_vm_atom_limit | 8080 | الحد الأقصى لعدد الذرات المسموح بها |
محاسبة الحالة الدقيقة لـ VM Erlang (MSACC)
تتبع الوقت التفصيلي لأنشطة الجدولة مع التسميات: type, id
| اسم القياس | المنفذ | الوصف |
|---|---|---|
erlang_vm_msacc_aux_seconds_total | 8080 | الوقت المستغرق في التعامل مع الوظائف المساعدة (عداد) |
erlang_vm_msacc_check_io_seconds_total | 8080 | الوقت المستغرق في التحقق من أحداث الإدخال/الإخراج الجديدة (عداد) |
erlang_vm_msacc_emulator_seconds_total | 8080 | الوقت المستغرق في تنفيذ عمليات Erlang (عداد) |
erlang_vm_msacc_gc_seconds_total | 8080 | الوقت المستغرق في جمع القمامة (عداد) |
erlang_vm_msacc_other_seconds_total | 8080 | الوقت المستغرق في الأنشطة غير المحسوبة (عداد) |
erlang_vm_msacc_port_seconds_total | 8080 | الوقت المستغرق في تنفيذ المنافذ (عداد) |
erlang_vm_msacc_sleep_seconds_total | 8080 | الوقت المستغرق في النوم (عداد) |
erlang_vm_msacc_alloc_seconds_total | 8080 | الوقت المستغرق في إدارة الذاكرة (عداد) |
erlang_vm_msacc_bif_seconds_total | 8080 | الوقت المستغرق في BIFs (عداد) |
erlang_vm_msacc_busy_wait_seconds_total | 8080 | الوقت المستغرق في الانتظار المشغول (عداد) |
erlang_vm_msacc_ets_seconds_total | 8080 | الوقت المستغرق في BIFs الخاصة بـ ETS (عداد) |
erlang_vm_msacc_gc_full_seconds_total | 8080 | الوقت المستغرق في جمع القمامة الكامل (عداد) |
erlang_vm_msacc_nif_seconds_total | 8080 | الوقت المستغرق في NIFs (عداد) |
erlang_vm_msacc_send_seconds_total | 8080 | الوقت المستغرق في إرسال الرسائل (عداد) |
erlang_vm_msacc_timers_seconds_total | 8080 | الوقت المستغرق في إدارة المؤقتات (عداد) |
موزعات VM Erlang
قياسات موزع الذاكرة التفصيلية مع التسميات: alloc, instance_no, kind, usage
| اسم القياس | المنفذ | الوصف |
|---|---|---|
erlang_vm_allocators | 8080 | الذاكرة المخصصة (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_info | 9093 | معلومات النظام مع التسمية: version |
freeswitch_up | 9093 | حالة الاستعداد (1=جاهز، 0=غير جاهز) |
freeswitch_stack_bytes | 9093 | حجم المكدس بالبايت |
freeswitch_session_total | 9093 | إجمالي عدد الجلسات |
freeswitch_session_active | 9093 | عدد الجلسات النشطة |
freeswitch_session_limit | 9093 | حد الجلسات |
rtp_channel_info | 9093 | معلومات قناة RTP مع التسميات لتفاصيل القناة |
RTP الصوت - عدادات ا��بايت
| اسم القياس | المنفذ | الوصف |
|---|---|---|
rtp_audio_in_raw_bytes_total | 9093 | إجمالي البايتات المستلمة (بما في ذلك الرؤوس) |
rtp_audio_out_raw_bytes_total | 9093 | إجمالي البايتات المرسلة (بما في ذلك الرؤوس) |
rtp_audio_in_media_bytes_total | 9093 | إجمالي بايتات الوسائط المستلمة (payload فقط) |
rtp_audio_out_media_bytes_total | 9093 | إجمالي بايتات الوسائط المرسلة (payload فقط) |
RTP الصوت - عدادات الحزم
| اسم القياس | المنفذ | الوصف |
|---|---|---|
rtp_audio_in_packets_total | 9093 | إجمالي الحزم المستلمة |
rtp_audio_out_packets_total | 9093 | إجمالي الحزم المرسلة |
rtp_audio_in_media_packets_total | 9093 | إجمالي حزم الوسائط المستلمة |
rtp_audio_out_media_packets_total | 9093 | إجمالي حزم الوسائط المرسلة |
rtp_audio_in_skip_packets_total | 9093 | الحزم الواردة التي تم تجاهلها |
rtp_audio_out_skip_packets_total | 9093 | الحزم الصادرة التي تم تجاهلها |
RTP الصوت - أنواع الحزم الخاصة
| اسم القياس | المنفذ | الوصف |
|---|---|---|
rtp_audio_in_jitter_packets_total | 9093 | حزم الذاكرة المؤقتة المستلمة |
rtp_audio_in_dtmf_packets_total | 9093 | حزم DTMF المستلمة |
rtp_audio_out_dtmf_packets_total | 9093 | حزم DTMF المرسلة |
rtp_audio_in_cng_packets_total | 9093 | حزم توليد الضوضاء المريحة المستلمة |
rtp_audio_out_cng_packets_total | 9093 | حزم توليد الضوضاء المريحة المرسلة |
rtp_audio_in_flush_packets_total | 9093 | الحزم التي تم تفريغها (إعادة تعيين الذاكرة المؤقتة) |
RTP الصوت - قياسات التذبذب والجودة
| اسم القياس | المنفذ | الوصف |
|---|---|---|
rtp_audio_in_jitter_buffer_bytes_max | 9093 | أكبر حجم لذاكرة التذبذب بالبايت |
rtp_audio_in_jitter_seconds_min | 9093 | الحد الأدنى للتذبذب بالثواني |
rtp_audio_in_jitter_seconds_max | 9093 | الحد الأقصى للتذبذب بالثواني |
rtp_audio_in_jitter_loss_rate | 9093 | معدل فقد الحزم بسبب التذبذب (نسبة) |
rtp_audio_in_jitter_burst_rate | 9093 | معدل انفج��ر الحزم بسبب التذبذب (نسبة) |
rtp_audio_in_mean_interval_seconds | 9093 | المتوسط الزمني بين الحزم الواردة |
rtp_audio_in_flaw_total | 9093 | إجمالي العيوب الصوتية المكتشفة (تشويش، عيوب) |
rtp_audio_in_quality_percent | 9093 | جودة الصوت كنسبة مئوية (0-100) |
rtp_audio_in_quality_mos | 9093 | متوسط تقييم الرأي (1-5، حيث 5 هو الأفضل) |
RTCP القياسات
| اسم القياس | المنفذ | الوصف |
|---|---|---|
rtcp_audio_bytes_total | 9093 | إجمالي بايتات RTCP |
rtcp_audio_packets_total | 9093 | إجمالي حزم RTCP |
قياسات وقت تشغيل Go
| اسم القياس | المنفذ | الوصف |
|---|---|---|
go_goroutines | 9090 | عدد خيوط goroutines النشطة حاليًا |
go_threads | 9090 | عدد خيوط نظام التشغيل التي تم إنشاؤها |
go_info | 9090 | معلومات حول بيئة Go (مع تسمية الإصدار) |
go_gc_duration_seconds | 9090 | مدة توقف دورات جمع القمامة (ملخص) |
go_memstats_alloc_bytes | 9090 | عدد البايتات المخصصة وما زالت قيد الاستخدا�� |
go_memstats_alloc_bytes_total | 9090 | إجمالي عدد البايتات المخصصة (عداد) |
go_memstats_heap_alloc_bytes | 9090 | بايتات الكومة المخصصة وما زالت قيد الاستخدام |
go_memstats_heap_idle_bytes | 9090 | بايتات الكومة التي تنتظر الاستخدام |
go_memstats_heap_inuse_bytes | 9090 | بايتات الكومة المستخدمة حاليًا |
go_memstats_heap_objects | 9090 | عدد كائنات الكومة المخصصة |
go_memstats_heap_released_bytes | 9090 | بايتات الكومة المفرج عنها إلى نظام التشغيل |
go_memstats_heap_sys_bytes | 9090 | بايتات الكومة التي تم الحصول عليها من النظام |
go_memstats_sys_bytes | 9090 | إجمالي البايتات التي تم الحصول عليها من النظام |
قياسات العملية
| اسم القياس | المنفذ | الوصف |
|---|---|---|
process_cpu_seconds_total | 9090 | إجمالي وقت CPU المستخدم في النظام والمستخدم (عداد) |
process_max_fds | 9090 | الحد الأقصى لعدد أوصاف الملفات المفتوحة |
process_open_fds | 9090 | العدد الحالي لأوصاف الملفات ا��مفتوحة |
process_resident_memory_bytes | 9090 | حجم الذاكرة المقيمة بالبايت |
process_virtual_memory_bytes | 9090 | حجم الذاكرة الافتراضية بالبايت |
process_virtual_memory_max_bytes | 9090 | الحد الأقصى لمقدار الذاكرة الافتراضية المتاحة |
process_start_time_seconds | 9090 | وقت بدء العملية منذ Unix epoch |
قياسات HTTP لـ Prometheus
| اسم القياس | المنفذ | الوصف |
|---|---|---|
promhttp_metric_handler_requests_in_flight | 9090 | العدد الحالي لعمليات السحب التي يتم تقديمها |
promhttp_metric_handler_requests_total | 9090 | إجمالي عدد عمليات السحب حسب رمز حالة 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 في إعلانات الهيستوجرام الخاصة بها. هذا حرج لأنه:
- تكتشف مكتبة Elixir الخاصة بـ Prometheus تلقائيًا أسماء القياسات التي تنتهي بـ
_milliseconds - بشكل افتراضي، تقوم بتحويل وحدات الوقت الأصلية لـ Erlang إلى ميلي ثانية تلقائيًا
- يقوم كودنا بالفعل بتحويل الوقت إلى ميلي ثانية باستخدام
System.convert_time_unit/3 - بدون
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
)
المشكلة: المكالمات بطيئة
خطوات التحقيق:
- تحقق من إجمالي وقت توليد خطة الاتصال:
histogram_quantile(0.95, rate(http_dialplan_request_duration_milliseconds_bucket[5m]))
- قم بتفكيكها حسب المكون:
# البحث في بيانات المشتركين
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]))
- تحقق من التأخيرات الخاصة بالوحدة:
histogram_quantile(0.95,
rate(dialplan_module_duration_milliseconds_bucket[5m])
) by (module)
الأسباب الشائعة:
- تأخير النظام الخارجي (HSS، HLR، OCS)
- مشكلات الشبكة
- ت��افس قاعدة البيانات
- تحميل النظام العالي
المشكلة: فشل المكالمات
خطوات التحقيق:
- تحقق من أسباب رفض المكالمات:
sum by (reason) (rate(call_rejections_total[5m]))
- تحقق من قرارات التفويض:
sum by (decision) (rate(authorization_decisions_total[5m]))
- تحقق من صحة نظير القطر:
diameter_peer_state
- تحقق من اتصال مقبس الأحداث:
event_socket_connected
المشكلة: تحميل مرتفع
خطوات التحقيق:
- تحقق من حجم المكالمات:
rate(call_attempts_total[5m])
active_calls
- تحقق من موارد VM Erlang:
erlang_vm_process_count
erlang_vm_statistics_run_queues_length
erlang_vm_memory_bytes_total
- تحقق من جمع القمامة:
rate(erlang_vm_statistics_garbage_collection_number_of_gcs[5m])
المشكلة: جودة الوسائط رديئة
خطوات التحقيق:
- تحقق من درجات MOS:
rtp_audio_in_quality_mos
rtp_audio_in_quality_percent
- تحقق من التذبذب:
rtp_audio_in_jitter_seconds_max
rtp_audio_in_jitter_loss_rate
- تحقق من فقد الحزم:
rtp_audio_in_skip_packets_total
rtp_audio_in_flaw_total
- تحقق من استخدام عرض النطاق الترددي:
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
أفضل الممارسات
استراتيجية المراقبة
-
قم بإعداد لوحات معلومات لجماهير مختلفة:
- لوحة معلومات العمليات: حجم المكالمات، معدلات النجاح، صحة النظام
- لوحة معلومات الهندسة: النسب المئوية للتأخير، معدلات الأخطاء، استخدام الموارد
- لوحة معلومات تنفيذية: مؤشرات الأداء الرئيسية على مستوى عالٍ، وقت التشغيل، قياسات التكلفة
-
قم بتكوين التنبيهات على مستويات متعددة:
- حرجة: صفحة على من يتواجد (النظام معطل، انقطاع كبير)
- عالية: تنبيه خلال ساعات العمل (أداء متدهور)
- تحذيرية: تتبع في نظام التذاكر (مشكلات محتملة)
-
استخدم نطاقات زمنية مناسبة:
- المراقبة في الوقت الحقيقي: نوافذ 5 دقائق
- استكشاف الأخطاء: نوافذ من 15 دقيقة إلى ساعة واحدة
- تخطيط السعة: تجميعات يومية/أسبوعية
-
ركز على تأثير المستخدم:
- أعط الأولوية لمؤشرات التأخير من النهاية إلى النهاية
- تتبع معدلات النجاح بدلاً من عدادات الأخطاء الفردية
- راقب جودة الوسائط لتجربة المستخدم
أداء الاستعلام
- استخدم قواعد التسجيل للاستعلامات المستخدمة بشكل متكرر:
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]))
-
تجنب التسميات ذات الكاردينالية العالية في الاستعلامات (مثل، لا تجمع حسب رقم الهاتف)
-
استخدم فترات معدل مناسبة:
- الاتجاهات قصيرة المدى:
[5m] - الاتجاهات متوسطة المدى:
[1h] - الاتجاهات طويلة المدى:
[1d]
- الاتجاهات قصيرة المدى:
كاردينالية القياس
راقب الكاردينالية لمنع مشكلات أداء Prometheus:
# تحقق من كاردينالية القياس
count by (__name__) ({__name__=~".+"})
مخاطر الكاردينالية العالية:
- تسميات ذات قيم فريدة لكل مكالمة (أرقام الهواتف، معرفات المكالمات)
- قيم تسميات غير محدودة
- تسميات بها >1000 قيمة فريدة
الحل:
- استخدم التسميات لفئات، وليس لمعرفات فريدة
- اجمع البيانات ذات الكاردينالية العالية في أنظمة خارجية
- استخدم قواعد التسجيل للتجميع المسبق