Introduzione
Questo documento descrive come usare Grafana/Prometheus in Cisco SMF per creare query personalizzate al fine di risolvere i problemi relativi al flusso di chiamate.
Abbreviazioni
SMF |
Funzione di gestione delle sessioni |
UDM |
Gestione unificata dei dati |
AMF |
Funzione di accesso e mobilità |
PDU |
Protocol Data Unit |
Perché personalizzare le query per risolvere i problemi relativi al flusso di chiamate SMF?
Sebbene i dashboard integrati forniscano ottimi grafici relativi agli indicatori KPI e alle statistiche sullo stato dei nodi importanti, per sfruttare appieno il potenziale delle query PromQL e di grafana per risolvere i problemi relativi a scenari regolari, le query personalizzate svolgono un ruolo importante. Le query e i grafici promql personalizzati aggiungono maggiore versatilità e praticità per isolare un errore specifico.
Vantaggi dei dashboard integrati:
- Grafana fornisce un'interfaccia grafica di facile utilizzo per sfogliare le statistiche SMF.
- Sono disponibili dashboard Grafana incorporati per controllare la maggior parte degli indicatori KPI e delle statistiche.
Esempio:
Dashboard 5G SMF
- Frequenza errori/operazioni riuscite di creazione PDU 5G
- Frequenza errori/operazioni riuscite creazione PDN 4G

- Frequenza operazioni riuscite per procedura

- Percentuale di causa di errore per procedura.
- Percentuale motivo disconnessione.
- Richiesta HTTP e percentuale della causa della risposta corrispondente.

Per ulteriori informazioni sulla risoluzione dei problemi:
- Il pannello di controllo e i pannelli disponibili sono principalmente relativi a percentuali e indicatori KPI. Mentre si indaga ulteriormente, potrebbe essere necessario esaminare i dettagli granulari per identificare lo scenario e il messaggio particolare che ha attivato questo errore.
- Le interrogazioni personalizzate che utilizzano espressioni regolari specifiche aiutano a correlare queste statistiche e a isolare il trigger.
- Queste query possono essere utilizzate per tracciare grafici in Grafana SMF o in Grafana offline con il dump delle metriche del pacchetto tac-debug.
- È possibile utilizzare l'intervallo di metriche associato ai diversi servizi e filtrarlo tramite coppie chiave/valore etichetta per risolvere i problemi dello scenario specifico.
Grafana e Prometeo
Grafana
"Grafana è un software di visualizzazione e analisi open source. Consente di eseguire query, visualizzare, avvisare ed esplorare le metriche, indipendentemente dalla posizione in cui sono memorizzate".
Cisco SMF utilizza grafana incorporata per tracciare i dati statistici in tempo reale dai contenitori delle applicazioni.
Prometeo
Prometheus fornisce un modello di dati multidimensionale con dati delle serie temporali identificati da coppie nome metrica e chiave/valore e un linguaggio di query flessibile denominato PromQL per accedere a questi dati.
Prometheus viene utilizzato per raccogliere statistiche/contatori dai microservizi.
Metriche: identificatori delle statistiche delle serie temporali.
Etichette: le metriche sono costituite da Etichette. Quali sono fondamentalmente le coppie chiave-valore? Le combinazioni di etichette per una particolare metrica identificano una particolare istanza dei dati delle serie temporali
Esempio: 
La metrica "smf_service_stats" evidenziata in verde presenta molte etichette, evidenziate in giallo.
Utilizzando queste coppie chiave/valore di etichetta, è possibile selezionare una particolare serie di dati.
Query promemoria
Prometheus fornisce un linguaggio di query funzionale chiamato PromQL. Le funzioni incorporate sono disponibili in PromQl (ad es. Sum(), by(), count() e così via consentono di selezionare dati di serie temporali particolari in formato grafico o tabulare.
Esempio:
sum(smf_service_stats{status="success"}) by (procedure_type)
In questo esempio vengono selezionati i dati dalla metrica smf_service_stats in base a procedure_type dove status = "success"
somma (calcola la somma sulle dimensioni)
by(Raggruppa l'output per etichette)
I filtri possono essere utilizzati all'interno della somma utilizzando le coppie chiave/valore Label per filtrare ulteriormente i grafici.
Esempio 1:
sum(smf_disconnect_stats{namespace="smf-data",reason=~"disc_eutra.*"})by(reason, rat_type)
In questo caso è selezionato lo spazio dei nomi smf-data e, come motivo, deve essere preso in considerazione tutto il motivo di disconnessione a partire da disk_eutra (cioè motivi di disconnessione 4G).

Esempio 2:
sum(smf_restep_http_msg{namespace="smf-data", api_name=~"sdm_.*"}) by(api_name,message_direction,response_status,response_cause)
Questa query esegue il plottaggio dei messaggi di sottoscrizione SMF - UDM sdm con la causa della risposta.

Come creare un dashboard e un pannello?
Per aggiungere un nuovo dashboard.
Passaggio 1. Passare a Crea > Dashboard, come mostrato in questa immagine.

Per aggiungere Nuovo pannello - Aggiungi query.
Passaggio 2. Passare all'opzione Aggiungi pannello nella parte superiore per aggiungere un nuovo pannello.
Passaggio 3. Selezionare il pulsante Aggiungi query.

Selezionare Tipo di query - Prometeo ad alta risoluzione.
Passaggio 4. Selezionare l'opzione Prometheus ad alta risoluzione nell'elenco a discesa Query.
Passaggio 5. Aggiungere quindi la query promql nella casella specificata.
Passaggio 6. Salvare il pannello.

Esempio: Utilizzare la query e i grafici personalizzati per risolvere i problemi
Errore di definizione della sessione PDU - Risposta N1N2 non riuscita
Passaggio 1. Osservazione Dip KPI e identificazione del problema di creazione della sessione PDU.

Query: sum by (procedure_type, pdu_type, status, reason) (smf_service_stats{namespace="smf",procedure_type="pdu_sess_create"})
Passaggio 2. La causa dell'errore è "n1n2_transfer_failure_rsp_code". Esaminiamo i motivi della disconnessione:

Query: sum(smf_disconnect_stats{namespace=”smf"}) by (reason)
Passaggio 3. Il motivo della disconnessione "disk_pdusetup_n1n2_transfer_rsp_failure" indica una risposta negativa dal peer AMF. Poiché l'interazione SMF-AMF avviene tramite un'interfaccia basata su servizi HTTP, è necessario esaminare ulteriormente gli stati HTTP (metrica: smf_restep_http_msg
Le statistiche HTTP indicano che durante l'errore SMF ha ricevuto il codice di stato HTTP 401 - Non autorizzato da AMF

Query: sum(smf_restep_http_msg{namespace="smf"}) by(api_name,message_direction,response_status)
Metriche importanti da risolvere:
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
Ulteriori informazioni sulle metriche SMF:
Come dimostrato in questi esempi, è possibile tracciare i propri grafici personalizzati come e quando necessario per lo scenario di errore specifico per correlare messaggi diversi e isolare il fallimento. Tali query possono essere eseguite anche nei sistemi locali dopo il montaggio dei dati di metrica da Tac_debug_pkg su grafana locale.