Telemetry 流量統計分析

Telemetry簡介

定義

Telemetry是一項遠程的從物理設備或虛擬設備上高速採集數據的技術。設備經過推模式(Push Mode)週期性的主動向採集器上送設備的接口流量統計、CPU或內存數據等信息,相對傳統拉模式(Pull Mode)的一問一答式交互,提供了更實時更高速的數據採集功能。java

Telemetry與傳統網絡監控方式的對比

Telemetry 流量統計分析

Telemetry原理

Telemetry靜態訂閱

是指設備做爲客戶端,採集器做爲服務端,由設備主動發起到採集器的鏈接,進行數據採集上送。node

狹義的Telemetry是一個設備特性,廣義的Telemetry是一個閉環的自動化運維繫統,由網絡設備、採集器、分析器和控制器等部件組成,分爲網管側和設備側,如圖1所示。編程

Telemetry網管側和設備側協同運做,完成總體的Telemetry靜態訂閱須要五個操做步驟順序執行:windows

  • 靜態配置:控制器經過命令行配置支持Telemetry的設備,訂閱數據源,完成數據採集。數組

  • 推送採樣數據:網絡設備依據控制器的配置要求,將採集完成的數據,上報給採集器進行接收和存儲。緩存

  • 讀取數據:分析器讀取採集器存儲的採樣數據。安全

  • 分析數據:分析器分析讀取到的採樣數據,並將分析結果發給控制器,便於控制器對網絡進行配置管理,及時調優網絡。

調整網絡參數:控制器將網絡須要調整的配置下發給網絡設備;配置下發生效後,新的採樣數據又會上報到採集器,此時Telemetry網管側能夠分析調優後的網絡效果是否符合預期,直到調優完成後,整個業務流程造成閉環。markdown

Telemetry 流量統計分析

Telemetry動態訂閱的業務流程

Telemetry動態訂閱是指設備做爲服務端,採集器做爲客戶端發起到設備的鏈接,由設備進行數據採集上送。網絡

狹義的Telemetry是一個設備特性,廣義的Telemetry是一個閉環的自動化運維繫統,由網絡設備、採集器、分析器和控制器等部件組成,分爲網管側和設備側,如圖1所示。數據結構

Telemetry網管側和設備側協同運做,完成總體的Telemetry動態訂閱須要五個操做步驟順序執行:

  1. 動態配置:支持Telemetry的設備在完成GRPC服務的相關配置後,由採集器下發動態配置到設備,完成數據採集。

  2. 推送採樣數據:網絡設備依據採集器的配置要求,將採集完成的數據,上報給採集器進行接收和存儲。

  3. 讀取數據:分析器讀取採集器存儲的採樣數據。

  4. 分析數據:分析器分析讀取到的採樣數據,並將分析結果發給控制器,便於控制器對網絡進行配置管理,及時調優網絡。

  5. 調整網絡參數:控制器將網絡須要調整的配置下發給網絡設備;配置下發生效後,新的採樣數據又會上報到採集器,此時Telemetry網管側能夠分析調優後的網絡效果是否符合預期,直到調優完成後,整個業務流程造成閉環。
    Telemetry 流量統計分析

Telemetry關鍵技術

對於Telemetry設備側:Telemetry=原始數據+數據模型+編碼格式+傳輸協議;對於Telemetry網管側:Telemetry=收集系統+存儲系統+應用分析系統。

原始數據

Telemetry採樣的原始數據可來自網絡設備的轉發面、控制面和管理面,目前支持採集設備的接口流量統計、CPU或內存數據等信息。

數據模型

Telemetry基於YANG模型組織採集數據。

YANG是一種數據建模語言,用於設計能夠爲各類傳輸協議操做的配置數據模型、狀態數據模型、遠程調用模型和通知機制等。

編碼格式

支持GPB(Google Protocol Buffer)編碼格式

GPB編碼格式,是一種與語言無關、平臺無關、擴展性好的用於通訊協議、數據存儲的序列化結構數據格式。

Telemetry利用GPB編碼格式(GPB編碼格式的文件名後綴爲.proto),提供一種靈活、高效、自動序列化結構數據的機制,屬於二進制編碼,性能好,效率高。

GPB經過「.proto」文件描述編碼使用的字典,即數據結構描述。用戶能夠利用Protoc等工具軟件(例如protoc-3.0.2-windows-x86_64.exe文件)根據「.proto」文件自動生成代碼(例如java代碼),而後用戶基於自動生成的代碼進行二次開發,對GPB進行編碼和解碼,從而實現與設備的對接。GPB編碼解析先後的對好比表1所示。
Telemetry 流量統計分析

支持JSON(JavaScript Object Notation)編碼格式

JSON是一種輕量級的數據交換格式。它是基於ECMAScript(歐洲計算機協會制訂的JS規範)的一個子集,採用徹底獨立於編程語言的文本格式來存儲和表示數據,層次結構簡潔清晰,既易於人閱讀和編寫,同時也易於機器解析和生成。JSON編碼解析先後的對好比表2所示。
Telemetry 流量統計分析
·在設備和採集器之間傳輸數據時,採用GPB編碼格式傳輸的數據比其餘編碼格式(JSON或XML)的數據具備更高的信息負載能力,保證了Telemetry業務的數據吞吐能力,同時下降了CPU佔用率和帶寬。·

傳輸協議

支持GRPC協議(Google Remote Procedure Call Protocol)

GRPC協議是谷歌發佈的一個基於HTTP2協議承載的高性能、通用的RPC開源軟件框架。通訊雙方都基於該框架進行二次開發,從而使得通訊雙方聚焦在業務,無需關注由GRPC軟件框架實現的底層通訊。

Telemetry經過GRPC協議將通過編碼格式封裝的數據上報給採集器進行接收和存儲。
·
GRPC協議能夠用於Telemetry靜態訂閱或動態訂閱。
·
GRPC協議棧分層如圖1所示。
Telemetry 流量統計分析
各層詳細說明如表3所示。
表3 各層詳細說明
Telemetry 流量統計分析

幾類「.proto」文件的介紹:

  • huawei-grpc-dialout.proto文件是RPC頭文件。設備做爲客戶端對外推送數據時,該文件定義了RPC接口,其內容及含義以下表所示。
    // huawei-grpc-dialout.proto
    syntax = "proto3";                          //proto版本定義爲v3版本。
    package huawei_dialout;                     //本包名稱爲huawei_dialout。
    service gRPCDataservice {                   //服務名稱爲gRPCDataservice。
    rpc dataPublish(stream serviceArgs) returns(stream serviceArgs) {};                 //方法爲dataPublish,雙向流,提供數據推送方法。入參是serviceArgs數據流。
    }
    message serviceArgs {                       //消息格式描述。
    int64 ReqId = 1;                        //請求ID,GPB編碼時編號爲1。
    bytes data = 2;                         //承載的數據,GPB編碼時編號爲2,由huawei-telemetry.proto解釋。
    string errors = 3;                      //產生錯誤時的描述信息,GPB編碼時編號爲3。
    }
  • huawei-grpc-dialin.proto文件是RPC頭文件。設備做爲服務端對外推送數據時,該文件定義了RPC接口,其內容及含義以下表所示。
    //huawei-grpc-dialin.proto
    syntax = "proto3";                   //proto版本定義爲v3版本。
    package huawei_dialin;               //本包名稱爲huawei_dialin。
    service gRPCConfigOper {             //服務名稱爲gRPCConfigOper。
    rpc Subscribe(SubsArgs) returns(stream SubsReply) {};  //方法爲Subscribe,服務端流模式,提供動態訂閱方法。入參SubsArgs包含訂閱的參數。
    rpc Cancel(CancelArgs) returns(CancelReply) {};  //方法爲Cancel,一問一答模式,提供取消動態訂閱方法。入參CancelArgs包含取消訂閱的參數。
    }
    message Path {                //Path消息結構。
    string path = 1;          //訂閱的sensor-path。
    }
    message SubsArgs {            //訂閱請求參數。
    uint64 request_id = 1;    //請求ID,由調用者傳入。
    uint32 encoding = 2;      //編碼類型。0:GPB編碼;1:JSON編碼。
    repeated Path path = 5;   //訂閱的path結構。
    uint64 sample_interval = 6;  //採樣週期。
    uint64 heartbeat_interval = 7;  //冗餘抑制的抑制週期,當suppress_redundant爲1時才生效。
    bool suppress_redundant = 8;  //冗餘抑制,當數據內容不變時,抑制採樣數據上報。0:不啓用;1:啓用。
    }
    message SubsReply {               //訂閱響應參數。
    uint32 subscription_id = 1;   //成功返回訂閱ID,失敗返回0。
    uint64 request_id = 2;        //帶回對應訂閱請求的request_id。
    string response_code = 3;     //返回碼,成功爲200。
    bytes message = 4;            //錯誤描述。成功時後續的rpc中此字段將流式返回上送的數據。
    }
    message CancelArgs {              //取消訂閱請求參數。
    uint64 request_id = 1;        //請求ID,由調用者傳入。
    uint32 subscription_id = 2;   //須要取消的訂閱ID。
    }
    message CancelReply {             //取消訂閱響應參數。
    uint64 request_id = 1;        //請求ID,由調用者傳入。
    string response_code = 2;     //返回碼,成功爲200。
    string message = 3;           //錯誤描述。
    }
  • huawei-telemetry.proto文件是Telemetry頭文件,定義了Telemetry採樣數據上送時的數據頭,包括採樣路徑,採樣時間戳等重要信息。該文件的內容及含義以下表所示。
    //huawei-telemetry.proto
    syntax = "proto3";         //proto版本定義爲v3版本。
    package telemetry;         //本包名稱爲telemetry。
    message Telemetry {        //Telemetry消息結構定義。
    string node_id_str = 1;    //設備名稱。
    string subscription_id_str = 2;   //訂閱名稱,靜態配置訂閱時的訂閱名稱,GPB編碼時編碼爲2。
    string sensor_path = 3;           //訂閱路徑,GPB編碼時編碼爲3。
    string proto_path = 13;           //採樣路徑path對應在proto文件中的message路徑。
    uint64 collection_id = 4;         //標識採樣輪次,GPB編碼時編碼爲4。
    uint64 collection_start_time = 5;//標識採樣輪次開始時間,GPB編碼時編碼爲5。
    uint64 msg_timestamp = 6;        //生成本消息的時間戳,GPB編碼時編碼爲6。
    TelemetryGPBTable data_gpb = 7; //承載的數據由TelemetryGPBTable定義,GPB編碼時編碼爲7。
    uint64 collection_end_time = 8;  //標識採樣輪次結束時間,GPB編碼時編碼爲8。
    uint32 current_period = 9;       //採樣精度,單位是毫秒,GPB編碼時編碼爲9。
    string except_desc = 10;        //異常描述信息,採樣異常時用於上報異常信息,GPB編碼時編碼爲10。
    string product_name = 11;       //產品名稱。
    enum Encoding {
    Encoding_GPB = 0;        //表示GPB數據編碼格式。
    Encoding_JSON = 1;       //表示JSON數據編碼格式。
    };
    Encoding encoding =12;    //數據編碼格式。爲GPB時,data_gpb字段有效,不然data_str字段有效。
    string data_str = 14;   //數據編碼非GPB時有效,不然爲空。
    }
    message TelemetryGPBTable {           //TelemetryGPBTable消息結構定義。
    repeated TelemetryRowGPB row = 1;     //數組定義,標識數據是TelemetryRowGPB結構的重複,GPB編碼時編碼爲1。
    }
    message TelemetryRowGPB {
    uint64 timestamp = 1;            //採樣當前實例的時間戳,GPB編碼時編碼爲1。
    bytes content = 11;              //承載的採樣實例數據,GPB編碼時編碼爲11,須要結合sensor_path字段,才能夠判斷此處會以哪一個proto文件編碼。
    }
  • 業務數據的文件:描述具體的業務數據格式。具體請參見Telemetry支持的採樣路徑。

推模式

Telemetry經過推模式,讓網絡設備週期性自動推送數據給網管側,避免重複查詢,提高監控性能,推送過程如圖2所示。

圖2 Telemetry推模式採樣過程
Telemetry 流量統計分析

Telemetry支持的採樣路徑

Telemetry技術目前支持特定的採樣傳感器路徑採集指定的數據信息。

Telemetry支持的採樣路徑如表1所示。
·當前設備只支持最多帶5個採集條件。查詢子節點時,父節點的條件必須帶全,子節點的條件能夠根據實際狀況選取一個或多個或不選。

表1 Telemetry支持的採樣路徑
採樣路徑類型 採樣路徑 採樣數據信息 採集模式 採集條件及示例 最小採樣精度(ms) YANG文件 GPB編碼文件名稱 是否支持JSON編碼格式
告警 huawei-sem:hwCPUUtilizationRisingAlarm CPU使用率太高告警。 - - - huawei-sem.yang huawei-sem.proto
huawei-sem:hwCPUUtilizationResume CPU恢復告警。 - - -
huawei-sem:hwStorageUtilizationRisingAlarm 內存使用率太高告警。 - - -
huawei-sem:hwStorageUtilizationResume 內存恢復告警。 - - -
採樣 huawei-fibstatus:fibstatus/ipRouteEntryCounts/ipRouteEntryCount IPv4路由使用狀況。 全量採集 - 10000 huawei-fibstatus.yang huawei-fibstatus.proto
huawei-fibstatus:fibstatus/ipRouteResources/ipRouteResource IPv4路由規格。 全量採集 - 10000
huawei-fibstatus:fibstatus/ipv6RouteEntryCounts/ipv6RouteEntryCount IPv6路由使用狀況。 全量採集 - 10000
huawei-fibstatus:fibstatus/ipv6RouteResources/ipv6RouteResource IPv6路由規格。 全量採集 - 10000
huawei-devm:devm/cpuInfos/cpuInfo CPU信息。 全量採集 - 10000 huawei-devm.yang huawei-devm.proto
huawei-devm:devm/memoryInfos/memoryInfo 內存信息。 全量採集 - 10000
huawei-devm:devm/ports/port/opticalInfo 接口上的光模塊信息。 全量採集或條件採集 採集條件:position
示例:huawei-devm:devm/ports/port[position="10GE1/0/1"]/opticalInfo 30000
huawei-mac:mac/bdMacTotalNumbers/bdMacTotalNumber
說明: CE6810EI、CE6810LI、CE6850EI不支持該採樣路徑。 BD MAC地址總數量信息。 全量採集或條件採集 採集條件:bdId
示例:huawei-mac:mac/bdMacTotalNumbers/bdMacTotalNumber[bdId="2018"] 10000 huawei-mac.yang huawei-mac.proto
huawei-mac:mac/macAddrSummarys/macAddrSummary MAC地址統計信息。 全量採集或條件採集 採集條件:slotId
示例:huawei-mac:mac/macAddrSummarys/macAddrSummary[slotId="1"] 10000
huawei-ifm:ifm/interfaces/interface/ifStatistics 接口統計信息。 全量採集或條件採集 採集條件:ifName
示例:huawei-ifm:ifm/interfaces/interface[ifName="10GE1/0/1"]/ifStatistics 1000 huawei-ifm.yang huawei-ifm.proto
huawei-qos:qos/qosPortBufUsageStats/qosPortBufUsageStat 接口緩存使用信息。 全量採集或條件採集 採集條件:slotId;ifName
示例:huawei-qos:qos/qosPortBufUsageStats/qosPortBufUsageStat[slotId="1",ifName="10GE1/0/1"] CE5880EI、CE6880EI:2其餘形態:100 huawei-qos.yang huawei-qos.proto
huawei-qos:qos/qosQueueBufUsageStats/qosQueueBufUsageStat 隊列緩存使用信息。 全量採集或條件採集 採集條件:slotId;ifName;queueId
示例:huawei-qos:qos/qosQueueBufUsageStats/qosQueueBufUsageStat[slotId="1",ifName="10GE1/0/1",queueId="0"] CE5880EI、CE8860EI、CE8850EI、CE6880EI:2其餘形態:100 huawei-qos.yang
huawei-qos:qos/qosCoreQueBufStats/qosCoreQueBufStat
說明: CE5880EI、CE6870EI、CE6875EI、CE6880EI不支持該採樣路徑。 芯片緩存使用信息。 全量採集 - 100 huawei-qos.yang
huawei-qos:qos/qosQueueDropStats/qosQueueDropStat 隊列緩存丟包計數。 全量採集或條件採集 採集條件:slotId;ifName
示例:huawei-qos:qos/qosQueueDropStats/qosQueueDropStat[slotId="1",ifName="10GE1/0/1"] CE5880EI、CE6880EI:2其餘形態:100 huawei-qos.yang
huawei-qos:qos/qosIngPortDropStats/qosIngPortDropStat
說明: 僅CE6857EI、CE6860EI、CE6865EI、CE8850EI、CE8860EI、CE8861EI、CE8868EI支持該採樣路徑。 接口入方向丟棄計數。 全量採集或條件採集 採集條件:ifName
示例:huawei-qos:qos/qosIngPortDropStats/qosIngPortDropStat[ifName="10GE1/0/1"] 100 huawei-qos.yang
huawei-qos:qos/qosIngPortQueBufStats/qosIngPortQueBufStat
說明: 僅CE6857EI、CE6860EI、CE6865EI、CE8850EI、CE8860EI、CE8861EI、CE8868EI支持該採樣路徑。 接口入方向隊列的緩存使用狀況。 全量採集或條件採集 採集條件:slotId;ifName;queueId
示例:huawei-qos:qos/qosIngPortQueBufStats/qosIngPortQueBufStat[slotId="1",ifName="10GE1/0/1",queueId="0"] 100 huawei-qos.yang
huawei-qos:qos/qosPortPfcStats/qosPortPfcStat
說明: CE5880EI、CE6880EI不支持該採樣路徑。 接口PFC反壓幀統計信息。 全量採集或條件採集 採集條件:ifName
示例:huawei-qos:qos/qosPortPfcStats/qosPortPfcStat[ifName="10GE1/0/1"] 100 huawei-qos.yang
huawei-qos:qos/qosGlobalCfgs/qosCaptureDropstats/qosCaptureDropstat
說明: 僅CE6857EI、CE6865EI、CE8850-64CQ-EI、CE8861EI、CE8868EI支持該採樣路徑。 丟棄報文捕獲信息。 全量採集 - 10000 huawei-qos.yang
huawei-qos:qos/qosQueueHdrmStats/qosQueueHdrmStat
說明: CE5880EI、CE6870EI、CE6875EI、CE6880EI不支持該採樣路徑。 隊列headroom緩存使用信息。 全量採集或條件採集 採集條件:ifName;queueId
示例:huawei-qos:qos/qosQueueHdrmStats/qosQueueHdrmStat[ifName="10GE1/0/1",queueId="0"] 100 huawei-qos.yang
huawei-qos:qos/qosPortEcnStats/qosPortEcnStat
說明: 僅CE6857EI、CE6865EI、CE6860EI、CE8850EI、CE8860EI、CE8861EI、CE8868EI支持該採樣路徑。 基於端口的ECN統計。 全量採集或條件採集 採集條件:slotId;ifName
示例:huawei-qos:qos/qosPortEcnStats/qosPortEcnStat[slotId="1",ifName="10GE1/0/1"] 100 huawei-qos.yang
huawei-qos:qos/qosAclResourceUsageStats/qosAclResourceUsageStat ACL資源使用信息。 全量採集 - 10000 huawei-qos.yang
huawei-qos:qos/qosBankResourceUsageStats/qosBankResourceUsageStat Bank資源使用信息。 全量採集 - 10000 huawei-qos.yang
openconfig-interfaces:interfaces/interface/subinterfaces/subinterface/state/counters
說明: CE6880EI和CE5880EI不支持該採樣路徑。 二層子接口統計信息。 全量採集 - 1000 openconfig-interfaces.yang openconfig-interfaces.proto
openconfig-interfaces:interfaces/interface/state/counters 物理接口統計信息。 全量採集或條件採集 採集條件:name
示例:openconfig-interfaces:interfaces/interface[name="10GEGE1/0/1"]/state/counters 1000 openconfig-interfaces.yang
採樣路徑對應的詳細採樣指標如表2所示。
採樣路徑 採樣路徑下的節點 採集數據指標 是否支持自定義閾值
huawei-fibstatus:fibstatus/ipRouteEntryCounts/ipRouteEntryCount slot 單板號。
***Name ***實例。
entryCount IPv4路由使用數量。
huawei-fibstatus:fibstatus/ipRouteResources/ipRouteResource slot 單板號。
total IPv4路由規格。
used IPv4路由使用總數量。
huawei-fibstatus:fibstatus/ipv6RouteEntryCounts/ipv6RouteEntryCount slot 單板號。
***Name ***實例。
entryCount IPv6路由使用數量。
huawei-fibstatus:fibstatus/ipv6RouteResources/ipv6RouteResource slot 單板號。
total IPv6路由規格。
totalMask64 掩碼長度64位及如下IPv6路由規格。
totalMask65To127 長掩碼IPv6路由規格。
totalMask128 掩碼長度128位IPv6路由規格。
used IPv6路由使用總數量。
huawei-devm:devm/cpuInfos/cpuInfo position 單板的位置信息。
entIndex 單板的索引號信息。
systemCpuUsage CPU佔用率信息,單位是%。
ovloadThreshold 過載閾值信息,單位是%。
unovloadThreshold 去過載閾值信息,單位是%。
interval CPU過載檢測週期信息,單位是分鐘。
huawei-devm:devm/memoryInfos/memoryInfo position 單板的位置信息。
entIndex 單板的索引號信息。
osMemoryTotal 系統內存總量信息,單位是KB。
osMemoryUse 系統已用內存數量,單位是KB。
osMemoryFree 系統內存剩餘量,單位是KB。
osMemoryUsage 系統內存佔用率信息,單位是%。
doMemoryTotal 通用路由平臺內存總量信息,單位是KB。
doMemoryUse 通用路由平臺內存已用數量信息,單位是KB。
doMemoryFree 通用路由平臺內存剩餘量,單位是KB。
doMemoryUsage 通用路由平臺內存佔用率,單位是%。
simpleMemoryTotal Simple內存總量,單位是KB。
simpleMemoryUse Simple內存已用數量信息,單位是KB。
simpleMemoryFree Simple內存剩餘量,單位是KB。
simpleMemoryUsage Simple內存佔用率,單位是%。
ovloadThreshold 過載閾值,單位是%。
unovloadThreshold 去過載閾值,單位是%。
huawei-devm:devm/ports/port/opticalInfo biasCurrent 光模塊當前電流。
manuDate 光模塊生產日期。
position 光模塊所在端口名稱。
rxPower 當前光模塊接收功率。
temperature 當前光模塊溫度。
txPower 當前光模塊發送功率。
voltage 當前光模塊電壓。
huawei-mac:mac/bdMacTotalNumbers/bdMacTotalNumber
說明: CE6810EI、CE6810LI、CE6850EI不支持該採樣路徑。 bdId BD標識。
number MAC地址總數量。
huawei-mac:mac/macAddrSummarys/macAddrSummary slotId 單板號。
totalNum MAC地址總數量。
blackholeNum 黑洞MAC地址數量。
staticNum 靜態MAC地址數量。
dynLocalNum 本槽位學習到的MAC地址表項總數。
dynRemote 其餘槽位學習到的MAC地址表項同步到本槽位的總數。
dynTrunk 全部Trunk接口學到的動態MAC地址表項總數。
oamNum OAM類型MAC地址表項的總數。
stickyNum Sticky類型MAC地址表項的總數。
securityNum 安全動態MAC地址表項的總數。
authenNum 認證類型MAC地址表項的總數。
guestNum 加入Guest VLAN的接口學習到的MAC地址表項的總數。
muxNum 加入MUX VLAN的接口學習到的MAC地址表項的總數。
tunnelNum 隧道類型MAC地址表項的總數。
snoopingNum Snooping類型MAC地址表項的總數。
evnNum EVN類型MAC地址表項的總數。
ovsdbNum OVSDB類型MAC地址表項的總數。
capacity MAC地址表容量。
huawei-ifm:ifm/interfaces/interface/ifStatistics sendByte 發送的正確字節數,單位是Byte。
sendPacket 發送的正確報文數,包括單播、組播、廣播。
sendMutiPacket 發送的正確組播報文。
sendBroadPacket 發送的正確廣播報文。
sendUniPacket 發送的正確單播報文。
receiveByte 接收的正確字節數,單位是Byte。
receivePacket 接收的正確報文數,包括單播、組播、廣播。
rcvMutiPacket 接收的正確組播報文。
rcvBroadPacket 接收的正確廣播報文。
rcvUniPacket 接收的正確單播報文。
rcvDropPacket 接收的丟棄報文數。
rcvErrorPacket 接收的錯誤報文數。
sendDropPacket 發送的丟棄報文數。
sendErrorPacket 發送的錯誤報文數。
huawei-qos:qos/qosPortBufUsageStats/qosPortBufUsageStat currentUsed 已使用的緩存,單位是字節。
ifName 接口名稱。
peakUsed 已使用緩存的峯值,單位是字節。
slotId 設備ID。
timestamp 時間戳,單位是毫秒。
huawei-qos:qos/qosQueueBufUsageStats/qosQueueBufUsageStat currentUsed 已使用的緩存,單位是字節。
ifName 接口名稱。
peakUsed 已使用緩存的峯值,單位是字節。
queueId 隊列編號。
slotId 設備ID。
timestamp 時間戳,單位是毫秒。
huawei-qos:qos/qosCoreQueBufStats/qosCoreQueBufStat
說明: CE5880EI、CE6870EI、CE6875EI、CE6880EI不支持該採樣路徑。 coreId 轉發覈編號。
currentPercent 已使用的共享緩存佔總共享緩存的百分比。
currentUsedByte 已使用的共享緩存,單位是字節。
currentUsedCell 已使用的共享緩存,單位是cell。
slotId 設備ID。
totalBufByte 總共享緩存,單位是字節。
totalBufCell 總共享緩存,單位是cell。
unitId 芯片編號。
huawei-qos:qos/qosQueueDropStats/qosQueueDropStat ifName 接口名稱。
queue0DropBytes 0號隊列丟棄的字節數。
queue0DropPackets 0號隊列丟棄的報文數。
queue1DropBytes 1號隊列丟棄的字節數。
queue1DropPackets 1號隊列丟棄的報文數。
queue2DropBytes 2號隊列丟棄的字節數。
queue2DropPackets 2號隊列丟棄的報文數。
queue3DropBytes 3號隊列丟棄的字節數。
queue3DropPackets 3號隊列丟棄的報文數。
queue4DropBytes 4號隊列丟棄的字節數。
queue4DropPackets 4號隊列丟棄的報文數。
queue5DropBytes 5號隊列丟棄的字節數。
queue5DropPackets 5號隊列丟棄的報文數。
queue6DropBytes 6號隊列丟棄的字節數。
queue6DropPackets 6號隊列丟棄的報文數。
queue7DropBytes 7號隊列丟棄的字節數。
queue7DropPackets 7號隊列丟棄的報文數。
slotId 設備ID。
timestamp 時間戳,單位是毫秒。
huawei-qos:qos/qosIngPortDropStats/qosIngPortDropStat
說明: 僅CE6857EI、CE6860EI、CE6865EI、CE8850EI、CE8860EI、CE8861EI、CE8868EI支持該採樣路徑。 dropBytes 丟棄的字節數。
dropPackets 丟棄的報文數。
ifName 接口名稱。
timestamp 時間戳,單位是毫秒。
huawei-qos:qos/qosIngPortQueBufStats/qosIngPortQueBufStat
說明: 僅CE6857EI、CE6860EI、CE6865EI、CE8850EI、CE8860EI、CE8861EI、CE8868EI支持該採樣路徑。 currentGuarantee 當前已使用的Guaranteed緩存。
ifName 接口名稱。
queueId 隊列編號。
slotId 設備ID。
timestamp 時間戳,單位是毫秒。
huawei-qos:qos/qosPortPfcStats/qosPortPfcStat
說明: CE5880EI、CE6880EI不支持該採樣路徑。 ifName 接口名稱。
queue0DeadlockDetectNum
說明: 僅CE8868EI、CE8861EI、CE8860EI、CE8850EI、CE6865EI、CE6860EI、CE6857EI支持該節點。 0號隊列PFC死鎖監控次數。
queue0DeadlockRecoveryNum
說明: 僅CE8868EI、CE8861EI、CE8860EI、CE8850EI、CE6865EI、CE6860EI、CE6857EI支持該節點。 0號隊列PFC死鎖恢復次數。
queue0ReceiveFrames 0號隊列接收的PFC反壓幀數。
queue0TransmitFrames 0號隊列發送的PFC反壓幀數。
queue1DeadlockDetectNum
說明: 僅CE8868EI、CE8861EI、CE8860EI、CE8850EI、CE6865EI、CE6860EI、CE6857EI支持該節點。 1號隊列PFC死鎖監控次數。
queue1DeadlockRecoveryNum
說明: 僅CE8868EI、CE8861EI、CE8860EI、CE8850EI、CE6865EI、CE6860EI、CE6857EI支持該節點。 1號隊列PFC死鎖恢復次數。
queue1ReceiveFrames 1號隊列接收的PFC反壓幀數。
queue1TransmitFrames 1號隊列發送的PFC反壓幀數。
queue2DeadlockDetectNum
說明: 僅CE8868EI、CE8861EI、CE8860EI、CE8850EI、CE6865EI、CE6860EI、CE6857EI支持該節點。 2號隊列PFC死鎖監控次數。
queue2DeadlockRecoveryNum
說明: 僅CE8868EI、CE8861EI、CE8860EI、CE8850EI、CE6865EI、CE6860EI、CE6857EI支持該節點。 2號隊列PFC死鎖恢復次數。
queue2ReceiveFrames 2號隊列接收的PFC反壓幀數。
queue2TransmitFrames 2號隊列發送的PFC反壓幀數。
queue3DeadlockDetectNum
說明: 僅CE8868EI、CE8861EI、CE8860EI、CE8850EI、CE6865EI、CE6860EI、CE6857EI支持該節點。 3號隊列PFC死鎖監控次數。
queue3DeadlockRecoveryNum
說明: 僅CE8868EI、CE8861EI、CE8860EI、CE8850EI、CE6865EI、CE6860EI、CE6857EI支持該節點。 3號隊列PFC死鎖恢復次數。
queue3ReceiveFrames 3號隊列接收的PFC反壓幀數。
queue3TransmitFrames 3號隊列發送的PFC反壓幀數。
queue4DeadlockDetectNum
說明: 僅CE8868EI、CE8861EI、CE8860EI、CE8850EI、CE6865EI、CE6860EI、CE6857EI支持該節點。 4號隊列PFC死鎖監控次數。
queue4DeadlockRecoveryNum
說明: 僅CE8868EI、CE8861EI、CE8860EI、CE8850EI、CE6865EI、CE6860EI、CE6857EI支持該節點。 4號隊列PFC死鎖恢復次數。
queue4ReceiveFrames 4號隊列接收的PFC反壓幀數。
queue4TransmitFrames 4號隊列發送的PFC反壓幀數。
queue5DeadlockDetectNum
說明: 僅CE8868EI、CE8861EI、CE8860EI、CE8850EI、CE6865EI、CE6860EI、CE6857EI支持該節點。 5號隊列PFC死鎖監控次數。
queue5DeadlockRecoveryNum
說明: 僅CE8868EI、CE8861EI、CE8860EI、CE8850EI、CE6865EI、CE6860EI、CE6857EI支持該節點。 5號隊列PFC死鎖恢復次數。
queue5ReceiveFrames 5號隊列接收的PFC反壓幀數。
queue5TransmitFrames 5號隊列發送的PFC反壓幀數。
queue6DeadlockDetectNum
說明: 僅CE8868EI、CE8861EI、CE8860EI、CE8850EI、CE6865EI、CE6860EI、CE6857EI支持該節點。 6號隊列PFC死鎖監控次數。
queue6DeadlockRecoveryNum
說明: 僅CE8868EI、CE8861EI、CE8860EI、CE8850EI、CE6865EI、CE6860EI、CE6857EI支持該節點。 6號隊列PFC死鎖恢復次數。
queue6ReceiveFrames 6號隊列接收的PFC反壓幀數。
queue6TransmitFrames 6號隊列發送的PFC反壓幀數。
queue7DeadlockDetectNum
說明: 僅CE8868EI、CE8861EI、CE8860EI、CE8850EI、CE6865EI、CE6860EI、CE6857EI支持該節點。 7號隊列PFC死鎖監控次數。
queue7DeadlockRecoveryNum
說明: 僅CE8868EI、CE8861EI、CE8860EI、CE8850EI、CE6865EI、CE6860EI、CE6857EI支持該節點。 7號隊列PFC死鎖恢復次數。
queue7ReceiveFrames 7號隊列接收的PFC反壓幀數。
queue7TransmitFrames 7號隊列發送的PFC反壓幀數。
timestamp 時間戳,單位是毫秒。
huawei-qos:qos/qosGlobalCfgs/qosCaptureDropstats/qosCaptureDropstat
說明: 僅CE6857EI、CE6865EI、CE8850-64CQ-EI、CE8861EI、CE8868EI支持該採樣路徑。 number 報文的索引號。當報文的索引號爲0xffffffff時,表示該條採樣信息無效。
dropType 報文丟棄類型。1:擁塞丟棄報文。2:轉發丟棄報文。
srcMac 報文的源MAC地址。
dstMac 報文的目的MAC地址。
dstPort 報文的目的端口號。
ethType 報文的以太類型。
protocol 報文的協議類型。
srcIpv4 報文的源IPv4地址。
dstIpv4 報文的目的IPv4地址。
srcPort 報文的源端口號。
vlanId 報文的VLAN ID。
ifName 報文的源端口名稱。
queueID 報文隊列ID。
reason 報文丟棄緣由。
timestamp 報文丟棄的時間。
huawei-qos:qos/qosQueueHdrmStats/qosQueueHdrmStat
說明: CE5880EI、CE6870EI、CE6875EI、CE6880EI不支持該採樣路徑。 currentUsed 已使用的緩存,單位是cell。
ifName 接口名稱。
peakUsed 已使用緩存的峯值,單位是cell。
queueId 隊列編號。
timestamp 時間戳,單位是毫秒。
huawei-qos:qos/qosPortEcnStats/qosPortEcnStat
說明: 僅CE6857EI、CE6865EI、CE6860EI、CE8850EI、CE8860EI、CE8861EI、CE8868EI支持該採樣路徑。 ifName 接口名稱。
packets ECN報文數。
slotId 設備ID。
timestamp 時間戳,單位是毫秒。
huawei-qos:qos/qosAclResourceUsageStats/qosAclResourceUsageStat aclTotal ACL資源的總數。
aclUsed 已使用的ACL資源。
chipId 芯片ID。
resourceName ACL資源類型。
slotId 槽位號。
huawei-qos:qos/qosBankResourceUsageStats/qosBankResourceUsageStat bankIdList Bank資源ID。
chipId 芯片號。
entryFree Bank中表項的剩餘數。
entryUsedList Bank中已經使用的表項。
slotId 槽位號。
openconfig-interfaces:interfaces/interface/subinterfaces/subinterface/state/counters
說明: CE6880EI和CE5880EI不支持該採樣路徑。 in_octets 接收的字節數,單位字節。
in_unicast_pkts 接收的報文數。
in_broadcast_pkts 該字段不支持,固定爲0。
in_multicast_pkts 該字段不支持,固定爲0。
in_discards 該字段不支持,固定爲0。
in_errors 該字段不支持,固定爲0。
in_unknown_protos 該字段不支持,固定爲0。
in_fcs_errors 該字段不支持,固定爲0。
out_octets 發送的字節數,單位字節。
out_unicast_pkts 發送的報文數。
out_broadcast_pkts 該字段不支持,固定爲0。
out_multicast_pkts 該字段不支持,固定爲0。
out_discards 該字段不支持,固定爲0。
out_errors 該字段不支持,固定爲0。
carrier_transitions 該字段不支持,固定爲0。
last_clear 上一次清除時間,單位納秒。
openconfig-interfaces:interfaces/interface/state/counters carrier_transitions 該字段不支持,固定爲0。
in_broadcast_pkts 接收的廣播報文數。
in_discards 接收的丟棄報文數。
in_errors 接收的錯誤報文數。
in_fcs_errors 接收的FCS錯報數。
in_multicast_pkts 接收的組播報文數。
in_octets 接收的字節數,單位字節。
in_unicast_pkts 接收的單播報文數。
in_unknown_protos 接收的未知報文數。
last_clear 該字段不支持,固定爲0。
out_broadcast_pkts 發送的廣播報文數。
out_discards 發送的丟棄報文數。
out_errors 發送的錯誤報文數。
out_multicast_pkts 發送的組播報文數。
out_octets 發送的字節數。
out_unicast_pkts 發送的單播報文數。

Telemetry應用場景

Telemetry在流量調優場景的應用

Telemetry在微突發檢測場景的應用

CE系列交換機做爲Telemetry設備側時,支持微突發監控功能。其實現以下:

  1. 基於微突發監控的Telemetry採樣訂閱建立成功後,設備按照採樣週期讀取端口隊列的緩存使用率。

  2. 當知足以下任一條件時,設備認爲出現微突發流量,記錄相應的微突發流量信息,包括微突發流量發生的時間以及發生時對應隊列的緩存使用率。
    • 讀取到的隊列緩存使用率高於或等於配置的緩存低門限、且本次讀取到的隊列緩存使用率與上一次記錄的隊列緩存使用率的變化率大於2%。
    • 讀取到的隊列緩存使用率高於或等於配置的緩存低門限、且本次的微突發流量發生時間與上一次記錄的微突發流量發生時間相比超過1s。
  3. 當Telemetry數據上送週期到達後,設備會將此上送週期內記錄的微突發流量信息按照Telemetry數據格式上送給採集器進行分析。

  4. 採集器收到設備上送的數據後,對數據進行分析,並依據分析結果對網絡進行動態調整。

對於除CE5880EI、CE8860EI、CE8850EI、CE6880EI之外的設備,頻繁讀取端口隊列緩存信息對設備的CPU使用率會產生影響。此時設備會根據CPU的使用率來調整微突發監控的採樣週期:

  • 當CPU的使用率低於或等於60%時,設備按照配置的採樣週期讀取端口隊列的緩存使用率。
  • 當CPU的使用率高於或等於80%時,設備中止讀取端口隊列的緩存使用率。
  • 當CPU的使用率高於60%且低於80%時,設備按照10:1的採樣比例讀取端口隊列的緩存使用率,即每10個採樣週期讀取1次端口隊列的緩存使用率。

(可選)配置微突發監控的採樣參數

基於微突發監控的Telemetry採樣訂閱建立成功後,能夠配置微突發監控相關的採樣參數。

背景信息

微突發監控的採樣參數包括緩存低門限和採樣週期。

  • 緩存低門限:

    當知足以下任一條件時,設備認爲出現微突發流量,記錄相應的微突發流量信息,包括微突發流量發生的時間以及發生時對應隊列的緩存使用率。

    • 讀取到的隊列緩存使用率高於或等於配置的緩存低門限、且本次讀取到的隊列緩存使用率與上一次記錄的隊列緩存使用率的變化率大於2%。
    • 讀取到的隊列緩存使用率高於或等於配置的緩存低門限、且本次的微突發流量發生時間與上一次記錄的微突發流量發生時間相比超過1s。
  • 採樣週期:

    • 對於除CE5880EI、CE8860EI、CE8850EI、CE6880EI之外的設備,微突發監控的採樣週期經過sensor-group命令的sample-interval參數進行配置。
    • 對於CE5880EI、CE6880EI設備,微突發監控的採樣週期固定爲2ms。
    • 對於CE8860EI、CE8850EI設備:
      • 若沒有經過qos buffer-monitoring enable使能隊列的擁塞監控功能,則微突發監控的採樣週期經過sensor-group命令的sample-interval參數進行配置。
        *若已經過qos buffer-monitoring enable使能隊列的擁塞監控功能,則微突發監控的採樣週期固定爲2ms。

        操做步驟

        1. 配置緩存低門限
    • 執行命令system-view,進入系統視圖。
      執行命令interface interface-type interface-number,進入接口視圖。
    • 執行命令qos [ queue queue-index ] buffer-monitoring percent low low-percent high high-percent,配置隊列的緩存低門限和緩存高門限。
      缺省狀況下,緩存低門限爲隊列緩存空間的10%,緩存高門限爲隊列緩存空間的90%。

    • 執行命令commit,提交配置。
      1. 配置採樣週期
  • 對於CE8860EI、CE8850EI:

    • 執行命令system-view,進入系統視圖。

    • 執行命令interface interface-type interface-number,進入接口視圖。

    • 執行命令qos buffer-monitoring parse enable,使能端口的擁塞分析功能。

      缺省狀況下,未使能端口的擁塞分析功能。

    • 執行命令quit,退回到系統視圖。

    • 執行命令commit,提交配置。
  • 除CE5880EI、CE6880EI外:

    • 執行命令system-view,進入系統視圖。
    • 執行命令telemetry,進入Telemetry視圖。

    • 執行命令subscription subscription-name,建立訂閱用於關聯上送目標組和採樣路徑並進入subscription視圖。

      缺省狀況下,沒有建立訂閱關聯上送目標組和採樣路徑。

    • 執行命令sensor-group sensor-name sample-interval sample-interval,配置關聯傳感器組的採樣週期。

      缺省狀況下,沒有對關聯採樣傳感器組進行採樣週期的配置。

    • 執行命令commit,提交配置。
相關文章
相關標籤/搜索