在这里插入图片描述在这里插入图片描述

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. 修改配置文件

  1. 以 DataNode 为例,修改 iotdb-system.properties 配置文件如下:
dn_metric_reporter_list=PROMETHEUS
dn_metric_level=CORE
dn_metric_prometheus_reporter_port=9091
  1. 启动 IoTDB DataNode
  2. 打开浏览器或者用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

  1. IoTDB在运行过程中持续收集监控指标数据。
  2. Prometheus以固定的间隔(可配置)从IoTDB的HTTP接口拉取监控指标数据。
  3. Prometheus将拉取到的监控指标数据存储到自己的TSDB中。
  4. 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安装使用文档

Prometheus从HTTP接口拉取metrics数据的配置说明

Grafana安装使用文档

Grafana从Prometheus查询数据并绘图的文档

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/,如果相关下载没有跳转,请查看这个地址,相关链接没有跳转,皆是抄袭本文,转载请备注本文原地址。


在这里插入图片描述

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

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐