관찰 가능성(Observability)이란?
관찰 가능성은 외부 출력만으로 시스템의 내부 상태를 추론할 수 있는 능력입니다. 정보처리기사 시험에서는 관찰 가능성 3기둥(메트릭·로그·트레이스), Prometheus/Grafana, 분산 추적 Jaeger, SLO/SLI/에러 버짓이 핵심 출제 범위입니다.
관찰 가능성 3기둥
- 메트릭(Metrics): 시간에 따른 숫자 데이터. CPU 사용률, 요청 수, 레이턴시. Prometheus로 수집, Grafana로 시각화
- 로그(Logs): 이벤트의 불변 타임스탬프 기록. 구조화 로그(JSON)가 분석 용이. ELK Stack, Loki
- 트레이스(Traces): 분산 시스템에서 단일 요청의 전체 실행 경로 추적. Span과 Trace ID로 구성
Prometheus와 Grafana
Prometheus는 Pull 기반 메트릭 수집 시스템입니다. /metrics 엔드포인트에서 데이터를 스크레이핑합니다.
- 메트릭 타입: Counter(누적 증가), Gauge(현재 값), Histogram(분포), Summary(분위수)
- PromQL: Prometheus 쿼리 언어. rate(), histogram_quantile() 함수 자주 사용
- AlertManager: 임계값 초과 시 Slack, PagerDuty 등으로 알림
Grafana는 다양한 데이터 소스(Prometheus, Loki, InfluxDB)를 연결해 대시보드를 구성하는 시각화 도구입니다.
분산 추적과 OpenTelemetry
마이크로서비스 환경에서 요청이 여러 서비스를 거칠 때 전체 경로를 추적합니다.
- Span: 개별 작업 단위. 시작/종료 시간, 태그, 로그 포함
- Trace: 연관된 Span들의 트리 구조
- Jaeger: Uber가 개발한 오픈소스 분산 추적 시스템. CNCF 졸업 프로젝트
- OpenTelemetry: 메트릭·로그·트레이스를 위한 벤더 중립적 표준 SDK. OTel Collector로 다양한 백엔드로 내보내기
SRE와 SLO/SLI/에러 버짓
Google이 제안한 SRE(Site Reliability Engineering)는 운영을 소프트웨어 엔지니어링 관점으로 접근합니다.
- SLI(Service Level Indicator): 서비스 수준을 측정하는 지표. 가용성 = 성공 요청 수 / 전체 요청 수
- SLO(Service Level Objective): SLI의 목표값. “가용성 99.9%”
- SLA(Service Level Agreement): 고객과 계약한 서비스 수준. SLO보다 완화된 값
- 에러 버짓(Error Budget): 100% – SLO. “99.9% SLO”라면 월 43.8분의 다운타임 허용. 소진 속도로 배포 빈도 조절
정보처리기사 기출 핵심 정리
- 관찰 가능성 3기둥: 메트릭(숫자), 로그(이벤트), 트레이스(요청 경로)
- Prometheus = Pull 기반, Counter/Gauge/Histogram/Summary
- OpenTelemetry = 벤더 중립 표준, OTel Collector
- SLO = 목표, SLI = 측정 지표, 에러 버짓 = 허용 오류량
- P99 레이턴시 = 상위 1%를 제외한 최대 응답 시간