全部产品
Search
文档中心

云监控:Python SDK调用示例

更新时间:Apr 12, 2024

本文以Python SDK为例,为您介绍如何通过OpenAPI调用DescribeMetricList接口查询云产品的监控数据。

步骤一:查看OpenAPI文档

通过阅读API概览得知,查询云产品监控数据的OpenAPI为DescribeMetricList。请您根据文档,了解调用该接口需要准备的数据和权限。

步骤二:创建RAM用户并授权

身份

您可以使用阿里云账号(主账号)、RAM用户、RAM角色调用该接口,有关各种身份的差异,请参见身份。本案例中,我们使用RAM用户进行接口调用。

登录RAM访问控制,创建一个仅允许API调用的RAM用户,并记录AccessKey信息。具体操作,请参见创建RAM用户

凭证

在创建RAM用户时会默认生成一个AccessKey,可直接使用。您也可以进入到对应的RAM用户详情页面,在认证管理页签,单击创建AccessKey,创建一个新的AccessKey。具体操作,请参见创建AccessKey

说明

RAM用户的AccessKey Secret只在创建时显示,不支持查看,请注意保存。

授权

  1. 访问RAM用户列表,单击目标RAM用户操作列的添加权限

  2. 选择权限区块中输入关键字CloudMonitor进行搜索,选择AliyunCloudMonitorFullAccess策略。

    本文示例选择AliyunCloudMonitorMetricDataReadOnlyAccess系统策略。

    说明
    • 云监控的系统权限策略如下:

      • AliyunCloudMonitorFullAccess:管理云监控(CloudMonitor)的权限。

      • AliyunCloudMonitorReadOnlyAccess:只读访问云监控(CloudMonitor)的权限。

      • AliyunCloudMonitorMetricDataReadOnlyAccess:访问云监控(CloudMonitor)时序指标数据的权限。

    • 关于如何创建自定义权限,请参见创建自定义权限策略授权信息

  3. 单击确定,完成授权操作。

步骤三:调用OpenAPI

本文以Python SDK调用OpenAPI,其他语言SDK的用法类似。更多信息,请参见云监控SDK。您也可根据业务的实际需要选择其他调用方式,更多调用方法,请参见概述

准备Python环境

  1. 下载并安装Python。

    Python 3的下载地址,请参见Python 3

  2. 查看Python版本。

    • Linux和macOS系统

      打开终端,输入python --version

    • Windows系统

      • 在Python的安装路径下,双击python.exe。

      • 打开命令提示符页面。

        通过键盘快捷键Win+R打开运行对话框,输入命令python,单击确定

配置环境变量

为避免将AccessKey硬编码到业务代码中带来的安全风险,本示例采用配置环境变量的方法管理AccessKey。

  • Linux和macOS系统

    将以下命令中的<access_key_id><access_key_secret>替换为您自己的AccessKey ID和AccessKey Secret,输入到终端执行。

  • export ALIBABA_CLOUD_ACCESS_KEY_ID=<access_key_id>
    export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<access_key_secret>
  • Windows系统

    新建环境变量文件,添加环境变量ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET,并写入已准备好的AccessKey ID和AccessKey Secret。然后重启Windows系统。

安装依赖

pip install alibabacloud_credentials
pip install alibabacloud_cms20190101==2.0.8
pip install alibabacloud_tea_console

下载示例代码

  1. 在OpenAPI门户,访问DescribeMetricList接口的调用地址

  2. 请求参数Namespace输入acs_ecs_dashboardMetricName输入cpu_idle,其他参数均可不填写,直接单击发起调用

  3. 先单击SDK示例页签,再单击Python页签。

    获取Python语言的SDK示例。

  4. 单击下载完整工程,下载示例代码包。

  5. 在本地解压示例代码包,并进入alibabacloud_sample目录。

运行代码

执行以下命令:

python sample.py

得到如下输出结果:

{
  "NextToken": "eyJiYXRjaGVzIjoxLCJidWNrZXRCeXRlcyI6Ik9BPT0iLCJidWNrZXRzIjozMiwiY2hyb25vbG9naWNhbCI6IkRFRkFVTFQiLCJjdXJyZW50QnVja2V0Ijo1NiwiY3VycmVudFRhcmdldFRpbWVTbG90IjoxNjkxMDIwODAwLCJlbmRUaW1lIjoxNjkxMDQxMDU5NzYwLCJleHBvcnRFbmRUaW1lIjowLCJleHBvcnRSZXRyeSI6MiwiZXhwb3J0U2Vuc2l0aXZpdHkiOjE1LCJleHBvcnRTdGFydFRpbWUiOjAsImV4cHJlc3NSYW5nZSI6dHJ1ZSwiZXh0cmFSb3VnaFJlZ0V4cyI6W10sImZhaWxGYXN0IjpmYWxzZSwiaGFzTmV4dCI6dHJ1ZSwiaW5jbHVkZUVuZE1hdGNoZXJzNFJhbmdlIjpmYWxzZSwiaW5kZXgiOjAsImxhdGVzdExvZ1RpbWUiOjAsImxpbWl0IjowLCJsb2dUaW1lTW9kZSI6ZmFsc2UsIm1hdGNoZXJzIjp7ImNoYWluIjpbeyJsYWJlbCI6InVzZXJJZCIsIm9wZXJhdG9yIjoiRVFVQUxTIiwidmFsdWUiOiIxMjA4ODYzMTc4NjEyOTUzIn1dLCJsb2NrZWQiOnRydWV9LCJtYXhEZXZpYXRpb24iOi0xLCJtZXRyaWMiOiJzeXN0ZW0uY3B1IiwibWV0cmljVHlwZSI6Ik1FVFJJQyIsIm5hbWVzcGFjZSI6ImFjc19ob3N0IiwibmV4dFBrQWRhcHRlciI6e30sIm9mZnNldCI6NSwicmVxdWVzdE1vZHVsZSI6IkFQSSIsInJvdWdoRGltUmVnRXhzIjpbXSwic3RhcnRUaW1lIjoxNjkxMDQwNDY1MDAwLCJzdGVwIjotMSwidGFnTWF0Y2hlcnMiOnsiY2hhaW4iOltdLCJsb2NrZWQiOnRydWV9LCJ0YXJnZXRUaW1lU2xvdHMiOlsxNjkxMDIwODAwXSwidGltZW91dCI6MzAsInV1aWQiOiJhYzVhZGY5NS05MDhlLTRkYjItYjY5OC0yZjg4MjdjZmE5YjEiLCJ3aW5kb3ciOj****",
  "RequestId": "E0168B8A-723E-5528-9FB7-D5B6B68A3222",
  "Period": "15",
  "Datapoints": "[{\"timestamp\":1691040465000,\"instanceId\":\"i-2ze3jvsy7620giru****\",\"userId\":\"120886317861****\",\"Minimum\":99.0,\"Maximum\":100.0,\"Average\":99.67}]",
  "Code": "200",
  "Success": true
}