利用Grafana和Prometheus实现Mitsuki API可观察性
本教程概述了如何使用 Prometheus 和 Grafana 运行 Mitsuki 应用程序,以实现全面的指标监控。Mitsuki 是一个轻量级 Web 框架,能够自动对应用程序进行仪器化,提供详细的请求、组件、调度器和系统指标。该部署方案使用 Docker Compose 编排 Mitsuki 应用程序、用于采集指标的 Prometheus 以及用于可视化的 Grafana。其关键特性是框架内置的 Grafana 仪表板,该仪表板会自动配置;用户无需编写任何查询即可获得广泛的洞察。docker-compose.yml 定义了 Mitsuki、Prometheus 和 Grafana 的服务,并包含一个 dashboard-init 服务以生成 Mitsuki 仪表板。Prometheus 被配置为每五秒采集一次 Mitsuki 应用程序的 /metrics/prometheus 端点。通过 curl 命令生成流量,为各类指标(包括 HTTP 请求和 404 错误)填充数据。Mitsuki 应用程序指标仪表板提供了概览统计、每条路由的 HTTP 性能、每个方法的组件性能以及调度器任务指标的面板。该仪表板涵盖了 Mitsuki 自身发出的所有指标,因此可普遍适用于任何 Mitsuki 应用程序。诸如“按路由的请求速率”、"P95 延迟”和“错误率”等面板的查询示例,展示了指标是如何聚合的。本教程特别强调了监控调度任务,以 OrderReconciliationService 为例。它解释了如何通过创建无效订单来模拟任务失败,展示调度器指标如何跟踪执行、失败和持续时间。Task Failure Rate 面板上的警报可通知用户有关失败的调度任务。此外,演示还包含一个自定义指标仪表板,用于监控特定于应用程序的指标,例如“每分钟创建的订单数”和“数据库写入操作数”。要在个人应用程序中使用框架仪表板,用户可以使用"mitsuki grafana-dashboard"生成仪表板文件,并配置 Grafana 进行自动配置。教程最后提供了清理 Docker 环境的说明,并鼓励用户探索自定义业务指标。