Об этом проекте
Pulse — это production-стартер наблюдаемости для Spring Boot, объединяющий функции мониторинга и надёжности, которых обычно не хватает в стандартном стеке. Он требует лишь одной Maven-зависимости и работает без каких-либо агентов, вплетения байт-кода (bytecode weaving) или специального рантайма.
Ключевые функции, включённые по умолчанию: файрвол кардинальности, ограничивающий кардинальность тегов каждого метра для предотвращения взрыва затрат на метрики; распространение бюджета тайм-аутов, передающее оставшиеся дедлайны через HTTP- и Kafka-вызовы; автоматическое распространение контекста через @Async, @Scheduled и Kafka-консюмеры; защита контекста трассировки, обнаруживающая удаление заголовка traceparent на вышестоящем узле; структурированные логи в стиле OTel с метаданными deploy/commit/pod/region и маскированием PII; а также стабильные отпечатки исключений SHA-256, группирующие один и тот же баг между деплоями.
Дополнительные возможности для распределённых систем включают карту здоровья зависимостей, обнаружение усиления повторов (retry-amplification), мультитенантный контекст, приоритет запросов, метрики памяти с учётом контейнеров, лаг Kafka по времени, отслеживание веерных запросов (fan-out), SLO-as-code с генерацией PrometheusRule, автоинструментацию Resilience4j, наблюдаемость фоновых задач, обнаружение N+1 и медленных запросов к базе данных, привязку кэша Caffeine, корреляцию OpenFeature, корреляцию с непрерывным профилированием, wide-event API, плавное завершение (graceful drain) с флашем OTel, обнаружение конфигурационного дрейфа в парке сервисов, живой диагностический UI актуатора и управление сэмплированием.
Библиотека нативно работает с Micrometer, дружественна к OTLP, совместима с Java 21 и 25, Spring Boot 4.0+, Logback и Log4j2, а также с нативным образом GraalVM (best-effort). Она поставляется с готовым дашбордом Grafana, алертами и runbook'ами. Накладные расходы на производительность измерены с помощью JMH: горячий путь файрвола кардинальности составляет примерно 17 нс/операцию, а эмиссия событий спана — примерно 25 нс/операцию на JDK 21 и оборудовании Apple M-серии.
Качество сборки обеспечивается Error Prone, NullAway, Spotless, порогами покрытия JaCoCo, сканированием безопасности CodeQL, генерацией SBOM CycloneDX, бесключевой подписью Sigstore, CI на нескольких JDK и воспроизводимыми сборками. Проект распространяется под лицензией MIT и опубликован в Maven Central как io.github.arun0009:pulse-spring-boot-starter.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.