云监控支持导出监控数据到托管Prometheus和自建Prometheus。
云监控是火山引擎云上一站式监控告警解决方案,可以帮助您收集并可视化展示火山引擎上多种类型云产品的资源状态和监控信息,包括云服务器、集群、网关、专线连接、云存储等。
您可以通过云监控提供的监控数据导出工具Exportor,将云监控中的云产品监控数据实时导出到托管Prometheus,与集群中的业务监控数据进行汇聚,实现业务数据和基础资源数据的统一监控。
同时,还可以借助托管Prometheus与Grafana的天然兼容性,使用Grafana搭建业务相关的大盘。详情请参见导出云监控数据到托管Prometheus。
导出数据到托管Prometheus的详细操作,请参见导出云监控数据到托管Prometheus。
如果您在云下已有完善的企业管理系统,可以通过云监控提供的监控数据导出工具Exportor,将云上数据实时导出到线下进行统一监控,并持续写入Prometheus。Exportor安装在客户集群,通过OpenAPI调用云监控指标数据,以Prometheus协议对外吐出指标,您可以配置Prometheus采集任务进行采集。
注意
安装Exportor需要将AK、SK作为运行参数。
请求OpenAPI需要占用接口Quota,超限之后获取指标会被限制。
Exporter导出的数据是Gauge类型。
目前仅支持导出部分云产品。支持的Namespace:
Namespace | 产品名 |
---|---|
VCM_NAT | NAT网关 |
VCM_CLB | 负载均衡 |
VCM_ALB | 应用型负载均衡 |
VCM_EIP | 公网IP |
VCM_TOS | 对象存储 注意 Subnamespace为 |
VCM_DirectConnectConnection | 专线连接-物理专线 |
VCM_DirectConnectGateway | 专线连接-专线网关 |
VCM_DirectConnectVIF | 专线连接-虚拟接口 |
VCM_RDS_MySQL | 云数据库MySQL版 |
VCM_MongoDB_Replica | 文档数据库MongoDB版-副本集 |
VCM_MongoDB_Sharded_Cluster | 文档数据库MongoDB版-分片集 |
VCM_Redis | 缓存数据库Redis版 |
VCM_vePFS | 文件存储vePFS |
VCM_ECS | 云服务器 |
VCM_veDB_MySQL | 云数据库veDB MySQL版 |
VCM_RDS_PostgreSQL | 云数据库PostgreSQL版 |
VCM_BandwidthPackage | 共享带宽包 |
VCM_InternetTunnelBandwidth | 互联网通道-公网带宽 |
VCM_InternetTunnelVirtualInterface | 互联网通道虚拟接口 |
VCM_Kafka | 消息队列Kafka版 |
VCM_BMQ | 云原生消息引擎 |
VCM_PrivateLinkGateway | 私网连接-私网连接网关 |
给定Namespace、SubNamespace、MetricName才能唯一标识一个指标,因为指标名在不同云产品下可以重名。
根据实际情况配置yaml文件,然后在您的k8s集群中安装。
apiVersion: apps/v1 kind: Deployment metadata: name: volc-cloud-monitor-exporter spec: replicas: 1 selector: matchLabels: app: volc-cloud-monitor-exporter template: metadata: labels: app: volc-cloud-monitor-exporter annotations: prometheus.io/scrape: "true" prometheus.io/port: "9988" spec: containers: - name: volc-cloud-monitor-exporter image: cloud-monitor-cn-beijing.cr.volces.com/cm/cloud-monitor-exporter:1.0.16.1 args: - "--config=/conf/conf.yaml" resources: limits: memory: "128Mi" cpu: "500m" ports: - containerPort: 9988 volumeMounts: - name: conf mountPath: /conf volumes: - name: conf configMap: name: cloud-monitor-exporter-conf --- apiVersion: v1 kind: ConfigMap metadata: name: cloud-monitor-exporter-conf data: conf.yaml: | Region: 'cn-beijing' #【字符串】想导出的指标所在region,默认为cn-beijing Credentials: AccessKey: '填您的火山AK' #需要有 CloudMonitorReadOnlyAccess 权限 SecretKey: '填您的火山SK' DelaySeconds: 120 DataConcurrency: 2 DataQueueSize: 100 MetaFreshIntervalSeconds: 120 DataFreshIntervalSeconds: 60 MaxRetries: 2 Limiter: LimitQPSGetMetricData: 5 LimitQPSMonitorObjectList: 5 Namespaces: #需要导出的云产品,必填,参见使用说明中"支持的Namespace",建议按需选择,可能影响性能 - '需要导出的云产品1' - '需要导出的云产品2'
以下仅为一个示例,具体配置方式请您视部署情况而定。
scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. - job_name: "prometheus" # metrics_path defaults to '/metrics' # scheme defaults to 'http'. static_configs: - targets: ["localhost:9988"] #指向部署的ip
Exporter导出的指标名为metricName_subNamespace_namespace。
参数说明:
VCM_Redis
,SubNamespace为aggregated_server
,MetricName为AggregatedMemUtil
,所以实际导出的指标名是AggregatedMemUtil_aggregated_server_VCM_Redis
。Usage of ./exporter: -config string 配置文件路径 (default "/conf/config.yaml") -enable-self-metrics 是否启用自监控指标, 可选true/false (default true) -log-level string 日志级别, 可选debug/info (default "info") -metric-meta-path string metric元信息接口 (default "/meta") -metric-monitor-objects-path string metric监控对象接口 (default "/monitor_objects") -metric-path string exporter的metrics路径 (default "/metrics") -port int exporter的端口 (default 9988)
注意
如果云产品是全域产品,没有地域限制,Exporter配置中的Region
必须设置为no-region
。
## Region 地域配置 ## 地域配置, 默认为 "cn-beijing", 不支持多选, 如果有多个 Region 需要配置, 对每个 Region 启动一个 ## Cloud-Monitor-Exporter 实例. ## ## 可选地域列表: ## cn-beijing ## cn-guangzhou ## no-region ## cn-shanghai ## cn ## ... Region: "" ## 权限认证 ## ## 用户 AKSK 配置, 请确保该 AKSK 代表的账号(或子账号)拥有 CloudMonitorReadOnlyAccess 权限. ## ## AccessKey, SecretKey 均为火山平台的权限管控中的 AccessKey, SecretKey. 如果相关 AKSK 没有 ## CloudMonitorReadOnlyAccess, 在获取数据信息时将会报错:无权限. 具体失败原因可通过 Exporter ## 日志获取. 对于报错信息请参考 Exporter 常见错误处置方式. ## ## 如果 AccessKey, SecretKey 的内容或格式错误, 将会报错: 错误的认证请求头. 对于报错信息请参考 ## Exporter 常见错误处置方式. Credentials: ## 用户 AccessKey AccessKey: "" ## 用户 SecretKey SecretKey: "" ## 请求重试 ## ## 云监控 Exporter 在请求接口报错后, 会进行指定次数的重试. 最大值为 3. 默认为 1. MaxRetries: 1 # ## 主动限制 ## ## 云监控获取数据的接口存在一定量的 QPS 限制, 限制与 AccountID 对应. 是指某个账号下, 每秒最大请求 ## 次数. 此限制无法通过启动多个 Exporter 进行逃逸. 而且如果账号有存在其他调用相关 API 的情况, 也 ## 会被计算在 QPS 限制内. 如果有此类需求, 可以通过主动限制 Exporter 的 QPS, 降低其他场景的 QPS ## 限制触发的概率. ## ## 例如: 存在业务场景, 调用云监控 API 获取某类数据指标(GetMetricData), 并且预计调用 QPS 为 6, ## 则 Exporter 最高 QPS 不可以超过 4, 此种场景下可以通过设置: ## Limiter.LimitQPSGetMetricData: 3 限制. 不设置为 4 的原因是保留一定的容错. Exporter 的 QPS ## 计算请参考 Exporter 配置项中的 DataFreshIntervalSeconds 参数. ## ## Exporter 对 QPS 限制触发的处理方式: ## Exporter 对暂停本轮次数据获取, 并等待 QPS 数据满足要求后继续执行. 然后根据上次暂停的时间重新 ## 开始获取. 在暂停恢复后, 并不会导致数据断连, 云监控会依次请求数据. Limiter: ## API: GetMetricData QPS 限制 LimitQPSGetMetricData: 9 ## API: ListMonitorObject QPS 限制 LimitQPSMonitorObjectList: 9 ## 火山引擎 OpenAPI 请求域名地址. ## ## 默认为线上默认域名: open.volcengineapi.com Host: "" # 行为控制 ## 延迟配置 ## ## 由于时序流的特性, 往往数据点写入时间有一定的延迟. 因此需要配置一定量的时间偏移, 一次保证每次拉取的 ## 数据是稳定有效的. 比如写入时间为 2023-12-01 10:00:00, 但是指标的实际时间(表示指标实际表达的 ## 时间) 为: 2023-12-01 09:58:00 (不同产品\指标的具体时间含义不同). 如果在 09:58:00 时间点 ## 查询该时间点数据是无效的, 至少需要在 10:00:00 时间点查询 09:58:00 的数据. 此延迟为 120(秒). ## ## 单位: 秒 ## ## 支持针对不同产品单独配置延迟时间, 如果在 'Namespaces' 配置块中没有声明 DelaySeconds, 则使用该值. DelaySeconds: 120 ## EnableDynamicDelaySecond 是否允许 Exporter 根据具体产品动态判断 DelaySeconds. ## ## 开启后, 其优先级高于产品配置中的 DelaySeconds. EnableDynamicDelaySecond: true ## 元数据刷新间隔. ## ## 每间隔 MetaFreshIntervalSeconds 进行元数据刷新, 最小为 30 秒. MetaFreshIntervalSeconds: 30 ## 指标数据刷新间隔 ## ## 每间隔 DataFreshIntervalSeconds 进行数据刷新, 每次获取 DataFreshIntervalSeconds 时间长度 ## 的数据. ## ## 最小为 30 秒. DataFreshIntervalSeconds: 30 ## 每次获取元数据的最大数量. ## ## 最大为 50. Exporter 会自动拆分请求, 使每次请求最大元数据不超过该值. QPS 限制会导致每次刷新元数据 ## 的耗费时间不同. BatchInstanceCount: 50 ## 数据查询队列长度 ## ## 该值影响 Exporter 的内存\CPU 消耗. 最大不超过 10000, 默认为 0. DataQueueSize: 0 ## 并发请求量 ## ## 受 QPS 限制. 最大不超过 5, 建议使用默认 1. DataConcurrency: 1 ## 需要获取的产品列表 ## ## 支持多种数据格式(可同时存在): ## 字符串: "namespace1" ## 结构体: ## Namespace: "namespace1" ## DelaySeconds: 100 ## # 样例: # Namespaces: # - "VCM_ECS" # - Namespace: "VCM_EIP" # DelaySeconds: 60 ## 如果 DelaySeconds 配置为 0,则使用全局的 DelaySeconds. DelaySeconds 参考 DelaySeconds 字段. ## ## 如果开启了 EnableDynamicDelaySecond 则 Exporter 尝试自动处理, 当处理失败后, 使用 Namespace 中的 ## DelaySeconds 字段值. Namespaces: - "namespace1" - "namespace2" - Namespace: "namespace3" DelaySeconds: 50 ## 产品维度配置 ## ## 根据 Namespaces 配置项配置. SubNamespaces: namespace1: # namespace1 字段来源于配置中 Namespaces 配置块. - subNamespace1-1 - subNamespace1-2 namespace2: - subNamespace2-1 - subNamespace2-2 ## 排除维度配置, 可省略 ExcludeSubNamespaces: namespace1: - subNamespace1-3 ## 指标配置 Metrics: namespace1: subNamespace1-1: - metric1-1-1 - metric1-1-2 subNamespace1-2: - metric1-2-1 namespace2: subNamespace2-1: - metric2-1-1 ## ProjectName 产品配置, 表示仅获取火山某个项目下的资源数据. 如果某些产品不支持 Project, 则直接获取 ## 全部数据. 如果配置了产品, 每个 Exporter 实例仅获取一个项目的数据. ProjectName: ""
说明
下文记录Exporter的版本更新记录。
Exporter版本:cloud-monitor-cn-beijing.cr.volces.com/cm/cloud-monitor-exporter:1.0.16.1