본문 바로가기

Observability (O11y) 본문

DevOps

Observability (O11y)

겨울바람_ 2025. 3. 10. 10:22

Observability란?

인체는 서로 다른 기능을 수행하는 여러 시스템으로 구성되어 있다. 소화계, 호흡계, 신경계, 근육 등 모든 시스템이 모여 하나의 인체를 형성한다.

이중 하나 이상의 시스템이 제대로 동작하지 않을 때, 우리는 원인 모를 질병에 시달리거나 기력을 상실할 것이다. 이를 해결하기 위해 우리는 인체의 전문가 즉, 의사를 찾아간다.

 

의사는 인체의 체온, 혈압, 산소 수치 등과 같은 신체 지표를 우선 측정한다. 해당 진찰을 통해 우리의 신체 지표 중 이상이 발생한 부분을 발견하고 원인을 파악하기 위해 다양한 검진을 진행할 수 있다.

 

이를 통해 의사는 우리 인체 내부에서 무슨 일이 발생하는지 어디서 발생하는 지를 더 자세히 알아볼 수 있다. 또한, 이를 통해 의사는 문제를 해결하고 동일한 문제가 발생하지 않도록 예방 계획을 설립할 수 있다.

 

소프트웨어에 대한 Observability 또한 마찬가지로 응용프로그램을 실행하는 인프라 시스템 내부에서 무슨 일이 일어나고 있는지 관찰하여, 잘못된 부분이 존재한다면 원인과 위치를 파악하는 것이다.

 

소프트웨어 시스템을 관찰하기 위해 수집하는 가장 일반적인 데이터에는 메트릭, 로그, 트레이스 등이 존재한다.

Metrics

메트릭은 소프트웨어 시스템의 상태와 성능에 대한 단서를 제공하는 수치적 데이터다.

 

시간 경과에 따라 시스템 성능에 대한 단서를 제공하는 메트릭 데이터를 수집할 수 있고, 관찰 대상에 따라 수집하는 데이터 유형이 달라질 수 있다.

 

가장 일반적으로 수집되는 메트릭으로는 응답 시간, 요청의 수, CPU 및 메모리 사용량 등이 있다.

Logs

메트릭을 통해 소프트웨어 시스템의 상태가 이상하다는 것을 파악했다면, 로그를 통해 시스템 내부에서 무슨 일이 발생하고 있는지를 파악해야 한다.

 

로그는 시스템 내부에서 발생한 이벤트에 대한 텍스트 기록이며, 문제가 발생한 시기와 해당 문제와 연관된 이벤트에 대한 단서를 제공한다. 이를 참고하면 시스템 내부에서 발생하고 있는 일에 대해 자세한 맥락 파악이 가능하다.

Traces

트레이스는 애플리케이션에 대한 요청이 시스템 전체를 경유하는 것을 추적할 수 있다.

 

우리는 이를 통해 메소드, 서비스와 요청이 어떻게 상호작용하는지 관찰하고 병목 현상이 발생하는 경우 정확한 위치를 추적하여 문제의 발생지를 발견할 수 있다.

Reference

Grafana : Observability란 무엇인가?

'DevOps' 카테고리의 다른 글

[o11y] Intro-to-mltp  (0) 2025.03.11
top 명령어 제대로 알고 쓰자  (0) 2025.02.04
jdeps와 jlink를 활용한 Java 기반 컨테이너 경량화  (1) 2024.09.12
[Terraform] 테라폼 기초 (3)  (1) 2024.08.28
[Terraform] 테라폼 기초 (2)  (0) 2024.08.19
Comments