首页 > 解决方案 > InfluxDB TICK 脚本:如何比较个人平均值和累积平均值?

问题描述

我正在从一些 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)

但正如你所看到的,他们并没有像描述的那样加入

在此处输入图像描述

是否有一个查询可以做到这一点?还是有更好的方式加入他们?

标签: statisticsinfluxdbkapacitor

解决方案


推荐阅读