本页内容
本机聚合概述
瞻博网络设备支持本机聚合。设备聚合接口、CoS、MPLS、AF 和 AE 计数器,然后设备将遥测数据流式传输到收集器。与异机聚合相比,异机聚合将计数器流式传输到收集器并在收集器中聚合,而本机聚合可提供更准确的遥测数据。本机聚合还可以识别系统性事件,例如线卡重置或 LAG 成员资格更改。本机聚合可减少收集器的生产错误。在某些基于云的环境中,它还显著降低了对数据进行计量的总体遥测数据带宽利用率。
聚合逻辑
数据聚合是从聚合模块进程中作为 Google protobuf 消息接收的所有数据包转发引擎实例的给定计数器值的简单添加。聚合模块根据收到的订阅请求处理来自多个数据包转发引擎的统计信息。缓存是根据收到的订阅完成的。
以下几点适用于数据聚合:-
如果统计数据为仪表类型,则字段值将为
Average、Max或Min,并且聚合模块根据仪表类型字段值对聚合进行排序。 -
对 YANG 文件中注释的计数器和仪表数据类型进行聚合。
- 在任何时候,缓存中都只有一个给定数据包转发引擎的数据源可用。新条目将覆盖现有缓存。
-
没有单独的计时器聚合或流传输数据。每当从数据包转发引擎接收样本数据时,都会使用之前发送的聚合时间戳检查聚合和流传输的时间。例如:
-
当前时间戳 – 以前聚合的时间戳> reporting_interval
-
导出时间戳带有聚合数据的中值时间戳。
-
na-grpcd 守护程序中的记录缓存仅在订阅有效(活动)时可用。当订阅处于非活动状态时,导出的聚合遥测数据可能与路由引擎命令行界面统计信息不匹配。以下触发器可能会造成这种不匹配:
-
重新启动一个或多个 FPC,其中子成员是聚合接口的一部分。
-
从聚合接口中删除最多 n-1 个子成员(至少一个子链路处于活动状态)。
-
-
最后,如果删除订阅,则关联的缓存也会被删除。
在 gNMI 或 gRPC 流中,第一个示例可能不包含聚合统计计数器值,因为来自路由引擎的第一个间隔可能只从多个 FPC 接收一个样本。但是,从第二个时间间隔开始,流将包含从所有 FPC 接收的聚合计数器值。
基于其中一个传入样本触发样本聚合。如 图 1 所示,样品 S2 延迟。由于这种延迟,A2 聚合使用旧的 t0 样本和样本的中值时间戳。这被标记为 t1'(尽管实际上是 t1)。
聚合
数据包转发引擎数据导出
聚合功能依靠基于 protobuf 的基本遥测接口从数据包转发引擎导出数据。基于 protobuf 的遥测流将数据封装在名为 TelemetryStream 的通用顶级信封中,以便导出(如下所示)。
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];
…
}
此顶级信封提供在名为 combinator 的作中构建数据包转发引擎统计信息缓存所需的信息。组合器对具有通用接口 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/
-
/interfaces/interface/subinterfaces/subinterface/state/counters/
-
/interfaces/interface/subinterfaces/subinterface/ipv4/state/counters/
-
/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 资源路径)
-
/junos/system/linecard/interface/queue/(物理接口统计信息的本机路径,支持 AE 接口)
-
/qos/interfaces/interface/output/queues/queue/state/(支持 AE 接口)
有关资源路径、其支持的叶以及支持它们的设备平台的详细信息,请参阅 Junos YANG 数据模型资源管理器 。
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能浏览器 查看您使用的平台是否支持某项功能。