十年河東,十年河西,莫欺少年窮
學無止境,精益求精
influxdb 的報警由以下三種組成
1、創建檢查
紅色框爲絕對值檢查,綠色框爲【死人檢查】,這裏選擇絕對值檢查
打開創建面板後,選擇你要操作的存儲桶,表,字段,以及所使用的函數
上圖選擇的存儲桶爲packing ,表爲pack,字段爲temp,函數爲max
其中temp可以理解爲設備傳感器傳遞過來的溫度,函數max是指取最大值。
切換到第二個面板,我們定義時間和報警級別
名稱和時間很好理解,不做解釋,offset是指偏移量,如果你設置爲1秒,則他會查詢延遲一秒的數據。
influxdb 將報警等級分爲4中,如下
點開其中一個 + 號
創建如下:
當溫度大於30度時,爲致命的警告
當溫度處於20~29.999時,爲警告性報警
當溫度處於10~19.999時,爲一般性報警
當溫度小於10時,正常
點擊報存,進入信息推送終端的創建
2、信息推送終端
這裏是指一旦有報警信息,influxdb自動會將報警信息(json格式)推送到終端URL
我的終端URL代碼爲(Net6代碼):
[AllowAnonymous] [HttpPost] [Route("TestAlter")] public IActionResult TestAlter([FromBody] JObject data) { logger.LogError(JsonConvert.SerializeObject(data)); return Ok(data); }
3、告警規則
告警規則中的時間間隔是用來檢測產生的報警信息,而產生的報警信息存在系統存儲桶中,如下
查看這個存儲桶
現在像packing 存儲桶中插入一條數據,
pack,code=01 temp=32d
等待15秒後,查看報警列表
最後,檢查下終端HTTP是否接收到報警信息
在服務器上,我用Nlog記錄的日誌
2022-12-05 16:14:51.3820|0|ERROR|IotWebSite.Controllers.BatteryInfluxController|{"_check_id":"0a6432886bd87000","_check_name":"Test","_level":"crit","_measurement":"notifications","_message":"Check: Test is: crit","_notification_endpoint_id":"0a6434db6b691000","_notification_endpoint_name":"Http_test","_notification_rule_id":"0a64354bf80fa000","_notification_rule_name":"RuleTest","_source_measurement":"pack","_source_timestamp":1670228220000000000,"_start":"2022-12-05T08:16:45Z","_status_timestamp":1670228220000000000,"_stop":"2022-12-05T08:17:15Z","_time":"2022-12-05T08:17:15Z","_type":"threshold","_version":1,"code":"01","temp":32} |url: |action: |IotWebSite.Controllers.BatteryInfluxController.TestAlter
@天才臥龍的博客