使用示例

最近更新时间:2019-01-24 15:42:44

为了帮助您快速使用自定义监控,这里给出三个使用示例。

示例1实现监控数据分析的功能:该示例首先创建了一个命名空间,然后在此命名空间下创建了一个指标。为这个指标添加了统计类型。此时可以上报数据,然后您就可以通过查询数据相关的接口来查看您统计分析的数据结果。

示例2实现对监控数据的告警处理:该示例在完成示例1的步骤1.1,1.2,1.3之后,还需要创建告警规则,将告警规则与告警对象和告警接收人绑定,在完成上述步骤之后,上报您的数据,当满足告警条件时,您便会接受到告警。

示例3实现对指标下维度的聚合,在完成示例1的步骤1.1和1.2之后,为特定的维度添加聚合,添加之后您便可以以聚合的维数去处理数据。

示例1

1.1 创建命名空间

我们的监控指标,维度均需要在命名空间下建立。有关创建命名空间的详细信息请参考 创建命名空间 页面。
这里我们创建了一个新的创建命名空间,其公共请求参数的 Action 字段为 CreateNamespace,接口请求参数如下表:

参数名称 描述 取值
namespace 命名空间:支持英文、数字及下划线,不超过32个英文字符 PC

结合公共请求参数和接口请求参数,最终得到的请求形式如下:

https://monitor.api.qcloud.com/v2/index.php?
Action=CreateNamespace
&Region=gz
&Timestamp=1465750149
&Nonce=46364
&SecretId=AKIDxxxxugEY
&Signature=5umi9gUWpTTyk18V2g%2FYi56hqls%3D
&namespace=PC

上述请求的返回结果如下,由结果可知,命名空间创建成功。

{
    "code": 0,
    "message": ""
}

1.2 创建指标

指标下可以有多个维度信息,用于标记对象。
有关创建指标的详细信息请参考 创建指标 页面。
当我们期望关注机器的磁盘使用率时,我们在命名空间 PC 下创建了一个新的创建指标,并且我们为其指定了 max 的统计方式,其公共请求参数的 Action 字段为 CreateMetric,接口请求参数如下表:

参数名称 描述 取值
namespace 命名空间 PC
metricName 指标名称 diskusage
dimensionNames.n 该指标的统计维度名称 'ip','diskname'
metricCname 指标中文名称信息 '磁盘使用率'
statisticsType.m.statistics 统计方式 max
statisticsType.m.period 统计周期目前只能填写300秒 300s
unit 显示单位

为该指标下的所有维度信息添加了统计类型 max。

结合公共请求参数和接口请求参数,最终得到的请求形式如下:

https://monitor.api.qcloud.com/v2/index.php?
Action=CreateMetric
&Region=gz
&Timestamp=1465750149
&Nonce=46389
&SecretId=AKIDxxxxugEY
&Signature=5umi67UWpTTyk18V2g%2FYi56hqls%3D
&namespace=PC
&metricName=diskusage
&metricCname='磁盘使用率'
&dimensionNames.0=ip
&dimensionNames.1=diskname
&statisticsType.0.period=300
&statisticsType.0.statistics=max

上述请求的返回结果如下,由结果可知,指标创建成功。

{
    "code": 0,
    "message": ""
}

1.3 添加统计类型

当您需要对指标下的维度进行多种统计方式时,您需要为其添加统计类型。
假如我们不仅需要了解 diskusage 指标下的最大使用率的情况,还需要了解 diskusage 指标下的平均使用率的情况,我们为其添加 avg 统计类型。
有关创建指标的详细信息请参考 添加统计类型 页面。
其公共请求参数的 Action 字段为 CreateMetricStatisticsType,接口请求参数如下表:

参数名称 描述 取值
namespace 名字空间 PC
metricName 指标名 diskusage
dimensionNames.n 该指标的所有维度组合或者聚合的维度组合 'ip','diskname'
statisticsType.m.statistics 为聚合的维度添加统计方式 avg
statisticsType.m.period 统计周期目前只能填写300秒 300s

结合公共请求参数和接口请求参数,最终得到的请求形式如下:

https://monitor.api.qcloud.com/v2/index.php?
Action=CreateMetricStatisticsType
&Region=gz
&Timestamp=1468850149
&Nonce=46369
&SecretId=AKIDxxxxugEY
&Signature=5umi67UW6TTyk18V2g%2FYi56hqls%3D
&namespace=PC
&metricName=diskusage
&dimensionNames.0=ip
&dimensionNames.1=diskname
&statisticsType.0.period=300
&statisticsType.0.statistics=avg

上述请求的返回结果如下,由结果可知,添加统计类型成功。

{
    "code": 0,
    "message": ""
}

1.4 上报数据

需要您上报对应的数据,才能得到数据的统计信息。

有关创建指标的详细信息请参考 数据上报接口 页面。其公共请求参数的 Action 字段为 PutMonitorData,接口请求参数如下表:

参数名称 描述 取值
Namespace 命名空间 PC
Data 上报的具体数据 见下文

Data 中的具体数据:

参数名称 描述 取值
dimensions 维度 key 和 value 的组合 {"ip":"127.0.0.1","diskname":"sda1"}
metricName 指标名 diskusage
value 0.3

此时我们上报机器的磁盘使用率的数据。数据中 dimensions 为维度的 key 和 value 的组合需要和您在步骤1.2创建指标时的维度组合一致,需要您赋值
在本示例中我们取值为磁盘名称和环回 IP 地址,此处的数值0.3表示磁盘的总使用率为30%

此处涉及到密钥加密传输, 最终的发送形式请参考 数据上报接口 页面。
请确定公共参数中的region的正确性。
数据上报接口 页面中,以数据上报接口中的 post 方式为例:此处需要修改的地方为main()函数中 data 字典的内部的内容。
data 需要修改为:

data={
    "SecretId":secretId,
    "Namespace":"PC",
    "Region":region,
    "Data":[
            {"dimensions":{"ip":"127.0.0.1","diskname":"sda1"},
            "metricName":"diskusage",
            "value":0.3
            }
            ]
    }

1.5 查询数据

在您上报一段时间的数据之后,您便可以查询您上报的数据的统计结果了。
您可以调用 查询指标监控数据 或者 查询指标实时监控数据 来查询结果。
此处我们调用查询指标监控数据来查询。
有关创建指标的详细信息请参考 查询指标监控数据 页面。其公共请求参数的 Action 字段为 GetMonitorData,接口请求参数如下表:
参数中的 dimensions.n.name、dimensions.n.value 需要和您在1.4总上报数据时的信息保持一致。
statistics为存在的统计类型,在我们进行了操作1.2和1.3之后,此处可以选择为 max 或者 avg。

参数名称 描述 取值
namespace 名字空间 PC
metricName 指标名称 diskusage
dimensions.n.name 维度名称的组合 ip,diskname
dimensions.n.value 维度的值的组合 127.0.0.1,/dev/sda1
statistics 统计方式 max
period 监控数据统计粒度,目前只能填写300
startTime Y-m-d H:M:S 起始时间,当不填写时,起始时间默认为当天的00:00:00
endTime 结束时间,不填写时,默认为当前时间

结合公共请求参数和接口请求参数,最终得到的请求形式如下:

https://monitor.api.qcloud.com/v2/index.php?
Action=GetMonitorData
&Region=gz
&Timestamp=1434850149
&Nonce=46369
&SecretId=AKIDxxxxugEY
&Signature=5umi67UW6TTyk18V2g%2FYi56hqls%3D
&namespace=PC
&metricName=diskusage
&dimensions.0.name=ip
&dimensions.1.name=diskname
&dimensions.0.value=127.0.0.1
&dimensions.1.value=sda1
&statistics=max

示例2

在完成示例1的步骤1.1,1.2,1.3之后

2.1 创建告警规则

当您需要为监控的数据添加告警处理时,您可以配置告警规则。
有关创建指标的详细信息请参考 创建告警规则 页面。其公共请求参数的 Action 字段为 CreateAlarmRule,接口请求参数如下表:

参数名称 描述 取值
namespace 名字空间 PC
metricName 指标名称 diskusage
operatorType 操作符,取值为(>、< 、>=、 <= 、!=、==), 表示告警规则中的比较方式 >
threshold 触发异常的数目阈值 0.5
constancy 表明异常持续多少个周期会触发告警,即:当异常持续时间为constancy个period时,将触发告警 2
period 统计周期,目前只能填写300s 300
statistics 统计方式 max
dimensionNames.n 维度名称的组合 ip,diskname
receiversId 告警接收组id 8675
isWild 规则是否为通配规则

此告警规则表示:用户上报的ip,diskname(dimensionNames.n)对应的数据在2(constancy)个周期内最大值(statistics)持续大于(操作符)0.5(threshold)时,便会触发告警

结合公共请求参数和接口请求参数,最终得到的请求形式如下:

https://monitor.api.qcloud.com/v2/index.php?
Action=CreateAlarmRule
&Region=gz
&Timestamp=1434850149
&Nonce=46369
&SecretId=AKIDxxxxugEY
&Signature=5umi67UW6TTyk18V2g%2FYi56hqls%3D
&namespace=PC
&metricName=diskusage
&dimensionNames.0=ip
&dimensionNames.1=diskname
&operatorType=>
&threshold=0.2
&period=300
&statistics=max
&constancy=2
&receiversId=8675

输出

{
    "code": "0",
    "message": "",
    "data": {
        "alarmRuleId": "policy-63uiec17"
    }
}

2.2 绑定告警规则和对象

在上报数据之前,需要将告警规则和对象绑定,当您上报数据时,其中的维度信息需要和此处的维度信息一致。
有关创建指标的详细信息请参考 绑定告警规则和对象 页面。
其公共请求参数的Action字段为BindAlarmRuleObjects,接口请求参数如下表:

参数名称 描述 取值
alarmRuleId 告警规则ID policy-63uiec17,此处的取值为在2.1步骤中生成的告警规则ID
dimensions.n.name 维度组合的key的组合 ip,diskname
dimensions.n.value 维度组合的value的组合 127.0.0.1,sda1

结合公共请求参数和接口请求参数,最终得到的请求形式如下:

https://monitor.api.qcloud.com/v2/index.php?
Action=BindAlarmRuleObjects
&Region=gz
&Timestamp=1434850149
&Nonce=46369
&SecretId=AKIDxxxxugEY
&Signature=5umi67UW6TTyk18V2g%2FYi56hqls%3D
&alarmRuleId = policy-63uiec17 
&dimensions.0.name=ip
&dimensions.1.name=diskname
&dimensions.0.value=127.0.0.1
&dimensions.1.value=sda1

输出

{
    "code":"0",
    "message":""
}

2.3 绑定告警规则到告警接收人

当您在2.1步骤中创建的规则已经填写了receiversId时,可以跳过此步骤。

有关创建指标的详细信息请参考 绑定告警规则到告警接收人 页面。
其公共请求参数的 Action 字段为 BindAlarmRuleReceivers,接口请求参数如下表:

参数名称 描述 取值
alarmRuleId 告警规则ID policy-63uiec17,此处的取值为在2.1步骤中生成的告警规则ID
receiversId 告警接收组id 8675

结合公共请求参数和接口请求参数,最终得到的请求形式如下:
输入

https://monitor.api.qcloud.com/v2/index.php?
Action=BindAlarmRuleReceivers
&Region=gz
&Timestamp=1434850149
&Nonce=46369
&SecretId=AKIDxxxxugEY
&Signature=5umi67UW6TTyk18V2g%2FYi56hqls%3D
&alarmRuleId = policy-63uiec17 
&receiversId=8675

输出

{
    "code": "0",
    "message": ""
}

2.4 上报数据

上报数据的内容和示例1中的步骤1.4相同
数据示例:

data={
    "SecretId":"secretId",
    "Namespace":"PC",
    "Region":"region",
    "Data":[
            {"dimensions":{"ip":"127.0.0.1","diskname":"sda1"},
            "metricName":"diskusage",
            "value":0.3
            }
            ]
     }

示例3

3.1 创建指标聚合

在完成示例1的步骤1.1,1.2之后
当您需要对指标下的部分维度进行分析统计时,您需要创建聚合。有关创建指标的详细信息请参考创建指标聚合页面。
当我们期望分析该机器ip下所有磁盘的使用率信息时,我们在创建了一个新的聚合,其公共请求参数的Action字段为CreateMetricAggeration,接口请求参数如下表:

参数名称 描述 取值
namespace 名字空间 PC
metricName 指标名 diskusage
dimensionNames.n 需要聚合的维度名称 'ip'
statisticsType.m.statistics 为聚合的维度添加统计方式 avg
statisticsType.m.period 统计周期目前只能填写300秒 300s

结合公共请求参数和接口请求参数,最终得到的请求形式如下:

https://monitor.api.qcloud.com/v2/index.php?
Action=CreateMetricAggeration
&Region=gz
&Timestamp=1468850149
&Nonce=46369
&SecretId=AKIDxxxxugEY
&Signature=5umi67UW6TTyk18V2g%2FYi56hqls%3D
&namespace=PC
&metricName=diskusage
&dimensionNames.0=ip
&statisticsType.0.period=300
&statisticsType.0.statistics=avg

上述请求的返回结果如下,由结果可知,聚合创建成功。

{
    "code": "0",
    "message": ""
}

3.2 创建告警规则

当您需要为监控的数据添加告警处理时,您可以配置告警规则。
有关创建指标的详细信息请参考 创建告警规则 页面。其公共请求参数的 Action 字段为 CreateAlarmRule,接口请求参数如下表:

参数名称 描述 取值
namespace 名字空间 PC
metricName 指标名称 diskusage
operatorType 操作符,取值为(>、< 、>=、 <= 、!=、==), 表示告警规则中的比较方式 >
threshold 触发异常的数目阈值 0.5
constancy 表明异常持续多少个周期会触发告警,即:当异常持续时间为constancy个period时,将触发告警 2
period 统计周期,目前只能填写300s 300
statistics 统计方式 avg
dimensionNames.n 维度名称的组合 ip
receiversId 告警接收组id 8675
isWild 规则是否为通配规则

结合公共请求参数和接口请求参数,最终得到的请求形式如下:

https://monitor.api.qcloud.com/v2/index.php?
Action=CreateAlarmRule
&Region=gz
&Timestamp=1434850149
&Nonce=46369
&SecretId=AKIDxxxxugEY
&Signature=5umi67UW6TTyk18V2g%2FYi56hqls%3D
&namespace=PC
&metricName=diskusage
&dimensionNames.0=ip
&operatorType=>
&threshold=0.2
&period=300
&statistics=avg
&constancy=2
&receiversId=8675

输出

{
    "code":"0",
    "message":"",
    "data":{
        "alarmRuleId":"policy-63uiec16"
    }
}

3.3 绑定告警规则和对象

在上报数据之前,需要将告警规则和对象绑定,当您上报数据时,其中的维度信息需要和此处的维度信息一致。
有关创建指标的详细信息请参考 绑定告警规则和对象 页面。
其公共请求参数的 Action 字段为 BindAlarmRuleObjects,接口请求参数如下表:

参数名称 描述 取值
alarmRuleId 告警规则ID policy-63uiec16,此处的取值为在3.2步骤中生成的告警规则ID
dimensions.n.name 维度组合的key的组合 ip
dimensions.n.value 维度组合的value的组合 127.0.0.1

结合公共请求参数和接口请求参数,最终得到的请求形式如下:

https://monitor.api.qcloud.com/v2/index.php?
Action=BindAlarmRuleObjects
&Region=gz
&Timestamp=1434850149
&Nonce=46369
&SecretId=AKIDxxxxugEY
&Signature=5umi67UW6TTyk18V2g%2FYi56hqls%3D
&alarmRuleId = policy-63uiec16
&dimensions.0.name=ip
&dimensions.0.value=127.0.0.1

输出

{
    "code": "0",
    "message": ""
}

3.4 绑定告警规则到告警接收人

当您在3.2步骤中创建的规则已经填写了 receiversId 时,可以跳过此步骤。

有关创建指标的详细信息请参考 绑定告警规则到告警接收人 页面。
其公共请求参数的 Action 字段为 BindAlarmRuleReceivers,接口请求参数如下表:

参数名称 描述 取值
alarmRuleId 告警规则ID policy-63uiec16,此处的取值为在3.2步骤中生成的告警规则ID
receiversId 告警接收组id 8675

结合公共请求参数和接口请求参数,最终得到的请求形式如下:
输入

https://monitor.api.qcloud.com/v2/index.php?
Action=BindAlarmRuleReceivers
&Region=gz
&Timestamp=1434850149
&Nonce=46369
&SecretId=AKIDxxxxugEY
&Signature=5umi67UW6TTyk18V2g%2FYi56hqls%3D
&alarmRuleId = policy-63uiec16
&receiversId=8675

输出

{
    "code": "0",
    "message": ""
}

3.5 上报数据

此处上报的数据的维度 key 和维度 value 的组合需要和步骤2.2中的维度组合保持一致。
上报数据的内容和示例1中的步骤1.4相同

假设在一个周期内上报的数据为:
数据示例:

"Data":[{"dimensions":{"ip":"127.0.0.1","diskname":"sda1"},
                             "metricName":"diskusage",
                             "value":0.5}
                        ]
"Data":[{"dimensions":{"ip":"127.0.0.1","diskname":"sda2"},
                             "metricName":"diskusage",
                             "value":0.2}
                        ]
"Data":[{"dimensions":{"ip":"127.0.0.1","diskname":"sda3"},
                             "metricName":"diskusage",
                             "value":0.3}
                        ]
"Data":[{"dimensions":{"ip":"127.0.0.2","diskname":"sda1"},
                             "metricName":"diskusage",
                             "value":0.3}
                        ]                        

此时我们绑定的对象为"ip":"127.0.0.1",第4组数据ip不同会被忽略,而前三组数据我们以机器ip的维度用取平均值的方式统计数据,得到机器磁盘的使用率为(0.5+0.2+0.3)/3=0.33
得到的数据大于我们设定的阈值0.2,当上面的一组数据在下一个上报周期(300s)内再次出现时,即在连续两个周期内,机器127.0.0.1对应的磁盘可用率大于阈值,触发告警。