阿里云监控 Exporter

通过阿里云监控API将云监控指标导出为Prometheus指标数据

支持产品

支持的云服务可参考云服务监控项
支持获取标签的服务参考 支持标签API的资源类型

快速开始

环境需求

  • Python >= 3.7.1
  • poetry >= 1.0.0

初始化运行环境

cd yet-another-aliyun-exporter
portry install --no-dev # 开发环境可以不使用--no-dev

定义云API凭据

Exporter使用阿里云SDK的默认凭据链查找可用凭据,目前支持三种种方式:

  1. 环境变量

    使用ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET作为凭据

  2. 配置文件

    读取~/.alibabacloud/credentials配置文件作为凭据

  3. 实例RAM角色

    如果定义了ALIBABA_CLOUD_ECS_METADATA环境变量且不为空,则使用变量中的值作为ECS RAM角色名称获取临时凭据

详细可参考使用默认凭据链

配置云服务监控指标信息

endpoint: "metrics.cn-beijing.aliyuncs.com"

metrics:
- namespace: acs_ecs_dashboard
  metric_name: CPUUtilization
- namespace: acs_slb_dashboard
  metric_name: ActiveConnection

启动Exporter

poetry run start --config exporter.yaml

配置详细

# API访问的端点
endpoint:
  metrics: metrics.cn-heyuan.aliyuncs.com
log_level: WARNING
delay_seconds: 60
period_seconds: 60
metrics:
- namespace: acs_ots_new
  metric_name: InstanceCount2xxNumber
- namespace: acs_ots_new
  metric_name: InstanceCount4xxNumber
  statistics:
    - Average
    - Maximum
    - Minimum
    - Sum
    - Sumps
- namespace: acs_mns_new
  metric_name: DelayMessages
  period_seconds: 300
# kafka
- namespace: acs_kafka
  metric_name: message_accumulation
# slb
- namespace: acs_slb_dashboard
  metric_name: InstanceActiveConnection
  tag_select:
    regions:
      - cn-beijing
      - us-east-1
      - eu-central-1
    resource_id_dimension: instanceId
    resource_type_selection:
      service: slb
      resource_type: instance
名称 是否可选 描述
endpoint.metrics 访问API指标接入的端点,参考 调用方式
log_level 日志等级,默认为WARNING。可选值参考 Python logging
namespace 云服务的命名空间,值参考云服务监控项
metric_name 云服务的监控项名称,值参考云服务监控项
statistics 云服务监控数据的统计方式,值参考云服务监控项
tag_select 配置需要标签的标签资源信息,可以用来合并字段查询
regions 需要查询标签资源的地区
resource_id_dimension 资源id的维度/标签,用来映射到指标的资源id标签值
resource_type_selection.service 标签API的云服务code,参考支持标签API的资源类型中的ARN service
resource_type_selection.resource_type 标签API的资源类型,参考支持标签API的资源类型中的ARN ResourceType
period_seconds 监控数据的统计周期值参考云服务监控项中的Period,可全局设置
delay_seconds 时间偏移量, 结束时间=now-delay_seconds,用来避免指标数据未完全聚合,可全局设置
range_seconds 选取时间范围, 开始时间=now-range_seconds, 结束时间=now,可全局设置

感谢

GitHub

View Github