当达到“无数据”状态时,我使用以下事务将所有仪表板中的所有警报更新为ok(因此我没有收到有关在我的个人网络上关闭计算机的电子邮件) .

我注意到这些警报的设置数据存储在SQLite3数据库的json字段中,该数据库在我的grafana实例中存储仪表板和警报,并在JSON中更新了看似正确的字段,如下所示:

BEGIN TRANSACTION;

SELECT id, name, version, json_extract(settings, '$.noDataState') FROM alert;

UPDATE alert SET settings = json_set(settings, '$.noDataState', "ok");

/* SELECT id, name, version, json_set(settings, '$.noDataState', "keep_state") FROM alert; */

SELECT id, name, version, json_extract(settings, '$.noDataState') FROM alert;

commit /*do a rollback first */;

但是,它似乎没有导致Grafana中的设置更新;是的,我确实停止了grafana服务器并事先备份了grafana.db;然后断开数据库并再次启动grafana-server .