IoTDB 监控实战:Prometheus + Grafana 部署与配置指南
本文围绕 Apache IoTDB 监控体系的搭建与应用展开,详细梳理了 IoTDB 不同类型监控指标与 Prometheus 的映射规则,包括 Counter、Gauge、Histogram 等指标的命名格式与标签配置方法;同时介绍了通过修改 iotdb-system.properties 配置文件开启 Prometheus 指标暴露的实操步骤,以及 Prometheus 采集、Grafana


IoTDB 监控实战:Prometheus + Grafana 部署与配置指南
本文围绕 Apache IoTDB 监控体系的搭建与应用展开,详细梳理了 IoTDB 不同类型监控指标与 Prometheus 的映射规则,包括 Counter、Gauge、Histogram 等指标的命名格式与标签配置方法;同时介绍了通过修改 iotdb-system.properties 配置文件开启 Prometheus 指标暴露的实操步骤,以及 Prometheus 采集、Grafana 可视化的部署配置流程。此外,本文还对 Apache IoTDB Dashboard 的核心功能模块进行了说明,涵盖集群概览、数据写入、数据查询、存储引擎、系统监控等维度的关键监控指标,为 IoTDB 集群的运维管理提供了一套完整的指标采集与可视化解决方案。

1. 监控指标的 Prometheus 映射关系
对于 Metric Name 为 name, Tags 为 K1=V1, …, Kn=Vn 的监控指标有如下映射,其中 value 为具体值
| 监控指标类型 | 映射关系 |
|---|---|
| Counter | name_total{cluster=“clusterName”, nodeType=“nodeType”, nodeId=“nodeId”,k1=“V1” , …, Kn=“Vn”} value |
| AutoGauge、Gauge | name{cluster=“clusterName”, nodeType=“nodeType”, nodeId=“nodeId”,k1=“V1” , …, Kn=“Vn”} value |
| Histogram | name_max{cluster=“clusterName”, nodeType=“nodeType”, nodeId=“nodeId”,k1=“V1” , …, Kn=“Vn”} value name_sum{cluster=“clusterName”, nodeType=“nodeType”, nodeId=“nodeId”,k1=“V1” , …, Kn=“Vn”} value name_count{cluster=“clusterName”, nodeType=“nodeType”, nodeId=“nodeId”,k1=“V1” , …, Kn=“Vn”} value name{cluster=“clusterName”, nodeType=“nodeType”, nodeId=“nodeId”,k1=“V1” , …, Kn=“Vn”, quantile=“0.5”} value name{cluster=“clusterName”, nodeType=“nodeType”, nodeId=“nodeId”,k1=“V1” , …, Kn=“Vn”, quantile=“0.99”} value |
| Rate | name_total{cluster=“clusterName”, nodeType=“nodeType”, nodeId=“nodeId”,k1=“V1” , …, Kn=“Vn”} value name_total{cluster=“clusterName”, nodeType=“nodeType”, nodeId=“nodeId”,k1=“V1” , …, Kn=“Vn”, rate=“m1”} value name_total{cluster=“clusterName”, nodeType=“nodeType”, nodeId=“nodeId”,k1=“V1” , …, Kn=“Vn”, rate=“m5”} value name_total{cluster=“clusterName”, nodeType=“nodeType”, nodeId=“nodeId”,k1=“V1” , …, Kn=“Vn”, rate=“m15”} value name_total{cluster=“clusterName”, nodeType=“nodeType”, nodeId=“nodeId”,k1=“V1” , …, Kn=“Vn”, rate=“mean”} value |
| Timer | name_seconds_max{cluster=“clusterName”, nodeType=“nodeType”, nodeId=“nodeId”,k1=“V1” , …, Kn=“Vn”} value name_seconds_sum{cluster=“clusterName”, nodeType=“nodeType”, nodeId=“nodeId”,k1=“V1” , …, Kn=“Vn”} value name_seconds_count{cluster=“clusterName”, nodeType=“nodeType”, nodeId=“nodeId”,k1=“V1” , …, Kn=“Vn”} value name_seconds{cluster=“clusterName”, nodeType=“nodeType”, nodeId=“nodeId”,k1=“V1” , …, Kn=“Vn”, quantile=“0.5”} value value name_seconds{cluster=“clusterName”, nodeType=“nodeType”, nodeId=“nodeId”,k1=“V1” , …, Kn=“Vn”, quantile=“0.99”} value |
2. 修改配置文件
- 以 DataNode 为例,修改 iotdb-system.properties 配置文件如下:
dn_metric_reporter_list=PROMETHEUS
dn_metric_level=CORE
dn_metric_prometheus_reporter_port=9091
- 启动 IoTDB DataNode
- 打开浏览器或者用
curl访问http://servier_ip:9091/metrics, 就能得到如下 metric 数据:
...
# HELP file_count
# TYPE file_count gauge
file_count{name="wal",} 0.0
file_count{name="unseq",} 0.0
file_count{name="seq",} 2.0
...
3. Prometheus + Grafana
如上所示,IoTDB 对外暴露出标准的 Prometheus 格式的监控指标数据,可以使用 Prometheus 采集并存储监控指标,使用 Grafana
可视化监控指标。
IoTDB、Prometheus、Grafana三者的关系如下图所示:

iotdb_prometheus_grafana
- IoTDB在运行过程中持续收集监控指标数据。
- Prometheus以固定的间隔(可配置)从IoTDB的HTTP接口拉取监控指标数据。
- Prometheus将拉取到的监控指标数据存储到自己的TSDB中。
- Grafana以固定的间隔(可配置)从Prometheus查询监控指标数据并绘图展示。
从交互流程可以看出,我们需要做一些额外的工作来部署和配置Prometheus和Grafana。
比如,你可以对Prometheus进行如下的配置(部分参数可以自行调整)来从IoTDB获取监控数据
job_name: pull-metrics
honor_labels: true
honor_timestamps: true
scrape_interval: 15s
scrape_timeout: 10s
metrics_path: /metrics
scheme: http
follow_redirects: true
static_configs:
- targets:
- localhost:9091
更多细节可以参考下面的文档:
Prometheus从HTTP接口拉取metrics数据的配置说明
4. Apache IoTDB Dashboard
Apache IoTDB Dashboard是 TimechoDB 的配套产品,支持统一集中式运维管理,可通过一个监控面板监控多个集群。你可以联系商务获取到 Dashboard 的 Json文件。

Apache IoTDB Dashboard

Apache IoTDB Dashboard
4.1 集群概览
可以监控包括但不限于:
- 集群总CPU核数、总内存空间、总硬盘空间
- 集群包含多少个ConfigNode与DataNode
- 集群启动时长
- 集群写入速度
- 集群各节点当前CPU、内存、磁盘使用率
- 分节点的信息

4.2 数据写入
可以监控包括但不限于:
- 写入平均耗时、耗时中位数、99%分位耗时
- WAL文件数量与尺寸
- 节点 WAL flush SyncBuffer 耗时

4.3 数据查询
可以监控包括但不限于:
- 节点查询加载时间序列元数据耗时
- 节点查询读取时间序列耗时
- 节点查询修改时间序列元数据耗时
- 节点查询加载Chunk元数据列表耗时
- 节点查询修改Chunk元数据耗时
- 节点查询按照Chunk元数据过滤耗时
- 节点查询构造Chunk Reader耗时的平均值

4.4 存储引擎
可以监控包括但不限于:
- 分类型的文件数量、大小
- 处于各阶段的TsFile数量、大小
- 各类任务的数量与耗时
4.5 系统监控
可以监控包括但不限于:
-
系统内存、交换内存、进程内存
-
磁盘空间、文件数、文件尺寸
-
JVM GC时间占比、分类型的GC次数、GC数据量、各年代的堆内存占用
-
网络传输速率、包发送速率

🌐 附:IoTDB的各大版本
📄 Apache IoTDB 是一款工业物联网时序数据库管理系统,采用端边云协同的轻量化架构,支持一体化的物联网时序数据收集、存储、管理与分析 ,具有多协议兼容、超高压缩比、高通量读写、工业级稳定、极简运维等特点。
| 版本 | IoTDB 二进制包 | IoTDB 源代码 | 发布说明 |
|---|---|---|---|
| 2.0.5 | - All-in-one - AINode - SHA512 - ASC |
- 源代码 - SHA512 - ASC |
release notes |
| 1.3.5 | - All-in-one - AINode - SHA512 - ASC |
- 源代码 - SHA512 - ASC |
release notes |
| 0.13.4 | - All-in-one - Grafana 连接器 - Grafana 插件 - SHA512 - ASC |
- 源代码 - SHA512 - ASC |
release notes |
✨ 去获取:https://archive.apache.org/dist/iotdb/
联系博主
xcLeigh 博主,全栈领域优质创作者,博客专家,目前,活跃在CSDN、微信公众号、小红书、知乎、掘金、快手、思否、微博、51CTO、B站、腾讯云开发者社区、阿里云开发者社区等平台,全网拥有几十万的粉丝,全网统一IP为 xcLeigh。希望通过我的分享,让大家能在喜悦的情况下收获到有用的知识。主要分享编程、开发工具、算法、技术学习心得等内容。很多读者评价他的文章简洁易懂,尤其对于一些复杂的技术话题,他能通过通俗的语言来解释,帮助初学者更好地理解。博客通常也会涉及一些实践经验,项目分享以及解决实际开发中遇到的问题。如果你是开发领域的初学者,或者在学习一些新的编程语言或框架,关注他的文章对你有很大帮助。
亲爱的朋友,无论前路如何漫长与崎岖,都请怀揣梦想的火种,因为在生活的广袤星空中,总有一颗属于你的璀璨星辰在熠熠生辉,静候你抵达。
愿你在这纷繁世间,能时常收获微小而确定的幸福,如春日微风轻拂面庞,所有的疲惫与烦恼都能被温柔以待,内心永远充盈着安宁与慰藉。
至此,文章已至尾声,而您的故事仍在续写,不知您对文中所叙有何独特见解?期待您在心中与我对话,开启思想的新交流。
💞 关注博主 🌀 带你实现畅游前后端!
🏰 大屏可视化 🌀 带你体验酷炫大屏!
💯 神秘个人简介 🌀 带你体验不一样得介绍!
🥇 从零到一学习Python 🌀 带你玩转Python技术流!
🏆 前沿应用深度测评 🌀 前沿AI产品热门应用在线等你来发掘!
💦 注:本文撰写于CSDN平台,作者:xcLeigh(所有权归作者所有) ,https://xcleigh.blog.csdn.net/,如果相关下载没有跳转,请查看这个地址,相关链接没有跳转,皆是抄袭本文,转载请备注本文原地址。

📣 亲,码字不易,动动小手,欢迎 点赞 ➕ 收藏,如 🈶 问题请留言(或者关注下方公众号,看见后第一时间回复,还有海量编程资料等你来领!),博主看见后一定及时给您答复 💌💌💌
更多推荐



所有评论(0)