관찰성은 생성된 데이터를 기반으로 시스템의 현재 상태를 측정하고 추론하는 능력입니다. 이러한 데이터는 일반적으로 로그, 메트릭, 추적 형태입니다. 간단한 예로, 마이크로서비스 애플리케이션의 메트릭을 검사하여 애플리케이션의 상태를 관찰할 수 있습니다.
관찰성은 개발자에게 복잡한 시스템이 어떻게 작동하는지에 대한 전체적인 관점을 제공합니다. 데이터 수집, 저장, 분석을 통해 개발자는 시스템의 문제를 식별하고 해결할 수 있는 능력을 얻습니다.
관찰성은 실시간으로 데이터를 수집하는 것부터 시작됩니다. 수집된 데이터는 분석을 위해 중앙 위치에 저장됩니다. 이런 분석은 머신러닝 알고리즘, 시각화 또는 통계적 기술의 조합을 통해 이루어질 수 있습니다.
이러한 분석의 결과는 개발자에게 애플리케이션이나 시스템 내의 이상 징후에 대한 경고를 제공합니다. 알림은 비즈니스나 애플리케이션 요구 사항에 따라 설정된 임계값, 심각도 수준 또는 기타 기준에 따라 자동화되고 트리거될 수 있습니다. 이상 현상이 식별되고 위치가 파악되면 개발자는 해당 데이터를 사용하여 문제를 디버깅하고 해결할 수 있습니다.
위에서 언급했듯이, 관찰 가능한 데이터의 주요 유형은 로그, 메트릭, 추적입니다.
모니터링은 시스템이나 애플리케이션 내에서 발생하는 프로세스의 진행 상황을 관찰하고 확인하는 기능입니다. 모니터링은 측정 항목에 크게 의존합니다. 간단히 말해, 환경을 시각화하고 알려진 문제를 테스트할 수 있게 해줍니다. 반면, 관찰성은 문제가 존재할 수 있다는 것을 추론할 수 있는 새롭고 심층적인 데이터를 제공합니다. 그런 다음 문제의 원인을 깊이 파고들어 미래에 대한 통찰력을 얻을 수 있습니다.
모니터링과 관찰은 명확히 분리되어 있지 않습니다. 오히려 이는 개발자가 더 빠르게 통찰력을 얻을 수 있도록 하는 데이터 분석 옵션과 시각화 기술입니다.
이러한 정의를 바탕으로, 아래 표에서는 소프트웨어 애플리케이션에서 모니터링과 관찰 가능성 간의 네 가지 미묘한 차이점을 자세히 살펴봅니다. 이러한 네 가지 차이점은 범위, 세분성, 유연성, 분석으로 구분됩니다.
모니터링 | 관찰 가능성 | |
---|---|---|
범위 | 측정 항목(예: 시스템 가동 시간, CPU 사용량, 오류율) | 출력을 기반으로 시스템의 작동 메커니즘을 이해합니다. |
세분성 |
정기적으로 수집된 데이터를 집계하거나 샘플링합니다(사전 정의된 메트릭 기반) |
시스템 동작에 대한 보다 깊은 통찰력과 이해를 얻기 위해 세부적인 데이터를 수집하고 분석합니다. |
유연성 |
배포 후 수정하기 어려운 미리 정의된 대시보드 또는 알림 임계값을 구현합니다. |
변화하는 상황과 요구 사항에 맞춰 쉽게 변경할 수 있는 도구를 사용하여 유연하고 적응 가능한 접근 방식을 사용합니다. |
분석 |
특정 이벤트나 이상을 식별하고 대응합니다. |
개발자에게 문제의 원인을 식별하고 시간이 지남에 따라 솔루션을 구현하는 데 필요한 도구를 제공하여 사전 예방적 분석 및 문제 해결을 강조합니다. |
소프트웨어 관찰에서 원격 측정은 소프트웨어 시스템의 성능과 동작에 대한 데이터를 실시간으로 수집하여 전송하는 관행을 말합니다. 이 데이터(응답 시간, 오류율, 리소스 소비 등)는 시스템의 현재 상태를 모니터링하고 이해하는 데 사용되며, 개발자가 성능을 개선할 수 있는 기회를 식별하는 데 도움이 됩니다.
원격 측정에 대한 대화에서 OpenTelemetry (OTel)가 자주 거론되는데, 이는 개발자의 관찰 가능성을 더 쉽게 만들어 주는 단순화된 접근 방식을 제공하기 때문입니다. OTel은 소프트웨어 시스템에서 원격 측정 데이터(로그, 메트릭, 추적) 수집을 표준화하는 오픈 소스 도구 및 라이브러리 세트입니다.
OpenTelemetry가 앱 추적 및 설계 방식을 바꾸는 방식 에서 OTel과 이것이 클라우드 네이티브 환경에 미치는 영향에 대해 자세히 알아볼 수 있습니다.
관찰성은 개발자에게 애플리케이션을 더 잘 이해할 수 있는 기능을 제공하여 다음을 가능하게 합니다.
관찰성에는 몇 가지 단점이 있는데, 가장 흔한 단점은 다음과 같습니다.
NGINX는 관찰성과 OTel에 대한 추가 무료 교육 리소스를 제공하게 되어 자랑스럽게 생각합니다.