Influxdb 接入HTTP終端實現報警自定義

十年河東,十年河西,莫欺少年窮

學無止境,精益求精

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

 

 @天才臥龍的博客

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章