Python獲取阿里雲產品雲監控數據指標

1.阿里雲服務器

  • 先建立阿里雲帳號;html

  • 購買一臺低配置的阿里雲ECS服務器;python

  • 還能夠查看ECS雲監控的監控指標數據;json

1.png

2.經過阿里雲官方的Python SDK API獲取阿里雲監控數據指標

  • 阿里云爲了保證每個主帳戶的安全性,設置了一個RAM的訪問控制,阿里雲官方鼓勵用戶 使用RAM受權子帳戶,且爲子帳戶建立 AccessKey ID 和 AccessKeySecret,在阿里雲提供 的SDK中,必須使用AccessKey ID 和 AccessKeySecret才能經過API訪問到雲產品;安全

  • 首先登陸RAM,建立子帳戶,且爲子帳戶生成AccessKey ID 和 AccessKeySecret ,https://ram.console.aliyun.com/overview服務器

  • 建立一個新的子帳戶 阿里雲

  • 給這個子帳戶建立一個AccessKey ID 和 AccessKeySecret 命令行

  • 而後給這個新的子帳戶添加權限,能夠訪問阿里雲監控; code

3.安裝阿里雲Python SDK, 且獲取監控數據

確認已經安裝了python,而後使用pip命令行安裝兩個依賴orm

pip install aliyun-python-sdk-core
pip install aliyun-python-sdk-cms
  • 獲取CPU的使用率
from aliyunsdkcore import client
from aliyunsdkcms.request.v20180308 import QueryMetricListRequest
import time
from datetime import datetime, timedelta
import json
from pprint import pprint

# 返回最近三分鐘的時間戳, 毫秒單位,必須是整數類型
def get_start_timestamp():
    start_datetime = datetime.now() - timedelta(minutes=3)
    start_timestamp = int(start_datetime.timestamp()*1000)
    return start_timestamp

# 初始化客戶端,填寫ak, secret, region_id
clt = client.AcsClient('LTAIxdvbuz2MD74Z','I2b7O1UJmkjfgHVC4i7Atb8gGXwAbU','cn-shenzhen')
# 初始化請求對象
request = QueryMetricListRequest.QueryMetricListRequest()
# 設置響應類型
request.set_accept_format('json')
# 設置項目
request.set_Project('acs_ecs_dashboard')
# 設置獲取的指標的key, 這裏是CPU的使用率
request.set_Metric('CPUUtilization')
# 獲取3分鐘之前的時間戳
start_time = get_start_timestamp()
# 設置起始時間
request.set_StartTime(start_time)
# 設置結束時間
request.set_EndTime(int(datetime.now().timestamp() * 1000))
# 設置實例ID
request.set_Dimensions("{'instanceId':'i-wz98bynewgl7gu3jqqb3'}")
# 添加異常打印
result = clt.do_action_with_exception(request)
# 反序列化
result = json.loads(result)
# 打印結果
pprint(result)
  • 獲取系統磁盤讀IOPS
from aliyunsdkcore import client
from aliyunsdkcms.request.v20180308 import QueryMetricListRequest
import time
from datetime import datetime, timedelta
import json
from pprint import pprint

def get_start_timestamp():
    start_datetime = datetime.now() - timedelta(minutes=3)
    start_timestamp = int(start_datetime.timestamp()*1000)
    return start_timestamp
clt = client.AcsClient('LTAIxdvbuz2MD74Z','I2b7O1UJmkjfgHVC4i7Atb8gGXwAbU','cn-shenzhen')
request = QueryMetricListRequest.QueryMetricListRequest()
request.set_accept_format('json')
request.set_Project('acs_ecs_dashboard')

# 設置獲取的指標的key, 這裏是CPU的使用率
request.set_Metric('DiskReadIOPS')

start_time = get_start_timestamp()
request.set_StartTime(start_time)
request.set_EndTime(int(datetime.now().timestamp() * 1000))
request.set_Dimensions("{'instanceId':'i-wz98bynewgl7gu3jqqb3'}")
result = clt.do_action_with_exception(request)
result = json.loads(result)
pprint(result)

4.獲取第三方的監控指標

  • (1)首先須要從aliyunsdkcore模塊中導入client,從aliyunsdkcms.request.v20180308中導 入QueryMetricListRequest類,再根據需求導入其餘模塊;htm

  • (2)而後使用client.AcsClient()方法初始化客戶端;

  • (3)使用QueryMetricListRequest類中的QueryMetricListRequest()方法初始化請求對象;

  • (4)使用set_accept_format()設置響應類型,set_Project()方法設置項目,set_Metric()方法 設置獲取的指標的key,set_StartTime()設置起始時間,set_EndTime()方法設置終止時間, set_Dimensions()方法設置實例的ID,do_action_with_exception()方法添加異常打印等;

5.預設監控項參考

  • 雲服務器ECS的基礎監控項有例如CPUUtilization(CPU百分比)、InternetInRate(公網 流入帶寬)、IntranetInRate(私網流入帶寬)、DiskReadBPS(系統磁盤總讀BPS)等等 ,具體能夠參考連接https://help.aliyun.com/document_detail/28619.html?

參考:https://www.9xkd.com/user/plan-view.html?id=3232777786

相關文章
相關標籤/搜索