endpoint
HTTP method pathdescription
GET /autoconfig 자동구성 조건의 성공 실패 여부
GET
/configprops
/.
기본값, 구성 프로퍼티에 빈 주입 정보
GET /beans 빈과 빈사이의 관계를 보여줌
GET /dump 스레드활동의 스냅샷 덤프를 조회
GET /env 모든 환경 프로퍼티를 조회
GET /env/{name} 환경변수 이름으로 특정 환경값 조회
GET /health 헬스 메트릭 정보를 조회
GET /info info로 시작 하는 프로퍼티 정보 조회
GET /mappings controller에 맵핑된 uri 정보
GET /metrics 메모리 사용량, HTTP 요청 카운터등..
GET /metrics/{name} 메트릭에 대한 개별 정보
prefix description
gc.* gc발생 횟수, 수행시간
mem.* 할당된 메모리 용량, 여유 메모리 용량
heap.* 현재 메모리 사용량
classes.* 클래스 로더로 로드, 언로드 된 클래스 개수
threads.* 스레드, 데몬 스레드 개수와 서버 시작 후 최대 스레드 개수
datasource.* 데이터 소스 커넥션 개수
httpsessions.* 톰캣의 활성화 된 세션과 최대 세션 개수
couter.status.* http 요청에 대한 상태
gauge.response.
*
요청 수행 시간
/shutdown
$ curl -XPOST http://localhost:8080/shutdown
shutdown 기능은 기본적으로 비활성화 되어있음.
*명시적으로 활성화 하기(application.yml)
endpoints:
shutdown:
enabled: true
16.
/info
info 정보를 등록하지 않은 경우
{}
info 정보를 등록한 경우(application.yml)
info:
contactEmail: choong83@gmail.com
phone: 66-546-7865
{"contactEmail":"choong83@gmail.com","phone":"66-546-7865"}
CRaSH 셸
command description
autoconfig자동 구성 보고서를 생성한다, /autoconfig와 유사하다.
beans 스프링 애플리케이션 컨텍스트의 빈을 보여준다.
endpoint actuator endpoint를 보여준다
metrics
스프링 부트 메트릭을 나타낸다. /metrics 엔드포인트와 유사하나
값의 변화를 실시간으로 반영한 메트릭 목록을 보여 준다.
Actuator 사용자 하기
•엔드포인트 이름 변경
• 엔드포인트 활성화 / 비활성화
• 사용자 메트릭과 게이지 정의
• 트레이스 데이터를 저장할 사용자 정의 레포지토
리 생성
• 사용자 정의 헬스 인디케이터 추가
25.
endpoint ID 변경
•자신이 원하는 id로 변경 가능.
• endpoints.endpoint-id.id
• shutdown id 변경 예제
endpoints:
shutdown:
id: kill
26.
endpoint 활성화 /비활
성화
개별
endpoints.endpoint-id.enabled
endpoints:
metrics:
enabled: false
전체
endpoints.enabled
endpoints:
enabled: false
일부만 활성화
endpoints:
enabled: false
metric:
enabled: false
27.
사용자 정의 메트릭과게이지 추가
하기
@Controller
public class HelloWorldController {
@Autowired
private CounterService couterService;
@Autowired
private GaugeService gaugeService;
@RequestMapping("/")
public String helloworld(){
couterService.increment("books saved");
gaugeService.submit("books.last.saved", System.currentTimeMillis());
return "/";
}
}
{"mem":335431,"mem.free":204268,"processors":4,"instance.uptime":268651,"uptime":284223,"systemload.average":1.424316406
28.
PublicMetrics
• 간단한 정보는CouterService, GaugeService를
이용하면 되지만 표현하려는 정보가 조금 복잡한
경우 PublicMetrics 인터페이스를 직접 구현하면
된다.
public interface PublicMetrics {
Collection<Metric<?>> metrics();
}
29.
사용자정의 트레이스 리포지토리생성
하기
• /trace endpoint는 최근 100개까지만 저장.
• InMemoryTraceRepository 빈을 직접선언 하여
개수를 늘릴 수 있다.
• 하지만 영구적이지 않고, 메모리 공간에 영향을
줄 수 있다.
30.
TraceRepository
• 어디에서든 저장가능하고, 메모리를 소비하지 않
고 영구적.
public interface TraceRepository {
List<Trace> findAll();
void add(Map<String, Object> traceInfo);
}
31.
사용자 정의 헬스인디케
이터
• 헬스 인디케이터 기능이 없는 시스템과 상호작용
을 하기 위한 기능.
• HealthIndicator class를 구현한다.
32.
Actuator endpoint 보안
•URL기반이므로, 누구나 접근 가능.
• Spring Security를 사용하여, path에 대해 보안 적
용 가능.
• 액추에이터에 대한 context path 설정 가능 (기본은
/)
management.context-path=xxxx
management
context-paht: xxxx