0%

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

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

效果查看

CPU使用率(%)

公网带宽(bits/s)

安装

1
npm i -S aliyun-metrics

下面贴出我的实现方式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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”}。

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

参考地址: