SLA 설정
OPENMARU APM 은 HTTP 기반의 응답코드를 활용해 애플리케이션의 상태를 모니터링하는 SLA기능을 제공한다.
해당 기능을 사용하기 위해서는 시스템 에이전트가 설치되어있어야 하며, JDK 1.8 이상에서 동작한다.
SLA란?
SLA(서비스 수준 계약) 은 고객에게 제공하는 서비스 수준을 계약하는 것을 의미한다. 이때의 '서비스 수준' 이란 얼마나 장애없이 서비스가 유지되었는지에 대한 수준을 말한다.
오픈마루 SLA는
오픈마루 APM은 HTTP 응답코드를 활용하여 실시간, 혹은 특정 기간동안 100% 를 기준으로 얼마만큼 서비스가 장애가 없이 동작하였는지, 에러 응답을 발생하지 않았는지를 모니터링하는 SLA 기능을 제공한다.

① 일별, 시간별 필터 옵션
필터링 기간을 설정하기 이전에 '일별' 혹은 '시간별' 필터 옵션을 선택할 수 있다.
② 필터링 기간 설정
'일별' 혹은 '시간별' 로 필터링 기간을 설정할 수 있다.
③ 실시간 SLA 차트
모니터링중인 SLA 현황을 확인할 수 있는 차트로 상단에는 실시간 현황을 하단의 차트에서는 기간별 현황을 보여준다.
SLA 설정
오픈마루 APM 의 SLA 기능을 사용하기 위해서는 OPENMARU APM 에 연결된 시스템 에이전트가 있어야 하며,
'SLA 설정' 메뉴에서 'Job' 과 'Service' 를 등록하여야 한다.
이를 설정하는 방법은 Rest API 테스트 도구인 Postman 이나 부하 테스트 시 사용하는 JMeter 도구와 유사하다.
- Job과 Service 란?
- Service란 모니터링을 수행하는 실행 단위를, Job이란 서비스들을 조합하여 하나의 작업단위로 묶은 것을 의미한다.
- 'A홈페이지'가 정상적으로 동작한다고 판단하기 위해서는 '메인', '로그인', '게시판' 등의 화면이 정상적으로 동작하는지 확인할 필요가 있다. 이떄, 'A홈페이지' 을 Job 으로 두고 '메인', '로그인', '게시판' 등을 Service를 두어 모니터링하면 효율적으로 기능들을 업무별로 묶어서 관리할 수 있다.
- Job 은 Service 들의 그룹으로 Job 에 포함된 Service 들은 Cookie (Session) 을 공유한다.
Job 등록 하기
'SLA 설정' 메뉴를 클릭하면 SLA 리스트 테이블을 확인할 수 있다. SLA 리스트 테이블의 좌측 리스트에는 Job이 우측 리스트에는 Service 가 표시된다. 이때, 좌측 리스트의 '추가' 버튼을 클릭하면 Job 을 추가할 수 있는 팝업이 표시된다.

- Job 설정 옵션
| Name | Job 에 대한 이름 |
|---|---|
| Interval(ms) | 반복 주기 |
| Execute SYS Agent | 실행할 SYS Agent |
| Alerts to | 실패 시 알림 받을 대상자 |
| Alters to(Group) | 실패 시 알림 받을 대상자 그룹 |
| Alters via | email, sms, slack (슬랙을 경우 별도 지정하지 않아도 발송된다.) |
| Prevent Duplicated | 실패 알림 후 반복적으로 알림 오는 것을 방지한다. |
| Enable | Job 모니터링 여부 |
Service 등록 하기
Job을 추가 후 선택하면, SLA 리스트 테이블의 우측 리스트가 활성화된다. 이때, 우측 리스트의 '추가' 버튼을 클릭하면 Service 을 추가할 수 있는 팝업이 표시된다.

- Service 설정 옵션
| Name | Service 이름 |
|---|---|
| URL | 호출 URL |
| Method | HTTP Method |
| Charset | 문자 인코딩 |
| Params | POST, PUT, DELETE 시 파라미터 예) test1=1 test2=2 |
| Body | POST, PUT, DELETE 시 요청 컨텐츠 바디 예) {“test1”: 1, “test2”: 2} |
| Headers | HTTP Header |
| Success Status | 성공이라고 판단하는 HTTP 상태코드 |
| Failure Status | 실패라고 판단하는 HTTP 상태코드 |
| Success Content Regexp | 성공이라고 판단되는 응답 컨텐츠 바디 내용 (정규식) |
| Failure Content Regexp | 실패라고 판단되는 응답 컨텐츠 바디 내용 (정규식) |
| Timeout | 요청 후 응답을 기다리는 시간 |
| Follow Redirect | HTTP 상태코드가 302 일 경우 계속 진행 여부 |
| Error Next | 실패 시 다음 Service 진행 여부 |
| Retry Counts | 실패 시 재시도 횟수 |
| Enable | Service 사용 여부 |
적용
설정 및 수정 완료 후 적용 버튼을 누르면 전체 Job에 대한 내용이 각각의 시스템 에이전트 에 반영되어 헬스체크를 시작한다.

적용 테스트
선택된 Job에 해당하는 Service들을 설정된 값에 맞게 테스트를 진행한다.
