博森如何添加不同标签的系列?

时间:2016-11-04 17:27:01

标签: bosun

我正在尝试使用bosun表达式添加4个系列。它们来自1,2,3,4周前。我使用shift()移动它们以获得当前时间。但我无法添加它们,因为它们有shift=1w等标签。如何将这些系列添加到一起? 谢谢

编辑:这是2周的查询

$period = d("1w")
$duration = d("30m")

$week1end = tod(1 * $period )
$week1start = tod(1 * $period + $duration )

$week2end = tod(2 * $period )
$week2start = tod(2 * $period + $duration )

$q1 = q("avg:1m-avg:os.cpu{host=myhost}", $week1start, $week1end)
$q2 = q("avg:1m-avg:os.cpu{host=myhost}", $week2start, $week2end)

$shiftedq1 = shift($q1, "1w")
$shiftedq2 = shift($q2, "2w")

$shiftedq1+ $shiftedq2

编辑:这是博森所说的 enter image description here

问题类似于:如何在over查询的输出中添加系列:

over("avg:1m-avg:os.cpu{host=myhost}", "30m", "1w", 2)

1 个答案:

答案 0 :(得分:2)

有一个名为addtags的新函数是待处理文档(请参阅https://raw.githubusercontent.com/bosun-monitor/bosun/master/docs/expressions.md for draft),它与重命名结合使用时似乎有效。将最后一行更改为:

$shiftedq1+addtags(rename($shiftedq2,"shift=shiftq2"),"shift=1w")

应该生成一个像{ host=hostname, shift=1w, shiftq2=2w }这样的结果组。如果您为q3和q4添加其他查询,则可能需要将shift标记重命名为shiftq3和shiftq4等唯一值。

如果您使用的是数字而不是系列集,则转置功能会让您“删除”不需要的标记。这在生成警报时很有用,因为暴击和警告需要单个数值而不是系列集:

$average_per_q = avg(merge($shiftedq1,$shiftedq2))
$sum_over_all = sum(t($average_per_q,"host"))
Result: { host=hostname } 7.008055555555557

请注意,您可能希望使用os.cpu的计数器而不是仪表。示例:$q1 = q("avg:1m-avg:rate{counter,,1}:os.cpu{。如果没有该速率部分,则使用原始计数器值而不是规格值。