openapi: 3.1.0 info: title: Spring Boot 3 Actuator API description: >- Production-ready monitoring and management endpoints provided by Spring Boot 3 Actuator. Includes health checks, Micrometer metrics, environment inspection, logger configuration, thread dumps, scheduled tasks, HTTP exchange tracing, and more. Endpoints are served under the /actuator base path and can be secured via Spring Security. version: 3.2.0 contact: name: Spring Team url: https://spring.io/team license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 servers: - url: http://localhost:8080/actuator description: Local Spring Boot 3 application with Actuator enabled tags: - name: Health description: Application and component health indicators - name: Metrics description: Micrometer-based application metrics - name: Environment description: Application environment properties and configuration - name: Loggers description: Logger configuration management - name: Info description: Application information endpoints - name: Threads description: Thread and heap diagnostics - name: Scheduling description: Scheduled task inspection paths: /health: get: operationId: getHealth summary: Get Application Health description: >- Returns the overall health status of the application. Aggregates all registered HealthIndicators. When security is enabled, full details are only shown to authorized users. tags: - Health responses: '200': description: Application is healthy content: application/json: schema: $ref: '#/components/schemas/HealthResponse' '503': description: Application is unhealthy or in OUT_OF_SERVICE state content: application/json: schema: $ref: '#/components/schemas/HealthResponse' /health/{component}: get: operationId: getHealthComponent summary: Get Component Health description: >- Returns the health status of a specific component (e.g., db, diskSpace, redis, rabbit, kafka). tags: - Health parameters: - name: component in: path required: true description: Health component name (e.g., db, diskSpace, redis) schema: type: string example: db responses: '200': description: Component health status content: application/json: schema: $ref: '#/components/schemas/ComponentHealth' '404': description: Component not found /info: get: operationId: getInfo summary: Get Application Info description: >- Returns arbitrary application information from registered InfoContributors (build, git, environment, OS). tags: - Info responses: '200': description: Application information content: application/json: schema: $ref: '#/components/schemas/InfoResponse' /metrics: get: operationId: listMetrics summary: List Available Metrics description: >- Returns a list of all registered Micrometer metric names available in this application. tags: - Metrics responses: '200': description: Available metric names content: application/json: schema: $ref: '#/components/schemas/MetricsList' /metrics/{metricName}: get: operationId: getMetric summary: Get Metric Detail description: >- Returns measurements and available tags for a specific Micrometer metric. Use tag parameters to filter by dimension. tags: - Metrics parameters: - name: metricName in: path required: true description: Name of the metric (e.g., jvm.memory.used, http.server.requests) schema: type: string example: jvm.memory.used - name: tag in: query required: false description: Tag filter in name:value format (may be repeated) schema: type: string example: area:heap responses: '200': description: Metric measurements content: application/json: schema: $ref: '#/components/schemas/MetricDetail' '404': description: Metric not found /env: get: operationId: getEnvironment summary: Get Environment Properties description: >- Returns all application environment properties grouped by property source (application.properties, system properties, environment variables, etc.). tags: - Environment responses: '200': description: Environment properties content: application/json: schema: $ref: '#/components/schemas/EnvironmentResponse' /env/{toMatch}: get: operationId: getEnvironmentProperty summary: Get Environment Property description: >- Returns the value and origin of a specific environment property key. tags: - Environment parameters: - name: toMatch in: path required: true description: Property key to look up (e.g., spring.application.name) schema: type: string example: spring.application.name responses: '200': description: Property value and origin content: application/json: schema: $ref: '#/components/schemas/PropertyDetail' '404': description: Property not found /loggers: get: operationId: listLoggers summary: List Loggers description: >- Returns all loggers with their configured and effective log levels. tags: - Loggers responses: '200': description: Logger configuration content: application/json: schema: $ref: '#/components/schemas/LoggersResponse' /loggers/{name}: get: operationId: getLogger summary: Get Logger description: Returns the configuration for a specific logger by name. tags: - Loggers parameters: - name: name in: path required: true description: Logger name (e.g., com.example.service) schema: type: string example: com.example.service.UserService responses: '200': description: Logger configuration content: application/json: schema: $ref: '#/components/schemas/LoggerDetail' '404': description: Logger not found post: operationId: setLoggerLevel summary: Set Logger Level description: >- Configures the log level for a specific logger at runtime. Pass null to reset to the parent logger's effective level. tags: - Loggers parameters: - name: name in: path required: true description: Logger name schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LogLevelRequest' responses: '204': description: Logger level updated '400': description: Invalid log level /threaddump: get: operationId: getThreadDump summary: Get Thread Dump description: >- Returns a snapshot of all live threads in the JVM including stack traces, thread states, and lock information. tags: - Threads responses: '200': description: Thread dump content: application/json: schema: $ref: '#/components/schemas/ThreadDumpResponse' text/plain: schema: type: string /scheduledtasks: get: operationId: getScheduledTasks summary: Get Scheduled Tasks description: >- Returns all scheduled tasks registered in the application context, including cron, fixed-rate, and fixed-delay tasks. tags: - Scheduling responses: '200': description: Scheduled tasks content: application/json: schema: $ref: '#/components/schemas/ScheduledTasksResponse' components: schemas: HealthResponse: type: object description: Overall application health aggregating all health indicators properties: status: type: string description: Overall health status enum: [UP, DOWN, OUT_OF_SERVICE, UNKNOWN] components: type: object description: Health status of individual components additionalProperties: $ref: '#/components/schemas/ComponentHealth' ComponentHealth: type: object description: Health status of a single component properties: status: type: string description: Component status enum: [UP, DOWN, OUT_OF_SERVICE, UNKNOWN] details: type: object description: Additional component-specific health details additionalProperties: true components: type: object description: Nested component health (for composite indicators) additionalProperties: $ref: '#/components/schemas/ComponentHealth' InfoResponse: type: object description: Application information from registered InfoContributors properties: build: type: object description: Build information from META-INF/build-info.properties properties: artifact: type: string group: type: string name: type: string version: type: string time: type: string format: date-time git: type: object description: Git commit information from git.properties properties: branch: type: string commit: type: object properties: id: type: string time: type: string format: date-time java: type: object description: JVM runtime information properties: version: type: string vendor: type: object runtime: type: object jvm: type: object os: type: object description: Operating system information properties: name: type: string version: type: string arch: type: string MetricsList: type: object description: Available Micrometer metric names properties: names: type: array items: type: string example: - jvm.memory.used - jvm.gc.pause - http.server.requests - process.uptime - system.cpu.usage MetricDetail: type: object description: Measurements and metadata for a specific metric properties: name: type: string description: Metric name description: type: string description: Human-readable metric description baseUnit: type: string description: Base measurement unit (bytes, seconds, etc.) measurements: type: array items: type: object properties: statistic: type: string enum: [COUNT, TOTAL, MAX, VALUE, ACTIVE_TASKS, DURATION, TOTAL_TIME] value: type: number availableTags: type: array items: type: object properties: tag: type: string values: type: array items: type: string EnvironmentResponse: type: object description: Application environment organized by property source properties: activeProfiles: type: array description: Currently active Spring profiles items: type: string defaultProfiles: type: array description: Default Spring profiles items: type: string propertySources: type: array description: Ordered list of property sources items: $ref: '#/components/schemas/PropertySource' PropertySource: type: object description: A single property source with its properties properties: name: type: string description: Property source name properties: type: object description: Properties from this source additionalProperties: type: object properties: value: description: Property value (may be masked for sensitive values) origin: type: string description: Where this property was defined PropertyDetail: type: object description: Detail for a specific environment property properties: property: type: object properties: source: type: string description: Property source name value: description: Current property value activeContexts: type: array items: type: string LoggersResponse: type: object description: All loggers with their levels properties: levels: type: array description: Available log levels items: type: string example: [TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF] loggers: type: object description: Logger configurations keyed by logger name additionalProperties: $ref: '#/components/schemas/LoggerDetail' groups: type: object description: Logger groups (Spring Boot defined groups) additionalProperties: type: object LoggerDetail: type: object description: Configuration for a single logger properties: configuredLevel: type: string description: Explicitly configured level (null if not set) enum: [TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF] nullable: true effectiveLevel: type: string description: Effective level inherited from parent if not explicitly set enum: [TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF] LogLevelRequest: type: object description: Request body to set a logger level properties: configuredLevel: type: string description: Log level to set (null to reset) enum: [TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF] nullable: true ThreadDumpResponse: type: object description: JVM thread dump snapshot properties: threads: type: array items: type: object properties: threadName: type: string threadId: type: integer format: int64 blockedTime: type: integer format: int64 blockedCount: type: integer format: int64 waitedTime: type: integer format: int64 waitedCount: type: integer format: int64 lockName: type: string nullable: true lockOwnerId: type: integer format: int64 lockOwnerName: type: string nullable: true daemon: type: boolean inNative: type: boolean suspended: type: boolean threadState: type: string enum: [NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATED] priority: type: integer stackTrace: type: array items: type: object properties: classLoaderName: type: string moduleName: type: string moduleVersion: type: string methodName: type: string fileName: type: string lineNumber: type: integer className: type: string nativeMethod: type: boolean ScheduledTasksResponse: type: object description: All scheduled tasks registered in the application properties: cron: type: array description: Tasks scheduled with cron expressions items: $ref: '#/components/schemas/ScheduledTask' fixedDelay: type: array description: Tasks scheduled with fixed delay items: $ref: '#/components/schemas/ScheduledTask' fixedRate: type: array description: Tasks scheduled with fixed rate items: $ref: '#/components/schemas/ScheduledTask' custom: type: array description: Tasks using custom scheduling triggers items: $ref: '#/components/schemas/ScheduledTask' ScheduledTask: type: object description: A single scheduled task properties: runnable: type: object properties: target: type: string description: Fully qualified method name expression: type: string description: Cron expression (for cron tasks) initialDelay: type: integer format: int64 description: Initial delay in milliseconds interval: type: integer format: int64 description: Fixed rate or delay in milliseconds