프로젝트 소개

Pulse는 Spring Boot용 프로덕션 관측성 스타터로, 기본 스택에서 누락된 모니터링 및 신뢰성 기능을 번들로 제공합니다. 단일 Maven 의존성만 필요하며 에이전트, 바이트코드 위빙, 사용자 정의 런타임 없이 실행됩니다. 기본 활성화된 핵심 기능에는 메트릭 비용 폭증을 방지하기 위해 미터별 태그 카디널리티를 제한하는 카디널리티 방화벽, HTTP 및 Kafka 호출 전반에 남은 데드라인을 전달하는 타임아웃 예산 전파, @Async, @Scheduled, Kafka 소비자 전반의 자동 컨텍스트 전파, 업스트림 traceparent 제거를 감지하는 추적 컨텍스트 가드, 배포/커밋/팟/리전 메타데이터와 PII 마스킹을 포함한 OTel 정렬 구조화 로그, 그리고 배포 간 동일한 버그를 그룹화하는 안정적인 SHA-256 예외 지문이 포함됩니다. 추가 분산 시스템 확장 기능에는 의존성 건강 맵, 재시도 증폭 감지, 멀티 테넌트 컨텍스트, 요청 우선순위, 컨테이너 인식 메모리 메트릭, Kafka 시간 기반 지연, 요청 팬아웃 추적, PrometheusRule 생성이 포함된 SLO-as-code, Resilience4j 자동 계측, 백그라운드 작업 관측성, 데이터베이스 N+1 및 느린 쿼리 감지, Caffeine 캐시 바인딩, OpenFeature 상관관계, 연속 프로파일링 상관관계, 광범위 이벤트 API, OTel 플러시가 포함된 우아한 드레인, 플릿 구성 드리프트 감지, 실시간 진단 액추에이터 UI, 샘플링 제어가 있습니다. 이 라이브러리는 Micrometer 네이티브 및 OTLP 친화적이며, Java 21 및 25, Spring Boot 4.0+, Logback 및 Log4j2, GraalVM 네이티브 이미지(최선 노력)와 호환됩니다. 사전 빌드된 Grafana 대시보드, 알림, 런북이 함께 제공됩니다. 성능 오버헤드는 JMH 벤치마크로 측정되었습니다: 카디널리티 방화벽 핫 경로는 JDK 21 Apple M-시리즈 하드웨어에서 약 17 ns/op, 스팬 이벤트 방출은 약 25 ns/op입니다. 빌드 품질에는 Error Prone, NullAway, Spotless, JaCoCo 커버리지 게이트, CodeQL 보안 스캐닝, CycloneDX SBOM 생성, Sigstore 키리스 서명, 멀티 JDK CI, 재현 가능한 빌드가 포함됩니다. 프로젝트는 MIT 라이선스로 제공되며 Maven Central에 io.github.arun0009:pulse-spring-boot-starter로 게시됩니다.