我正在从一些 Heroku Dyno 收集指标,我正在尝试创建一个 Kapacitor 警报,当一个 Dyno 的负载平均值偏离所有 Dyno 的总集体平均值时将触发该警报。
我还没有想出在单个查询中执行此操作的方法,因此我试图将它们加入到 TICKscript 中。我遇到的问题是在加入时他们不匹配。我想这是因为它认为标签是一个可匹配的值。我宁愿它只是忽略标签并匹配,因为我仍然需要标签挂在周围,这样我就可以确定哪个测功机违反了阈值。
到目前为止,这就是我想出的获取两组数据的方法。
var total_mean = batch
|query('''
SELECT mean("load_avg_5m")
FROM "heroku"."autogen"."dyno_load"
WHERE "source" =~ /web/
''')
.period(1m)
.every(1m)
.groupBy(time(1m))
.fill('null')
var independent_means = batch
|query('''
SELECT mean("load_avg_5m")
FROM "heroku"."autogen"."dyno_load"
WHERE "source" =~ /web/
''')
.period(1m)
.every(1m)
.groupBy(time(1m), 'source')
.fill('null')
这是加入。
var means = total_mean
|join(independent_means)
.as('total', 'independent')
.tolerance(1m)
.fill(0.0)
但正如你所看到的,他们并没有像描述的那样加入
是否有一个查询可以做到这一点?还是有更好的方式加入他们?