📈指标监控概述
版本支持:v2.16.1+
2.16.1 起,LiteFlow 能把每条 chain、每个 node 的执行情况(跑了多少次、多快、错了多少、当前有多少在并发执行)变成可观测的指标,并对接到 Prometheus / Grafana 这类业界标准的监控系统里看曲线、配告警。
指标能力由框架无关的 liteflow-metrics 模块提供,它已是 liteflow-spring-boot-starter(Boot 2/3)与 liteflow-spring-boot4-starter(Boot 4)的传递依赖,用这两个 starter 的项目无需单独引入 liteflow-metrics。
# 先搞懂这套东西
如果你只是想知道"我的 chain 跑了多少次、多快、错了多少",那你要的就是"可观测性(observability)"。这件事不是一个组件搞定的,而是 4 个角色串成一条流水线,各管一段:
[1] 你的应用 [2] Prometheus [3] Grafana
LiteFlow + Micrometer ──抓──▶ 定时来抓 + 存起来 ──查──▶ 画成曲线 / 配告警
把指标从一个 HTTP 口 (时间序列数据库)
暴露出来:
/actuator/prometheus
数据流向:应用产生指标 ──(Prometheus 每隔几秒主动来抓一次)──▶ 存进 Prometheus
──(Grafana 向 Prometheus 查询)──▶ 仪表盘上的曲线
| 角色 | 一句话 | 谁来提供 |
|---|---|---|
| Micrometer | 给指标埋点的统一 API(类比日志界的 SLF4J)。LiteFlow 用它记录每次 chain / node 的执行次数和耗时 | LiteFlow 内置(liteflow-metrics),你不用管 |
| Spring Boot Actuator | 把这些指标通过一个固定 HTTP 地址 /actuator/prometheus 吐出来,供外部抓取 | 你加一个 spring-boot-starter-actuator 依赖 |
| Prometheus | 一个独立进程,每隔几秒主动来"抓"那个 HTTP 地址,把数据按时间存成"时间序列",并能用 PromQL 查询 | 你自己部署 |
| Grafana | 连到 Prometheus,把数据画成曲线 / 仪表盘,还能配告警 | 你自己部署 |
记住一句话划清边界:LiteFlow 只负责把指标「产生」并「暴露」出来(上面的 [1]);真正的「抓取、存储、画图」是 Prometheus / Grafana 这两个跟 LiteFlow 完全解耦的开源组件干的。
几个会反复出现的词
- registry(注册表):Micrometer 里存放指标的容器。你选哪种监控系统,就引入对应的 registry。
- 时间序列(time series):「某指标 + 一组标签」随时间变化的一串数据点,比如「mChain 的成功执行次数」就是一条时间序列。
- 抓取(scrape):Prometheus 主动来访问你的
/actuator/prometheus拉数据,是「拉」不是「推」。
# 和原有"简单监控"的区别
LiteFlow 原有的 简单监控(MonitorBus)是自存最近 N 条、自算平均、只打日志。
liteflow-metrics 与它完全独立、互不影响,且本模块零统计计算、零历史存储:LiteFlow 核心只上报原始测量值,聚合与推导全部交给 Micrometer 与监控后端。
| 层 | 职责 | 由谁承担 |
|---|---|---|
| LiteFlow 记录 | 每次执行结束 timer.record(耗时);出错 counter.increment() | ChainMetricsLifeCycle / NodeMetricsLifeCycle 钩子,只记原始值 |
| Micrometer 聚合 | 内存中维护 count、totalTime(sum)、max | Micrometer Timer(LongAdder) |
| Prometheus / Grafana 推导 | QPS、平均耗时、错误率在查询时算出 | 监控后端 |
- QPS:不落库,由
rate(count[1m])查询时对只增计数求斜率得到。 - 平均耗时:不落库,由
rate(sum[1m]) / rate(count[1m])当场相除。 - P95 / P99:count + sum 无法倒推,需在进程内开分位或发布 histogram bucket 交 Prometheus
histogram_quantile()。
# 从哪开始看
- 想五分钟看到曲线:快速接入Prometheus和Grafana
- 想知道有哪些指标:指标目录
- 想查端点返回什么:Actuator端点说明
- 想自己拼面板/配告警:常用PromQL与告警
- 上生产前:性能影响与基数控制
帮助我们改善此文档 (opens new window)



