如何在bosun中的石墨查询中使用NumberExpr

时间:2016-11-21 11:26:39

标签: graphite bosun

我使用宏来定义核心计算。而且我希望尽可能少地为宏定义。所以,我有一个宏,它基于变量$period的计算。然后我尝试在石墨查询中使用与period相关的变量,但是我收到错误。

简化代码:

# defined outside a macro
$period_min = 5

#macro, skipping irrelevant variables
$control_period_min = $period_min * 3

$periods = graphiteBand( $expr, "${control_period_min}m", "1h", "tag", 1 )

产地:

  

graphiteBand:时间:未知单位*持续时间5 * 3m

我想知道,是否有可能以不同的方式实现相同的逻辑?

1 个答案:

答案 0 :(得分:1)

变量只是字符串替换。因为你把它放在引号中,所以你创建了一个字面意思为“5 * 3”的字符串。

您可以使用tod() function

# defined outside a macro
$period_min = 5

#macro, skipping irrelevant variables
$control_period_min = $period_min * 3

avg(q("avg:rate:os.cpu{host=*bosun*}", tod($control_period_min), ""))