多平台统一管理软件接口,如何实现多平台统一管理软件接口
1385
2022-09-11
Telemetry 流量统计分析(telemetry采集流量精度)
Telemetry简介
定义
Telemetry是一项远程的从物理设备或虚拟设备上高速采集数据的技术。设备通过推模式(Push Mode)周期性的主动向采集器上送设备的接口流量统计、CPU或内存数据等信息,相对传统拉模式(Pull Mode)的一问一答式交互,提供了更实时更高速的数据采集功能。
Telemetry与传统网络监控方式的对比
Telemetry原理
Telemetry静态订阅
是指设备作为客户端,采集器作为服务端,由设备主动发起到采集器的连接,进行数据采集上送。
狭义的Telemetry是一个设备特性,广义的Telemetry是一个闭环的自动化运维系统,由网络设备、采集器、分析器和控制器等部件组成,分为网管侧和设备侧,如图1所示。
Telemetry网管侧和设备侧协同运作,完成整体的Telemetry静态订阅需要五个操作步骤顺序执行:
静态配置:控制器通过命令行配置支持Telemetry的设备,订阅数据源,完成数据采集。 推送采样数据:网络设备依据控制器的配置要求,将采集完成的数据,上报给采集器进行接收和存储。 读取数据:分析器读取采集器存储的采样数据。 分析数据:分析器分析读取到的采样数据,并将分析结果发给控制器,便于控制器对网络进行配置管理,及时调优网络。
调整网络参数:控制器将网络需要调整的配置下发给网络设备;配置下发生效后,新的采样数据又会上报到采集器,此时Telemetry网管侧可以分析调优后的网络效果是否符合预期,直到调优完成后,整个业务流程形成闭环。
Telemetry动态订阅的业务流程
Telemetry动态订阅是指设备作为服务端,采集器作为客户端发起到设备的连接,由设备进行数据采集上送。
狭义的Telemetry是一个设备特性,广义的Telemetry是一个闭环的自动化运维系统,由网络设备、采集器、分析器和控制器等部件组成,分为网管侧和设备侧,如图1所示。
Telemetry网管侧和设备侧协同运作,完成整体的Telemetry动态订阅需要五个操作步骤顺序执行:
Telemetry关键技术
对于Telemetry设备侧:Telemetry=原始数据+数据模型+编码格式+传输协议;对于Telemetry网管侧:Telemetry=收集系统+存储系统+应用分析系统。
原始数据
Telemetry采样的原始数据可来自网络设备的转发面、控制面和管理面,目前支持采集设备的接口流量统计、CPU或内存数据等信息。
数据模型
Telemetry基于YANG模型组织采集数据。
YANG是一种数据建模语言,用于设计可以为各种传输协议操作的配置数据模型、状态数据模型、远程调用模型和通知机制等。
编码格式
支持GPB(Google Protocol Buffer)编码格式
GPB编码格式,是一种与语言无关、平台无关、扩展性好的用于通信协议、数据存储的序列化结构数据格式。
Telemetry利用GPB编码格式(GPB编码格式的文件名后缀为.proto),提供一种灵活、高效、自动序列化结构数据的机制,属于二进制编码,性能好,效率高。
支持JSON(JavaScript Object Notation)编码格式
传输协议
支持GRPC协议(Google Remote Procedure Call Protocol)
GRPC协议是谷歌发布的一个基于HTTP2协议承载的高性能、通用的RPC开源软件框架。通信双方都基于该框架进行二次开发,从而使得通信双方聚焦在业务,无需关注由GRPC软件框架实现的底层通信。
几类“.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所示。
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设备侧时,支持微突发监控功能。其实现如下:
基于微突发监控的Telemetry采样订阅创建成功后,设备按照采样周期读取端口队列的缓存使用率。 当满足如下任一条件时,设备认为出现微突发流量,记录相应的微突发流量信息,包括微突发流量发生的时间以及发生时对应队列的缓存使用率。 读取到的队列缓存使用率高于或等于配置的缓存低门限、且本次读取到的队列缓存使用率与上一次记录的队列缓存使用率的变化率大于2%。 读取到的队列缓存使用率高于或等于配置的缓存低门限、且本次的微突发流量发生时间与上一次记录的微突发流量发生时间相比超过1s。 当Telemetry数据上送周期到达后,设备会将此上送周期内记录的微突发流量信息按照Telemetry数据格式上送给采集器进行分析。 采集器收到设备上送的数据后,对数据进行分析,并依据分析结果对网络进行动态调整。
对于除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。 操作步骤 配置缓存低门限 执行命令system-view,进入系统视图。执行命令interface interface-type interface-number,进入接口视图。 执行命令qos [ queue queue-index ] buffer-monitoring percent low low-percent high high-percent,配置队列的缓存低门限和缓存高门限。缺省情况下,缓存低门限为队列缓存空间的10%,缓存高门限为队列缓存空间的90%。 执行命令commit,提交配置。 配置采样周期 对于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,提交配置。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~