阿里云服务器 ECS 实现自定义监控图表

阿里云服务器 ECS 实现自定义监控图表,图表实现为百度的 Echarts 图表

效果查看

CPU使用率(%)

公网带宽(bits/s)

安装

npm i -S aliyun-metrics

下面贴出我的实现方式:

const Metrics = require("aliyun-metrics");
const moment = require('moment');

const client = new Metrics({
  accesskeyId: 'your_accesskey_id',
  accesskeySecret: 'your_accesskey_secret',
})

const ECS = params => {
  return new Promise((resolve, reject) => {
    client.queryData({
      project: "acs_ecs_dashboard",
      metric: params.metric,
      period: 60,
      startTime: params.startTime || moment.utc()
        .subtract(1, 'hour')
        .format(),
      endTime: params.endTime || moment.utc()
        .format(),
      dimensions: `{instanceId:'your_instanceId'}`
    }, function(error, data) {
      if (error || !data)
        reject(error || 'data is null');
      else
        resolve(data);
    });
  })
}

module.exports = ECS;

关于 accesskeyId 和 accesskeySecret 请参考:创建AccessKey

client.queryData 参数说明:

名称 类型 是否必须 描述
project String 名字空间,表明监控数据所属产品,如 “acs_ecs_dashboard”,“acs_rds_dashboard”等
metric String 监控项名称,查看预设监控值参考
period String 获取监控数据的间隔时间,单位为秒。取值范围:60,600,3600。默认值:60
startTime String 获取数据的结束时间点。按照 ISO8601 标准表示,并需要使用 UTC 时间,格式为:YYYY-MM-DDThh:mm:ssZ。 如果指定的秒(ss)不是 00,则自动换算为下一分钟。
endTime String 获取数据的结束时间点。按照 ISO8601 标准表示,并需要使用 UTC 时间,格式为:YYYY-MM-DDThh:mm:ssZ。 如果指定的秒(ss)不是 00,则自动换算为下一分钟。
dimensions String json串,例如:{"instanceId":"i-23gyb3kkd"}。

返回值请参考:查看预设监控值参考

参考地址:

Comments