导语
本文给大家带来 Pulsar 在可观测性方向的重要能力------支持接入 Prometheus 监控。
通过阅读这篇文章,您将能了解到以下内容:
● 什么是 Prometheus?
● Pulsar 为什么要对接 Prometheus?
● 对接 Prometheus 的技术方案
● 如何使用该能力查看监控指标
什么是 Prometheus?
Prometheus 是一套开源的完整监控解决方案,不同于传统的运维监控工具,Prometheus 是面向容器和微服务的监控系统,采用基于时间序列的存储方式,监控采集更加精确,监控频率更高,和容器和微服务兼容性更好。随着目前容器和微服务的使用日趋广泛,Prometheus 的应用范围将会越来越广。
Prometheus 具有如下优势:
● 监控数据的精细程度高,采集精度可以达到1~5s。
● 集群部署速度和监控脚本制作快,大大缩短监控搭建的时间成本。
● 开源软件更新快,bug 修复快,周边插件丰富,到手即用,支持多种客户端开发语言。
● 本身基于数学计算模型,直接使用数学公式和数学函数,可以实现很复杂的业务逻辑监控。
● 结合 Grafana 展示图形,效果美观实用。
● 特别针对目前流行容器监控适配,采集深度大。
Pulsar 为什么要支持对接 Prometheus?
TDMQ Pulsar 专业集群商业化已一年有余,凭借其丰富的功能、出色的稳定性,赢得了众多用户的青睐。用户在使用的过程中,也提出了进一步的监管需求。大规模业务运行的客户,通常有一套自己的统一监控系统,而不会通过腾讯云的控制台查看集群运行情况。同时,客户也期望可以通过 Prometheus 的监控数据,对业务 Workload 进行及时地 HPA,使得整体线上运维更加自动化。
对此我们分析需求场景后,决定 Pulsar 专业集群需要支持外部 Prometheus 来采集监控数据。来达到以下两个产品化目标:
1、标准的 Prometheus 监控数据格式,实现后可以用自己的 Prometheus 通过我们提供的 Exporter 获取数据;
2、如通过 Grafana 配置 Prometheus 数据源,K8s 获取 Prometheus 数据来进行 Workload HPA 等。
设计方案
在设计层面,后续 TDMQ Pulsar 在监控方面将提供两种方案:
-
原有的腾讯云一体的监控方案,TDMQ Pulsar 控制台监控 + 可观测平台配置告警。
-
本次新增的 Prometheus 监控方案,在实现层面跟原有的方案完全不同。主要体现在两个方面:监控数据的采集链路和指标聚合。
腾讯云一体的监控方案中,监控指标的数据是在各数据流组件上报到统一的 Barad 监控平台,在该平台中进行了计算汇总,而后展示到了控制台,链路会更长,因为延迟会更大一些。 而在 Prometheus 监控方案,直接打通了用户 VPC 等网络,以实现用户可直接通过接入层提供的 Exporter 地址来抓取监控数据,链路更短,但需要用户来进行汇聚计算。
使用指引
-
登录 TDMQ 控制台。
-
在左侧导航栏选择集群管理,单击目标集群实例的"ID",进入实例基本信息页面。
-
点击进入监控信息 Sheet 页。
-
在右上角点击 Prometheus 监控入口获取 按钮的获取监控目标,选择相应的网络类型及网络配置。
- 单击提交,获取一组监控目标。
- 修改配置文件 prometheus.yml,增加 node_exporter 抓取任务。
vbnet
job_name: prometheus-tdmq-pulsar
honor_timestamps: true
scrape_interval: 60s
metrics_path: /tencent-cloud-metrics/
scheme: http
static_configs:
- targets:
- 10.x.x.x:10001
- 10.x.x.x:10002
● honor_timestamps,设置为 true 时,Prometheus 将使用 Exporter 提供的指标时间戳,而不是使用 Prometheus 服务器接收到指标的时间戳。
● scrape_interval,为抓取监控度量数据的频率,目前的监控指标是分钟级的。
● metrics_path,获取监控指标的路径,请设置为 /tencent-cloud-metrics/。
● scheme,配置访问资源的协议,当前仅支持 http。
- 访问相应可视化界面,查看配置监控指标。