轻量级 Spring Boot 监控,无需 Prometheus 和 Grafana
在 VPS 上运行一个或多个 Spring Boot 应用程序仍需要基本的运营可视化。您需要知道应用程序是否可访问,错误是否在增加,以及是否重启。您可能不需要一个完整的监控平台来回答这些问题。Spring Boot Actuator 已经暴露了很多这些信息。StatLite 将其转化为一个专注于健康、请求、错误、延迟、内存、正常运行时间和重启的仪表板。它作为一个 Go 二进制文件运行,并将历史记录存储在 SQLite 中。监控 Spring Boot,而无需运行一个完整的监控栈。通常选项为何可能超出您的需要 Actuator 为 Spring Boot 应用程序提供了有用的健康和 Micrometer 指标端点。它们非常适合集成,但反复打开 JSON 端点并不是方便的日常仪表板。Spring Boot Admin 添加了更广泛的应用程序管理功能。当您需要更大的监控系统、灵活的查询或跨多个环境的共享仪表板时,Prometheus 和 Grafana 是强有力的选择。对于在一个 VPS 上运行的几个服务,较小的仪表板可能就足够了。StatLite 读取您已有的 Actuator 数据,并显示在日常检查中最有用的操作信号。 小型部署需要回答的问题 应用程序是否可到达且运行正常?错误是否在增加?请求是否在减慢?内存使用是否在增长?应用程序是否重启?相关服务,如数据库,可否访问? 快速比较 工具 操作复杂性 最佳契合 Raw Actuator 端点 低 偶尔手动检查 Spring Boot Admin 中等 应用管理和监控 Prometheus 和 Grafana 高 大型部署和高级可观察性 StatLite 非常低 在小服务器上运行几个 Spring Boot 服务 这些工具也可以共存。今天选择 StatLite 作为专注的仪表板并不会阻止您在需求增加时以后采用 Prometheus 和 Grafana。几分钟内设置 StatLite 以下示例使用与 StatLite 捆绑的可运行 Spring Actuator 演示。 1. 从 Spring Boot 中暴露健康状况和指标 将所需的 Actuator 端点暴露添加到您的应用程序配置中。仅使 Actuator 从受信任的网络可访问,并在需要时添加身份验证。management: endpoints: web: exposure: include: health,metrics endpoint: health: show-details: always 对于捆绑的演示,从 examples/spring-actuator-demo 启动应用程序: mvn spring-boot:run 2. 安装 StatLite 根据 StatLite 安装指南使用适合您平台的安装方法。它涵盖了发布安装程序、Homebrew,以及每种方法所做和未做的设置。 更喜欢从源代码构建的开发人员可以克隆代码库并构建二进制文件: git clone https://github.com/PVRLabs/statlite.git cd statlite go build -o statlite ./cmd/statlite 3. 添加一个目标配置 server: listen: "127.0.0.1:9090" storage: sqlite_path: "./statlite.sqlite" polling: interval: "10s" timeout: "5s" targets: - name: "spring-demo" actuator_base_url: "http://127.0.0.1:8080/actuator" 默认情况下,listen 保持仪表板本地。sqlite_path 是用于仪表板历史记录的文件。actuator_base_url 指向应用程序的 Actuator 基本 URL。有关基本身份验证、多个目标、保留和生产安全细节,请参见配置文档。 4. 打开仪表板 ./statlite --config ./statlite.yaml 在浏览器中打开 http://127.0.0.1:9090。StatLite 会在配置的间隔上轮询,因此在产生流量或重启应用程序后,请等待下一个轮询。如果您正在跟随包含的演示,请在 StatLite 仓库根目录中的第二个终端创建流量: ./examples/spring-actuator-demo/generate-traffic.sh 该脚本向演示应用程序发送成功的、数据库和慢请求,以及 400、404 和 500 响应,以便请求和错误图表有活动显示。在运行它后,等待下一个 StatLite 轮询。看到仪表板更新了吗?如果 StatLite 适合您的设置,请给仓库加星,以便将其收藏并帮助更多 Spring Boot 开发人员找到它。 为什么 StatLite 保持小巧 单个 Go 二进制文件 SQLite 存储 无监控代理 无需超出 Actuator 的自定义应用程序仪表板 适合 systemd 部署 在一个配置中支持多个 Spring Boot 目标 它刻意优先考虑 Actuator。您根据需要启用或暴露 Actuator;StatLite 不会移除该设置步骤。 何时不使用 StatLite 当您需要许多服务或主机、长时间保留、高级指标查询、警报路由、分布式跟踪、集中日志或组织范围的仪表板时,请使用更广泛的可观察性平台。StatLite 不是企业可观察性的替代品。当操作工作是监控几个 Spring Boot 服务而不运行完整的 Prometheus 和 Grafana 堆栈时,它是一个专注的选项。使用 StatLite 监控您的第一个 Spring Boot 应用程序。
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡