Aller au contenu principal

Documentation des Métriques

Ce document décrit les métriques Prometheus exposées par les composants du serveur d'applications IMS.

Table des Matières

Points de terminaison des métriques

PortPoint de terminaisonObjectifAller à la section
9090/metricsMétriques système, passerelle et téléphonie de basePort 9090 →
8080/metricsMétriques moteur TAS, Diameter, HLR, OCS et VM ErlangPort 8080 →
9093/esl?module=defaultQualité des médias RTP/RTCP et statistiques d'appelsPort 9093 →

Port 9090 - Métriques Système

Métriques d'Appels et de Sessions

Nom de la métriquePortDescription
freeswitch_bridged_calls9090Nombre d'appels en pont actuellement actifs
freeswitch_detailed_bridged_calls9090Nombre d'appels en pont détaillés actifs
freeswitch_current_calls9090Nombre d'appels actuellement actifs
freeswitch_detailed_calls9090Nombre d'appels détaillés actifs
freeswitch_current_channels9090Nombre de canaux actuellement actifs
freeswitch_current_sessions9090Nombre de sessions actuellement actives
freeswitch_current_sessions_peak9090Nombre maximum de sessions depuis le démarrage
freeswitch_current_sessions_peak_last_5min9090Nombre maximum de sessions dans les 5 dernières minutes
freeswitch_sessions_total9090Nombre total de sessions depuis le démarrage (compteur)
freeswitch_current_sps9090Sessions actuelles par seconde
freeswitch_current_sps_peak9090Sessions maximales par seconde depuis le démarrage
freeswitch_current_sps_peak_last_5min9090Sessions maximales par seconde dans les 5 dernières minutes
freeswitch_max_sessions9090Nombre maximum de sessions autorisées
freeswitch_max_sps9090Maximum de sessions par seconde autorisées

Métriques des Ressources Système

Nom de la métriquePortDescription
freeswitch_current_idle_cpu9090Pourcentage actuel de CPU inactif
freeswitch_min_idle_cpu9090Pourcentage minimum de CPU inactif enregistré
freeswitch_uptime_seconds9090Temps de fonctionnement en secondes
freeswitch_time_synced9090Si l'heure système est synchronisée avec l'heure de l'hôte exportateur (1=synchronisé, 0=non synchronisé)

Métriques de Mémoire

Nom de la métriquePortDescription
freeswitch_memory_arena9090Total des bytes non mmappés (arène malloc)
freeswitch_memory_ordblks9090Nombre de morceaux libres
freeswitch_memory_smblks9090Nombre de blocs fastbin libres
freeswitch_memory_hblks9090Nombre de régions mappées
freeswitch_memory_hblkhd9090Bytes dans les régions mappées
freeswitch_memory_usmblks9090Espace total alloué maximum
freeswitch_memory_fsmblks9090Bytes libres détenus dans les fastbins
freeswitch_memory_uordblks9090Espace total alloué
freeswitch_memory_fordblks9090Espace total libre
freeswitch_memory_keepcost9090Bloc libérable le plus haut

Métriques de Statut des Codecs

Nom de la métriquePortDescription
freeswitch_codec_status9090Statut du codec avec des étiquettes : ikey (module), name (nom du codec), type (codec). Valeur=1 indique que le codec est disponible

Les Codecs Disponibles Incluent :

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

Métriques de Statut des Points de Terminaison

Nom de la métriquePortDescription
freeswitch_endpoint_status9090Statut du point de terminaison avec des étiquettes : ikey (module), name (nom du point de terminaison), type (point de terminaison). Valeur=1 indique que le point de terminaison est disponible

Les Points de Terminaison Disponibles Incluent :

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

Métriques de Statut des Modules

Nom de la métriquePortDescription
freeswitch_load_module9090Statut de chargement du module (1=chargé, 0=non chargé) avec l'étiquette : module

Modules Clés Surveillés :

  • mod_sofia (SIP)
  • mod_conference, mod_conference_ims
  • mod_opus, mod_g729, mod_amr, etc.
  • mod_event_socket
  • mod_dptools
  • mod_python3
  • mod_rtc
  • Et bien d'autres...

Métriques d'Enregistrement

Nom de la métriquePortDescription
freeswitch_registrations9090Nombre total d'enregistrements actifs
freeswitch_registration_defails9090Informations d'enregistrement détaillées avec des étiquettes : expires, hostname, network_ip, network_port, network_proto, realm, reg_user, token, url

Métriques de la Passerelle Sofia

Nom de la métriquePortDescription
freeswitch_sofia_gateway_status9090Statut de la passerelle avec des étiquettes : context, name, profile, proxy, scheme, status (UP/DOWN)
freeswitch_sofia_gateway_call_in9090Nombre d'appels entrants à travers la passerelle
freeswitch_sofia_gateway_call_out9090Nombre d'appels sortants à travers la passerelle
freeswitch_sofia_gateway_failed_call_in9090Nombre d'appels entrants échoués
freeswitch_sofia_gateway_failed_call_out9090Nombre d'appels sortants échoués
freeswitch_sofia_gateway_ping9090Dernière horodatage de ping (époque Unix)
freeswitch_sofia_gateway_pingtime9090Dernière durée de ping en millisecondes
freeswitch_sofia_gateway_pingfreq9090Fréquence de ping en secondes
freeswitch_sofia_gateway_pingcount9090Nombre de pings envoyés
freeswitch_sofia_gateway_pingmin9090Durée de ping minimale enregistrée
freeswitch_sofia_gateway_pingmax9090Durée de ping maximale enregistrée

Métriques de Santé de l'Exportateur

Nom de la métriquePortDescription
freeswitch_up9090Si le dernier scrape a été réussi (1=succès, 0=échec)
freeswitch_exporter_total_scrapes9090Nombre total de scrapes effectués (compteur)
freeswitch_exporter_failed_scrapes9090Nombre total de scrapes échoués (compteur)

↑ Retour en haut

Port 8080 - Métriques du Moteur TAS

Ces métriques sont exposées par le moteur du Serveur d'Applications de Téléphonie et fournissent des informations sur le traitement des appels, les opérations de base de données et la performance de la VM Erlang.

Métriques d'Appels d'Application

Nom de la métriquePortDescription
call_simulations_total8080Nombre total de simulations d'appels (compteur)
call_attempts_total8080Nombre total de tentatives d'appels (compteur)
call_rejections_total8080Nombre total de rejets d'appels par raison (compteur)
call_param_errors_total8080Nombre total d'erreurs de parsing des paramètres d'appel (compteur)
active_calls8080Nombre d'appels actuellement actifs avec des étiquettes : call_type (mo/mt/emergency)
tracked_call_sessions8080Nombre de sessions d'appels actuellement suivies dans ETS

Métriques du Protocole Diameter

Nom de la métriquePortDescription
diameter_peer_state8080État des pairs Diameter (1=up, 0=down) avec des étiquettes : peer_host, peer_realm, application
diameter_requests_total8080Nombre total de requêtes Diameter (compteur)
diameter_responses_total8080Nombre total de réponses Diameter (compteur)
diameter_response_duration_milliseconds8080Durée des requêtes Diameter en millisecondes (histogramme)

Métriques des Opérations de Téléphonie

Nom de la métriquePortDescription
hlr_lookups_total8080Nombre total de recherches HLR (compteur)
hlr_data_duration_milliseconds8080Durée de la récupération des données HLR en millisecondes (histogramme)
subscriber_data_lookups_total8080Nombre total de recherches de donn��es d'abonnés (compteur)
subscriber_data_duration_milliseconds8080Durée de la récupération des données d'abonnés Sh en millisecondes (histogramme)
ss7_map_operations_total8080Nombre total d'opérations SS7 MAP (compteur)
ss7_map_http_duration_milliseconds8080Durée des requêtes HTTP SS7 MAP en millisecondes (histogramme)
tracked_registrations8080Nombre d'enregistrements SIP actuellement suivis

Métriques du Système de Chargement en Ligne (OCS)

Nom de la métriquePortDescription
ocs_authorization_attempts_total8080Nombre total de tentatives d'autorisation OCS (compteur)
ocs_authorization_duration_milliseconds8080Durée de l'autorisation OCS en millisecondes (histogramme)
online_charging_events_total8080Nombre total d'événements de chargement en ligne (compteur)
authorization_decisions_total8080Nombre total de décisions d'autorisation (compteur)

Métriques de Traitement & de Plan de Numérotation

Nom de la métriquePortDescription
http_requests_total8080Nombre total de requêtes HTTP avec des étiquettes : endpoint, status_code (compteur)
http_dialplan_request_duration_milliseconds8080Durée des requêtes de plan de numérotation HTTP en millisecondes (histogramme)
dialplan_module_duration_milliseconds8080Durée du traitement des modules de plan de numérotation individuels (histogramme)
freeswitch_variable_set_duration_milliseconds8080Durée des opérations de définition de variables (histogramme)

Métriques de Socket d'Événements

Nom de la métriquePortDescription
event_socket_connected8080État de la connexion Socket d'Événements (1=connecté, 0=déconnecté) avec l'étiquette : connection_type
event_socket_reconnections_total8080Nombre total de tentatives de reconnexion Socket d'Événements (compteur) avec des étiquettes : connection_type, result
event_socket_commands_total8080Nombre total de commandes Socket d'Événements exécutées (compteur) avec des étiquettes : command_type, result
event_socket_command_timeouts_total8080Nombre total de délais d'attente de commandes Socket d'Événements (compteur) avec l'étiquette : command_type

Types de Commandes Suivies :

  • uuid_setvar, uuid_dump, uuid_kill, uuid_transfer
  • uuid_set_media_stats
  • sched_hangup, sched_transfer
  • vm_boxcount
  • status, echo, show, sofia

Valeurs de Résultat :

  • success : La commande a été exécutée avec succès
  • timeout : La commande a dépassé le seuil de délai d'attente
  • error : La commande a renvoyé une réponse inattendue

Métriques d'Utilisation des Fonctionnalités

Nom de la métriquePortDescription
feature_invocations_total8080Nombre total d'invocations de fonctionnalités TAS (compteur) avec des étiquettes : feature, call_type, result
feature_data_source_total8080Nombre total d'utilisations de sources de données de fonctionnalités (compteur) avec des étiquettes : feature, source

Fonctionnalités :

  • call_forward_all - Transfert d'appel inconditionnel
  • call_forward_not_reachable - Transfert d'appel lorsque l'abonné n'est pas joignable
  • call_forward_no_reply - Transfert d'appel en cas de non-réponse
  • call_barring - Blocage d'appels basé sur l'OCS (crédit insuffisant)
  • cli_withheld - Confidentialité/sélection CLI

Types d'Appels : mo, mt

Sources de Données : sh_interface, hlr, config_fallback

Valeurs de Résultat : success, error, skipped

Métriques de Déclenchement SMS

Nom de la métriquePortDescription
sms_trigger_attempts_total8080Nombre total de tentatives de déclenchement SMS (compteur) avec des étiquettes : trigger_type, result
sms_trigger_errors_total8080Nombre total d'erreurs de déclenchement SMS (compteur) avec des étiquettes : trigger_type, error_stage
smsc_requests_total8080Nombre total de requêtes HTTP SMSC (compteur) avec des étiquettes : message_type, result

Types de Déclencheurs : voicemail_deposit, voicemail_clear

Étapes d'Erreur : vm_boxcount, template_render, smsc_request

Types de Messages : notification, mwi

Valeurs de Résultat : success, error

Métriques de Base de Données Erlang Mnesia

Nom de la métriquePortDescription
erlang_mnesia_held_locks8080Nombre de verrous détenus
erlang_mnesia_lock_queue8080Nombre de transactions en attente d'un verrou
erlang_mnesia_transaction_participants8080Nombre de transactions participantes
erlang_mnesia_transaction_coordinators8080Nombre de transactions coordinatrices
erlang_mnesia_failed_transactions8080Nombre de transactions échouées (avortées) (compteur)
erlang_mnesia_committed_transactions8080Nombre de transactions validées (compteur)
erlang_mnesia_logged_transactions8080Nombre de transactions enregistrées (compteur)
erlang_mnesia_restarted_transactions8080Nombre total de redémarrages de transactions (compteur)
erlang_mnesia_memory_usage_bytes8080Total des bytes alloués par toutes les tables mnesia
erlang_mnesia_tablewise_memory_usage_bytes8080Bytes alloués par table mnesia avec l'étiquette : table
erlang_mnesia_tablewise_size8080Nombre de lignes par table avec l'étiquette : table

Métriques de Mémoire de la VM Erlang

Nom de la métriquePortDescription
erlang_vm_memory_atom_bytes_total8080Mémoire allouée pour les atomes avec l'étiquette : usage (used/free)
erlang_vm_memory_bytes_total8080Total de mémoire allouée avec l'étiquette : kind (system/processes)
erlang_vm_memory_dets_tables8080Nombre de tables DETS
erlang_vm_memory_ets_tables8080Nombre de tables ETS
erlang_vm_memory_processes_bytes_total8080Mémoire allouée pour les processus avec l'étiquette : usage (used/free)
erlang_vm_memory_system_bytes_total8080Mémoire pour l'émulateur (non liée aux processus) avec l'étiquette : usage (atom/binary/code/ets/other)

Statistiques de la VM Erlang

Nom de la métriquePortDescription
erlang_vm_statistics_bytes_output_total8080Total de bytes sortis vers les ports (compteur)
erlang_vm_statistics_bytes_received_total8080Total de bytes reçus à travers les ports (compteur)
erlang_vm_statistics_context_switches8080Total des changements de contexte depuis le démarrage (compteur)
erlang_vm_statistics_dirty_cpu_run_queue_length8080Longueur de la file d'attente d'exécution CPU sale
erlang_vm_statistics_dirty_io_run_queue_length8080Longueur de la file d'attente d'exécution IO sale
erlang_vm_statistics_garbage_collection_number_of_gcs8080Nombre de collectes de déchets (compteur)
erlang_vm_statistics_garbage_collection_bytes_reclaimed8080Bytes récupérés par le GC (compteur)
erlang_vm_statistics_garbage_collection_words_reclaimed8080Mots récupérés par le GC (compteur)
erlang_vm_statistics_reductions_total8080Total des réductions (compteur)
erlang_vm_statistics_run_queues_length8080Longueur des files d'attente normales
erlang_vm_statistics_runtime_milliseconds8080Somme du temps d'exécution pour tous les threads (compteur)
erlang_vm_statistics_wallclock_time_milliseconds8080Temps réel mesuré (compteur)

Informations Système de la VM Erlang

Nom de la métriquePortDescription
erlang_vm_dirty_cpu_schedulers8080Nombre de threads de planificateur CPU sale
erlang_vm_dirty_cpu_schedulers_online8080Nombre de planificateurs CPU sale en ligne
erlang_vm_dirty_io_schedulers8080Nombre de threads de planificateur I/O sale
erlang_vm_ets_limit8080Nombre maximum de tables ETS autorisées
erlang_vm_logical_processors8080Nombre de processeurs logiques configurés
erlang_vm_logical_processors_available8080Nombre de processeurs logiques disponibles
erlang_vm_logical_processors_online8080Nombre de processeurs logiques en ligne
erlang_vm_port_count8080Nombre de ports actuellement existants
erlang_vm_port_limit8080Nombre maximum de ports autorisés
erlang_vm_process_count8080Nombre de processus actuellement existants
erlang_vm_process_limit8080Nombre maximum de processus autorisés
erlang_vm_schedulers8080Nombre de threads de planificateur
erlang_vm_schedulers_online8080Nombre de planificateurs en ligne
erlang_vm_smp_support80801 si compilé avec support SMP, 0 sinon
erlang_vm_threads80801 si compilé avec support des threads, 0 sinon
erlang_vm_thread_pool_size8080Nombre de threads asynchrones dans le pool
erlang_vm_time_correction80801 si la correction de temps est activée, 0 sinon
erlang_vm_wordsize_bytes8080Taille des mots de termes Erlang en bytes
erlang_vm_atom_count8080Nombre d'atomes actuellement existants
erlang_vm_atom_limit8080Nombre maximum d'atomes autorisés

Comptabilité de Micro-État de la VM Erlang (MSACC)

Suivi détaillé du temps pour les activités des planificateurs avec des étiquettes : type, id

Nom de la métriquePortDescription
erlang_vm_msacc_aux_seconds_total8080Temps passé à gérer des tâches auxiliaires (compteur)
erlang_vm_msacc_check_io_seconds_total8080Temps passé à vérifier de nouveaux événements I/O (compteur)
erlang_vm_msacc_emulator_seconds_total8080Temps passé à exécuter des processus Erlang (compteur)
erlang_vm_msacc_gc_seconds_total8080Temps passé en collecte de déchets (compteur)
erlang_vm_msacc_other_seconds_total8080Temps passé sur des activités non comptabilisées (compteur)
erlang_vm_msacc_port_seconds_total8080Temps passé à exécuter des ports (compteur)
erlang_vm_msacc_sleep_seconds_total8080Temps passé à dormir (compteur)
erlang_vm_msacc_alloc_seconds_total8080Temps passé à gérer la mémoire (compteur)
erlang_vm_msacc_bif_seconds_total8080Temps passé dans les BIFs (compteur)
erlang_vm_msacc_busy_wait_seconds_total8080Temps passé à attendre activement (compteur)
erlang_vm_msacc_ets_seconds_total8080Temps passé dans les BIFs ETS (compteur)
erlang_vm_msacc_gc_full_seconds_total8080Temps passé dans la collecte de déchets complète (compteur)
erlang_vm_msacc_nif_seconds_total8080Temps passé dans les NIFs (compteur)
erlang_vm_msacc_send_seconds_total8080Temps passé à envoyer des messages (compteur)
erlang_vm_msacc_timers_seconds_total8080Temps passé à gérer des temporisateurs (compteur)

Allocateurs de la VM Erlang

Métriques détaillées des allocateurs de mémoire avec des étiquettes : alloc, instance_no, kind, usage

Nom de la métriquePortDescription
erlang_vm_allocators8080Mémoire allouée (carriers_size) et utilisée (blocks_size) pour différents allocateurs. Voir erts_alloc(3).

Les types d'allocateurs incluent : temp_alloc, sl_alloc, std_alloc, ll_alloc, eheap_alloc, ets_alloc, fix_alloc, literal_alloc, binary_alloc, driver_alloc


↑ Retour en haut

Port 9093 - Métriques de Qualité des Médias & des Appels

Ces métriques fournissent des statistiques RTP/RTCP en temps réel et des informations sur la qualité des appels par canal.

Nom de la métriquePortDescription
freeswitch_info9093Informations système avec l'étiquette : version
freeswitch_up9093Statut de préparation (1=prêt, 0=non prêt)
freeswitch_stack_bytes9093Taille de la pile en bytes
freeswitch_session_total9093Nombre total de sessions
freeswitch_session_active9093Nombre actif de sessions
freeswitch_session_limit9093Limite de sessions
rtp_channel_info9093Informations sur le canal RTP avec des étiquettes pour les détails du canal

RTP Audio - Compteurs de Bytes

Nom de la métriquePortDescription
rtp_audio_in_raw_bytes_total9093Total de bytes reçus (y compris les en-têtes)
rtp_audio_out_raw_bytes_total9093Total de bytes envoyés (y compris les en-têtes)
rtp_audio_in_media_bytes_total9093Total de bytes médias reçus (seulement le payload)
rtp_audio_out_media_bytes_total9093Total de bytes médias envoyés (seulement le payload)

RTP Audio - Compteurs de Paquets

Nom de la métriquePortDescription
rtp_audio_in_packets_total9093Total de paquets reçus
rtp_audio_out_packets_total9093Total de paquets envoyés
rtp_audio_in_media_packets_total9093Total de paquets médias reçus
rtp_audio_out_media_packets_total9093Total de paquets médias envoyés
rtp_audio_in_skip_packets_total9093Paquets entrants rejetés
rtp_audio_out_skip_packets_total9093Paquets sortants rejetés

RTP Audio - Types de Paquets Spéciaux

Nom de la métriquePortDescription
rtp_audio_in_jitter_packets_total9093Paquets du tampon de jitter reçus
rtp_audio_in_dtmf_packets_total9093Paquets DTMF reçus
rtp_audio_out_dtmf_packets_total9093Paquets DTMF envoyés
rtp_audio_in_cng_packets_total9093Paquets de Génération de Bruit de Confort reçus
rtp_audio_out_cng_packets_total9093Paquets de Génération de Bruit de Confort envoyés
rtp_audio_in_flush_packets_total9093Paquets vidés (réinitialisations de tampon)

RTP Audio - Jitter & Métriques de Qualité

Nom de la métriquePortDescription
rtp_audio_in_jitter_buffer_bytes_max9093Taille maximale du tampon de jitter en bytes
rtp_audio_in_jitter_seconds_min9093Jitter minimum en secondes
rtp_audio_in_jitter_seconds_max9093Jitter maximum en secondes
rtp_audio_in_jitter_loss_rate9093Taux de perte de paquets dû au jitter (ratio)
rtp_audio_in_jitter_burst_rate9093Taux de rafale de paquets dû au jitter (ratio)
rtp_audio_in_mean_interval_seconds9093Intervalle moyen entre les paquets entrants
rtp_audio_in_flaw_total9093Total des défauts audio détectés (glitches, artefacts)
rtp_audio_in_quality_percent9093Qualité audio en pourcentage (0-100)
rtp_audio_in_quality_mos9093Score d'Opinion Moyenne (1-5, où 5 est le meilleur)

Métriques RTCP

Nom de la métriquePortDescription
rtcp_audio_bytes_total9093Total de bytes RTCP
rtcp_audio_packets_total9093Total de paquets RTCP

Métriques d'Exécution Go

Nom de la métriquePortDescription
go_goroutines9090Nombre de goroutines actuellement en cours d'exécution
go_threads9090Nombre de threads OS créés
go_info9090Informations sur l'environnement Go (avec l'étiquette de version)
go_gc_duration_seconds9090Durée de pause des cycles de collecte de déchets (résumé)
go_memstats_alloc_bytes9090Nombre de bytes alloués et encore utilisés
go_memstats_alloc_bytes_total9090Nombre total de bytes alloués (compteur)
go_memstats_heap_alloc_bytes9090Bytes de tas alloués et encore utilisés
go_memstats_heap_idle_bytes9090Bytes de tas en attente d'utilisation
go_memstats_heap_inuse_bytes9090Bytes de tas actuellement utilisés
go_memstats_heap_objects9090Nombre d'objets de tas alloués
go_memstats_heap_released_bytes9090Bytes de tas libérés au système
go_memstats_heap_sys_bytes9090Bytes de tas obtenus du système
go_memstats_sys_bytes9090Total de bytes obtenus du système

Métriques de Processus

Nom de la métriquePortDescription
process_cpu_seconds_total9090Temps total CPU utilisateur et système passé (compteur)
process_max_fds9090Nombre maximum de descripteurs de fichiers ouverts
process_open_fds9090Nombre actuel de descripteurs de fichiers ouverts
process_resident_memory_bytes9090Taille de la mémoire résidente en bytes
process_virtual_memory_bytes9090Taille de la mémoire virtuelle en bytes
process_virtual_memory_max_bytes9090Montant maximum de mémoire virtuelle disponible
process_start_time_seconds9090Heure de démarrage du processus depuis l'époque Unix

Métriques HTTP Prometheus

Nom de la métriquePortDescription
promhttp_metric_handler_requests_in_flight9090Nombre actuel de scrapes en cours
promhttp_metric_handler_requests_total9090Nombre total de scrapes par code d'état HTTP (compteur)

↑ Retour en haut

Types de Métriques

  • gauge : Une métrique qui peut augmenter ou diminuer (par exemple, current_calls, cpu_idle)
  • counter : Une métrique qui n'augmente que (par exemple, sessions_total, failed_scrapes)
  • summary : Une métrique qui suit les quantiles sur une fenêtre de temps glissante (par exemple, gc_duration_seconds)

↑ Retour en haut

Utilisation

Pour scrapper ces métriques, configurez votre serveur Prometheus pour scrapper les trois points de terminaison :

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']

↑ Retour en haut

Exemples de Requêtes

Liens Rapides :

Métriques Générales

Volume d'appels actuel :

freeswitch_current_calls

Santé de la passerelle :

freeswitch_sofia_gateway_status{status="UP"}

Temps de ping moyen vers les passerelles :

avg(freeswitch_sofia_gateway_pingtime)

Taux de sessions par seconde :

freeswitch_current_sps

Utilisation de la mémoire :

freeswitch_memory_uordblks

Métriques de Qualité des Médias

Qualité des appels (score MOS) :

rtp_audio_in_quality_mos

Pourcentage de qualité audio :

rtp_audio_in_quality_percent

Taux de jitter :

rate(rtp_audio_in_jitter_packets_total[5m])

Taux de perte de paquets :

rtp_audio_in_jitter_loss_rate

Jitter moyen :

avg(rtp_audio_in_jitter_seconds_max - rtp_audio_in_jitter_seconds_min)

Bande passante RTP (entrant) :

rate(rtp_audio_in_media_bytes_total[1m]) * 8

Défauts audio détectés :

increase(rtp_audio_in_flaw_total[5m])

Métriques du Moteur TAS

Appels actifs par type :

active_calls

Santé des pairs Diameter :

diameter_peer_state{application="sh"}

Taux de tentatives d'appels :

rate(call_attempts_total[5m])

Latence de recherche HLR (95e percentile) :

histogram_quantile(0.95, hlr_data_duration_milliseconds)

Latence d'autorisation OCS :

histogram_quantile(0.99, ocs_authorization_duration_milliseconds)

Taux de recherche de données d'abonnés :

rate(subscriber_data_lookups_total[5m])

Taux de réussite des requêtes Diameter :

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

Statut de connexion du Socket d'Événements :

event_socket_connected

Performance des transactions Mnesia :

rate(erlang_mnesia_committed_transactions[5m])

Taux de transactions échouées Mnesia :

rate(erlang_mnesia_failed_transactions[5m])

Nombre de processus de la VM Erlang :

erlang_vm_process_count

Utilisation de la mémoire de la VM Erlang :

erlang_vm_memory_bytes_total

Taux de collecte des déchets :

rate(erlang_vm_statistics_garbage_collection_number_of_gcs[5m])

Longueur de la file d'attente d'exécution du planificateur :

erlang_vm_statistics_run_queues_length

Nombre de tables ETS :

erlang_vm_memory_ets_tables

Durée de la requête de plan de numérotation HTTP (médiane) :

histogram_quantile(0.5, http_dialplan_request_duration_milliseconds)

↑ Retour en haut

Intégration du Tableau de Bord Grafana

Les métriques peuvent être visualisées dans Grafana en utilisant la source de données Prometheus.

Mise en Page Recommandée du Tableau de Bord

Ligne 1 : Volume d'Appels & Santé

  • Jauge des appels actifs (active_calls)
  • Taux de tentatives d'appels par type (rate(call_attempts_total[5m]))
  • Taux de rejet d'appels (rate(call_rejections_total[5m]))
  • Santé de la passerelle (freeswitch_sofia_gateway_status)

Ligne 2 : Performance (Percentiles de Latence)

  • Temps de requête HTTP du plan de numérotation P95 par type d'appel
  • Temps de recherche de données d'abonnés Sh P95
  • Temps de recherche HLR P95
  • Temps d'autorisation OCS P95
  • Temps de réponse Diameter P95 par application

Ligne 3 : Taux de Réussite

  • Taux de réussite des recherches de données d'abonnés
  • Taux de réussite des recherches HLR
  • Taux de réussite des autorisations OCS
  • État des pairs Diameter

Ligne 4 : Qualité des Médias

  • Score MOS de qualité des appels (rtp_audio_in_quality_mos)
  • Pourcentage de qualité audio (rtp_audio_in_quality_percent)
  • Statistiques de jitter
  • Taux de perte de paquets

Ligne 5 : Ressources Système

  • Nombre de processus de la VM Erlang
  • Utilisation de la mémoire de la VM Erlang
  • Nombre de tables ETS
  • Longueur de la file d'attente d'exécution du planificateur
  • Taux de collecte des déchets

Ligne 6 : Suivi des Erreurs

  • Erreurs de paramètres d'appel
  • Échecs d'autorisation
  • Statut de connexion du Socket d'Événements
  • Échecs de transactions Mnesia

Exemples de Requêtes de Panneau

Appels Actifs par Type :

sum by (call_type) (active_calls)

Latence de Génération de Plan de Numérotation P95 :

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

Taux de Réussite Diameter :

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

Qualité des Médias - MOS Moyen :

avg(rtp_audio_in_quality_mos)

↑ Retour en haut

Exemples d'Alerte

Alertes Critiques (Page Immédiatement)

Système Hors Ligne - Aucune Tentative d'Appel :

alert: SystemDown
expr: rate(call_attempts_total[5m]) == 0
for: 2m
labels:
severity: critical
annotations:
summary: "Le système TAS semble hors ligne - aucune tentative d'appel"
description: "Aucune tentative d'appel détectée pendant 2 minutes"

Pair Diameter Hors Ligne :

alert: DiameterPeerDown
expr: diameter_peer_state == 0
for: 1m
labels:
severity: critical
annotations:
summary: "Le pair Diameter {{ $labels.peer_host }} est hors ligne"
description: "Le pair pour l'application {{ $labels.application }} est indisponible"

Socket d'Événements Déconnecté :

alert: EventSocketDisconnected
expr: event_socket_connected == 0
for: 30s
labels:
severity: critical
annotations:
summary: "Socket d'Événements {{ $labels.connection_type }} déconnecté"
description: "Canal de communication critique hors ligne"

Alertes de Haute Sévérité

Latence Diameter Élevée :

alert: HighDiameterLatency
expr: |
histogram_quantile(0.95,
rate(diameter_response_duration_milliseconds_bucket[5m])
) > 1000
for: 5m
labels:
severity: high
annotations:
summary: "Latence Diameter élevée détectée"
description: "La latence P95 est de {{ $value }}ms"

Échecs d'Autorisation 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: "Taux élevé de réponses OCS sans crédit"
description: "{{ $value | humanizePercentage }} des demandes refusées de crédit"

Taux de Rejet d'Appels Élevé :

alert: HighCallRejectionRate
expr: |
rate(call_rejections_total[5m]) /
rate(call_attempts_total[5m]) > 0.05
for: 5m
labels:
severity: high
annotations:
summary: "Taux de rejet d'appels supérieur à 5%"
description: "{{ $value | humanizePercentage }} des appels rejetés"

Qualité des Médias Pauvre :

alert: PoorMediaQuality
expr: avg(rtp_audio_in_quality_mos) < 3.5
for: 3m
labels:
severity: high
annotations:
summary: "Qualité d'appel pauvre détectée"
description: "Le score MOS moyen est de {{ $value }}"

Alertes d'Avertissement

Utilisation Élevée de la Mémoire :

alert: HighMemoryUsage
expr: |
erlang_vm_memory_bytes_total{kind="processes"} /
(erlang_vm_process_limit * 1000000) > 0.8
for: 10m
labels:
severity: warning
annotations:
summary: "Utilisation de la mémoire de la VM Erlang élevée"
description: "Mémoire des processus à {{ $value | humanizePercentage }}"

Longueur de la File d'Attente d'Exécution du Planificateur Élevée :

alert: HighSchedulerRunQueue
expr: erlang_vm_statistics_run_queues_length > 10
for: 5m
labels:
severity: warning
annotations:
summary: "Longueur de la file d'attente d'exécution du planificateur élevée"
description: "Longueur de la file d'attente est de {{ $value }}"

Échecs de Transactions Mnesia :

alert: MnesiaTransactionFailures
expr: rate(erlang_mnesia_failed_transactions[5m]) > 1
for: 5m
labels:
severity: warning
annotations:
summary: "Échecs de transactions Mnesia détectés"
description: "{{ $value }} échecs par seconde"

↑ Retour en haut

Dépannage avec les Métriques

Problème : Les appels sont lents

Étapes d'Investigation :

  1. Vérifiez le temps de g��nération global du plan de numérotation :
histogram_quantile(0.95, rate(http_dialplan_request_duration_milliseconds_bucket[5m]))
  1. Décomposez par composant :
# Recherche de données d'abonnés
histogram_quantile(0.95, rate(subscriber_data_duration_milliseconds_bucket[5m]))

# Recherche HLR
histogram_quantile(0.95, rate(hlr_data_duration_milliseconds_bucket[5m]))

# Autorisation OCS
histogram_quantile(0.95, rate(ocs_authorization_duration_milliseconds_bucket[5m]))
  1. Vérifiez les délais spécifiques aux modules :
histogram_quantile(0.95,
rate(dialplan_module_duration_milliseconds_bucket[5m])
) by (module)

Causes Courantes :

  • Latence des systèmes externes (HSS, HLR, OCS)
  • Problèmes de réseau
  • Contention de base de données
  • Charge système élevée

Problème : Les appels échouent

Étapes d'Investigation :

  1. Vérifiez les raisons de rejet d'appels :
sum by (reason) (rate(call_rejections_total[5m]))
  1. Vérifiez les décisions d'autorisation :
sum by (decision) (rate(authorization_decisions_total[5m]))
  1. Vérifiez la santé des pairs Diameter :
diameter_peer_state
  1. Vérifiez la connexion du Socket d'Événements :
event_socket_connected

Problème : Charge élevée

Étapes d'Investigation :

  1. Vérifiez le volume d'appels :
rate(call_attempts_total[5m])
active_calls
  1. Vérifiez les ressources de la VM Erlang :
erlang_vm_process_count
erlang_vm_statistics_run_queues_length
erlang_vm_memory_bytes_total
  1. Vérifiez la collecte des déchets :
rate(erlang_vm_statistics_garbage_collection_number_of_gcs[5m])

Problème : Qualité des Médias Pauvre

Étapes d'Investigation :

  1. Vérifiez les scores MOS :
rtp_audio_in_quality_mos
rtp_audio_in_quality_percent
  1. Vérifiez le jitter :
rtp_audio_in_jitter_seconds_max
rtp_audio_in_jitter_loss_rate
  1. Vérifiez la perte de paquets :
rtp_audio_in_skip_packets_total
rtp_audio_in_flaw_total
  1. Vérifiez l'utilisation de la bande passante :
rate(rtp_audio_in_media_bytes_total[1m]) * 8

↑ Retour en haut

Lignes de Base de Performance

Valeurs Typiques (Système Bien Réglé)

Latence (P95) :

  • Temps de requête de plan de numérotation HTTP : 200-500ms
  • Temps de recherche de données d'abonnés (Sh) : 50-150ms
  • Temps de recherche de données HLR : 100-300ms
  • Autorisation OCS : 100-250ms
  • Requêtes Diameter : 50-200ms
  • Traitement des modules de plan de numérotation : 10-50ms par module

Taux de Réussite :

  • Achèvement des appels : >95%
  • Recherches de données d'abonnés : >99%
  • Recherches HLR : >98%
  • Autorisations OCS : >99% (hors crédits légitimes sans)
  • Disponibilité des pairs Diameter : >99.9%

Qualité des Médias :

  • Score MOS : >4.0
  • Pourcentage de qualité audio : >80%
  • Jitter : <30ms
  • Taux de perte de paquets : <1%

Ressources Système :

  • Nombre de processus Erlang : <50% de la limite
  • Utilisation de la mémoire Erlang : <70% de disponible
  • File d'attente d'exécution du planificateur : <5
  • Tables ETS : <1000

Planification de Capacité

Capacité par Serveur (maximums recommandés) :

  • Appels simultanés : 500-1000 (dépend du matériel)
  • Appels par seconde : 20-50 CPS
  • Abonnés enregistrés : 10,000-50,000

Indicateurs de Mise à l'Échelle (ajoutez de la capacité lorsque) :

  • Appels actifs constamment >70% de la capacité
  • Nombre de processus Erlang >70% de la limite
  • Latence P95 se dégrade
  • Files d'attente d'exécution du planificateur constamment >10

↑ Retour en haut

Meilleures Pratiques

Stratégie de Surveillance

  1. Configurez des tableaux de bord pour différents publics :

    • Tableau de bord des opérations : Volume d'appels, taux de réussite, santé du système
    • Tableau de bord d'ingénierie : Percentiles de latence, taux d'erreur, utilisation des ressources
    • Tableau de bord exécutif : KPI de haut niveau, disponibilité, métriques de coût
  2. Configurez des alertes à plusieurs niveaux :

    • Critique : Page en cas d'appel (système hors ligne, panne majeure)
    • Élevé : Alerte pendant les heures de bureau (performance dégradée)
    • Avertissement : Suivi dans le système de tickets (problèmes potentiels)
  3. Utilisez des plages de temps appropriées :

    • Surveillance en temps réel : fenêtres de 5 minutes
    • Dépannage : fenêtres de 15 minutes à 1 heure
    • Planification de capacité : agrégats quotidiens/hebdomadaires
  4. Concentrez-vous sur l'impact utilisateur :

    • Priorisez les métriques de latence de bout en bout
    • Suivez les taux de réussite plutôt que les compteurs d'erreur individuels
    • Surveillez la qualité des médias pour l'expérience utilisateur

Performance des Requêtes

  1. Utilisez des règles d'enregistrement pour les requêtes fréquemment utilisées :
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. Évitez les étiquettes à haute cardinalité dans les requêtes (par exemple, ne regroupez pas par numéro de téléphone)

  2. Utilisez des intervalles de taux appropriés :

    • Tendances à court terme : [5m]
    • Tendances à moyen terme : [1h]
    • Tendances à long terme : [1d]

Cardinalité des Métriques

Surveillez la cardinalité pour éviter les problèmes de performance de Prometheus :

# Vérifiez la cardinalité des métriques
count by (__name__) ({__name__=~".+"})

Risques de haute cardinalité :

  • Étiquettes avec des valeurs uniques par appel (numéros de téléphone, ID d'appel)
  • Valeurs d'étiquettes non bornées
  • Étiquettes avec >1000 valeurs uniques

Solution :

  • Utilisez des étiquettes pour des catégories, pas pour des identifiants uniques
  • Agrégez les données à haute cardinalité dans des systèmes externes
  • Utilisez des règles d'enregistrement pour pré-agréger

↑ Retour en haut