Einleitung
In diesem Dokument wird die Verwendung von Grafana/Prometheus in Cisco SMF zum Erstellen benutzerdefinierter Abfragen beschrieben, um Probleme im Zusammenhang mit dem Anrufablauf zu beheben.
Abkürzungen
| SMF |
Sitzungsmanagement-Funktion |
| UDM |
Einheitliches Datenmanagement |
| AMF |
Zugangs- und Mobilitätsfunktion |
| PDU |
Protokolldateneinheit |
Warum sollten Abfragen angepasst werden, um SMF-Anrufflussprobleme zu beheben?
Während die integrierten Dashboards hervorragende Grafiken in Bezug auf wichtige KPIs und Knotenzustandsstatistiken bereitstellen, spielen benutzerdefinierte Abfragen eine wichtige Rolle, um das volle Potenzial von PromQL-Abfragen und grafana zur Fehlerbehebung in regulären Problemszenarien zu nutzen. Benutzerdefinierte Promql-Abfragen und -Diagramme bieten mehr Vielseitigkeit und Komfort, um einen bestimmten Fehler zu isolieren.
Vorteile integrierter Dashboards:
- Grafana bietet eine einfach zu bedienende und grafische Benutzeroberfläche zum Durchsuchen von SMF-Statistiken.
- Es gibt eingebaute grafana Dashboards, um die meisten KPIs und Statistiken zu überprüfen.
Beispiel:
5G-SMF-Dashboard
- Fehler-/Erfolgsrate durch 5G-PDU
- 4G-PDN-Erfolgsrate bei Ausfällen

- Erfolgsrate pro Verfahren

- Pro-Prozedur-Fehlerursache in Prozent.
- Grund für Verbindungstrennung in Prozent.
- HTTP-Anfrage und zugehörige Antwortursache in Prozent.

Weitere Fehlerbehebung:
- Die verfügbaren Dashboards und Panels beziehen sich hauptsächlich auf Prozentwerte und Kennzahlen. Im Rahmen der weiteren Untersuchung müssen Sie möglicherweise detaillierte Informationen einsehen, um das Szenario und die Meldung zu identifizieren, die diesen Fehler ausgelöst haben.
- Die angepassten Abfragen mit spezifischen regulären Ausdrücken sollen dabei helfen, diese Statistiken zu korrelieren und den Auslöser zu isolieren.
- Diese Abfragen können verwendet werden, um Graphen in SMF grafana oder in der Offline-grafana mit dem Metrik-Dump aus dem tac-debug-Paket zu zeichnen.
- Die mit den verschiedenen Services verknüpften Metriken können verwendet und zur Fehlerbehebung im jeweiligen Szenario auch durch Label Key/Value-Paare gefiltert werden.
Grafana und Prometheus
Grafana
"Grafana ist eine Open Source Visualisierungs- und Analysesoftware. Sie können Ihre Kennzahlen abfragen, visualisieren, anzeigen und untersuchen, egal wo sie gespeichert sind."
Cisco SMF verwendet die integrierte grafana, um die Echtzeit-Statistikdaten aus den Anwendungscontainern zu zeichnen.
Prometheus
Prometheus bietet ein mehrdimensionales Datenmodell mit Zeitreihendaten, die durch metrische Name- und Schlüssel/Wert-Paare identifiziert werden, sowie eine flexible Abfragesprache mit dem Namen PromQL, um auf diese Daten zuzugreifen.
Prometheus wird zur Erhebung von Statistiken/Zählern aus den Mikrodiensten verwendet.
Metriken - Sie sind die Kennungen der Zeitreihenstatistiken.
Labels - Metriken bestehen aus Labels. Welche Schlüssel-Wert-Paare gibt es? Die Kombinationen von Labels für eine bestimmte Metrik identifizieren eine bestimmte Instanz von Zeitreihendaten.
Beispiel: 
Die Metrik "smf_service_stats", die grün markiert ist, hat viele Bezeichnungen, die gelb hervorgehoben sind.
Mithilfe dieser Schlüssel-Wert-Paare kann eine bestimmte Datenreihe ausgewählt werden.
PromQL-Abfrage
Prometheus stellt eine funktionelle Abfragesprache namens PromQL bereit. Die eingebauten Funktionen sind in PromQl (z.B. Mit Sum(), by(), count() usw. können Sie bestimmte Zeitreihendaten in grafischer oder tabellarischer Form auswählen.
Beispiel:
sum(smf_service_stats{status="success"}) by (procedure_type)
In diesem Beispiel werden Daten aus der Metrik smf_service_stats nach Procedure_type ausgewählt, wobei status = "success" ist.
Summe (Summe über Dimensionen berechnen)
by(Gruppiert die Ausgabe nach Bezeichnungen)
Innerhalb der Summe können Filter verwendet werden, um die Diagramme mithilfe von Label-Schlüssel/Wert-Paaren weiter zu filtern.
Beispiel 1:
sum(smf_disconnect_stats{namespace="smf-data",reason=~"disc_eutra.*"})by(reason, rat_type)
Hier wird der Namespace smf-data ausgewählt und als Grund werden alle mit disk_eutra beginnenden Trennungsgründe (d.h. 4G-Trennungsgründe) berücksichtigt.

Beispiel 2:
sum(smf_restep_http_msg{namespace="smf-data", api_name=~"sdm_.*"}) by(api_name,message_direction,response_status,response_cause)
Bei dieser Abfrage werden SMF - UDM-SDM-Abonnementnachrichten mit der Antwortursache aufgezeichnet.

Erstellen eines Dashboards und eines Panels
Um ein neues Dashboard hinzuzufügen.
Schritt 1. Navigieren Sie zu Erstellen > Dashboard, wie in dieser Abbildung dargestellt.

Um einen neuen Bereich hinzuzufügen, fügen Sie eine Abfrage hinzu.
Schritt 2: Navigieren Sie oben zur Option Bereich hinzufügen, um einen neuen Bereich hinzuzufügen.
Schritt 3: Wählen Sie die Schaltfläche Abfrage hinzufügen.

Wählen Sie Abfragetyp- Prometheus hi-res.
Schritt 4. Wählen Sie Prometheus hi-res Option in Abfrage Dropdown-Liste.
Schritt 5. Dann fügen Sie die promql-Abfrage in das angegebene Feld.
Schritt 6. Speichern Sie den Bereich.

Beispiel: Verwenden der benutzerdefinierten Abfrage und Diagramme zur Fehlerbehebung
Fehler bei der Einrichtung der PDU-Sitzung - N1N2-Antwortfehler
Schritt 1: KPI-Dip-Beobachtung und Identifizierung des Fehlers bei der Erstellung der PDU-Sitzung.

Query: sum by (procedure_type, pdu_type, status, reason) (smf_service_stats{namespace="smf",procedure_type="pdu_sess_create"})
Schritt 2: Die Fehlerursache ist "n1n2_transfer_failure_rsp_code". Sehen wir uns die Gründe für die Verbindungstrennung an:

Query: sum(smf_disconnect_stats{namespace=”smf"}) by (reason)
Schritt 3: Der Grund für die Verbindungstrennung "disk_pdusetup_n1n2_transfer_rsp_failure" gibt eine negative Antwort vom AMF-Peer an. Da die SMF-AMF-Interaktion über eine HTTP-Service-basierte Schnittstelle erfolgt, müssen die HTTP-Statistiken weiter betrachtet werden (Metrik: smf_restep_http_msg)
Die HTTP-Statistiken zeigen an, dass SMF während des Ausfalls den HTTP-Statuscode 401 - Unauthorized von AMF erhalten hat.

Query: sum(smf_restep_http_msg{namespace="smf"}) by(api_name,message_direction,response_status)
Wichtige Kennzahlen für die Fehlerbehebung:
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
Weitere Informationen zu SMF-Kennzahlen:
Wie in diesen Beispielen gezeigt, können individuelle Diagramme erstellt werden, wenn dies für das jeweilige Fehlerszenario erforderlich ist, um verschiedene Meldungen zu korrelieren und den Fehler zu isolieren. Solche Abfragen können auch in lokalen Systemen ausgeführt werden, nachdem die metrischen Daten von Tac_debug_pkg auf die lokale grafana gemountet wurden.