рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ рдПрдХреНрдЯреНрдпреВрдПрдЯрд░ рдХрд╛ рдкрд░рд┐рдЪрдп

рд╕рд▓рд╛рдо, рдЦрд╝рдмрд░реЛрдВ рдХреЛ! рдПрдХ рд╕рдкреНрддрд╛рд╣ рдореЗрдВ, рдкрд╛рдареНрдпрдХреНрд░рдо "рдбреЗрд╡рд▓рдкрд░ рдСрди рдж рд╕реНрдкреНрд░рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ" рдХреЗ рдирдП рд╕рдореВрд╣ рдореЗрдВ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ, рд╣рдо рдЖрдкрдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧреА рд╕рд╛рдордЧреНрд░реА рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рд╕реНрдкреНрд░рд┐рдВрдЧ рдПрдХреНрдЯреНрдпреВрдПрдЯрд░ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред



  1. рд╕реНрдкреНрд░рд┐рдВрдЧ рдПрдХреНрдЯреНрдпреВрдПрдЯрд░ рдХреНрдпрд╛ рд╣реИ?
  2. рдорд╛рд╡реЗрди рдпрд╛ рдЧреНрд░реИрдбрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╕реНрдкреНрд░рд┐рдВрдЧ рдПрдХреНрдЯреНрдпреВрдПрдЯрд░ рдХреИрд╕реЗ рдЬреЛрдбрд╝реЗрдВ?
  3. рд╕реНрдкреНрд░рд┐рдВрдЧ рдПрдХреНрдЯреНрдпреВрдПрдЯрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рд╛рде рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВред
  4. рд╕реНрдкреНрд░рд┐рдВрдЧ рдРрдХреНрдЯреНрдпреВрдПрдЯрд░ рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдПрдкреНрд▓реАрдХреЗрд╢рди рдореЙрдирд┐рдЯрд░рд┐рдВрдЧред

рд╕реНрдкреНрд░рд┐рдВрдЧ рдПрдХреНрдЯреНрдпреВрдПрдЯрд░ рдХреНрдпрд╛ рд╣реИ?

рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдирд╛ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд┐рд╢рди-рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдЪ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдмреИрдВрдХрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо, рдЬрд┐рд╕рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдлрд▓рддрд╛ рд╕реАрдзреЗ рд╡реНрдпрд╡рд╕рд╛рдп рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреА рд╣реИред

рдкрд░рдВрдкрд░рд╛рдЧрдд рд░реВрдк рд╕реЗ, рд╕реНрдкреНрд░рд┐рдВрдЧ рдПрдХреНрдЯреНрдпреВрдПрдЯрд░ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рд▓реЗрдХрд┐рди рд╕реНрдкреНрд░рд┐рдВрдЧ рдПрдХреНрдЯреНрдпреВрдПрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереАред рд╕реНрдкреНрд░рд┐рдВрдЧ рдПрдХреНрдЯреНрдпреВрдПрдЯрд░ рдХрдИ рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдорд╛рд╡реЗрди рдпрд╛ рдЧреНрд░реИрдбрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╕реНрдкреНрд░рд┐рдВрдЧ рдПрдХреНрдЯреНрдпреВрдПрдЯрд░ рдХреИрд╕реЗ рдЬреЛрдбрд╝реЗрдВ?

Maven

<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> </dependencies> 

Gradle

 dependencies { compile("org.springframework.boot:spring-boot-starter-actuator") } 

рд╕реНрдкреНрд░рд┐рдВрдЧ рдПрдХреНрдЯреНрдпреВрдПрдЯрд░ рдХреЗ рд╕рд╛рде рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛

рдЪрд▓реЛ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ рдФрд░ рд╕реНрдкреНрд░рд┐рдВрдЧ рдПрдХреНрдЯреНрдпреВрдПрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдкреНрд░рд┐рдВрдЧ рдПрдХреНрдЯреНрдпреВрдПрдЯрд░, рд╡реЗрдм, рдФрд░ рджреЗрд╡рдЯреВрд▓ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВред

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕ рд▓реЗрдЦрди рдХреЗ рд╕рдордп, рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ рд╕рдВрд╕реНрдХрд░рдг 2.1.0 рдерд╛ред



рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЧреНрд░рд╣рдг рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЖрдИрдбреАрдИ рдореЗрдВ рдЖрдпрд╛рдд рдХрд░реЗрдВ рдФрд░ SpringActuatorApplication.java ред

рдХрдВрд╕реЛрд▓ рдореЗрдВ, рдЖрдк рдирд┐рдореНрди рджреЗрдЦреЗрдВрдЧреЗ:



рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрдореНрдмреЗрдбреЗрдб SpringActuatorApplication 8080 рдкреЛрд░реНрдЯ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдФрд░ SpringActuatorApplication рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдЖрдк рдпрд╣ рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрдХреНрдЯреНрдпреВрдПрдЯрд░ рдПрдВрдбрдкреЙрдЗрдВрдЯ /actuator. рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ /actuator.

 018-11-09 20:00:29.346 INFO 8338 --- [ restartedMain] osbwembedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2018-11-09 20:00:29.354 INFO 8338 --- [ restartedMain] nbjsSpringActuatorApplication : Started SpringActuatorApplication in 9.273 seconds (JVM running for 11.823) 2018-11-09 20:00:29.190 INFO 8338 --- [ restartedMain] osbaeweb.EndpointLinksResolver : Exposing 2 endpoint(s) beneath base path '/actuator'. 

рд╕реНрдкреНрд░рд┐рдВрдЧ рдРрдХреНрдЯреНрдпреВрдПрдЯрд░ рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдПрдкреНрд▓реАрдХреЗрд╢рди рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдКрдкрд░ рдХрд╣рд╛, рд╕реНрдкреНрд░рд┐рдВрдЧ рдПрдХреНрдЯреНрдпреВрдПрдЯрд░ рдХрдИ рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдИрдбреАрд╡рд┐рд╡рд░рдг
auditevents
рдШрдЯрдирд╛ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ
рд╡рд░реНрддрдорд╛рди рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдСрдбрд┐рдЯред
рдлрд▓рд┐рдпрд╛рдВрд╕рднреА рдХреА рдкреВрд░реА рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ
рдЖрд╡реЗрджрди рдореЗрдВ рд╡рд╕рдВрдд рд╕реЗрдоред
рдХреИрд╢рдХреИрд╢ рдХреА рдЬрд╛рдирдХрд╛рд░реАред
рд╕реНрдерд┐рддрд┐рд╣рд╛рд▓рдд рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рдЬреЛ
рд╡рд┐рдиреНрдпрд╛рд╕ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЧрдгрдирд╛ рдХреА рдЧрдИ
рдФрд░ autoconfiguration, рдФрд░ рдХрд╛рд░рдгреЛрдВ, рдХреЗ рд▓рд┐рдП
рдЬреЛ рд╡реЗ рдореЗрд▓ рдЦрд╛рддреЗ рдереЗ рдпрд╛ рдирд╣реАрдВ
рд╡реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреЗред
configpropsрд╕рднреА рдХреА рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ
@ConfigurationProperties
envрд╕реЗ рдЧреБрдг рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ
ConfigurableEnvironmentред
flywayрдбреЗрдЯрд╛рдмреЗрд╕ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рджрд┐рдЦрд╛рддрд╛ рд╣реИ
рдлреНрд▓рд╛рдИрд╡реЗ рдЬреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд╕реНрд╡рд╛рд╕реНрдереНрдпрд╕реНрд╡рд╛рд╕реНрдереНрдп рд╕рдВрдмрдВрдзреА рдЬрд╛рдирдХрд╛рд░реА рджрд┐рдЦрд╛рддрд╛ рд╣реИ
рдЖрд╡реЗрджрдиред
httptraceрдЯреНрд░реЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ
HTTP (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЕрдВрддрд┐рдо 100 HTTP
) рдФрд░ рдЬрд╡рд╛рдм рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдЬрд╛рдирдХрд╛рд░реАрдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ
рдЖрд╡реЗрджрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред
integrationgraphрдЧрд┐рдирддреА рд╡рд╕рдВрдд рдПрдХреАрдХрд░рдгред
рд╡рд╛рд▓реЛрдВрдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
рдореЗрдВ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдХрд╛ рд╡рд┐рдиреНрдпрд╛рд╕ рдмрджрд▓реЗрдВ
рдЖрд╡реЗрджрдиред
liquibaseрд▓рд╛рдЧреВ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рджрд┐рдЦрд╛рддрд╛ рд╣реИ
рд▓рд┐рдХреАрдмреЗрд╕ рдбреЗрдЯрд╛рдмреЗрд╕
рдореИрдЯреНрд░рд┐рдХреНрд╕рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдЬрд╛рдирдХрд╛рд░реА рджрд┐рдЦрд╛рддрд╛ рд╣реИ
рд╡рд░реНрддрдорд╛рди рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдПред
рдореИрдкрд┐рдВрдЧрд╕рднреА рд░рд╛рд╕реНрддреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
@RequestMappingред
scheduledtasksрдЕрдиреБрд╕реВрдЪрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ
(рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдп)ред
рд╕рддреНрд░рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рд╣рдЯрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рддреНрд░,
рд╕реНрдкреНрд░рд┐рдВрдЧ рд╕рддреНрд░ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рддред рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдХреЗ рд▓рд┐рдП рд╡рд╕рдВрдд рд╕рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп
рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧред
рдмрдВрджрдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
рдХрд╛рдо рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
threaddumpрд╕реНрдЯреНрд░реАрдо рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред

рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рд╕рдХреНрд╖рдо рдХрд░рдирд╛

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, shutdown рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рд╕рдХреНрд╖рдо рд╣реИрдВред рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, application.properties рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрди рдЧреБрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

 management.endpoint.<code><</code>id<code>></code>.enabled 

рдЕрдиреБрд╡рд╛рджрдХ рдХрд╛ рдзреНрдпрд╛рди рджреЗрдВ: рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╕рднреА рд╕рдорд╛рдкрди рдмрд┐рдВрджреБрдУрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗрд╡рд▓ JMX рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИ, HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рднреА рд╕рдорд╛рдкрди рдмрд┐рдВрджреБрдУрдВ рддрдХ рдкрд╣реБрдБрдЪ рдирд╣реАрдВ рд╣реИ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ)ред

рдПрдХ рдЙрджрд╛рд╣рд░рдг:

shutdown рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ application.properties рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 management.endpoint.shutdown.enabled=true 

рд╣рдо рд╕рднреА рд╕рдорд╛рдкрди рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдХреЗрд╡рд▓ рдЙрдиреНрд╣реАрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдЧрд▓реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ, info рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдЕрдХреНрд╖рдо рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред

 management.endpoints.enabled-by-default=false management.endpoint.info.enabled=true 

HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдВрдбрдкреЙрдЗрдВрдЯ рддрдХ рдкрд╣реБрдВрдЪ

рдЖрдЗрдП рд╕реНрдерд╛рдиреАрдпрд╣реЛрд╕реНрдЯ URL рдкрд░ рдЬрд╛рдПрдВ: 8080 / рдПрдХреНрдЯреНрдпреВрдПрдЯрд░ рдФрд░ рдЙрдкрд▓рдмреНрдз рдПрдВрдбрдкреЙрдЗрдВрдЯ рдХреЛ рджреЗрдЦреЗрдВред

рдиреЛрдЯ: рдореИрдВ рдкреЛрд╕реНрдЯрдореИрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ JSON рдХреЛ рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдВрд░рдЪрд┐рдд рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рдЙрдкрдХрд░рдг рдпрд╛ рд╕рд┐рд░реНрдл рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рджреЗрдЦрд╛ рд╣реИ, рдХреЗрд╡рд▓ health рдФрд░ info рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдпрд╣рд╛рдВ рджрд┐рдЦрд╛рдП рдЧрдП рд╣реИрдВред рдХреНрдпреЛрдВрдХрд┐ рдпреЗ рд╣реА рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╣реИрдВ рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ http рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реБрд▓рдн рд╣реИрдВред Http рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдиреНрдп рд╕рдорд╛рдкрди рдмрд┐рдВрджреБрдУрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмрдВрдж рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдореЗрдВ рдЧреЛрдкрдиреАрдп рдЬрд╛рдирдХрд╛рд░реА рд╣реЛ рд╕рдХрддреА рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП, рд╕рдордЭреМрддрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБрдУрдВ рддрдХ рдкрд╣реБрдВрдЪ

рдпрджрд┐ рд╣рдо рдЕрдиреНрдп рд╕рдорд╛рдкрди рдмрд┐рдВрджреБрдУрдВ рдкрд░ рд╡реЗрдм (http) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╣реБрдБрдЪ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рд╣рдореЗрдВ application.properties рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрди рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

 management.endpoints.web.exposure.include=<    ><a href="http://localhost:8080/actuator"></a> 

рдПрдХ рдЙрджрд╛рд╣рд░рдг :

 management.endpoints.web.exposure.include= health,info,env 

рдЕрдм, рдЙрдкрд░реЛрдХреНрдд рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ application.properties рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдЗрдП рдлрд┐рд░ рд╕реЗ http: // localhost: 8080 / actuator рдкрд░ рдЬрд╛рдПрдВ

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдиреАрдЪреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ, env рдПрдВрдбрдкреЙрдЗрдВрдЯ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред



рд╕рднреА рд╕рдорд╛рдкрди рдмрд┐рдВрджреБрдУрдВ рддрдХ рдкрд╣реБрдБрдЪ

рдпрджрд┐ рд╣рдо рд╕рднреА рд╕рдорд╛рдкрди рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рдЕрдиреБрд╕рд╛рд░ * рд╕рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

 management.endpoints.web.exposure.include=* 



рд╕рднреА рдХреЗ рд▓рд┐рдП рдкрд╣реБрдБрдЪ, рд▓реЗрдХрд┐рди рдХреБрдЫ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ

рдиреАрдЪреЗ рджреЛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рд╕рднреА рд╕рдорд╛рдкрди рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди env рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░ рджреЗрддреА рд╣реИрдВред

 management.endpoints.web.exposure.include=* management.endpoints.web.exposure.exclude=env 





рд╕рднреА HTTP рд╕рдорд╛рдкрди рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛

рдпрджрд┐ рдЖрдк HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк application.properties рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрди рд╕реЗрдЯ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 management.server.port=-1 

рдпрд╛ рддреЛ:

 management.endpoints.web.exposure.exclude=* 

рдПрдВрдбрдкреЙрдЗрдВрдЯ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП URL рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╕рднреА рдПрдВрдбрдкреЙрдЗрдВрдЯ рдлреЙрд░реНрдо /actuator/{id} рдкрддреЗ рдкрд░ URL /actuator рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдк application.properties рдореЗрдВ рдирд┐рдореНрди рдЧреБрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдзрд╛рд░ рдкрде /actuator рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред

 management.endpoints.web.base-path 

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдЖрдзрд╛рд░ /actuator рдмрдЬрд╛рдп рдЖрдзрд╛рд░ URL рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 management.endpoints.web.base-path=/monitor 



рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╕рднреА рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ /actuator/{id} рдмрдЬрд╛рдп /monitor/{id} рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдВрдЧреЗред



рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ рдПрдХреНрдЯреНрдпреВрдПрдЯрд░

рдЖрдЗрдП рдХреБрдЫ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдорд╛рдкрди рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВред

/ рд╕реНрд╡рд╛рд╕реНрдереНрдп

health рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдЖрд╡реЗрджрди рдХреА рд╕рдордЧреНрд░ рд╕реНрдерд┐рддрд┐ рджреЗрддрд╛ рд╣реИ: рдЪрд╛рд╣реЗ рд╡рд╣ рдКрдкрд░ рдФрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реЛ рдпрд╛ рдирд╣реАрдВред рдпрд╣ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд╣реЛрдиреЗ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдпрд╣ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдирд┐рдЧрд░рд╛рдиреА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

health рдПрдВрдбрдкреЙрдЗрдВрдЯ рджреНрд╡рд╛рд░рд╛ рджреА рдЧрдИ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдорд╛рддреНрд░рд╛ application.properties рдлрд╝рд╛рдЗрд▓ рдореЗрдВ management.endpoint.health.show-details рд╕рдВрдкрддреНрддрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред

рдпрджрд┐ management.endpoint.health.show-details=never , рддреЛ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рдХреЗрд╡рд▓ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЗрдЦреЗрдВрдЧреЗ (рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ)ред



рдпрджрд┐ management.endpoint.health.show-details=always , рддреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рджрд┐рдЦрд╛рдИ рдЬрд╛рддреА рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрддреНрддрд░ рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди (рдбрд┐рд╕реНрдХрд╕реНрдкреЗрд╕) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реИред рдпрджрд┐ рдЖрдкрдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд┐рд╕реА рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ, рддреЛ рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдЬрд╛рдирдХрд╛рд░реА рджреЗрдЦреЗрдВрдЧреЗред



рдпрджрд┐ management.endpoint.health.show-details=when-authorized , рддреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗрд╡рд▓ рдЕрдзрд┐рдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рджрд┐рдЦрд╛рдИ рдЬрд╛рдПрдЧреАред рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЛ management.endpoint.health.roles рдЧреБрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдкреНрд░реАрд╕реЗрдЯ рд╕рдВрдХреЗрддрдХ

рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ рдПрдХреНрдЯреНрдпреВрдПрдЯрд░ рдиреЗ рдЖрд╡реЗрджрди рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ "рд╕реНрд╡рд╛рд╕реНрдереНрдп рд╕рдВрдХреЗрддрдХ" (HeathIndicators) рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, DiskspaceHealthIndicator рд╕реНрдкреЗрд╕ рдбрд┐рд╕реНрдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк MongoDB рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ MongoHealthIndicator Mongo рдбреЗрдЯрд╛рдмреЗрд╕ (рдЪрд╛рд╣реЗ рд╕рд░реНрд╡рд░ рдЪрд▓ рд░рд╣рд╛ рд╣реЛ рдпрд╛ рдирд╣реАрдВ) рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдЧрд╛ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдЕрдВрддрд┐рдо рд╕реНрдерд┐рддрд┐ HealthAggregator рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА HealthAggregator , рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ HealthIndicator рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ HealthIndicator ред рд╕реЙрд░реНрдЯ рдХреА рдЧрдИ рд╕реВрдЪреА рдореЗрдВ рдкрд╣рд▓реА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдЕрдВрддрд┐рдо рд╕реНрдерд┐рддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рднреА рдкреВрд░реНрд╡-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╕рдВрдХреЗрддрдХреЛрдВ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛

рдКрдкрд░ рд╡рд░реНрдгрд┐рдд "рд╕реНрд╡рд╛рд╕реНрдереНрдп рд╕рдВрдХреЗрддрдХ" рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдк рдЙрдиреНрд╣реЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 management.health.defaults.enabled=false 

рдХрд┐рд╕реА рдПрдХ рд╕рдВрдХреЗрддрдХ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛

рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк рдПрдХ рдЕрд▓рдЧ HealthIndicator рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рдЬрд╛рдБрдЪ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

 management.health.diskspace.enabled=false 

рдиреЛрдЯ: рдХрд┐рд╕реА рднреА HealthIndicator рдХрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ HealthIndicator рдкреНрд░рддреНрдпрдп рдХреЗ рдмрд┐рдирд╛ рдмреАрди рдХрд╛ рдирд╛рдо рд╣реЛрдЧрд╛ред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП :

 DiskSpaceHealthIndicator diskspace MongoHealthIndicator mongo CassandraHealthIndicator cassandra DataSourceHealthIndicator datasource 

рдФрд░ рдЗрд╕реА рддрд░рд╣ ...

рдЖрдкрдХрд╛ рд╕рдВрдХреЗрддрдХ рд▓рд┐рдЦрдирд╛ (рд╕реНрд╡рд╛рд╕реНрдереНрдпрд╡рд┐рджреН)

рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ рдПрдХреНрдЯреНрдпреВрдПрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд HealthIndicator рдХреЗ рд╕рд╛рде, рд╣рдо рдХрд╕реНрдЯрдо рд╕реНрдерд┐рддрд┐ рд╕рдВрдХреЗрддрдХ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ HealthIndicator рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ health() рдкрджреНрдзрддрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдФрд░ Health рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдЙрддреНрддрд░ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 import org.springframework.boot.actuate.health.Health; import org.springframework.boot.actuate.health.HealthIndicator; import org.springframework.stereotype.Component; @Component public class CustomHealthIndicator implements HealthIndicator { @Override public Health health() { int errorCode = 0; // In the above line,I am simple assigning zero,but you can call Health check related code like below commented line and that method can return the appropriate code. // int errorCode = performHealthCheck(); if (errorCode != 0) { return Health.down().withDetail("Error Code", errorCode).build(); } return Health.up().build(); } } 

рдЪрд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рд╣реЗрд▓реНрде рдПрдВрдбрдкреЙрдЗрдВрдЯ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░рд╛ рдЗрдВрдбрд┐рдХреЗрдЯрд░ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред



рд╣рдо рдЕрдкрдирд╛ рдЗрдВрдбрд┐рдХреЗрдЯрд░ рджреЗрдЦрддреЗ рд╣реИрдВред

рдПрдХрд▓ рдШрдЯрдХ рд╕реНрдерд┐рддрд┐

рдЖрдк рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдШрдЯрдХ рдХреА рд╕реНрдерд┐рддрд┐ рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдордиреЗ рджреЗрдЦрд╛ рдХрд┐ рд╣рдордиреЗ рд▓рд┐рдЦрд╛ рд╕рдВрдХреЗрддрдХ рдФрд░ рдбрд┐рд╕реНрдХрд╕реНрдкреЗрд╕ред

рдпрджрд┐ рд╣рдо рдХреЗрд╡рд▓ рдбрд┐рд╕реНрдХ рдХреА рд╕реНрдерд┐рддрд┐ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд URL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

http: // localhost: 8080 / рдПрдХреНрдЯреНрдпреВрдПрдЯрд░ / рд╣реЗрд▓реНрде / рдбрд┐рд╕реНрдХрд╕реНрдкреЗрд╕



/ рдЬрд╛рдирдХрд╛рд░реА

info рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдЙрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЙрд╕реЗ build-info.properties рдпрд╛ git.properties рдЬреИрд╕реА рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд git.properties , рдпрд╛ git.properties рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧреБрдгреЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА application.properties ред

рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдРрд╕реА рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрддреНрддрд░ рд░рд┐рдХреНрдд рд╣реЛрдЧрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:



рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ рдПрдХреНрдЯреНрдпреВрдПрдЯрд░ META-INF/build-info.properties рд╕реВрдЪрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ META-INF/build-info.properties ред рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЬрд╛рдирдХрд╛рд░реА рдлрд╝рд╛рдЗрд▓ build-info рд▓рдХреНрд╖реНрдп рджреНрд╡рд╛рд░рд╛ build-info рд╕рдордп рдкрд░ рдмрдирд╛рдИ рдЧрдИ рд╣реИред рдпрд╣рд╛рдВ рдЖрдк рдЕрддрд┐рд░рд┐рдХреНрдд рдЧреБрдгреЛрдВ рдХреА рдПрдХ рдордирдорд╛рдиреА рд╕рдВрдЦреНрдпрд╛ рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдЪрд▓реЛ spring-boot-maven-plugin pom.xm spring-boot-maven-plugin рдХреЗ рд▓рд┐рдП рдПрдХ build-info рд▓рдХреНрд╖реНрдп pom.xm l рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред

 <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.1.0.RELEASE</version> <executions> <execution> <goals> <goal>build-info</goal> </goals> <configuration> <additionalProperties> <encoding.source>UTF-8</encoding.source> <encoding.reporting>UTF-8</encoding.reporting> <java.source>${maven.compiler.source}</java.source> <java.target>${maven.compiler.target}</java.target> </additionalProperties> </configuration> </execution> </executions> </plugin> 

рдЕрдм, рдЖрдЗрдП рдлрд┐рд░ рд╕реЗ info рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдХреЛ рджреЗрдЦреЗрдВ рдФрд░ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреА рдЬрд╛рдирдХрд╛рд░реА рджреЗрдЦреЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:



рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ info рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде application.properties рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдПрдВрдбрдкреЙрдЗрдВрдЯ /info рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

 info.application.name=spring-actuator info.application.description=spring boot actuator application info.application.version=0.0.1-SNAPSHOT 



/ рд╕реЗрдо

beans рдПрдВрдбрдкреЙрдЗрдВрдЯ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рд╕реНрдкреНрд░рд┐рдВрдЧ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рднреА beans рджрд┐рдЦрд╛рддрд╛ рд╣реИ:

 aliases :    scope :   type :    resource :  (),     dependencies :    

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЯреЗрд╕реНрдЯрдХрдВрдЯреНрд░реЛрд▓рд░ рдирд╛рдо рдХрд╛ рдПрдХ рд░реЗрд╕реНрдЯрдХрдВрдЯреНрд░реЛрд▓рд░ рдмрдирд╛рдпрд╛ рдФрд░ рдПрдХ рдШрдЯрдХ рдХреЛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд┐рдпрд╛, рдЬрд┐рд╕реЗ TestController рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ

 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class TestController { @Autowired private TestService testService; @GetMapping("/messages") public String getMessage() { return "Hello"; } } import org.springframework.context.annotation.Configuration; @Configuration public class TestService { } 

рдЖрдк рдиреАрдЪреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рдпрд╣ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЯреЗрд╕реНрдЯрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред



/ configprops
configProps @ConfigurationProperties рджреНрд╡рд╛рд░рд╛ рдПрдиреЛрдЯреЗрдЯ рдХреА рдЧрдИ рд╕рднреА @ConfigurationProperties ред



рдЙрдкрд░реЛрдХреНрдд рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ, рд╣рдо рджреЛ рдмреАрдиреНрд╕ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдЬреЛ рд╕реНрдкреНрд░рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рд╕реНрд╡рдпрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВ рдФрд░ @ConfigurationProperties рд╕рд╛рде рдПрдиреЛрдЯреЗрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВ рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЗрд╕ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ HttpTraceProperties рд╕реНрд░реЛрдд рдХреЛрдб @ConfigurationProperties рджреНрд╡рд╛рд░рд╛ рдПрдиреЛрдЯреЗрдЯ рдХрд┐рдпрд╛ @ConfigurationProperties ред



/ рдПрди.рд╡реА.

env рдПрдВрдбрдкреЙрдЗрдВрдЯ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд░рдо рдореЗрдВ рд╕рднреА рдкрд░реНрдпрд╛рд╡рд░рдгреАрдп рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:

рд╕рд┐рд╕реНрдЯрдо рдЧреБрдг
JVM рдирд┐рд░реНрднрд░ (рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕реНрд╡рддрдВрддреНрд░)
рд╕рд┐рд╕реНрдЯрдо рд╡рд╛рддрд╛рд╡рд░рдг рдпрд╛ рдЪрд░
рдкрд░рд┐рд╡реЗрд╢
рд╕рдВрдЪрд╛рд▓рди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ
рд╕рд┐рд╕реНрдЯрдо (рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЖрд╢реНрд░рд┐рдд)
рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрддрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕
рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛
application.properties



/ рд╣реАрдкрдбрдореНрдк

Heapdump рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реАрдк рдХреЛ рдбрдВрдк рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдмрд╛рдЗрдирд░реА рдбреЗрдЯрд╛ рдХреЛ HPROF рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░рд╛ рдбреЗрдЯрд╛ рдЖрдорддреМрд░ рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕рд╣реЗрдЬрдирд╛ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

/ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛

loggers , рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдЧрд░ рдХреЛ рдЙрдирдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рд▓реЙрдЧ рд╕реНрддрд░ (рдХреЙрдиреНрдлрд╝рд┐рдЧрд░рд▓реЗрд╡рд▓) рдФрд░ рдкреНрд░рднрд╛рд╡реА рд╕реНрддрд░ (рдкреНрд░рднрд╛рд╡реА рд▓реЗрд╡реЗрд▓) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдФрд░ рдЙрд╕рдХреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ (рдЕрд╢рдХреНрдд) рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕реНрддрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рд░реВрдЯ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рд╕реНрддрд░ рдПрдХ рдкреНрд░рднрд╛рд╡реА рд╕реНрддрд░ рд╣реЛрдЧрд╛ред

level рд╕рдВрдкрддреНрддрд┐ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рд▓реЙрдЧрд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рджреНрд╡рд╛рд░рд╛ рд▓реЙрдЧрд┐рдВрдЧ рд╕реНрддрд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



рдПрдХ рд╡рд┐рд╢реЗрд╖ рд▓рдХрдбрд╝рд╣рд╛рд░реЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, /loggers рдмрд╛рдж URL рдореЗрдВ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдХрд╛ рдирд╛рдо (рдЖрдИрдбреА) рдкрд╛рд╕ рдХрд░реЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

http: // localhost: 8080 / actuator / loggers / nl.blogpsot.javasolutionsguide.springactuator.SpringActuatorApplication



/ рдореЗрдЯреНрд░рд┐рдХреНрд╕

metrics рдПрдВрдбрдкреЙрдЗрдВрдЯ рдЙрди рд╕рднреА metrics рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЯреНрд░реИрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рд╡реНрдпрдХреНрддрд┐рдЧрдд рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛

рдЖрдк рдПрдХ рдореАрдЯреНрд░рд┐рдХ рдХреЛ url рдореЗрдВ /metrics рдмрд╛рдж рдкрд╛рд╕ рдХрд░рдХреЗ рджреЗрдЦ рд╕рдХрддреЗ /metrics , рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

http: // localhost: 8080 / рдПрдХреНрдЯреНрдпреВрдПрдЯрд░ / рдореЗрдЯреНрд░рд┐рдХреНрд╕ / jvm.memory.used



рд╕рдВрджрд░реНрдн

docs.spring.io/spring-boot/docs/current/reference/html/production-ready-endpoints.html
docs.spring.io/spring-boot/docs/current/actuator-api/html

рд╕реНрдерд╛рдкрд┐рдд рдкрд░рдВрдкрд░рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╣рдо рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд╕рднреА рдХреЛ рдЦреБрд▓реЗ рджрд┐рди рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ , рдЬреЛ 23 рдордИ рдХреЛ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

Source: https://habr.com/ru/post/hi452624/


All Articles