Info Actuator nesnesini etkinleştirmek için şöyle yaparız. Böylece contributor nesnelerde bilgiler derlenmeye başlar.
management.endpoint.info.enabled: true
Ancak bu endpoint HTTP için açık değil. Açmak için şöyle de yaparız
management.endpoints.web.exposure.include=info,health,loggers
Bu aşamadan sonra şu adrese giderse info bilgilerini görebiliriz.
http://localhost:8080/actuator/info
Contributors
info adresinde gösterilen bilgileri sağlayan şeylere contributors deniliyor. Bunlar şöyle
buildEnabled by default: trueGoal: Exposes build information.Requires: you to generate build informationConfiguration property: management.info.build.enabledenvEnabled by default: false (since Spring Boot 2.6. For the older Spring Boot version, this contributor is enabled by default!)Goal: Exposes any property from the SpringEnvironment .Required: to specify properties with names that start with info.*in you application.yml or application.propertiesConfiguration property: management.info.env.enabledgitEnabled by default: trueGoal: exposes git information.Requires: you to generate git informationConfiguration property: management.info.git.enabledjavaEnabled by default: falseGoal: exposes Java runtime information.Configuration property: management.info.java.enabled
Bu contributor'ların da etkin olup olmadığını kontrol etmek mümkün.
Git Contributor
Açıklaması şöyle
Who never needed to quickly know which branch is deployed in the development server to know if a feature of bug-fix is already available?
Açıklaması şöyle
If the branch name, commit id, and timestamp are not enough, you can enable displaying more information by setting the property below in your application properties:management.info.git.mode=fullThis will add a lot more information, like commit message, commit author, and ahead/behind commits information.
Örnek
Şu satırı dahil ederiz
<plugin> <groupId>io.github.git-commit-id</groupId> <artifactId>git-commit-id-maven-plugin</artifactId> </plugin>
Çıktısı şöyle
{ "git": { "branch": "main", "commit": { "id": "d2035e1", "time": "2023-03-01T18:55:58Z" } } }
Build Contributor
Örnek
Şöyle yaparız
<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><executions><execution><goals><goal>build-info</goal></goals><configuration><additionalProperties><java.version>${java.version}</java.version><some.custom.property>some value</some.custom.property></additionalProperties></goals></execution></executions></plugin>
Açıklaması şöyle. spring-boot-maven-plugin projeyi build etmek için kullanılınca ismi build-info.properties olan özel bir dosya oluşturur
When build-info of spring-boot-maven-plugin is run, it generates a property file containing all the build information. By default, it is located at ${project.build.outputDirectory}/META-INF/build-info.properties, but you can customize it by providing outputFile parameter.
Eğer bu dosya varsa Spring ismi BuildProperties olan özel bir bean yaratır. Açıklaması şöyle.
When Spring detects there is this file on the classpath, it creates BuildProperties bean unless it is explicitly declared.
Env Contributor
Örnek
Örneğin env contributor Spring2.6'dan sonra etkin gelmiyor. Etkinleştirmek için şöyle yaparız
management.info.env.enabled
Örnek
Şöyle yaparız
management.info.env.enabled=true info.app.name=Spring Boot Actuator Dashboard info.app.description=Spring Boot backend to demonstrate actuator APIs info.app.version=1.0
http://localhost:8080/actuator/info adresine gidersek çıktı olarak şunu alırız
{ "app": { "name": "Spring Boot Actuator Dashboard", "description": "Spring Boot backend to demonstrate actuator APIs", "version": "1.0" } }
Örnek
Şöyle yaparız. Burada farklı olarak info.java-vendor giriliyor
## Configuring info endpointinfo.app.name=Spring Sample Applicationinfo.app.description=This is my first spring boot applicationinfo.app.version=1.0.0info.java-vendor = ${java.specification.vendor}
Örnek
Şöyle yaparız. Burada farklı olarak info.application.spring-cloud-version giriliyor
spring: application: name: example-app info: application: name: ${spring.application.name} description: Very cool Spring Boot application version: '@project.version@' spring-cloud-version: '@spring-cloud.version@' spring-boot-version: '@project.parent.version@'
Görmek için şöyle yaparız
curl http://localhost:8080/actuator/info | jq { "application": { "name": "example-app", "description": "Very cool Spring Boot application", "version": "0.0.1-SNAPSHOT", "spring-cloud-version": "2020.0.4", "spring-boot-version": "2.5.7" } }
Örnek
Elimizde şöyle bir kod olsun. Burada kendimiz InfoContributor olan bir bean yarattık
Şimdi bir istek gönderelim@Componentpublic class DemoInfoContributor implements InfoContributor {@Overridepublic void contribute(Info.Builder builder) {builder.withDetail("demo",Collections.singletonMap("info-timestamp", LocalDateTime.now().toString()));}}
GET http://127.0.0.1:8080/actuator/infoÇıktı olarak şunu alırız
{"app": {"name": "actuator-test","description": "null"},"git": {"branch": "master","commit": {"id": "ff889ec","time": "2020-10-29T22:36:04Z"}},"build": {"artifact": "actuator-test","name": "actuator-test","time": "2020-10-30T21:53:59.493Z","version": "0.0.1-SNAPSHOT","group": "com.relaximus"},"demo": {"info-timestamp": "2020-10-30T23:23:07.241981"}}
Hiç yorum yok:
Yorum Gönder