SRE monitoring
- Sre
- August 13, 2020
SRE 란 Site Reliability Engineering의 약자로 소프트웨어 엔지니어가 디자인하기 위해 오퍼레이션 팀에게 물어 볼 때 벌어지는 일들을 의미합니다.
White box vs Black Box
대체적으로 화이트 박스 모니터링은 많이(heavy) 하고 블랙박스는 상대적으로 가볍지만 서비스에 치명적인 것을 나타내기에 같이 결합해서 사용합니다.
white box는 내부적으로 우리가 알수 있는 경우입니다. 대표적으로 로그, 시스템 내부에 의해 보여지는 지표, 자바 가상 머신 프로파일 인터 페이스 같은 인터페이스들입니다.
반면에 black box는 테스트 외부에서 유저가 현상을 볼 수 있는 것들입니다.
이 2개를 간단하게 비교하자면 black-box는 증상 지향으로 지금 일어난 현상을 보여주고. 예를 든다면 “지금 시스템이 작동하지 않습니다.!” 식으로 알려주고 예측 용도로 사용 하지는 않습니다.
White box는 시스템 내부를 검사 할 수 있는 기능에 따라 모니터링 할 수 있습니다. 예를 든다면 로그, HTTP 엔드 포인트 등입니다.
다계층 시스템 안에서는 하나의 증상은 다른 영역의 문제로 인한 것일 수도 있습니다.
예를 든다면 데이터베이스의 퍼포먼스가 느려졌다면 느려진 데이터 베이스 READ는 프론트엔드 까지도 영향을 미칩니다.
SRE는 프론트엔드의 지연 현상을 데이터베이스인 것으로 파악 가능해야하고 그래서 white box 모니터는 때때로 증상 지향이기도 하고 원인 지향이기도 합니다.
요건은 사용하는 화이트 박스가 어떤 정보를 가지고 있느냐에 따라 정해집니다.
더군다나디버깅을 위하여 원격으로 수집할때 white box 는 필수적입니다.
예를 들어 데이터베이스 많은 양의 요청으로 인해 웹서버가 느려졌다면 양쪽 다 성능을 파악해야 합니다. 웹서버 수신과 데이터베이스 자체 속도가 이에 해당합니다.
paging(알림 방식 중에 하나)하기 위해서는 black box 모니터링은 이미 진행 중이면서 진짜 증상에 기여하는 문제에 사람한테만 잔소리하는 강제징계의 핵심을 가지고 있습니다.
(대충 해석하자면 발생한 문제에 관하여 담당자한테만 막 알리고 뭐라하는 뭐 이런 뜻인 듯…)
반면에 아직 발생하지 않은 금방이라도 닥칠 문제에는 그다지 효율적이지 않습니다.
또 하나 중요한 정보는 아래의 4개의 골든 시그널인데요.
언급하면 좋을 것 같아서 추가 했습니다.
4개의 골든 시그널
지연(Latency) - 말그대로 서비스 요청까지 걸리는 시간
Traffic(Rate) - 전송 속도
Errors - 요청시 실패한 비율
Saturation(포화) - 서비스가 어떻게 가득 차 있는가이다.
가장 제약된 리소스를 강조하여 시스템 일부(fraction)를 측정한다.(예를 들어서 메모리-제약 시스템에서 메모리 보여주기, I/O- 제약된 시스템 안에서 I/O 보여주기 등이다.)
대개 사용량(utilization)이 100% 되기 전에 성능이 저하된다.
그래서 사용량 측정은 필수적이다.
이건 상당히 복잡한 시스템인데 포화는 높은 수준의 부하 측정으로 보완 할 수 있다.
상황을 보자면 두배 트래픽을 적절히 조절하는게 가능한가, 아님 10% 더 일때 가능한가, 지금 보다 적을 때도 가능한가? 요청의 복잡성을 변경할 필요가 없는 단순한 서비스.
아무튼 대부분의 서비스에는 상한선을 알 수있는 CPU사용량 이나 네트워크 대역대 같은 비직접적인 신호를 사용이 필요로 한다. 지연시간 증가는 종종 포화의 선행 지표이다.
포화와 사용량의 차이점은 계산법에서 차이가 나는데 포화는 말그대로 허용량을 넘어서는 경우다 보니 평균 개념이 아니다 헌데 사용량은 일정 기간을(5분) 두고 평균을 내기에 사용량이 80프로 일지라도 포화 상태가 발생하는 경우가 생긴다, 그래서 에러에는 포화를 사용량 보다 더 추천하는 편이다.