마이그레이션을 할때 중요한 모니터링
새로운 아키텍처로 변경하는 과정에서 서비스가 제대로 동작하는지 확인 할 수 있는 가시성이 필요
각 회사에 언어 환경이나 프레임워크에 따라 관련 메트릭이 달라지는데
예시로 자바 스프링 프레임워크를 주로 사용 할 경우 JVM 메트릭이나, 톰켓 메트릭, JPA 메트릭을 모니터링
-> 로깅과 가장 상관관계가 높은 메트릭
번외 Jvm 메트릭 모니터링시 필요한 모니터링 하는 이유
Heap Memory
1. 메모리 누수 감지 : Heap memory를 할당한 후, 이를 해제하지 않으면 메모리 누수가 발생할 수 있으며, 이는 성능 저하를 초래
2. 메모리 사용량 파악 : 사용자 입력이나 시간에 따라 사용되는 힙메모리 특성상 모니터링을 통해 메모리를 효율적으로 사용 가능
GC(Garbage Collection)
1. GC 성능 개선 : GC가 자주 발생하는 경우, 애플리케이션 성능에 부정적인 영향을 미칠 수 있습니다.
Grafana, Prometheus를 통한 jvm 모니터링
https://velog.io/@cks8483/Kubernetes-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-JVM-%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0
서비스와 서비스 간의 통신확인과
모든 네트워크 퍼널의 가시성 확보
서비스 메시와 관련
OS 리소스 관련 지표들
(서버 리소스가 잘 분배 되어있는지, 부족한 리소스는 없는지 등)
오류와 상관관계는 가장 낮음 -> 오류가 리소스 부족인지 다른 문제인지 판단이 애매
CPU method
Memory method
Disk method
Network Device
프로메테우스의 단점
스트랩하는 형식이기 때문에 프로메테우스에 문제가 생기면 메트릭 수집 중단
메트릭 누락 위험 있음
과다한 메모리 사용
수집하는 메트릭량 + tsdb의 크기가 메모리에 비례