Introduction
Ce document décrit comment utiliser Grafana/Prometheus dans Cisco SMF pour créer des requêtes personnalisées afin de dépanner les problèmes liés au flux d'appels.
Abréviations
| SMF |
Fonction de gestion de session |
| UDM |
Gestion unifiée des données |
| AMF |
Fonction d'accès et mobilité |
| PDU |
unité de données de protocole |
Pourquoi personnaliser les requêtes pour résoudre les problèmes de flux d'appels SMF ?
Bien que les tableaux de bord intégrés fournissent de grands graphiques en ce qui concerne les indicateurs de performance clés importants et les statistiques d'état des noeuds, afin d'utiliser le plein potentiel des requêtes PromQL et grafana pour dépanner des scénarios de problèmes réguliers, les requêtes personnalisées jouent un rôle important. Les requêtes et les graphiques promql personnalisés offrent davantage de polyvalence et de commodité pour isoler une défaillance spécifique.
Avantages des tableaux de bord intégrés :
- Grafana fournit une interface graphique et facile à utiliser pour parcourir les statistiques SMF.
- Il existe des tableaux de bord grafana intégrés disponibles pour vérifier la plupart des ICP et des statistiques.
Exemple :
Tableau de bord 5G SMF
- Taux d'échec/de réussite de création de PDU 5G
- Taux d'échec/de réussite de création de PDN 4G

- Taux de réussite par procédure

- Pourcentage de cause d'échec par procédure.
- Pourcentage de raison de déconnexion.
- Pourcentage de cause de requête HTTP et de réponse correspondante.

Pour effectuer un dépannage supplémentaire :
- Le tableau de bord et les panneaux disponibles concernent principalement des pourcentages et des indicateurs de performance clés. Pendant que vous approfondissez votre recherche, il peut être nécessaire d'examiner des détails précis pour identifier le scénario et le message qui ont déclenché cette défaillance.
- Les requêtes personnalisées utilisant des expressions régulières spécifiques aideront à corréler ces statistiques et à isoler le déclencheur.
- Ces requêtes peuvent être utilisées pour tracer des graphes dans SMF grafana ou dans le grafana hors ligne avec le dump de métriques du paquet tac-debug.
- La plage de mesures associée aux différents services peut être utilisée et peut également être filtrée par des paires clé/valeur d'étiquette pour dépanner le scénario spécifique.
Grafana et Prométhée
Grafana
« Grafana est un logiciel de visualisation et d'analyse open source. Elle vous permet d'interroger, de visualiser, d'alerter et d'explorer vos indicateurs, quel que soit l'endroit où ils sont stockés. »
Cisco SMF utilise des grafana intégrés pour tracer les données statistiques en temps réel à partir des conteneurs d'applications.
Prométhée
Prometheus fournit un modèle de données multidimensionnel avec des données de séries chronologiques identifiées par le nom de la métrique et les paires clé/valeur et un langage de requête flexible appelé PromQL pour accéder à ces données.
Prometheus est utilisé pour collecter des statistiques/compteurs à partir des microservices.
Metrics : ce sont les identifiants des statistiques de séries temporelles.
Étiquettes : les mesures sont constituées d'étiquettes. Quelles sont les paires clé-valeur ? Les combinaisons d'étiquettes pour une mesure particulière identifient une instance particulière de données de séries temporelles
Exemple : 
La mesure « smf_service_stats » mise en surbrillance en vert comporte de nombreuses étiquettes, mises en surbrillance en jaune.
En utilisant ces paires clé/valeur d'étiquette, on peut sélectionner une série particulière de données.
Requête PromQL
Prometheus fournit un langage de requête fonctionnel appelé PromQL. Les fonctions intégrées sont disponibles dans PromQl (par ex. Sum(), by(), count(), etc.) permet de sélectionner des données de séries temporelles particulières dans un format graphique ou tabulaire.
Exemple :
sum(smf_service_stats{status="success"}) by (procedure_type)
Cet exemple sélectionne les données de la mesure smf_service_stats par type_procédure où status = «success»
somme (calculer la somme sur les dimensions)
by(Regroupe la sortie par étiquettes)
Les filtres peuvent être utilisés à l'intérieur de la somme à l'aide des paires clé/valeur Label pour filtrer davantage les graphiques.
Exemple 1 :
sum(smf_disconnect_stats{namespace="smf-data",reason=~"disc_eutra.*"})by(reason, rat_type)
Ici, l'espace de noms smf-data est sélectionné et comme raison, toutes les raisons de déconnexion commençant par disk_eutra (c'est-à-dire les raisons de déconnexion 4G) doivent être prises en compte.

Exemple 2 :
sum(smf_restep_http_msg{namespace="smf-data", api_name=~"sdm_.*"}) by(api_name,message_direction,response_status,response_cause)
Cette requête tracera les messages SMF - UDM sdm-subscription avec la cause de la réponse.

Comment créer un tableau de bord et un panneau ?
Afin d'ajouter un nouveau tableau de bord.
Étape 1. Accédez à Create > Dashboard, comme illustré dans cette image.

Afin d'ajouter un nouveau panneau- Ajouter une requête.
Étape 2. Naviguez jusqu'à Ajouter un panneau option en haut pour ajouter un nouveau panneau.
Étape 3. Cliquez sur le bouton Ajouter une requête.

Sélectionnez Type de requête - Prometheus hi-res.
Étape 4. Sélectionnez l'option Prometheus hi-res dans la liste déroulante Requête.
Étape 5. Ajoutez ensuite la requête Promql dans la zone donnée.
Étape 6. Enregistrez le panneau.

Exemple : Utilisation de la requête et des graphiques personnalisés pour le dépannage
Échec de l’établissement de la session PDU - Échec de la réponse N1N2
Étape 1. Observation de l’écart KPI et identification de la session PDU créent l’échec.

Query: sum by (procedure_type, pdu_type, status, reason) (smf_service_stats{namespace="smf",procedure_type="pdu_sess_create"})
Étape 2. La cause de l'échec est « n1n2_transfer_failure_rsp_code ». Examinons les raisons de la déconnexion :

Query: sum(smf_disconnect_stats{namespace=”smf"}) by (reason)
Étape 3. Le motif de déconnexion « disk_pdusetup_n1n2_transfer_rsp_failure » indique une réponse négative de l’homologue AMF. Étant donné que l’interaction SMF-AMF se fait via une interface basée sur le service HTTP, les statistiques HTTP doivent être examinées plus en détail (mesure : smf_restep_http_msg)
Les statistiques HTTP indiquent que lors de l'échec SMF a reçu un code d'état HTTP 401 - Non autorisé de l'AMF

Query: sum(smf_restep_http_msg{namespace="smf"}) by(api_name,message_direction,response_status)
Indicateurs importants de dépannage :
smf_disconnect_stats
smf_proto_pfcp_msg_total
smf_service_stats
smf_restep_http_msg
smf_n1_message_stats
smf_proto_pfcp_msg_total
nodemgr_msg_stats
nodemgr_gtpc_msg_stats
chf_message_stats
policy_msg_processing_status
procedure_protocol_total
procedure_service_total
Informations complémentaires sur les métriques SMF :
Comme le montrent ces exemples, on peut tracer ses propres graphiques personnalisés selon les besoins du scénario de défaillance spécifique afin de corréler différents messages et d'isoler la défaillance. De telles requêtes peuvent être exécutées dans des systèmes locaux aussi bien après que les données métriques de Tac_debug_pkg soient montées sur grafana local.