在此页面上
本机聚合概述
瞻博网络设备支持本机聚合。接口、CoS、MPLS、AF 和 AE 计数器聚合在瞻博网络设备上,然后将遥测数据流式传输到收集器。与计数器流式传输到收集器并在那里聚合的机外聚合相比,机上聚合可提供更准确的遥测数据来识别系统事件,例如线卡重置或 LAG 成员资格更改。机上聚合可减少收集器上的生产错误。它还显著降低了某些按数据计量的基于云的环境中的总体遥测数据带宽利用率。
聚合逻辑
数据聚合是从 na-grpcd 守护程序中作为 Google protobuf 消息接收的所有数据包转发引擎实例中给定计数器值的简单添加。na-grpcd 守护程序中的聚合模块根据收到的订阅请求缓存来自多个数据包转发引擎的统计信息。缓存是按收到的订阅完成的。
以下几点适用于数据聚合:-
如果统计数据为仪表类型,则字段值将为
Average
、Max
或Min
,聚合模块将根据仪表类型字段值对聚合进行排序。 -
对 YANG 文件中批注的计数器和仪表数据类型执行聚合。
- 在任何时候,缓存中都只有一个给定数据包转发引擎的数据源可用。新条目将覆盖现有缓存。
-
没有单独的计时器聚合或流式传输数据。每当从数据包转发引擎接收到示例数据时,都会使用之前发送的聚合时间戳来检查聚合和流式传输的时间。例如:
-
-
当前时间戳 – 以前聚合的时间戳> reporting_interval
-
-
导出时间戳带有聚合数据的中值时间戳。
-
na-grpcd 守护程序中的记录缓存仅在订阅有效(活动)时可用。当订阅处于非活动状态时,导出的聚合遥测数据可能与路由引擎命令行界面统计信息不匹配。以下触发器可能会导致此不匹配:
-
重新启动一个或多个 FPC,其中子成员是聚合接口的一部分。
-
从聚合接口中删除最多 n-1 个子成员(至少有一个子链路处于活动状态)。
-
-
最后,如果删除订阅,关联的缓存也会被删除。
在 gNMI 或 gRPC 流中,第一个样本可能不包含聚合统计信息计数器值,因为来自路由引擎的第一个间隔可能只从多个 FPC 接收到一个样本。但是,从第二个间隔开始,流将包含从所有 FPC 接收的聚合计数器值。
样本聚合基于其中一个传入样本触发。 如图 1 所示,样本 S2 延迟。由于此延迟,A2 聚合使用具有样本中值时间戳的旧 t0 样本。这被标记为 t1'(尽管实际上它是 t1)。
数据包转发引擎数据导出
聚合功能依赖于基于 protobuf 的基本遥测接口从数据包转发引擎导出数据。基于 protobuf 的遥测流将数据封装在称为 遥测流 的通用顶级信封中(如下所示)。
message TelemetryStream { // router hostname // (or, just in the case of legacy (microkernel) PFEs, the IP address) required string system_id = 1 [(telemetry_options).is_key = true]; // line card / RE (slot number) optional uint32 component_id = 2 [(telemetry_options).is_key = true]; // PFE (if applicable) optional uint32 sub_component_id = 3 [(telemetry_options).is_key = true]; // configured sensor name optional string sensor_name = 4 [(telemetry_options).is_key = true]; // sequence number, monotonically increasing for each // system_id, component_id, sub_component_id + sensor_name. optional uint32 sequence_number = 5; // timestamp (milliseconds since 00:00:00 UTC 1/1/1970) optional uint64 timestamp = 6 [(telemetry_options).is_timestamp = true]; … }
此顶级信封提供必要的信息,以便在称为 组合器的操作中构建数据包转发引擎统计信息缓存。组合器对具有通用接口 ID 和队列 ID 的多个数据实例执行逻辑联接,并生成系统范围的聚合输出队列统计信息。每个传入的 protobuf 都使用 TelemetryStream protobuf 中的传感器、组件和数据包转发引擎插槽字段组织到缓存中。组合器通过缓存来自特定传感器的数据包转发引擎的最新 protobuf 导出来跟踪每个数据包转发引擎的实例数据。使用二进制 protobuf 作为聚合单元可确保 protobuf 中包含的每个计数器集合的缓存和簿记开销最小。
从数据包转发引擎导出的遥测数据的时间戳会触发聚合数据计算。如果自上次聚合数据导出以来经过的时间超过传感器刷新间隔,则会导出新的聚合值。此新值使用触发聚合值导出的最后一个数据包转发引擎示例中的时间戳。这种方法无需在组合器内运行每个传感器定时器来获取聚合数据。此外,缓存上次从数据包转发引擎导出的数据可最大程度地减少导出的聚合数据中的“偏移”。这对于数据包转发引擎导出延迟以及可能阻止从数据包转发引擎进一步导出的操作更改等情况特别有用。
识别聚合数据样本
您可以通过包含值 na-grpcd
的标题字段来标识聚合样本。na-grpcd 守护程序生成聚合数据。
system_id: r1q13dep component_id: 65535 sensor_name: sensor_1004_1_1 subscribed_path: /interfaces/interface/subinterfaces/subinterface/ streamed_path: /interfaces/interface/subinterfaces/subinterface/ component: na-grpcd sequence_number: 2097152 export_timestamp: 1663783826926 update { timestamp: 1663783826901000000 prefix: /interfaces/interface[name='ge-1/0/0']/subinterfaces/subinterface[index='16386'] update { path { elem { name: init-time } } val { uint_val: 1663780730 } }
使用提示
使用本机聚合时,请记住以下注意事项:
-
数据包和字节速率计算基于聚合统计信息时间戳消息。由于时间戳消息在一个路由引擎上合成,但基于来自多个 FPC 的缓存数据,因此数据包和字节速率可能不准确。当报告间隔配置合理时,准确性会更高(根据最佳实践指南)。
-
如果数据包转发引擎未导出统计信息消息(例如,操作状态为关闭),则聚合统计信息不会导出到收集器。
-
预计使用 AE 捆绑包的遥测 MPLS LSP 统计信息的数据包和字节速率偏差为 5%。
支持的资源路径
本机聚合支持以下资源路径:
-
/junos/system/linecard/interface/traffic/
-
/junos/system/linecard/interface/queue/
-
/junos/system/linecard/interface/logical/usage/
-
/junos/system/linecard/cos/interface/interface-set/output/queue/
-
/junos/services/label-switched-path/usage/
-
/qos/interfaces/interface/output/queues/queue/state/
-
/interfaces/interface/state/counters/
-
/接口/接口/子接口/子接口/状态/计数器/
-
/接口/接口/子接口/子接口/IPv4/状态/计数器/
-
/interfaces/interface/subinterfaces/subinterface/ipv6/state/counters/
-
/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/state/counters/
-
/junos/system/linecard/interface/queue/ (CoS 本机资源路径)
-
/junos/system/linecard/qmon-sw/ (CoS 本机资源路径)
-
/qos/interfaces/interface/output/queues/queue/state/ (CoS OpenConfig 资源路径)
-
/qos/interfaces/interface/input/virtual-output-queues/voq-interface/queues/queue/state/ (CoS OpenConfig resource path)
-
/junos/system/linecard/interface/queue/ (物理接口统计信息的本机路径,支持 AE 接口)
-
/qos/interfaces/interface/output/queues/queue/state/ (支持 AE 接口)
有关资源路径、其支持的叶以及支持它们的设备平台的详细信息,请参阅 Junos YANG 数据模型资源管理器 。