Spring Boot

Страница статуса и мониторинг uptime для приложений Spring Boot

Мониторинг Spring Boot-сервисов. Из коробки работает с Spring Boot Actuator. Публичная страница статуса или headless через API.

Три способа запустить страницу статуса для Spring Boot

Выберите нужный уровень контроля — zero-code, low-code или полный headless.

Хостед

Добавьте Spring Boot-эндпоинт, направьте CNAME на status.yourdomain.com — готово. 5 минут.

Headless

Через публичный API собрать свою UI прямо в Spring Boot-приложении. Полный контроль дизайна и брендинга.

Смотреть API

Встраиваемые бейджи

SVG-бейджи uptime и статуса в README или лендинг. Обновляются каждые 5 минут.

Вставьте этот health endpoint в своё 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 публикует /actuator/health со стабильной JSON-схемой. Ассертьте `$.status == "UP"`. Добавляйте JSON-path для компонентов.

Что ломается в Spring Boot-приложениях и как это поймать

Actuator "UP" при сломанном downstream

Default health может быть зелёным, пока критичный bean падает время от времени. Добавляйте custom HealthIndicators и ассертите конкретные компоненты.

Давление памяти JVM

Длинные GC-паузы дают всплески latency. Ассершн по времени ловит это до OOM.

Kafka consumer lag

Тихие падения consumer наращивают очередь. Эндпоинт lag и ассершн по порогу.

Headless-угол

Не нравится наша страница статуса? Соберите свою на Spring Boot.

Наш API отдаёт те же данные, что потребляет наша хостед-UI. Полная OpenAPI-спека на api.pulseapi.tech/docs.

@RestController Spring, проксирующий наш API статуса для кастомной страницы.
@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 allow-list. PulseAPI поддерживает custom-хедеры на эндпоинт.

Как работать с Kubernetes-пробами?

Используйте liveness/readiness sub-paths Actuator. `/actuator/health/liveness` для uptime, `/readiness` для зависимостей.

Можно рендерить страницу статуса внутри Spring-приложения?

Да. Проксируйте публичный API в @RestController или рендерьте через Thymeleaf.

Запустите мониторинг Spring Boot-приложения за 5 минут

Бесплатный тариф, без карты. Добавьте эндпоинт, получайте алерты о падениях.