Reputation: 894
I upgraded spring boot version in my app from 2.4.4 to 2.5.0 and it stopped exposing /actuator/info
endpoint. Here is the pom.xml and application.yml
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.ms</groupId>
<artifactId>spring-boot-test</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>spring-boot-test</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<layers>
<enabled>true</enabled>
</layers>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
<goal>build-info</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
application.yml
management:
endpoints:
jmx:
exposure:
include: "health,info"
With spring boot parent version 2.4.4, the application is able to expose info endpoint but not with 2.5.0.
Upvotes: 24
Views: 38626
Reputation: 6391
The correct property for exposing actuator urls over http is management.endpoints.web.exposure.include
(web
instead of jmx
).
In your case, info
was exposed earlier not because you had the property you've provided but because it was exposed by default (along with health
). But in 2.5.0 it becomes hidden, it according with Spring Boot 2.5 Release Notes - Secure Info Endpoint. So now you need to expose it manually.
Upvotes: 33
Reputation: 818
you need to check many things to be sure to endpoint URL like info, health, and beans...etc by Actuator
The First point you must check if the actuator exists on your project or not if doesn't exist, you need to add the following dependency.
<!--to enable actuator help to trace project-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
You need to add the following scripts to your application.yml to enable the actuator and Prometheus by actuator.
.
management:
security:
enabled: false
server:
port: 9000
endpoint:
metrics:
enabled: true
prometheus:
enabled: true
health:
show-details: always
show-components: always
probes:
enabled: true
shutdown:
enabled: true
info:
env:
enabled: true
enabled: true
endpoints:
web:
exposure:
include: prometheus, metrics, info, health, shutdown, beans
using the above script the actuator will run on port 9000 and you can send a request to the following URL to access the actuator.
http://localhost:9000/actuator
and the following URL to access info path
http://localhost:9000/actuator/info
Note: you must check where you are writing your script because I was confused between endpoint and endpoints
Note: you can delete the port from application.yml
and the actuator will run by current application port
best luck
Upvotes: 0
Reputation: 3819
You have to enable management.info.env.enabled
true
and you can add any kind of details that you want inside of the property file. like below. and make sure to enable info
for web.exposure. all the configurations are like below.
#enable /actuator/info
management.info.env.enabled=true
management.endpoints.web.exposure.include=info
#custom properties
info.app.name=order-service
info.app.version=1.0.0
info.app.description=you can insert any kind of data in the property file like this
info.author=mafei
#enable /actuator/info
management:
info:
env:
enabled: true
endpoints:
web:
exposure:
include: info
#custom properties
info:
app:
name: order-service
version: 1.0.0
description: you can insert any kind of data in the property file like this
author: mafei
You can see the result here.
Upvotes: 8
Reputation: 489
Add this to application properties to expose the /info endpoint.
management.info.env.enabled = true
Upvotes: 28
Reputation: 1475
Here is a basic gradle build (kotlin dsl) to have three default available endpoints for actuator:
gradle.build.kts
build.gradle.kts
//Global variables
val junitVersion = "5.8.2"
val springVersion = "2.6.4"
val springWebVersion = "5.3.16"
plugins {
java
id("org.springframework.boot") version "2.6.4"
}
group = "org.example"
version = "1.0-SNAPSHOT"
repositories {
mavenCentral()
}
dependencies {
testImplementation("org.junit.jupiter:junit-jupiter-api:$junitVersion")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:$junitVersion")
//spring boot
implementation("org.springframework:spring-web:$springWebVersion")
implementation("org.springframework.boot:spring-boot-starter-web:$springVersion")
implementation("org.springframework.boot:spring-boot-starter-actuator:$springVersion")
testImplementation("org.springframework.boot:spring-boot-starter-test:$springVersion")
}
tasks.getByName<Test>("test") {
useJUnitPlatform()
}
application.yml
#tomcat
server:
port: 7999
#actuator
management:
endpoints:
web:
exposure:
include: health,info,env,beans
gradlew bootRun:
Actuator endpoint, e.g.:
http://localhost:7999/actuator/health
Upvotes: 1
Reputation: 8422
In my case, which was a silly mistake, I had the following dependency:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-actuator</artifactId>
</dependency>
Instead of:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
So I kept on getting Whitelabel Error Page 404 Not found on all /actuator calls
In application.properties
#Actuator
management.endpoints.jmx.exposure.include=health,info,env,beans
management.endpoints.web.exposure.include=health,info,env,beans
Upvotes: 12