Spring Boot의 주요 기능은 AutoConfig (자동 구성)이며 미국 사용자에게는 다양한 스타터 일뿐입니다.
Spring Boot-Actuator는 또한 우리를 위해 자동으로 구성된 스타터를 제공합니다. 사용 측면에서, 우리는 의존성에 스타터를 추가 한 다음 프로젝트를 시작하면됩니다.
<pectionency> <groupId> org.springframework.boot </groupid> <artifactid> 스프링 부트 스타터-승인기 </artifactid> </fectionency>
일반적으로 사용되는 엔드 포인트
Spring Boot-Actuator는 많은 유용한 엔드 포인트를 제공하며 Spring Boot 응용 프로그램의 다양한 모니터링을 제공합니다. 일반적으로 사용되는 엔드 포인트에 대해 이야기 해 봅시다.
/건강 애플리케이션 건강 상태
/configProps 스프링 부팅이 게시 될 때 별도의 JAR 패키지 일 수 있고 구성 파일이 포함될 수 있으므로 응용 프로그램의 구성 정보를 가져옵니다. 구성 파일을 확인 해야하는 경우 ConfigPropsEndpoint를 사용하여 일부 구성이 올바른지 확인할 수 있습니다.
/최신 HTTP 요청 정보를 추적합니다
HealthEndpoint
http : // localhost : 8088/Health를 방문하면 HealthendPoint가 디스크 감지 및 데이터베이스 감지를 포함한 기본 모니터링 결과를 제공한다는 것을 알 수 있습니다.
{ "status": "up", "diskspace": { "status": "up", "total": 398458875904, "free": 315106918400, "Threshold": 10485760}, "db": "상태": "Up", "database": "mysql", "hello", "hello": " 실제로, Spring Boot-Actuator 소스 코드를 살펴보면 HealthEndpoint에서 제공 한 정보가 이에 국한되지 않음을 알 수 있습니다. org.springframework.actuate.acealth package에서 elasticsearchHealthIndicator, Redishealthindicator, Rabbithealthindicator 등을 찾을 수 있습니다.
즉, HealthEndpoint는 또한 ES, Redis와 같은 구성 요소에 대한 건강 정보를 제공합니다.
사용자 정의 표시기 확장 HealthEndpoint
소스 코드를 살펴보면 디스크 및 데이터베이스 건강 정보는 DiskspaceHealthIndicator 및 DataSourceHealthIndicator에 의해 구현됩니다. 맞춤형 구성 요소 중 일부를 모니터링하면 표시기를 구현할 수도 있습니다.
@ComponentPublic Class 사용자는 HealthIndicator를 구현합니다. {/** * 사용자 모니터링 액세스 : http : // localhost : 8088/health * * @return custom health monitor */@override public Health Health () {return new Health.Builder (). WeidDetail ( "usercount", 10) // 사용자 정의 모니터링 컨텐츠 ( "useWSTUTUTUTSOUTS" "up"). up (). build (); }}현재 우리는 다시 방문합니다. http : // localhost : 8088/Health 이시기에 반환 된 결과는 맞춤형 사용자 건강 정보를 포함하여 다음과 같습니다.
{ "status": "up", "user": { "status": "up", "usercount": 10, "userstatus": "up"}, "diskspace": { "status": "up", "total": "free": 315097989120, "trheshold": 104857000000000000000000000.1, "db" "상태": "UP", "데이터베이스": "MySQL", "Hello": 1}}}사용자 정의 엔드 포인트
실제로, 일부 건강 검사를 추가하기 위해 HealthenDPoint를 확장하는 것 외에도, 일부 엔드 포인트를 사용자 정의하여 프로그램 런타임 중 일부 정보 표시를 제공 할 수도 있습니다.
@ConfigurationPublic 클래스 endpointAutoConfig {@Bean public endpoint <map <string, object >> customendpoint () {return new SystemEndpoint (); }}@configurationProperties (prefix = "endPoints.CustomSystem") public 클래스 SystemEndpoint 확장 AbstractEndpoint <map <string, object >> {public systemendpoint () {super ( "customsystem"); } @override public map <string, object> invoke () {map <string, object> result = new Hashmap <> (); map <String, String> map = system.getenv (); result.put ( "username", map.get ( "username")); result.put ( "computername", map.get ( "computername")); result.put ( "사용자 도메인", map.get ( "useromain")); 반환 결과; }}맞춤형 엔드 포인트를 보려면 http : // localhost : 8088/customsystem을 방문하십시오. 결과는 다음과 같습니다.
{ "username": "xxx", "useromain": "goodtop-6ean1h4", "computername": "Desktop-6ean1h4"}Spring Boot 응용 프로그램에 액추에이터를 추가 한 후 예상 건강 인터페이스를 반환하면 결과는 다음과 같습니다.
{status : "up", diskspace : {status : "up", 총 : 250182889472, 무료 : 31169568768, 임계 값 : 10485760}, db : {상태 : "UP", "h2", hello : 1}}방금 반환 된 상태 인 경우
{상태 : "up"}응용 프로그램에 새 구성을 추가해야합니다. YML 구성 파일을 예로 들어 다음 구성을 추가해야합니다.
관리 : 보안 : 활성화 : 허위 점 : 건강 : 민감한 : 거짓
management.endpoint.Health.Show-Details = 항상
요약
위는 SpringBoot 구현 프로젝트 건강 검사 및 편집자가 소개 한 모니터링입니다. 모든 사람에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 모든 사람에게 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!