我想在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。我做错了什么?
答案 0 :(得分:2)
好吧.. 3年后.. =)
我有同样的问题。要解决此问题,请转到您的Influx服务器,然后输入:
use <databasename>
show field keys
“显示字段键”命令将返回以下内容:
name: table_name
fieldKey fieldType
-------- ---------
value string
问题在于, fieldType 列必须为 float ,而不是字符串。就我而言,我删除了数据库并再次创建了它。然后我插入为十进制。