Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 

聚合遥测Junos数据的准则

该流程的Junos 遥测接口一个重要功能是在传输数据(而不是设备)的收集器上进行数据处理。数据不会自动聚合,但可以聚合进行分析。

数据聚合在下列情景中非常有用:

  • 固定时间范围内相同度量的数据,例如 30 秒间隔内的平均物理接口入口错误数。

  • 来自相同度量的不同来源(例如多个线卡)的数据,例如标签交换系列 (LSP) 统计信息或过滤器计数器统计信息。

  • 来自多个来源的数据,例如聚合以太网接口的输入和输出统计信息。

以下各节介绍如何执行各种情景的数据聚合。这些部分中的示例使用 InfluxDB 时间序列数据库接受对遥测数据的查询。InfluxDB 是一个以 Go 专门编写的开源数据库,用于处理时间序列数据。

在固定时间范围聚合数据

在固定时间范围聚合相同指标的数据是检测趋势的常见且实用方法。指标可以包括规格,即单值或累积计数器。您可能还需要持续聚合数据。

示例:聚合指标数据

在此例中,将 中的 数据编写至 InfluxDB 数据库,其标记用于识别主机名称、接口名称和相应的队列号以及称为 JuniperNetworksSensors.jnpr_interface_ext.interface_stats.egress_queue_info.current_buffer_occupancy port.proto current_buffer_occupancy 的测量。有关此示例中使用的特定值,请参阅表1。

表 1:遥测数据值

时间戳(秒)

价值

标签

1458704133

1547

queue_number=0,interface_name='xe-1/0/0',host='sjc-a'

1458704143

3221

queue_number=0,interface_name='xe-1/0/0',host='sjc-a'

1458704155

4860

queue_number=0,interface_name='xe-1/0/0',host='sjc-a'

1458704166

6550

queue_number=0,interface_name='xe-1/0/0',host='sjc-a'

每个测量数据点都有一个时间戳和已记录值。此示例中,标记 queue_number 是接口队列的数字标识符。

要以 30 秒的间隔时间聚合此数据,请使用以下 influxDB 查询:

对于 $time_start $time_end 和 ,请指定实际时间范围。

示例:聚合数据以用于累积统计信息

某些Junos 遥测接口传感器报告累积计数器值,例如定义为 的入口数据包数 JuniperNetworksSensors.jnpr_interface_ext.interface_stats.ingress_stats.packets

从数据包或字节计数器获取流量速率很常见。与规格指标不同,累积计数器系列中的初始数据点仅用于设置基准。

使用以下准则创建累积统计信息的数据库查询:

  • 计算特定时间间隔的累积值。您可以计算在时间间隔内记录的几个数据点之间的平均值,或者对值进行测量。所有数据点应属于同一系列。如果不同时间报告的两个数据点之间发生计数器重置,请勿同时使用这两个数据点。

  • 确定上一时间间隔的适当值。如果计数器自上次更新以来已重置,请声明该值不可用。

  • 如果前一个间隔可用,计算数据点和流量速率之差。

这些准则汇总到以下入向DB 查询中。此查询假设数据存储在度量中 ingress_packets 。该查询使用与规格指标示例相同的标记,以及计数器初始化时间的标签 init_time 。该查询使用 30 秒时间间隔内的平均值。它计算具有相同计数器初始化的指标的速率。

使用以下查询计算每一次接收的数据包数量,而不派生速率。

在某些情况下,查询会针对特定时间间隔返回多个聚合数据点。例如,有四个数据点以用于时间间隔。有两个数据点 init_time t0 ,另两个则有 init_time t1 。您可运行一个使用最后更改时间戳标记(而不是 )的查询,以计算差异,以及使用相同最后更改时间戳获取两个数据点之间的 last_change init_time 速率。

提示:

所有这些查询都可以作为持续查询运行,并可以定期填充新的时间序列度量。

聚合来自多个来源的数据

某些指标从多个线卡或数据包转发引擎中报告。在下列情景下聚合从不同来源派生的数据非常有用:

  • 标签交换系列 (LSP) 的数据包和字节计数由每个线卡单独报告。但是,路径计算元素控制器需要查看整个设备的 LSP 路径。

  • 对于瞻博网络虚拟输出队列的设备,每个物理接口的线卡都会单独报告每个队列的尾部丢弃或随机早期检测丢弃统计信息。能够聚合接口的所有线卡的统计信息将会很有用。

  • 各线卡单独报告连接到转桌或聚合以太网接口的防火墙过滤器的过滤器计数器。聚合所有线卡的统计信息非常有用。

要聚合来自多个来源的数据,请执行以下操作:

  1. 聚合每个源特定时间段的数据,例如每个线卡。

  2. 聚合在步骤 1中为每个来源获取的数据。

对于存储在 InfluxDB 数据库中的数据,可通过运行持续查询并填充新度量来完成此过程的第 1 步。强烈建议您根据每个来源对数据点进行分组。例如,对于 LSP 统计信息 component_id ,gpb 消息中的 标识发送数据的线卡。根据每个唯一项对数据点进行分组 component_id

示例:聚合来自多个来源的数据

此示例将运行两个查询,从所有线卡获取数据的 LSP 数据包速率。

首先,针对每个标记和标记指定的度量 lsp_packet_count 运行以下 component_id 持续 counter_name 查询。每个唯 component_id 一标记对应不同的线卡。此查询填充了一个新的度量 lsp_packet_rate.

注意:

LSP 统计信息传感器不会报告计数器初始化时间。

使用此持续查询派生的新测量 — 运行以下查询,该查询聚合来自所有线卡的数据,以针对名为 lsp_packet_count 的 LSP 的数据包速率 lsp-sjc-den-1

注意:

由于此查询不会根据标记或线卡对数据进行分组,因此将返回所有组件或线卡的 component_id LSP 数据包速率。

为多个指标聚合数据

聚合多个值的指标可能会很有用。例如,对于聚合以太网接口,通常需要跟踪每个接口成员数据包和字节速率,以及聚合链路的接口利用率。

示例:聚合多个度量值

此示例将运行以下两个查询:

  • 通过持续查询获取聚合以太网接口中每个成员链路的入口数据包计数

  • 聚合属于相同聚合以太网接口的所有成员链路的数据包计数数据的查询

以下持续查询为聚合以太网接口中的每个成员 ingress_packets 链路获取度量。标记 interface_name 标识每个成员接口。您也可使用 parent_ae_name 标记标识特定聚合以太网接口中的成员身份。将每个成员链路与 parent_ae_name 标记分组可确保仅针对当前成员链路收集数据。例如,接口可能在报告间隔期间更改其成员关系。使用特定聚合以太网接口分组成员接口意味着成员链路的数据不能传输到其现在作为成员的新聚合以太网接口。

以下查询聚合聚合以太网接口(即成员链路)入口数据包的数据。

注意:

此查询可聚合聚合以太网接口的数据 ae0 。标记 parent_ae_name 不会验证实际成员链路。