You need to enable JavaScript to run this app.
文档中心
云监控

云监控

复制全文
下载 pdf
导出监控数据到 Prometheus
Exporter 异常排查方案
复制全文
下载 pdf
Exporter 异常排查方案
本文介绍导出工具 Exporter 的问题排查方案。
常见日志错误排查方案
WARN: estimate request latency bigger than 'DataFreshIntervalSeconds'
Exporter 在每次间隔时间内,无法完成指标数据的拉取。如果数据无法拉取完成,则在某些配置情况下,可能会出现断点。完整日志如下:
WARN: cost {} to finish collect all metric data for this interval with DataFreshIntervalSeconds={} total request count={}. you can adjust the configuration of exporter to eliminate this log.
出现该错误表示采集时间过长,有可能会影响prometheus拉不到数据,解决方案请参见 指标断点
Error: Could not find operation ListExporterMetrics for version 2018-01-01
Exporter功能处于公测阶段,暂时免费使用。如需使用该功能,请先开通按量计费,然后联系对应销售或售后人员进行开白。
Error: Request was rejected because the request speed of this openAPI is beyond the current flow control limit
配置的 QPS 超过了限制,解决方案请参见 LimitQPSGetMetricData接口限流
指标异常排查方案
自监控指标
  1. 建议导入如下的 Exporter 自监控 grafana 模板(仅适用于 Exporter 1.0.18 及以上版本)。
注意
以下模板目前仅兼容 Grafana 7.0.0 及以上版本。
  • 模板文件
    版本限制
    Exporter自监控-Grafana模板-1.4.0.json
    适用于 Exporter 1.4.0 及以上版本
    Exporter自监控-Grafana模板-1.0.18.json
    适用于 Exporter 1.0.18 ~ 1.3.0 版本
  1. 调用/metrics接口可以获取到监控指标。
  • 指标名称
    指标tag
    指标类型
    指标含义
    exporter_api_request_total
    • action:请求服务端的接口。其中,查询指标数据的接口是GetMetricData。
    • http_code:接口最终返回状态码。
    • error_code:服务端返回的业务错误码。其中。限流错误码是AccountFlowLimitExceeded。
    • retry_count:请求重试次数。
    counter
    exporter请求服务端接口的累计次数
    exporter_api_request_latency_ms_bucket
    exporter_api_request_latency_ms_count
    exporter_api_request_latency_ms_sum
    histogram
    exporter请求服务端接口延迟分布,单位ms
    exporter_strategy_last_pull_request_count
    gauge
    exporter上一轮次发起请求GetMetricData接口的次数
    exporter_strategy_last_pull_latency_ms
    gauge
    exporter上一轮次全部请求GetMetricData接口的总耗时
    exporter_strategy_discard_request_counter
    counter
    因数实例/指标数过多,导致请求积压被丢弃的请求总次数
    exporter_meta_object_count
    • namespace
    • sub_namespace
    gauge
    产品实例数量
    exporter_meta_metric_count
    gauge
    产品的指标数量
指标断点
指标断点,可以结合 Exporter 自监控 Grafana 面板排查。
  • 图片
  • 采集超时排查:观测如下面板指标,这个指标代表每轮次(即数据的刷新周期,对应 DataFreshIntervalSeconds 配置自动,默认 60s)采集的总耗时。
  • 图片
  • 如果该指标持续的大于配置的 DataFreshIntervalSeconds,默认 60s,将无法在一个轮次完成所有指标数据采集,最终会导致 prometheus 侧显示丢点,建议方案:
  • 如果您能接受指标的精度降低,可以调整 DataFreshIntervalSeconds 到更高的时间,设置为 120s 或者 300s,详情请参见 LimitQPSGetMetricData接口限流
  • 适当的调大 LimitQPSGetMetricData 或者 DataConcurrency 参数,如果您不知道如何配置该参数,在 1.0.18-rc1 及以上版本支持自适应限流,可以删除该字段配置,使用默认配置。
  • 偶尔的抖动比如网络延迟,也有可能会造成偶尔的采集超时,错过了 prometheus 的采集周期。建议调大 prometheus 的采集频率,比如到 1/5 的 DataFreshIntervalSeconds。
  • scrape_configs:
    - job_name: "exporter"
    scrape_interval: 5s
    static_configs:
    - targets: ["localhost:9898"]
指标缺失或者无数据
  1. 确认访问 exporter 的<ip>:<port>/metrics接口是否正常。
  1. 确认 prometheus 中的 Status 页面 Exporter 的实例是否正常,也可查询 prometheus 的 up 指标判断。
  • 图片
  1. 确认云监控页面上是否有此指标。
  1. 通过日志和 debug 日志确认问题。
  1. 如果是触发了限流,那么建议减少指标量。
  1. 通过/meta/metric接口确认是否存在该指标。
  1. 通过/meta/object接口,确认是否存在相关实例,没有实例的话则不会有指标。
  1. 使用/meta/metric接口,获取指标的 Namespace 和 SubNamespace。
  1. 查看/meta/object接口的响应,查看Namespace/SubNamespace是否有对应数据。
  • 例如以下响应,代表仅有 Namespace 为VCM_RDS_MySQL,SubNamespace 为deploy_monitor的指标存在监控实例。
  • {
    "VCM_RDS_MySQL/deploy_monitor": [
    {
    "Dimensions": [
    {
    "Name": "ResourceID",
    "Value": "mysql-68781f23efcc"
    }
    ],
    "Instances": [
    {
    "Name": "ResourceID",
    "Value": "mysql-68781f23efcc"
    }
    ]
    }
    ]
    }
点间隔较大
默认允许的指标延迟为 120s,一般不会出现问题。如果发现异常,可以将配置文件中的 DelaySeconds 适当调大。
指标值对不上
  • 校验 Exporter 导出数据的值和云监控页面是否一致时,需要对齐聚合粒度。
  1. Exporter 的聚合粒度,可以通过 QueryPeroid 参数进行配置,默认为 30s。
  1. 云监控页面的聚合粒度,和选择的时间范围有关。
  • 时间范围选择 1 小时,那么聚合粒度默认为 30s。
  • 时间范围选择 1 天,那么聚合粒度默认为 60s。
  • 因此,默认情况下 Exporter 的数据和云监控查询 1 小时的时间范围一般是一致的,和 1 天时间范围的数据有可能不一致。
  • prometheus/grafana 查询中的 step/interval 参数也可能会影响最终的查询结果不一致,建议将其调整为与 exporter 的 DataFreshIntervalSeconds 参数保持一致。
  • prometheus
  • 图片
  • grafana
  • 图片
限流报错
限流的报错可以通过 Exporter 的日志,或者通过导入上述 Exporter 的 Grafana 看板的自监控指标来发现。
LimitQPSGetMetricData 接口限流
云监控接口 Quota 默认为 20QPS,Exporter 请求接口的限流由 QPS 参数LimitQPSGetMetricData及并发参数DataConcurrency控制,1.0.18-rc1 及以上版本默认会根据请求的实例数量及指标数量自适应动态调整。
  • 如果您的账号下仅部署一个 exporter 实例,建议直接将LimitQPSGetMetricData设置为账号的上限(默认账号上限为 20)。
  • 如果您的账号下部署有多个 exporter 实例,建议删除LimitQPSGetMetricDataDataConcurrency配置参数,使用默认自适应限流方式。
  • 1.0.18-rc0 及以后版本,可以通过配置指标白名单采集方式,过滤掉不关注的指标,来降低 Exporter 请求云服务的 QPS,从而可以减少 Quota 的占用。详情请参见 云产品指标查询
通过配置来解决限流的问题的方式:
配置指标白名单采集(1.0.18及以上版本)
仅采集产品的部分指标,可通过配置 OnlyIncludeMetrics 字段,如下示例:
Region: cn-beijing
Credentials:
AccessKey: '{ak}'
SecretKey: '{sk}'
Products:
- Namespace: VCM_ECS # 需要采集的产品
OnlyIncludeMetrics: # 仅采集的指标列表
Instance: # 指标的SubNamespace
- CpuTotal # 具体的指标名称
- MemoryUsedUtilization # 具体的指标名称
- GpuUsedUtilization # 具体的指标名称
GPU: # 指标的SubNamespace
- GpuUsedUtilization # 具体的指标名称
- GpuMemoryUsedSpace # 具体的指标名称
配置SubNamespace白名单采集(1.0.18及以上版本)
仅采集产品的部分 SubNamespace 指标,通过 OnlyIncludeSubNamespaces 字段配置,示例:
Region: cn-beijing
Credentials:
AccessKey: '{ak}'
SecretKey: '{sk}'
Products:
- Namespace: VCM_ECS # 需要采集的产品
OnlyIncludeSubNamespaces: # 仅采集的指标列表
- Instance # 指标的SubNamespace
调大指标查询的batchsize大小
这个方式仅对您在某个地域产品实例数量比较大的场景(比如 >10,甚至到 >1000的场景有比较明显效果)。比如当使用默认 BatchInstanceCount=10 时,如果有 1000 个实例,那么每个指标会发送 1000/10=100 次请求,如果 BatchInstanceCount=50,那么只需要发送 1000/50=20 次请求,会降低 Quota 的占用,但是极端情况下可能会请求延迟上涨。
Region: cn-beijing
Credentials:
AccessKey: '{ak}'
SecretKey: '{sk}'
BatchInstanceCount: 50 # 默认为10,最大50
Products:
- Namespace: VCM_ECS # 需要采集的产品
调大数据刷新周期
如果您能接受降低数据的精度,录入由 1 分钟一个点,改为 2 分钟 1 个点,可以通过如下配置DataFreshIntervalSeconds参数。
Region: cn-beijing
Credentials:
AccessKey: '{ak}'
SecretKey: '{sk}'
DataFreshIntervalSeconds: 120 # 数据刷新周期,默认60s
Products:
- Namespace: VCM_ECS # 需要采集的产品
需要同时降低 LimitQPSGetMetricData 或者删除 LimitQPSGetMetricData 参数配置使用自适应配置(1.0.18-rc1 及以上版本支持)。
ListMonitorObjectsV2接口限流
该接口用于获取云产品的实例列表,接口的默认 Quota 为 10,如果有多个 Exporter 实例,建议根据每个 Exporter 的产品数量比例来分摊这 10 个 QPS,并通过LimitQPSMonitorObjectList参数设置。LimitQPSMonitorObjectList偶尔的被限流,一般不影响指标的数据拉取,只会影响元数据更新的时效性(新购实例监控数据延迟)。
最近更新时间:2026.05.09 11:45:29
这个页面对您有帮助吗?
有用
有用
无用
无用