如何在 Bosun 中使用 win.disk.duration 或如何对计数器类型指标进行下采样?

How do I use win.disk.duration in Bosun or how do I downsample a counter type metric?

我正在使用 Bosun 收集有关硬盘平均响应时间的信息 (win.disk.duration),它生成的图表如下:

我知道这是显示 WMI 报告值的变化率,AvgDiskSecPerRead

我想要做的是对这个计算值进行下采样,取一段时间内的最大值。但是,如果我将 Max 的下采样设置为 5m 的 window,我会得到:

注意 Y 轴比例变化。

如何降低采样率以获得我期望的结果(或者为什么我要求的没有意义)?

看来这个转换是将聚合应用于一阶导数。这是 example using win.disk.duration metric from scollector but on a different backend.

  1. 原始数据表示重置后的计数器。
  2. 一阶导数计算用户定义的时间间隔(1 秒)内的变化率。默认情况下,负增量作为重置处理,但此行为可以 controlledrate-counter=true|false 参数。
  3. 聚合函数 max 应用于用户定义时间段(5 分钟)内的费率。

不过,我建议使用 95 百分位函数而不是 maxp95 统计数据允许您从分析中 discards 不频繁的峰值。

免责声明:我为 Axibase 工作。

目前,由于这是一个计数器,您无法使用 OpenTSDB(由于问题标签,我假设您正在使用的数据源)对其进行正确的下采样。这是因为 OpenTSDB 在设计过程中出现了数学错误,并且尚未修复。更多信息在此 Google groups thread。总之,速率计算(导数)需要在操作顺序上靠前

此外,请注意,目前我们这边 (scollector) 似乎搞砸了一个相关指标 win.disk.percent_time,该指标仍然需要研究(在此 issue 中进行跟踪)。