部分客户在云下已有完善的企业IT管理系统,希望能够将云上数据实时导出到线下进行统一监控。基于该场景,云监控推出了监控数据实时导出工具。该工具可以在客户的线下运行,根据配置实时获取云监控的监控数据,并持续写入本地Prometheus
方案优势
- 支持云监控里的部分云服务
- 更快更实时的基于企业云监控的实时数据导出功能流式导出监控数据,无需担心数据丢失的异常情况,更不用担心API调用次数限制和流控问题。
- 本地化部署,操作简单。
- 导出的监控数据维度更丰富,自动补全实例IP地址、实例名称、地域、资源组、标签等信息,使数据可以更方便的通过PromQL进行多维度的统计分析。
背景信息
腾讯云监控已于2022年09月01日开始对超出免费额度的 API 接口的请求进行计费,需要手动开通 API 付费,详见计费说明与开通指引。
GitHub - tencentyun/tencentcloud-exporter: TencentCloud Prometheus Exporter
前提条件
- API 请求按量付费(超过100万次/月需开通)。
- Prometheus必须与云监控网络互通。
每个主账号的免费请求额度为100万次/月。超过免费额度后将无法继续使用 GetMonitorData 接口请求监控数据。如需继续调用接口需要手动开通“API 请求按量付费”。
计费规则
超过免费额度后,将按照下列模式进行计费。
计费单价:0.25元/万次请求。
计费公式:若当月累计请求次数超过100万次,则每小时的计费金额为:计费单价 × 每小时实际请求次数/10000。
支持的产品列表
产品 | 命名空间 | 支持的指标 |
---|---|---|
数据库MongoDB | QCE/CMONGO | 指标详情 |
数据库MySQL(CDB) | QCE/CDB | 指标详情 |
Redis标准版 | QCE/REDIS(即将下线,不推荐) | 指标详情 |
Redis集群版 | QCE/REDIS_CLUSTER(即将下线,不推荐) | 指标详情 |
数据库Redis(内存版) | QCE/REDIS_MEM | 指标详情 |
云服务器CVM | QCE/CVM | 指标详情 |
COS | QCE/COS | 指标详情 |
CDN | QCE/CDN | 指标详情 |
负载均衡CLB(公网) | QCE/LB_PUBLIC | 指标详情 |
负载均衡CLB(7层) | QCE/LOADBALANCE | 指标详情 |
NAT网关 | QCE/NAT_GATEWAY | 指标详情 |
物理专线 | QCE/DC | 指标详情 |
专用通道 | QCE/DCX | 指标详情 |
云硬盘 | QCE/CBS | 指标详情 |
数据库SQL Server | QCE/SQLSERVER | 指标详情 |
数据库MariaDB | QCE/MARIADB | 指标详情 |
Elasticsearch | QCE/CES | 指标详情 |
CMQ 队列服务 | QCE/CMQ(即将下线,不推荐) | 指标详情 |
CMQ 主题订阅 | QCE/CMQTOPIC(即将下线,不推荐) | 指标详情 |
数据库PostgreSQL | QCE/POSTGRES | 指标详情 |
CKafka 实例 | QCE/CKAFKA | 指标详情 |
Memcached | QCE/MEMCACHED | 指标详情说明文档(待上线) |
轻量应用服务器Lighthouse | QCE/LIGHTHOUSE | 指标详情 |
分布式数据库 TDSQL MySQL | QCE/TDMYSQL | 指标详情 |
弹性公网 IP | QCE/LB | 指标详情 |
消息队列RocketMQ版 | QCE/TDMQ | 指标详情 |
VPN 网关 | QCE/VPNGW | 指标详情 |
VPN 通道 | QCE/VPNX | 指标详情 |
CYNOSDB_MYSQL | QCE/CYNOSDB_MYSQL | 指标详情 |
云联网 | QCE/VBC | 指标详情 |
数据传输 | QCE/DTS | 指标详情 |
专线网关 | QCE/DCG | 指标详情 |
全球应用加速 | QCE/QAAP | 指标详情 |
Web应用防火墙 | QCE/WAF | 指标详情 |
负载均衡CLB(内网) | QCE/LB_PRIVATE | 指标详情 |
服务部署
代码语言:javascript复制编译安装
git clone https://github.com/tencentyun/tencentcloud-exporter.git
go build cmd/qcloud-exporter/qcloud_exporter.go
二进制部署
下载相关配置文件,
wget https://github.com/tencentyun/tencentcloud-exporter/archive/refs/tags/v2.24.0.zip
下载qcloud_exporter启动文件
wget https://github.com/tencentyun/tencentcloud-exporter/releases/download/v2.24.0/qcloud-exporter-v2.24.0-linux-amd64.tar.gz
unzip v2.24.0.zip
cd tencentcloud-exporter-2.24.0/configs
将启动文件解压后直接放到 tencentcloud-exporter-2.24.0/configs中即可
参数介绍
mongodb配置文件示例-全量
代码语言:javascript复制mongodb 获取所有参数
credential:
access_key: "access_key" // 云API的SecretId
secret_key: "secret_key" // 云API的SecretKey
region: "ap-guangzhou" // 实例所在区域信息
products:
- namespace: QCE/CMONGO // 产品命名空间
all_metrics: true // 导出支持的所有指标
all_instances: true // 导出region下的所有实例
extra_labels: [InstanceName,Zone] // 将实例的字段作为指标的lables导出
mongodb配置文件示例-配置相关参数
代码语言:javascript复制credential:
access_key:// 必须, 云API的SecretId
secret_key:// 必须, 云API的SecretKey
region: "ap-guangzhou" // 必须, 实例所在区域信息
rate_limit: 15 // 腾讯云监控拉取指标数据限制, 官方默认限制最大20qps
// 整个产品纬度配置, 每个产品一个item
products:
- namespace: QCE/CMONGO // 必须, 产品命名空间
all_metrics: true // 常用, 推荐开启, 导出支持的所有指标
all_instances: true // 常用, 推荐开启, 导出该region下的所有实例
extra_labels: [InstanceName,Zone] // 可选, 将实例的字段作为指标的lables导出
only_include_metrics: [Inserts] // 可选, 只导出这些指标, 配置时all_metrics失效
exclude_metrics: [Reads] // 可选, 不导出这些指标
only_include_instances: [cmgo-xxxxxxxx] // 可选, 只导出这些实例id, 配置时all_instances失效
exclude_instances: [cmgo-xxxxxxxx] // 可选, 不导出这些实例id
custom_query_dimensions: // 可选, 不常用, 自定义指标查询条件, 配置时all_instances,only_include_instances,exclude_instances失效, 用于不支持按实例纬度查询的指标
- target: cmgo-xxxxxxxx
statistics_types: [avg] // 可选, 拉取N个数据点, 再进行max、min、avg、last计算, 默认last取最新值
period_seconds: 60 // 可选, 指标统计周期
range_seconds: 300 // 可选, 选取时间范围, 开始时间=now-range_seconds, 结束时间=now
delay_seconds: 60 // 可选, 时间偏移量, 结束时间=now-delay_seconds
metric_name_type: 1 // 可选,导出指标的名字格式化类型, 1=大写转小写加下划线, 2=转小写; 默认2
reload_interval_minutes: 60 // 可选, 在all_instances=true时, 周期reload实例列表, 建议频率不要太频繁
// 单个指标纬度配置, 每个指标一个item
metrics:
- tc_namespace: QCE/CMONGO // 产品命名空间, 同namespace
tc_metric_name: Inserts // 云监控定义的指标名
tc_metric_rename: Inserts // 导出指标的显示名
tc_metric_name_type: 1 // 可选,导出指标的名字格式化类型, 1=大写转小写加下划线, 2=转小写; 默认1
tc_labels: [InstanceName] // 可选, 将实例的字段作为指标的lables导出
tc_myself_dimensions: // 可选, 同custom_query_dimensions
tc_statistics: [Avg] // 可选, 同statistics_types
period_seconds: 60 // 可选, 同period_seconds
range_seconds: 300 // 可选, 同range_seconds
delay_seconds: 60 // 可选, 同delay_seconds
多个服务一个配置文件
代码语言:javascript复制credential:
access_key: "AK*****"
secret_key: "f6****"
region: "ap-beijing"
rate_limit: 15 #云监控拉数据接口最大限制, 20/秒, 1200/分钟, https://cloud.tencent.com/document/product/248/31014
products:
- namespace: QCE/CDB #指标详情: https://cloud.tencent.com/document/product/248/45147
all_metrics: true
all_instances: true
- namespace: QCE/CMONGO #指标详情: https://cloud.tencent.com/document/product/248/45104
all_metrics: true #自动导出所有实例的集群、副本集、节点3个纬度的指标数据
all_instances: true
- namespace: QCE/REDIS_MEM # 指标详情: https://cloud.tencent.com/document/product/248/45111
all_metrics: true
all_instances: true
特殊说明:
1、custom_query_dimensions
每个实例的纬度字段信息, 可从对应的云监控产品指标文档查询, 如mongo支持的纬度字段信息可由云监控指标详情 查询
2、extra_labels
每个导出metric的labels还额外上报实例对应的字段信息, 实例可选的字段列表可从对应产品文档查询, 如mongo实例支持的字段可从实例查询api文档 获取, 目前只支持str、int类型的字段
3、period_seconds
每个指标支持的时间纬度统计, 一般支持60、300秒等, 具体可由对应产品的云监控产品指标文档查询, 如mongo可由指标元数据查询 , 假如不配置, 使用默认值(60), 假如该指标不支持60, 则自动使用该指标支持的最小值
4、credential
SecretId、SecretKey、Region可由环境变量获取
export TENCENTCLOUD_SECRET_ID="YOUR_ACCESS_KEY"
export TENCENTCLOUD_SECRET_KEY="YOUR_ACCESS_SECRET"
export TENCENTCLOUD_REGION="REGION"
5、region
地域可选值参考地域可选值
qcloud_exporter支持的命令行参数说明
命令行参数 | 说明 | 默认值 |
---|---|---|
--web.listen-address | http服务的端口 | 9123 |
--web.telemetry-path | http访问的路径 | /metrics |
--web.enable-exporter-metrics | 是否开启服务自身的指标导出, promhttp_*, process_*, go_* | false |
--web.max-requests | 最大同时抓取/metrics并发数, 0=disable | 0 |
--config.file | 产品实例指标配置文件位置 | qcloud.yml |
--log.level | 日志级别 | info |
启动 Exporter
代码语言:javascript复制> qcloud_exporter --config.file "qcloud.yml"
指定端口
> ./qcloud_exporter --config.file "all-product.yml" --web.listen-address="0.0.0.0:9126"
访问 http://192.168.10.10:9126/metrics 查看所有导出的指标