Spring Boot

面向 Spring Boot 应用的状态页和正常运行时间监控

监控 Spring Boot 服务。开箱支持 Spring Boot Actuator 健康端点。公共状态页或通过我们的 API headless。

为 Spring Boot 发布状态页的三种方式

选择所需的控制级别 — 零代码、低代码或完全 headless。

托管

添加 Spring Boot 端点,把 CNAME 指向 status.yourdomain.com,完成。5 分钟搞定。

Headless

通过公共 API 在你的 Spring Boot 应用内构建自有 UI,完全掌控设计与品牌。

查看 API

嵌入式徽章

将 SVG 正常运行时间和状态徽章放入 README 或落地页。每 5 分钟自动更新。

把这个 health 端点加入你的 Spring Boot 应用

复制、粘贴、把 PulseAPI 指向 URL。健康时返回 200,降级时返回 503。

application.yml
# application.yml
management:
  endpoints:
    web:
      exposure:
        include: health, info
  endpoint:
    health:
      show-details: always
      probes:
        enabled: true
  health:
    db:
      enabled: true
    redis:
      enabled: true
    diskspace:
      enabled: true

Spring Boot Actuator 以稳定 JSON schema 暴露 /actuator/health。断言 `$.status == "UP"`。针对特定组件添加 JSON-path 规则。

Spring Boot 应用会出什么故障 — 如何捕获

下游损坏但 Actuator "UP"

关键 bean 间歇失败时 default 健康检查仍可能通过。添加自定义 HealthIndicators 并断言具体组件。

JVM 内存压力

长 GC 停顿表现为延迟突增。响应时间告警在 OOM 发生前捕获。

Kafka 消费者 lag

静默消费者故障让队列堆积。暴露 lag 端点并断言阈值。

Headless 视角

不喜欢我们的状态页? 用 Spring Boot 自己构建。

我们的 API 返回的数据与托管 UI 完全一致。完整 OpenAPI 规范见 api.pulseapi.tech/docs.

为自定义页面代理我们状态 API 的 Spring @RestController。
@RestController
public class StatusController {

    private final RestTemplate rest = new RestTemplate();

    @GetMapping("/status")
    public ResponseEntity<String> status() {
        String body = rest.getForObject(
            "https://api.pulseapi.tech/status/acme",
            String.class
        );
        return ResponseEntity.ok(body);
    }
}

Spring Boot 监控 — FAQ

能与 Spring Boot 2、3 或 Micronaut 一起使用吗?

都可以。/actuator/health 形式在 Spring 版本间稳定,Micronaut 类似。

能保护 /actuator/health 吗?

可以。使用 API key 或 IP 白名单。PulseAPI 支持每个端点自定义 header。

如何处理 Kubernetes 探针?

使用 Actuator 的 liveness 和 readiness 子路径。把 `/actuator/health/liveness` 用于外部 uptime,`/readiness` 用于依赖健康。

能否在 Spring 应用内渲染状态页?

可以。在 @RestController 中代理公共 API,或用 Thymeleaf 渲染。

5 分钟开始监控你的 Spring Boot 应用

免费套餐,无需信用卡。添加端点,故障时接收告警。