alicloud-exporter 0.3.1.7.1
Alibaba Cloud CloudMonitor Prometheus exporter
License: Apache 2.0
Keywords: monitoring prometheus exporter aliyun alibaba cloudmonitor

# Prometheus Exporter for Alibaba Cloud

## Quick Start
[`原作者GitHub地址`](https://github.com/aylei/aliyun-exporter/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)
代码修改： 
 - 添加自定义标签
 - 根据标签push到~/metrics
 - 添加日志打印
 - 修复自定义标签自动匹配dict.key
 - 配置文件重定义，增加【global_config;metrics-team,game_name-cluster】

## Installation

Python 3.5+ is required.

```bash
pip3 install alicloud-exporter
```

## Usage

Config your credential and interested metrics:

```yaml
credential:
  access_key_id: <YOUR_ACCESS_KEY_ID>
  access_key_secret: <YOUR_ACCESS_KEY_SECRET>
  region_id: <REGION_ID>

metrics:
  acs_cdn:
  - name: QPS
    team: 'team-name'
  acs_mongodb:
  - name: CPUUtilization
    period: 300
    measure: Maximum
game_name:
  dev:
  - id_qazqweasd : 二_哈
```
```
output-example:
  aliyun_acs_ecs_dashboard_DiskWriteIOPS{altype="wx",app="yyds",cluster="dev",instanceId="i-a***d",name="web",region="CN",team="abc123***"} 66.6
```

Run the exporter:

```bash
> aliyun-exporter -p 9525 -c aliyun-exporter.yml
```

The default port is 9525, default config file location is `./aliyun-exporter.yml`.

Visit metrics in [localhost:9525/metrics](http://localhost:9525/metrics)

## Configuration

```yaml
rate_limit: 5 # request rate limit per second. default: 10
credential:
  access_key_id: <YOUR_ACCESS_KEY_ID> # required
  access_key_secret: <YOUR_ACCESS_KEY_SECRET> # required
  region_id: <REGION_ID> # default: 'cn-hangzhou'
  
metrics: # required, metrics specifications
  acs_cdn: # required, Project Name of CloudMonitor
  - name: QPS # required, Metric Name of CloudMonitor, belongs to a certain Project
    rename: qps # rename the related prometheus metric. default: same as the 'name'
    period: 60 # query period. default: 60
    measure: Average # measure field in the response. default: Average

info_metrics:
  - ecs
  - rds
  - redis
```

Notes:

* Find your target metrics using [Metrics Meta](#metrics-meta)
* CloudMonitor API has an rate limit, tuning the `rate_limit` configuration if the requests are rejected.
* CloudMonitor API also has an monthly quota for invocations (AFAIK, 5,000,000 invocations / month for free). Plan your usage in advance. 

> Given that you have 50 metrics to scrape with 60s scrape interval, about 2,160,000 requests will be sent by the exporter for 30 days.

## Special Project

Some metrics are not included in the Cloud Monitor API. For these metrics, we keep the configuration abstraction consistent by defining special projects.

Special Projects:

* `rds_performance`: RDS performance metrics, available metric names: [Performance parameter table](https://www.alibabacloud.com/help/doc-detail/26316.htm?spm=a2c63.p38356.b99.361.694917e6Rtuu9i)

> An example configuration file of special project is provided as `special-projects.yml`

**Note**: special projects invokes different API with ordinary metrics, so it will not consume your Cloud Monitor API invocation quota. But the API of special projects could be slow, so it is recommended to separate special projects into a standalone exporter instance.

## Metrics Meta

`aliyun-exporter` shipped with a simple site hosting the metrics meta from the CloudMonitor API. You can visit the metric meta in [localhost:9525](http://localhost:9525) after launching the exporter.

* `host:port` will host all the available monitor projects
* `host:port/projects/{project}` will host the metrics meta of a certain project
* `host:port/yaml/{project}` will host a config YAML of the project's metrics

You can easily navigate in this pages by hyperlink.