可观测新能力:Pulsar 支持接入 Prometheus 监控

导语

本文给大家带来 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 在监控方面将提供两种方案:

  1. 原有的腾讯云一体的监控方案,TDMQ Pulsar 控制台监控 + 可观测平台配置告警。

  2. 本次新增的 Prometheus 监控方案,在实现层面跟原有的方案完全不同。主要体现在两个方面:监控数据的采集链路和指标聚合。

腾讯云一体的监控方案中,监控指标的数据是在各数据流组件上报到统一的 Barad 监控平台,在该平台中进行了计算汇总,而后展示到了控制台,链路会更长,因为延迟会更大一些。 而在 Prometheus 监控方案,直接打通了用户 VPC 等网络,以实现用户可直接通过接入层提供的 Exporter 地址来抓取监控数据,链路更短,但需要用户来进行汇聚计算。

使用指引

  1. 登录 TDMQ 控制台。

  2. 在左侧导航栏选择集群管理,单击目标集群实例的"ID",进入实例基本信息页面。

  3. 点击进入监控信息 Sheet 页。

  4. 在右上角点击 Prometheus 监控入口获取 按钮的获取监控目标,选择相应的网络类型及网络配置。

  1. 单击提交,获取一组监控目标。
  1. 修改配置文件 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。

  1. 访问相应可视化界面,查看配置监控指标。
相关推荐
假装我不帅3 天前
C# 操作Rabbitmq
消息队列·c#·rabbitmq
Java 第一深情9 天前
RabbitMQ最全教程-Part1(基础使用)
分布式·消息队列·rabbitmq
ktkiko1111 天前
Java中消息队列——ActiveMQ、RabbitMQ、RocketMQ、Kafka
java·消息队列
确实可以17 天前
7.使用Redis进行秒杀优化
redis·消息队列·go
极客先躯19 天前
高级java每日一道面试题-2024年10月19日-消息队列[RabbitMQ]-RabbitMQ中积压了大量的消息,如何处理?
java·消息队列·rabbitmq·java-rabbitmq·积压大量消息·队列积压·java高级
G丶AEOM19 天前
定时任务使用kafka
java·消息队列·八股
腾讯云中间件24 天前
腾讯云上基于 Apache Pulsar 的大规模生产实践
消息队列·腾讯
ApacheRocketMQ24 天前
Java消息队列入门详解
java·消息队列·开源·rocketmq
w_outlier25 天前
了解消息队列 && 信号量
linux·消息队列·通信·信号量