使用 Grafana 和 Prometheus展现消息队列性能

news/2025/2/4 15:53:59 标签: grafana, prometheus

引言

上篇文章通过JMX提取Kafka数据,本篇文章将通过JDBC存储Kafka性能数据存储于数据库,并通过Grafana 和 Prometheus进行展示,实现开发中常用的可视化监控

1. 环境准备        

  • Kafka:运行中的 Kafka 集群,确保可以通过 JMX 访问其性能指标。

  • Kafka Exporter:用于将 Kafka 的 JMX 指标暴露给 Prometheus。

  • Prometheus:负责收集和存储 Kafka Exporter 提供的性能指标。

  • Grafana:用于从 Prometheus 读取数据并进行可视化展示。

2. 安装和配置 Kafka Exporter

下载和启动        

从 Kafka Exporter 的 GitHub 仓库 下载适合你系统的版本,然后启动它,示例命令如下:

./kafka_exporter --kafka.server=localhost:9092

此命令将 Kafka Exporter 连接到本地运行在 9092 端口的 Kafka 集群。Kafka Exporter 默认会在 9308 端口暴露指标供 Prometheus 抓取。

3. 安装和配置 Prometheus

下载和启动        

从 Prometheus 官方网站 下载适合你系统的版本,解压后,编辑 prometheus.yml 文件,添加对 Kafka Exporter 的抓取配置:

global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'kafka_exporter'
    static_configs:
      - targets: ['localhost:9308']

保存配置文件后,启动 Prometheus:

./prometheus --config.file=prometheus.yml

4. 安装和配置 Grafana

下载和启动

根据你的操作系统,从 Grafana 官方网站 下载并安装 Grafana。安装完成后,启动 Grafana 服务。

配置数据源

  • 打开浏览器,访问 http://localhost:3000(默认端口),使用默认用户名 admin 和密码 admin 登录 Grafana。
  • 登录后,在左侧导航栏中点击 Configuration -> Data Sources
  • 点击 Add data source,选择 Prometheus
  • 在 HTTP 部分的 URL 字段中,输入 Prometheus 的访问地址,例如 http://localhost:9090
  • 点击 Save & Test,确保 Grafana 可以成功连接到 Prometheus。

5. 创建 Grafana 仪表盘

创建新仪表盘

  • 在左侧导航栏中点击 Dashboards -> New dashboard
  • 点击 Add a new panel

配置查询

  • 在 Metrics 选项卡中,使用 Prometheus 查询语句来获取所需的 Kafka 性能指标。例如:

    • 消息生产速率sum(rate(kafka_producer_record_send_total[5m]))
    • 消息消费速率sum(rate(kafka_consumer_fetch_manager_records_consumed_total[5m]))
    • 分区偏移量kafka_log_log_end_offset
  • 你可以根据需要调整查询的时间范围和聚合方式。

配置可视化

  • 在 Visualization 选项卡中,选择合适的可视化类型,如 Graph(折线图)、Bar chart(柱状图)等。
  • 根据需要调整图表的颜色、线条样式、坐标轴等参数。

保存仪表盘

配置完成后,点击 Apply 保存面板,然后点击仪表盘右上角的 Save dashboard 保存整个仪表盘。


http://www.niftyadmin.cn/n/5841655.html

相关文章

【Word快速设置论文公式居中编号右对齐】

1. 查看纸张大小 布局 —> 纸张大小 —> 21厘米*29.7厘米 —> 得到宽度为21厘米 2. 查看左右的页边距 布局 —> 页边距 —> 1.57厘米和1.57厘米 3. 计算距离 公式的距离:(21-1.57-1.57)/2 8.93厘米 编号靠右的距离&…

【教程】微信扫描二维码进入小程序指定页面并携带参数

功能描述 打开微信扫一扫,扫描产品上的二维码,弹出小程序,跳到“邀请用户”页面。解析二维码中的参数,自动填充到页面中的“邀请码”输入框。 操作步骤 首先,要到微信公众平台对扫普通链接二维码打开小程序功能进行配…

MATLAB | 基于长时间序列栅格数据的Mann-Kendall与Pettitt突变检验分析

各位同学好,今天我们将分享在水文气象等领域中常用的两种突变检验方法——Mann-Kendall(MK)检验和Pettitt检验。由于时间关系,今天我们不详细介绍具体的公式和推导过程,感兴趣的同学可以参考相关文献,如《P…

自然语言生成(NLG)算法模型评估方案的硬件配置、系统架构设计、软件技术栈、实现流程和关键代码

智能化对话中的自然语言生成(NLG)算法模型评估是一个复杂而多维的过程,它涉及多个评估指标和策略,以确保生成的文本质量、准确性和流畅性。 智能化对话中的NLG算法模型评估是一个涉及多个评估指标和策略的过程。通过选择合适的评估…

【1】快手面试题整理

[1]. 说说int和Integer的区别 int是Java中的基本数据类型,用于存储整数值。它直接在栈内存中存储数值,默认值是0,并且不能为null,本身不带方法。 Integer是int的包装类,属于引用类型。它在堆内存中存储一个对象&…

SRS代码目录

代码目录: src/目录下核心代码: core:核心功能模块,包括日志、配置、错误处理等;protocol:实现RTMP、HTTP-FLV、HLS等协议的模块;app:应用层的实现,包括流的发布、播放…

25.2.3 【洛谷】作为栈的复习不错(学习记录)

今天学习的东西不算多,放了一个星期假,感觉不少东西都没那么清楚,得复习一下才行。今天搞个栈题写,把栈复习一下,明天进入正轨,边复习边学习新东西,应该会有二叉树的学习等等... 【洛谷】P1449 …

【Docker项目实战】使用Docker部署MinIO对象存储(详细教程)

【Docker项目实战】使用Docker部署MinIO对象存储 前言一、 MinIO介绍1.1 MinIO简介1.2 主要特点1.3 主要使用场景二、本次实践规划2.1 本地环境规划2.2 本次实践介绍三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本四、下载MinIO镜像五、…