835
財經資訊
監控數據上報__自定義監控_用戶指南_雲監控-阿裏雲
您可以使用API或SDK上報監控數據。
注意事項
- SDK支持python(2.6 +)與bash
SDK上報數據
參數說明
- userid,是用戶的賬號ID。
- 監控項名稱:創建監控項時填寫的“監控項名稱”。
- 監控項值:監控項對應的監控數據。
- 字段信息:創建監控項時填寫的“字段信息”和它的值。這個參數用於對數據區分維度。
使用步驟
下載SDK
a.自定義監控SDK(python版) :cms_post.py
b. 自定義監控SDK(bash版) :cms_post.sh
編寫腳本。
a. 在用戶的腳本中,import cms_post,調用cms_post的post方法推送數據到雲監控。
b. post方法中傳入4個參數,分別為userid, 監控項名稱,監控項值,字段信息,您隻需添加定時任務即可。
定時調度腳本,按創建監控項時定義的上報周期上報數據。Linux環境可以使用Crontab,Windows環境可以使用quartz.net。
補充說明:請在您的腳本開始處添加對應的解釋器,一般默認#!/usr/bin/python,在test.py中,import cms_post,然後調用cms_post.post()上報您的監控數據。請將您的test.py文件和cms_post.py文件放在同一文件夾下,避免import時發生錯誤。
腳本示例(Python+linux環境)
#!/usr/bin/python
import cms_post
def get_mem_usage_percent():
try:
f = open('/proc/meminfo', 'r')
for line in f:
if line.startswith('MemTotal:'):
mem_total = int(line.split()[1])
elif line.startswith('MemFree:'):
mem_free = int(line.split()[1])
elif line.startswith('Buffers:'):
mem_buffer = int(line.split()[1])
elif line.startswith('Cached:'):
mem_cache = int(line.split()[1])
elif line.startswith('SwapTotal:'):
vmem_total = int(line.split()[1])
elif line.startswith('SwapFree:'):
vmem_free = int(line.split()[1])
else:
continue
f.close()
except:
return None
physical_percent = usage_percent(mem_total - (mem_free + mem_buffer + mem_cache), mem_total)
virtual_percent = 0
if vmem_total > 0:
virtual_percent = usage_percent((vmem_total - vmem_free), vmem_total)
return physical_percent
def usage_percent(use, total):
try:
ret = (float(use) / total) * 100
except ZeroDivisionError:
raise Exception("ERROR - zero division error")
return ret
MEMS_usage=get_mem_usage_percent()
if __name__ == '__main__':
cms_post.post("1058019241820815","MEMS_usage",MEMS_usage,"Percent","ecsinstanceId=i-28zdkoobp")
API上報數據
用戶可以使用雲監控接口 https://open.cms.aliyun.com/metrics/put 上報監控數據。
參數說明
- metricName:創建監控項時填寫的“監控項名稱”。
- unit:創建監控項時填寫的“單位”。
- dimensions:創建監控項時填寫的“字段信息”,允許多個,使用半角逗號分隔。
- namespace:格式為“ACS/CUSTOM/userId”,將userid替換為您的賬號ID。
- userId:即您的賬號ID。
- timestamp:數據上傳的時間,支持兩種表示方式:一種方式取時間的長整型表示方式1395556197448,另一種方式按照 ISO8601 標準表示,並使用 UTC 時間,例如 2014-9-11T10:00:00Z,注意它對應的北京時間是 2014-09-11 18:00:00。
Post方式
用戶可以一次提交多條統計數據,統計數據放在消息體中,遵循 JSON 格式。如消息體內容:
userId=123456&namespace=acs/custom/123456&metrics =
[{"metricName":"vm.cpu","timestamp":"1395556197448","value":80.0,"unit":"Percen
t","dimensions":{"instanceId":"vm_001"}}]
GET方式
用戶可以一次提交多條統計數據,統計數據存放在 metrics 字段中,遵循 JSON 格式。
https://open.cms.aliyun.com
/metrics/put?userId=123456&namespace=acs/custom/123456&metrics=[{"metricName":
"vm.cpu","timestamp":"1395556197448","value":80.0,"unit":"Percent","dimensions"
:{"instanceId":"vm_001"}},{"metricName":"vm.mem","timestamp":"1395556197448","v
alue":1280.0,"unit":"Megabytes","dimensions":{"instanceId":"vm_002"}}]
響應消息
雲監控收到HTTP請求後,若處理成功則直接返回狀態碼為200的HTTP響應,消息體中不攜帶內容,用戶也不需要處理響應消息。若處理失敗,返回 JSON 格式的消息體,同時HTTP響應的狀態碼不為200。
錯誤 | 錯誤描述 | HTTP Status Code |
---|---|---|
InternalServerError | 由於內部錯誤或不確定的異常導致的請求失敗 | 500 |
InvalidParameterCombination | 參數組合錯誤 | 400 |
InvalidParameterValue | 參數無效或超出範圍 | 400 |
MissingRequiredParameter | 缺少必須的參數 | 400 |
例如:
{"code":"InvalidParameterValue","msg":"the metricName is empty."}
最後更新:2016-11-23 16:04:00
上一篇:
創建自定義監控項和報警規則__自定義監控_用戶指南_雲監控-阿裏雲
下一篇:
報警服務概覽__報警服務_用戶指南_雲監控-阿裏雲
修改備份策略__備份恢複_API 參考_雲數據庫 RDS 版-阿裏雲
DMS 登錄雲數據庫__連接實例_快速入門_雲數據庫 Redis 版-阿裏雲
安全管家應急服務能提供數據恢複服務嗎?__常見問題_產品常見問題_安全管家服務-阿裏雲
雲盤參數和性能測試方法__磁盤_產品簡介_雲服務器 ECS-阿裏雲
Column__DataType_API 參考_表格存儲-阿裏雲
是否可以僅允許子用戶查看青島的ECS實例,但是不允許查看磁盤信息及快照信息___雲服務器(ECS)授權問題_授權常見問題_訪問控製-阿裏雲
短信簽名的要求是什麼?__常見問題_短信服務-阿裏雲
產品與技術__產品簡介_數據集成-阿裏雲
報警服務概覽__報警服務_用戶指南_雲監控-阿裏雲
CDN功能列表__用戶指南_CDN-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲