滴滴夜莺02-自定义推送数据
生活随笔
收集整理的這篇文章主要介紹了
滴滴夜莺02-自定义推送数据
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
寫在前面
collector采集的數據可以push到監控系統,一些場景下,我們需要自定義的一些數據指標比如:
那么問題來了,監控平臺支持自定義推送數據嗎,答案是肯定了,回顧一下上篇文章內容
綠色部分最左側有一個***plugin*** ,這個表示監控平臺是支持插件機制了,我們可以自己寫一些采集插件或者使用開源的采集器,shell、python、java什么語言都可以!甚至是一些二進制都ok,這里只介紹兩種比較常用的語言作為例子
1.準備工作
1.安裝
這邊不多講監控平臺的安裝部署,有問題去看安裝視頻,通過源碼編譯安裝
2. 推送數據格式說明
2.1 shell
# 注意,http request body是個json,這個json是個列表ts=`date +%s`;curl -H "Content-Type: application/json" -X POST --data '[{"endpoint": "viotest", "tags": "service=sshd, port=22", "timestamp": 1589525503, "metric": "tempa.cpu0", "extra": "pid=359696", "value": 33, "counterType": "GAUGE", "step": 20}]' http://ip:5810/api/transfer/push2.2 python
#!-*- coding:utf8 -*- import requests import time import jsonts = int(time.time()) payload = [{"endpoint": "test-endpoint","metric": "temp1","timestamp": ts,"step": 60,"value": 50,"counterType": "GAUGE","tags": "idc=lg,loc=wuxi",},{"endpoint": "test-endpoint","metric": "temp2","timestamp": ts,"step": 60,"value": 66,"counterType": "GAUGE","tags": "idc=lg,loc=wuxi",}, ]r = requests.post("http://ip:5810/api/transfer/push", data=json.dumps(payload))2.3 字段詳解
- metric: 最核心的字段,代表這個采集項具體度量的是什么, 比如是cpu_idle呢,還是memory_free, 還是qps
- endpoint: 標明Metric的主體(屬主),比如metric是cpu_idle,那么Endpoint就表示這是哪臺機器的cpu_idle
- timestamp: 表示匯報該數據時的unix時間戳,注意是整數,代表的是秒
- value: 代表該metric在當前時間點的值,float64
- step: 表示該數據采集項的匯報周期,這對于后續的配置監控策略很重要,必須明確指定。
- counterType: 只能是COUNTER或者GAUGE二選一,前者表示該數據采集項為計時器類型,后者表示其為原值 (注意大小寫)
- GAUGE:即用戶上傳什么樣的值,就原封不動的存儲
- COUNTER:指標在存儲和展現的時候,會被計算為speed,即(當前值 - 上次值)/ 時間間隔
- tags: 一組逗號分割的鍵值對, 對metric進一步描述和細化, 可以是空字符串. 比如idc=lg,比如service=xbox等,多個tag之間用逗號分割
3.實戰
出于某種原因,公司機器不能連接外網,因此pip 、yum等軟件源就無法使用,只能通過本地源的方式去install,所以這里就演示通過shell發送
如果返回502,首先檢查nginx日志,然后定位問題,一般都是由于發送數據格式不對導致的。push的數據應該是個數組,另外要加個header Content-Type: application/json
回到n9e平臺,在全部對象里面會發現多了一個節點信息viotest
稍作解釋:endpoint會自動解析出來,自動進入全部對象那個表
然后進入監控大盤會發現,我們推送的數據已經顯示出來了
總結
以上是生活随笔為你收集整理的滴滴夜莺02-自定义推送数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php微信授权登录sdk,微信授权登录如
- 下一篇: 多线程的几种实现方式