Grafana警报始终给出no_data

时间:2017-05-13 17:13:58

标签: influxdb grafana

我想在Grafana中设置警报,一旦值超出16到36的范围。我正在使用涌入数据库

我有一个简单的查询(A):

const [data, CHUNK, result] = [[1,2,3,4,5,6], 3, []];

let N = 0;

const stream = new ReadableStream({
  pull(controller) {
    if (N < data.length)
      // slice `N, N += CHUNK` elements from `data`
      controller.enqueue(data.slice(N, N += CHUNK))
    else
      // if `N` is equal to `data.length` call `.close()` on stream
      controller.close()
  }
});

const reader = stream.getReader();

const processData = ({value, done}) => {
  // if stream is closed return `result`; `reader.closed` returns a `Promise`
  if (done) return reader.closed.then(() => result);
  if (data.slice(N - CHUNK, N).every((n, index) => n === value[index])) {
    console.log(`N: ${N}, value: [${value}]`)
    result.push(...value);
    return reader.read().then(data => processData(data))
  }
}

const readComplete = res => console.log(`result: [${res}]`);

reader.read()
.then(({value, done}) => {
  if ([1,2,3].every((n, index) => n === value[index])) {
    console.log(`N: ${N}, value: [${value}]`)
    result.push(...value);
    return reader.read()
  }
})
.then(({value, done}) => {
  if ([4,5,6].every((n, index) => n === value[index])) {
    console.log(`N: ${N}, value: [${value}]`)
    result.push(...value);
    // return `result`; `reader.closed` returns a `Promise`
    return reader.closed.then(() => result);
  }
})
.then(readComplete)
.catch(err => console.log(err));

图表显示正确。

我的警报配置如下所示: 当查询(A,1s,现在)的最后一个()时间超出范围16到36

但如果我评估测试规则,我总是得到状态no_data。我做错了什么?

1 个答案:

答案 0 :(得分:2)

好吧.. 3年后.. =)

我有同样的问题。要解决此问题,请转到您的Influx服务器,然后输入:

use <databasename>
show field keys

“显示字段键”命令将返回以下内容:

name: table_name
fieldKey fieldType
-------- ---------
value    string

问题在于, fieldType 列必须为 float ,而不是字符串。就我而言,我删除了数据库并再次创建了它。然后我插入为十进制。