跳到主要内容

监控拉取服务

平台有一个叫作 cloudmon 的监控拉取服务,可以认为是一个cronjob周期任务,通过API调用方式采集各个云平台的监控数据, 并存储到平台后端时序数据库中, 以供monitor服务查询和报警。

采集类型

采集一般分为两类, 根据资源ID获取监控根据监控项获取类型

资源ID类型

此类采集监控数据,每次API调用都需要传入资源Id, 甚至还需要传入监控项,因此会消耗大量API调用 假设有100个资源要获取4类监控数据就需要调用100次甚至400次API

监控项类型

此类采集监控数据,每次API调用仅需要传入监控项即可返回多个资源的监控数据,因此 假设有100个资源要获取4类监控数据,最低仅需要调用4次API即可,如果出现分页也仅仅是需要多调用几次

提示

腾讯云是这两类的结合体, 它需要传入监控项,但是限制了每次最多查10个实例的监控数据,因此 假设有100个资源需要获取4类监控数据就需要调用40次API

调高采集周期可以减少资源ID类型的API调用次数

采集周期

cloudmon默认每6分钟采集一次监控(一个周期内根据资源多少会调用不同云平台多次API) 可以通过以下命令更改采集周期

# 更改采集周期后会影响查看监控的时效性
$ climc service-config --config collect_metric_interval=12 cloudmon

忽略某个云平台监控拉取

cloudmon支持忽略某些云平台的监控拉取,但不支持忽略某一个云账号的监控拉取

# 云平台类型通过逗号隔开
$ climc service-config --config 'skip_metric_pull_providers=Aliyun,Azure' cloudmon

并发控制

默认一次会同时拉取10个账号的云监控数据, 若云账号过多可适当增加并发量

$ climc service-config --config cloud_account_collect_metrics_batch_count=15 cloudmon

默认每个账号一次性会拉取40个资源的监控, 可以通过以下命令控制资源并发数

# 此命令仅对根据资源ID采集监控生效
$ climc service-config --config cloud_resource_collect_metrics_batch_count=20 cloudmon

常用云平台使用监控API

阿里云(监控项类别)

DescribeMetricList

飞天(监控项类别)

DescribeMetricList GetOrganizationTree

AWS(资源ID类别)

GetMetricStatistics

Azure(资源ID类别)

Metric List Metric Definitions Workspaces - Get Workspaces Query

提示

除Metric List接口外, 其他三个接口是为了获取虚拟机内存和磁盘使用率, 但是会额外产生费用,因此默认不采集 可以通过以下命令开启

$ climc service-config --config 'support_azure_table_storage_metric=true' cloudmon

品高云(资源ID类别)

GetMetricStatistics

Esxi(监控项类别)

PerfQuerySpec

提示

磁盘使用率esxi每半小时才会有一次数据, 且会出现使用率高于100%的情况(esxi控制台可以看到已使用的磁盘大小高于分配大小)

Google(监控项类别)

Metrics

华为云(资源ID类别)

batch-query-metric-data

腾讯云

DescribeStatisticData GetMonitorData