日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

滴滴夜莺02-自定义推送数据

發布時間:2023/12/20 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 滴滴夜莺02-自定义推送数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

寫在前面

collector采集的數據可以push到監控系統,一些場景下,我們需要自定義的一些數據指標比如:

  • 線上某服務的qps
  • 某業務的在線人數
  • 某個接?的響應時間
  • 某個?面的狀態碼(500、200)
  • 某個接?的請求出錯次數
  • 某個業務的每分鐘的收?統計
  • 那么問題來了,監控平臺支持自定義推送數據嗎,答案是肯定了,回顧一下上篇文章內容

    綠色部分最左側有一個***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/push

    2.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發送

  • 選一個測試機器往裝有transfer的機器上發送指標數據,當返回{"dat":"ok","err":""}表示成功,
  • 如果返回502,首先檢查nginx日志,然后定位問題,一般都是由于發送數據格式不對導致的。push的數據應該是個數組,另外要加個header Content-Type: application/json

    回到n9e平臺,在全部對象里面會發現多了一個節點信息viotest

    稍作解釋:endpoint會自動解析出來,自動進入全部對象那個表

    然后進入監控大盤會發現,我們推送的數據已經顯示出來了

    總結

    以上是生活随笔為你收集整理的滴滴夜莺02-自定义推送数据的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。