簡介
本文檔介紹如何使用Cisco SMF中的Grafana/Prometheus建立自定義查詢,以便解決與呼叫流相關的問題。
縮寫
SMF |
會話管理功能 |
UDM |
整合資料管理 |
AMF |
存取和行動功能 |
PDU |
協定資料單元 |
為什麼要自定義查詢以排除SMF呼叫流問題?
同時,內建的控制面板提供了與重要KPI和節點運行狀況統計資訊有關的優秀圖表,為了充分利用PromQL查詢和grafana的潛力來排除常規問題情景,自定義查詢扮演著重要角色。自定義promql查詢和圖形為隔離特定故障提供了更多功能和便利。
內建控制面板的優勢:
- Grafana提供易於使用的圖形介面來瀏覽SMF統計資訊。
- 有內建的grafana儀表板可用於檢查大多數KPI和統計資訊。
範例:
5G SMF控制面板
- 5G PDU建立失敗/成功率
- 4G PDN建立失敗/成功率
- 每個過程失敗原因百分比。
- 斷開連線原因百分比。
- HTTP請求和相應的響應原因百分比。
要進一步排除故障,請執行以下操作:
- 可用的控制面板和面板主要涉及百分比和KPI。在進一步調查時,可能需要檢視精細的詳細資訊,以確定觸發此故障的特定情景和消息。
- 使用特定正規表示式的定製查詢應有助於關聯這些統計資訊並隔離觸發器。
- 這些查詢可用於在SMF grafana中繪製圖形,或在offline grafana中通過tac-debug包中的度量轉儲繪製圖形。
- 可以使用與不同服務相關聯的度量範圍,還可以通過標籤鍵/值對進行過濾,以對特定場景進行故障排除。
格拉法納和普羅米修斯
格拉法納
「Grafana是一款開源視覺化和分析軟體。它允許您查詢、直觀顯示、提醒和瀏覽您的指標,無論這些指標儲存在哪裡。」
Cisco SMF使用內建的grafana繪製來自應用容器的即時統計資料。
普羅米修斯
Prometheus提供了一個多維資料模型,其時間序列資料由度量名稱和鍵/值對標識,並提供了一個名為PromQL的靈活查詢語言來訪問這些資料。
Prometheus用於從微服務收集統計資訊/計數器。
度量 — 它們是時間系列統計資訊的識別符號。
標籤 — 度量由標籤組成。哪些基本是鍵值對?特定度量的標籤組合識別時間序列資料的特定例項
範例:
以綠色突出顯示的度量「smf_service_stats」包含許多標籤,這些標籤以黃色突出顯示。
使用這些標籤鍵/值對,可以選擇特定的資料系列。
PromQL查詢
Prometheus提供了一個名為PromQL的功能查詢語言。內建函式在PromQl中可用(例如Sum()、by()、count()等允許我們選擇圖形或表格格式的特定時間序列資料。
範例:
sum(smf_service_stats{status="success"}) by (procedure_type)
此示例按procedure_type從smf_service_stats度量中選擇資料,其中status = "success"
sum(計算維的總和)
by(按標籤對輸出進行分組)
可在總和中使用過濾器,使用標籤鍵/值對進一步過濾圖形。
範例 1:
sum(smf_disconnect_stats{namespace="smf-data",reason=~"disc_eutra.*"})by(reason, rat_type)
如果選擇了namespace smf-data,則作為原因,應考慮從disk_eutra開始的所有斷開原因(即4G斷開原因)。
範例 2:
sum(smf_restep_http_msg{namespace="smf-data", api_name=~"sdm_.*"}) by(api_name,message_direction,response_status,response_cause)
此查詢應標出SMF - UDM sdm訂用消息及其響應原因。
如何建立儀表板和面板?
以便新增新儀表板。
步驟1。導覽至Create > Dashboard,如下圖所示。
若要新增新面板 — 新增查詢。
步驟2.導航到頂部的Add Panel選項以新增新面板。
步驟3.選擇Add Query按鈕。
選擇查詢型別 — Prometheus hi-res。
步驟4.在「查詢」(Query)下拉選單中選擇Prometheus hi-res選項。
步驟5.然後在給定框中新增promql查詢。
步驟6.儲存面板。
範例:使用自定義查詢和圖形進行故障排除
PDU作業階段建立失敗 — N1N2回應失敗
步驟1. KPI Dip觀察並確定PDU會話建立故障。
Query: sum by (procedure_type, pdu_type, status, reason) (smf_service_stats{namespace="smf",procedure_type="pdu_sess_create"})
步驟2. 失敗原因為「n1n2_transfer_failure_rsp_code」。我們來瞭解一下斷開連線的原因:
Query: sum(smf_disconnect_stats{namespace=”smf"}) by (reason)
步驟3.斷開連線原因「disk_pdusetup_n1n2_transfer_rsp_failure」表示來自AMF對等體的負響應。由於SMF-AMF互動是通過基於HTTP服務的介面進行的,因此需要進一步檢視HTTP統計資訊(度量:smf_restep_http_msg)
HTTP統計資訊表明,在故障期間,SMF從AMF收到HTTP狀態代碼401 — 未授權
Query: sum(smf_restep_http_msg{namespace="smf"}) by(api_name,message_direction,response_status)
要排除故障的重要指標:
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
有關SMF度量的詳細資訊:
如這些示例所示,您可以按照特定故障場景需要繪製自己的自定義圖形,以關聯不同的消息並隔離故障。此類查詢可以在本地系統中運行,也可以在本地圖形上裝載來自Tac_debug_pkg的度量資料後運行。