Phoenix Metrics
Phoenix 的监控经 2.2.1 以及 2.6.0 两个大版本的迭代, 现已建立基于 Telemetry
接口的核心链路埋点和指标导出的体系, 有助于用户洞悉 Phoenix 应用性能。
基于 Phoenix Metrics,用户可以:
- 分析集群运行状况
- 分析集群读写流量分布以及趋势变化
- 分析各个组件的性能数据
- 分析应用的错误、异常指标
目前可监控的数据有:
- JVM 指标监控(phoenix jvm)
- 事件发布指标监控(phoenix event publish)
- 事件存储指标监控(phoenix event store)
- 客户端指标监控(phoenix client)
- 源聚合根指标监控(phoenix source aggregate)
- 实体聚合根指标监控(phoenix entity aggregate)
- 事务聚合根指标监控(phoenix transaction aggregate)
- 性能指标(phoenix performance): 仅 OpenTelemetry 导出器支持
除此之外,Phoenix 也支持线程池指标的监控(仅 OpenTelemetry 导出器支持),如有需要请联系我们的开发团队。
指标导出器
在 2.6.0 之前,Phoenix 仅支持 JMX 导出指标,基于 JMX 的指标导出非常方便快捷,除了 Prometheus + Grafana
监控体系外也支持通过各种 JDK 工具(jConsole、JProfiler、VisualVM 等)
快速查看,能够让用户在无需复杂环境即可观测到程序性能,这在开发阶段有助于提前识别到程序的性能问题。
当然 JMX 也不是完全的选择,对于复杂的生产环境,我们可能需要更强大的直方图指标,来帮助我们洞悉程序“延迟”时间的分布情况,更深入的了解性能原因。然而 JMX 对于直方图的支持远复杂于直接使用其他框架。(如 MicroMeter 和 OpenTelemetry等)
因此,Phoenix 在 2.6.0 中重构了整个监控体系,将指标做到了同时支持 OpenTelemetry + JMX, 用户也可以基于 Telemetry 自定义自己的指标导出器.
Phoenix OpenTelemetry 的指标导出器增加了性能指标的直方图,因此部分 Grafana Dashboard 在 JMX 下不可用。
Telemetry 和 Metrics 的关系为:Telemetry 是 Metrics 的采集器, 而 Metrics 则是 Telemetry 采集的结果.
Prometheus + Grafana 监控体系
当提到监控体系时,Prometheus和Grafana通常会被一起提及。
- Prometheus是一个开源的指标收集和查询系统,它可以从各种来源(包括JMX、OpenTelemetry等)收集时间序列数据,并为用户提供强大的查询语言和可视化工具来分析和展示这些数据。
- Grafana则是一个开源的可视化平台,它可以与Prometheus集成,以便用户能够使用炫酷的仪表板和图形来展示监控数据。
通过将Prometheus和Grafana结合使用,用户可以轻松地收集、存储、查询和可视化监控数据。
- Prometheus提供了一个强大的查询语言,使用户能够快速准确地获取所需的数据。
- Grafana提供了一个直观易用的可视化界面,使用户能够使用图表、仪表板等方式展示数据,同时还提供了警报功能,当指标超过预设的阈值时会自动发送通知。
Prometheus和Grafana是非常出色的监控体系,它们可以帮助用户收集并可视化关键的性能指标和其他监控数据。如果你正在使用Phoenix框架进行开发,我建议你考虑将这两个工具集成到你的监控策略中,以便更好地了解和优化你的应用程序。