OpenTelemetry는 Logs (디버깅), Metrics (시스템 추세 및 이상 감지), Traces (요청 엔드투엔드 시각화 및 분산 시스템 분석) 세 가지 핵심 신호를 통해 시스템 가시성을 확보합니다.
Rails 앱에 OpenTelemetry를 통합하려면, SDK 및 OTLP 익스포터 젬을 설치하고, 이니셜라이저 파일에 기본 구성 블록을 설정하여 서비스 이름과 버전을 지정합니다. 환경 변수를 통해 모니터링 백엔드 엔드포인트를 지정할 수 있습니다. 자동 계측 젬을 사용해 Rails 및 기타 인기 젬에 대한 계측을 추가하며, API 호출로 사용자 정의 스팬과 속성을 추가할 수 있습니다.
메트릭 수집은 관련 SDK 및 익스포터 젬 설치 후 미터 프로바이더 설정으로 시작합니다. 수집 간격 조정으로 빠른 피드백이 가능하며, 카운터와 히스토그램 같은 계측기로 특정 이벤트나 성능 지표를 추적합니다. 로그 수집은 관련 SDK 및 익스포터 젬을 통해 이루어지며, Ruby logger 및 Rails의 Active Support Broadcast Logger 계측으로 기존 로그를 OTLP 형식으로 변환합니다. OpenTelemetry 로그는 trace_id
와 span_id
를 포함하여 로그와 트레이스를 상호 연관시켜 심층적인 컨텍스트를 제공합니다.
OpenTelemetry Ruby 프로젝트는 메트릭 및 로그 안정화를 목표로 지속 발전 중이며, 커뮤니티 참여를 통해 문서 개선 및 기능 확장을 도모합니다.