閱讀835 返回首頁    go 財經資訊


監控數據上報__自定義監控_用戶指南_雲監控-阿裏雲

您可以使用API或SDK上報監控數據。

注意事項

  • SDK支持python(2.6 +)與bash

SDK上報數據

參數說明

  • userid,是用戶的賬號ID
  • 監控項名稱:創建監控項時填寫的“監控項名稱”。
  • 監控項值:監控項對應的監控數據。
  • 字段信息:創建監控項時填寫的“字段信息”和它的值。這個參數用於對數據區分維度。

使用步驟

  1. 下載SDK

    a.自定義監控SDK(python版) :cms_post.py

    b. 自定義監控SDK(bash版) :cms_post.sh

  2. 編寫腳本。

    a. 在用戶的腳本中,import cms_post,調用cms_post的post方法推送數據到雲監控。

    b. post方法中傳入4個參數,分別為userid, 監控項名稱,監控項值,字段信息,您隻需添加定時任務即可。

  3. 定時調度腳本,按創建監控項時定義的上報周期上報數據。Linux環境可以使用Crontab,Windows環境可以使用quartz.net。

  4. 補充說明:請在您的腳本開始處添加對應的解釋器,一般默認#!/usr/bin/python,在test.py中,import cms_post,然後調用cms_post.post()上報您的監控數據。請將您的test.py文件和cms_post.py文件放在同一文件夾下,避免import時發生錯誤。

腳本示例(Python+linux環境)

  1. #!/usr/bin/python
  2. import cms_post
  3. def get_mem_usage_percent():
  4. try:
  5. f = open('/proc/meminfo', 'r')
  6. for line in f:
  7. if line.startswith('MemTotal:'):
  8. mem_total = int(line.split()[1])
  9. elif line.startswith('MemFree:'):
  10. mem_free = int(line.split()[1])
  11. elif line.startswith('Buffers:'):
  12. mem_buffer = int(line.split()[1])
  13. elif line.startswith('Cached:'):
  14. mem_cache = int(line.split()[1])
  15. elif line.startswith('SwapTotal:'):
  16. vmem_total = int(line.split()[1])
  17. elif line.startswith('SwapFree:'):
  18. vmem_free = int(line.split()[1])
  19. else:
  20. continue
  21. f.close()
  22. except:
  23. return None
  24. physical_percent = usage_percent(mem_total - (mem_free + mem_buffer + mem_cache), mem_total)
  25. virtual_percent = 0
  26. if vmem_total > 0:
  27. virtual_percent = usage_percent((vmem_total - vmem_free), vmem_total)
  28. return physical_percent
  29. def usage_percent(use, total):
  30. try:
  31. ret = (float(use) / total) * 100
  32. except ZeroDivisionError:
  33. raise Exception("ERROR - zero division error")
  34. return ret
  35. MEMS_usage=get_mem_usage_percent()
  36. if __name__ == '__main__':
  37. 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 格式。如消息體內容:

  1. userId=123456&namespace=acs/custom/123456&metrics =
  2. [{"metricName":"vm.cpu","timestamp":"1395556197448","value":80.0,"unit":"Percen
  3. t","dimensions":{"instanceId":"vm_001"}}]

GET方式

用戶可以一次提交多條統計數據,統計數據存放在 metrics 字段中,遵循 JSON 格式。

  1. https://open.cms.aliyun.com
  2. /metrics/put?userId=123456&namespace=acs/custom/123456&metrics=[{"metricName":
  3. "vm.cpu","timestamp":"1395556197448","value":80.0,"unit":"Percent","dimensions"
  4. :{"instanceId":"vm_001"}},{"metricName":"vm.mem","timestamp":"1395556197448","v
  5. 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

例如:

  1. {"code":"InvalidParameterValue","msg":"the metricName is empty."}

最後更新:2016-11-23 16:04:00

  上一篇:go 創建自定義監控項和報警規則__自定義監控_用戶指南_雲監控-阿裏雲
  下一篇:go 報警服務概覽__報警服務_用戶指南_雲監控-阿裏雲