滴滴夜莺02-自定义推送数据
寫在前面
collector采集的數(shù)據(jù)可以push到監(jiān)控系統(tǒng),一些場(chǎng)景下,我們需要自定義的一些數(shù)據(jù)指標(biāo)比如:
那么問題來(lái)了,監(jiān)控平臺(tái)支持自定義推送數(shù)據(jù)嗎,答案是肯定了,回顧一下上篇文章內(nèi)容
綠色部分最左側(cè)有一個(gè)***plugin*** ,這個(gè)表示監(jiān)控平臺(tái)是支持插件機(jī)制了,我們可以自己寫一些采集插件或者使用開源的采集器,shell、python、java什么語(yǔ)言都可以!甚至是一些二進(jìn)制都o(jì)k,這里只介紹兩種比較常用的語(yǔ)言作為例子
1.準(zhǔn)備工作
1.安裝
這邊不多講監(jiān)控平臺(tái)的安裝部署,有問題去看安裝視頻,通過源碼編譯安裝
2. 推送數(shù)據(jù)格式說明
2.1 shell
# 注意,http request body是個(gè)json,這個(gè)json是個(gè)列表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: 最核心的字段,代表這個(gè)采集項(xiàng)具體度量的是什么, 比如是cpu_idle呢,還是memory_free, 還是qps
- endpoint: 標(biāo)明Metric的主體(屬主),比如metric是cpu_idle,那么Endpoint就表示這是哪臺(tái)機(jī)器的cpu_idle
- timestamp: 表示匯報(bào)該數(shù)據(jù)時(shí)的unix時(shí)間戳,注意是整數(shù),代表的是秒
- value: 代表該metric在當(dāng)前時(shí)間點(diǎn)的值,float64
- step: 表示該數(shù)據(jù)采集項(xiàng)的匯報(bào)周期,這對(duì)于后續(xù)的配置監(jiān)控策略很重要,必須明確指定。
- counterType: 只能是COUNTER或者GAUGE二選一,前者表示該數(shù)據(jù)采集項(xiàng)為計(jì)時(shí)器類型,后者表示其為原值 (注意大小寫)
- GAUGE:即用戶上傳什么樣的值,就原封不動(dòng)的存儲(chǔ)
- COUNTER:指標(biāo)在存儲(chǔ)和展現(xiàn)的時(shí)候,會(huì)被計(jì)算為speed,即(當(dāng)前值 - 上次值)/ 時(shí)間間隔
- tags: 一組逗號(hào)分割的鍵值對(duì), 對(duì)metric進(jìn)一步描述和細(xì)化, 可以是空字符串. 比如idc=lg,比如service=xbox等,多個(gè)tag之間用逗號(hào)分割
3.實(shí)戰(zhàn)
出于某種原因,公司機(jī)器不能連接外網(wǎng),因此pip 、yum等軟件源就無(wú)法使用,只能通過本地源的方式去install,所以這里就演示通過shell發(fā)送
如果返回502,首先檢查nginx日志,然后定位問題,一般都是由于發(fā)送數(shù)據(jù)格式不對(duì)導(dǎo)致的。push的數(shù)據(jù)應(yīng)該是個(gè)數(shù)組,另外要加個(gè)header Content-Type: application/json
回到n9e平臺(tái),在全部對(duì)象里面會(huì)發(fā)現(xiàn)多了一個(gè)節(jié)點(diǎn)信息viotest
稍作解釋:endpoint會(huì)自動(dòng)解析出來(lái),自動(dòng)進(jìn)入全部對(duì)象那個(gè)表
然后進(jìn)入監(jiān)控大盤會(huì)發(fā)現(xiàn),我們推送的數(shù)據(jù)已經(jīng)顯示出來(lái)了
總結(jié)
以上是生活随笔為你收集整理的滴滴夜莺02-自定义推送数据的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php微信授权登录sdk,微信授权登录如
- 下一篇: windows XP系统自动关机