騰訊雲自定義雲監控
阿新 • • 發佈:2019-04-19
exc sta 技術 統計 rand base64 dex src api 一、背景原由
由於騰訊雲監控無法滿足特定需求,故需自定義監控 4、監控數據查看
點擊展開【監控視圖】選項卡。選擇想要查看的地域、命名空間、維度就能查看實時數據列表:
由於騰訊雲監控無法滿足特定需求,故需自定義監控
二、操作步驟
1、創建自定義監控配置項目
a、登錄騰訊雲控制臺,選擇【雲監控】-【自定義監控】,點擊展開【監控配置】選項卡。在頁面頂部點擊【新增配置項】按鈕,進入創建自定義命名空間、緯度和指標頁面。
b、選擇地域,輸入自定義的命名空間、緯度、監控指標、指標中文名和單位,點擊【確定】按鈕即可完成自定義監控配置項的創建:
2、創建自定義監控統計方式
a、點擊展開【監控配置】選項卡。在監控配置列表頁,點擊創建好的指標後【管理】按鈕,進入指標配置詳情頁:
3、用戶數據上報
用戶需要自行登錄雲主機並配置數據上報方式。數據上報需要將騰訊雲機器上的指標按照規範報給騰訊雲平臺。
點擊展開【監控視圖】選項卡。選擇想要查看的地域、命名空間、維度就能查看實時數據列表:
如下是代碼中配置的,需和上面創建的監控的命名空間、維度、指標等相同。
API接口:https://monitor.api.qcloud.com/v2/index.php?Action=CreateNamespace
如下是相關代碼:
#! /usr/bin/env python # -*- coding:utf-8 -*- import urllib2 import time import json import random import hmac import hashlib import os statvfs = os.statvfs(‘/‘) class NwsSender: def init(self): self.url=‘http://receiver.monitor.tencentyun.com:8080/v2/index.php‘ self.timeout=10 def send_data(self,json_data): try: req=urllib2.Request(self.url) req.add_header(‘Content-Type‘,‘application/json‘) timeout=self.timeout data=json.dumps(json_data) http_ret=urllib2.urlopen(req,data,timeout) response=http_ret.read() try: json_resp=json.loads(response) retcode=int(json_resp["code"]) if retcode!=0: print "send error,retcode:%d,msg:%s,data:%s" % (retcode,json_resp[‘message‘],data) else: print "send succ,data:%s" % response except ValueError,e: print ‘value error:%s‘ % response except urllib2.URLError,e: print "send error"+str(e)+data def main(): secretId="AKxxxxxxxt" secretKey="PxxxxxxxR" region=‘sh‘ total_disk_space = statvfs.f_frsize * statvfs.f_blocks free_disk_space = statvfs.f_frsize * statvfs.f_bfree disk_usaged = (total_disk_space - free_disk_space) * 100.0 / total_disk_space disk_usaged = int(disk_usaged) # disk_tip = "硬盤空間使用率(最大100%):"+str(disk_usage)+"%" # print(disk_tip) data={ "SecretId":secretId, "Namespace":"liyk1", "Region":region, "Data":[ {"dimensions":{"disk_usage":"sda","ip":"172.16.0.16"}, "metricName":"disk", "value":disk_usaged } ] } sender=NwsSender() sender.init() while True: ts=int(time.time()) nonce=random.randint(10000,100000) text="POSTreceiver.monitor.tencentyun.com/v2/index.php?Action=PutMonitorData&Nonce=%d&Region=%s&SecretId=%s&Timestamp=%d" % (nonce,region,secretId,ts) data[‘Timestamp‘]=ts data[‘Nonce‘]=nonce data[‘Signature‘]=hmac.new(secretKey,text,hashlib.sha1).digest().encode("base64").rstrip(‘\n‘) sender.send_data(data) time.sleep(3) if __name__==‘__main__‘: main()
騰訊雲自定義雲監控