Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Java User Group - Spring Boot Admin
Search
Johannes Edmeier
September 05, 2018
Programming
0
240
Java User Group - Spring Boot Admin
Johannes Edmeier
September 05, 2018
Tweet
Share
More Decks by Johannes Edmeier
See All by Johannes Edmeier
Spring IO 2018 - Monitoring Spring Boot Applications with Spring Boot Admin
joshiste
2
3.1k
Other Decks in Programming
See All in Programming
「Cursor/Devin全社導入の理想と現実」のその後
saitoryc
0
130
deno-redisの紹介とJSRパッケージの運用について (toranoana.deno #21)
uki00a
0
140
第9回 情シス転職ミートアップ 株式会社IVRy(アイブリー)の紹介
ivry_presentationmaterials
1
230
ASP.NETアプリケーションのモダナイズ インフラ編
tomokusaba
1
410
F#で自在につくる静的ブログサイト - 関数型まつり2025
pizzacat83
0
310
Elixir で IoT 開発、 Nerves なら簡単にできる!?
pojiro
1
150
Enterprise Web App. Development (2): Version Control Tool Training Ver. 5.1
knakagawa
1
120
Claude Codeの使い方
ttnyt8701
1
130
Benchmark
sysong
0
250
ReadMoreTextView
fornewid
1
460
Rubyでやりたい駆動開発 / Ruby driven development
chobishiba
1
250
Webの外へ飛び出せ NativePHPが切り拓くPHPの未来
takuyakatsusa
2
310
Featured
See All Featured
Being A Developer After 40
akosma
90
590k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
How to train your dragon (web standard)
notwaldorf
92
6.1k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
Typedesign – Prime Four
hannesfritz
42
2.7k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3k
Building Adaptive Systems
keathley
43
2.6k
Facilitating Awesome Meetings
lara
54
6.4k
Documentation Writing (for coders)
carmenintech
71
4.9k
Visualization
eitanlees
146
16k
Transcript
Spring Boot Admin 1 Johannes Edmeier @joshiste
2
Setting things up (demo time) 3
4 Setting up the SBA Server (1) 1. Generate web
project using Spring Initializr $ curl https://start.spring.io/starter.tgz \ -d dependencies=web,\ codecentric-spring-boot-admin-client,\ codecentric-spring-boot-admin-server \ | tar -xzvf -
5 Setting up the SBA Server (2) @EnableAdminServer @SpringBootApplication public
class AdminServerApplication { ... } 2. Import Configuration to the Application
6 Register client applications (1) <dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-client</artifactId> <version>2.0.3</version> </dependency>
1. Add dependency
7 Register client applications (2) spring.boot.admin.client.url=http://localhost:8081 management.endpoints.web.exposure.include=* management.endpoint.health.show-details=always 2. Configure
SBA Server localtion and expose endpoints
8 Easy client tweaks spring.application.name=spring-petclinic logging.file=target/petclinic.log info.sources=https://github.com/spring-projects/spring-petclinic <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId>
<executions> <execution> <goals> <goal>build-info</goal> </goals> </execution> </executions> </plugin>
9 alternatively use Eureka, Consul, Zookeeper, static config … or
any other Spring Cloud Discovery Client Register client applications
Behind the Scenes 10
11 SBA Client SBA Server client registers periodically via http
post
12 SBA Client SBA Server server polls health endpoint via
http … monitoring non-Boot applications is possible (just health checking)
13 Notifications HipChat eMail … or implement your own …
simply configured via properties
14 SBA Client server forwards requests to clients (using zuul)
SBA UI SBA Server … clients must expose actuator endpoints using http
15 … can be implemented using Spring Security e.g. Basic
Auth, JWT, session based, … … custom headers can be injected implementing a HttpHeadersProvider Security
16 Customization – HttpHeadersProvider @Bean public HttpHeadersProvider injectHeaders() { return
instance -> { HttpHeaders headers = new HttpHeaders() headers.set("X-CUSTOM", "1234567"); return headers; }; }
17 Customization - InstanceExchangeFilterFunction @Bean public InstanceExchangeFilterFunction auditLog() { return
(instance, request, next) -> { if (HttpMethod.POST.equals(request.method())) { log.info("{} for {} on {}", request.method(), instance.getId(), request.url()); } return next.exchange(request); }; }
18 Customization - Notifier @Bean public Notifier loggerNotifier() { return
event -> { log.info("Event {}", event.toString()); return Mono.empty(); }; }
19 Webflux Support Sessions Endpoint Support Mapping Endpoint Support Scheduled
Tasks Endpoint Support Out of the Box Cloudfoundry Support Html-Templates for Mail-Notifications Version is also looked up in Metadata Wallboard View Runs on Java 10 New Features in 2.0
20 Bugfixes… Bugfixes… Bugfixes… Support for Cache Endpoint (2.1.x) Multi-Instances-Actions
(e.g. Setting Loglevels) . . . What to Expect in the Future
21 Questions? [spring-boot-admin] codecentric/spring-boot-admin GITTER codecentric/spring-boot-admin