giuseppe-trisciuoglio/spring-boot-actuator
Provides patterns to configure Spring Boot Actuator for production-grade monitoring, health probes, secured management endpoints, and Micrometer metrics across JVM services. Use when setting up monitoring, health checks, or metrics for Spring Boot applications.
npx skills add https://github.com/giuseppe-trisciuoglio/developer-kit --skill spring-boot-actuator
references/.<!-- Maven -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
// Gradle
dependencies {
implementation "org.springframework.boot:spring-boot-starter-actuator"
}
After adding the dependency, verify endpoints respond:
curl http://localhost:8080/actuator/health
curl http://localhost:8080/actuator/info
Include spring-boot-starter-actuator in your build configuration.
> Validate: Restart the service and confirm /actuator/health and /actuator/info respond with 200 OK.
management.endpoints.web.exposure.include to the precise list or "*" for internal deployments.management.endpoints.web.base-path (e.g., /management) when the default /actuator conflicts with routing.references/endpoint-reference.md.> Validate: curl http://localhost:8080/actuator returns the list of exposed endpoints.
SecurityFilterChain using EndpointRequest.toAnyEndpoint() with role-based rules.management.server.port with firewall controls or service mesh policies for operator-only access./actuator/health/** publicly accessible only when required; otherwise enforce authentication.> Validate: Unauthenticated requests to protected endpoints return 401 Unauthorized.
management.endpoint.health.probes.enabled=true for /health/liveness and /health/readiness.management.endpoint.health.group.* to match platform expectations.HealthIndicator or ReactiveHealthContributor; sample implementations in references/examples.md#custom-health-indicator.> Validate: /actuator/health/readiness returns UP with all mandatory components before promoting to production.
management.metrics.export.*.MeterRegistryCustomizer beans to add application, environment, and business tags for observability correlation.server.observation.* configuration when using Spring Boot 3.2+.> Validate: Scrape /actuator/prometheus and confirm required meters (http.server.requests, jvm.memory.used) are present.
/actuator/startup (Spring Boot 3.5+) and /actuator/conditions during incident response to inspect auto-configuration decisions.HttpExchangeRepository (e.g., InMemoryHttpExchangeRepository) before enabling /actuator/httpexchanges for request auditing.references/endpoint-reference.md for endpoint behaviors and limits.> Validate: /actuator/startup and /actuator/conditions return valid JSON payloads.
management:
endpoints:
web:
exposure:
include: "health,info"
endpoint:
health:
show-details: never
@Component
public class PaymentsGatewayHealth implements HealthIndicator {
private final PaymentsClient client;
public PaymentsGatewayHealth(PaymentsClient client) {
this.client = client;
}
@Override
public Health health() {
boolean reachable = client.ping();
return reachable ? Health.up().withDetail("latencyMs", client.latency()).build()
: Health.down().withDetail("error", "Gateway timeout").build();
}
}
management:
endpoint:
health:
probes:
enabled: true
group:
readiness:
include: "readinessState,db,paymentsGateway"
show-details: always
management:
server:
port: 9091
ssl:
enabled: true
endpoints:
web:
exposure:
include: "health,info,metrics,prometheus"
base-path: "/management"
metrics:
export:
prometheus:
descriptions: true
step: 30s
endpoint:
health:
show-details: when-authorized
roles: "ENDPOINT_ADMIN"
@Configuration
public class ActuatorSecurityConfig {
@Bean
SecurityFilterChain actuatorChain(HttpSecurity http) throws Exception {
http.securityMatcher(EndpointRequest.toAnyEndpoint())
.authorizeHttpRequests(c -> c
.requestMatchers(EndpointRequest.to("health")).permitAll()
.anyRequest().hasRole("ENDPOINT_ADMIN"))
.httpBasic(Customizer.withDefaults());
return http.build();
}
}
More end-to-end samples are available in references/examples.md.
references/ for verbose documentation to conserve context.curl probes in CI/CD pipelines./actuator/env, /actuator/configprops, /actuator/logfile, and /actuator/heapdump on public networks./actuator/beans and /actuator/mappings as they reveal internal application structure.scripts/) reserved for future automation; no runtime dependencies today.mvn spring-boot:run or ./gradlew bootRun exposes expected endpoints under /actuator (or custom base path)./actuator/health/readiness returns UP with all mandatory components before promoting to production./actuator/metrics or /actuator/prometheus to ensure required meters (http.server.requests, jvm.memory.used) are present.Take giuseppe-trisciuoglio/spring-boot-actuator from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.