What is telemetry data?
텔레메트리 데이터 정의
텔레메트리 데이터는 시스템 성능에 대한 필수적인 인사이트를 제공합니다. 이는 사전에 문제를 해결하고 정보를 바탕으로 결정을 내리는 데 매우 중요합니다. 하지만 이를 달성하려면 원시 데이터에만 의존해서는 안 됩니다. 실시간 인사이트에 액세스할 수 있어야 합니다. 이것이 텔레메트리 데이터가 제공하는 것입니다.
텔레메트리는 서버, 애플리케이션, 모니터링 장치와 같은 원격 소스에서 데이터를 수집, 전송 및 분석하는 프로세스입니다. 이 프로세스는 다음 단계로 나눌 수 있습니다.
- 데이터 수집: 센서, 소프트웨어 및 기타 모니터링 도구는 사용자 행동, 성능 메트릭, 환경 조건과 같은 데이터를 수집합니다.
- 데이터 전송: 수집된 데이터를 중앙 시스템으로 보냅니다.
- 분석 및 모니터링: 데이터가 수신되면 데이터가 처리, 분석 및 표시되어 모니터링되는 시스템 상태, 성능 및 동작에 대한 인사이트를 제공합니다.
이를 달성하려면 올바른 텔레메트리 데이터가 있어야 합니다. 이는 시스템, 애플리케이션 또는 장치에서 생성된 로그, 메트릭, 이벤트 및 기타 추적과 같은 항목을 포함하는 모든 원시 데이터입니다. 이 원시 데이터가 없으면 분석 및 모니터링이 유용하거나 정확하지 않습니다.
텔레메트리 데이터 유형
로그
로그는 텍스트 기록 목록으로, 시스템이나 애플리케이션 내에서 발생하는 개별 이벤트를 기록합니다. 각 레코드에는 타임스탬프가 표시되며 디버깅 및 분석을 위한 자세한 정보를 제공합니다. 디버깅 및 문제 해결, 규정 준수 보고, 사용자 행동 이해, 다양한 유형의 감사에 필수적입니다.
로그에는 애플리케이션 로그, 시스템 로그, 네트워크 로그, 액세스 로그 등 다양한 유형이 있습니다. 이 모든 것은 무슨 일이 일어났는지, 언제 일어났는지, 누가(또는 무엇이) 관련되었는지에 대한 정확한 그림을 그리는 데 사용할 수 있는 귀중한 텔레메트리 데이터입니다.
추적
추적은 기본적으로 요청이 시스템을 통해 이동할 때 남기는 이동 경로입니다. 이는 요청이 이동하는 경로에 대한 기록으로, 여러 서비스에 걸친 흐름과 정확한 타이밍을 보여줍니다. 여기에는 마이크로서비스 아키텍처의 분산 애플리케이션 추적 및 엔드투엔드 요청 추적과 같은 것이 포함됩니다.
텔레메트리 데이터로서 이러한 추적은 성능 최적화, 시스템 종속성 이해, 근본 원인 분석 및 병목 현상 식별에 도움이 되는 귀중한 데이터를 제공합니다.
메트릭
메트릭은 런타임에 캡처된 시스템, 소프트웨어 또는 애플리케이션의 수치 측정입니다. 이러한 메트릭을 사용하면 시간 경과에 따른 성능에 대한 정량적 분석을 수행할 수 있으며 여기에는 CPU 사용량, 요청 비율, 오류 비율, 응답 시간, 메모리 활용도 등이 포함됩니다.
텔레메트리에서 이러한 메트릭은 시스템 상태, 성능, 동작과 같은 항목에 대한 가시성을 생성하는 데 큰 역할을 합니다. 이러한 가시성은 성능 모니터링 및 이상 징후 탐지부터 용량 계획 및 SLA 규정 준수 모니터링에 이르기까지 다양한 도구에 대한 인사이트를 제공할 수 있습니다.
이벤트
이벤트는 시스템 내에서 주목할 만한 사건이나 상태 변경에 대한 기록입니다. 시스템이나 비즈니스에 영향을 미치는 중요한 순간이나 변경 사항을 포착하며, 추가 상황 정보를 포함하는 경우가 많다는 점에서 로그와 다릅니다. 이러한 이벤트에는 로그인 및 구매와 같은 사용자 작업, 시스템 상태 변경, 비즈니스 관련 이벤트 등이 포함됩니다.
추가 상황별 데이터로 인해 이벤트는 비즈니스 인텔리전스, 시스템 상태 모니터링, 규정 준수 감사 및 자동화 트리거에 필수적입니다. 또한 사용자가 언제, 무엇을 했는지 정확하게 확인할 수 있으므로 사용자 행동 분석에도 유용합니다.
텔레메트리 데이터를 설정하고 사용하는 방법
1단계: 목표 정의
텔레메트리 데이터를 설정하는 첫 번째 단계는 달성하려는 목표를 정확하게 결정하는 것입니다. 시스템 성능 향상, 사용자 경험 향상, 보안 위협 식별 등 텔레메트리 데이터 수집을 위한 특정 목표를 식별해야 합니다. 이를 수행하는 좋은 방법은 텔레메트리 목표를 기존 비즈니스 목표에 맞추는 것입니다.
그런 다음 이를 추적하는 데 필요한 핵심성과지표(KPI)와 메트릭을 결정해야 합니다. 예를 들어, 시스템 성능을 향상시키는 것이 목표라면 응답 시간, 오류율, 리소스 활용도 등을 추적할 수 있습니다. 텔레메트리 목표를 결정할 때 고려해야 할 또 다른 중요한 사항은 개인 정보 보호 및 규정 준수입니다. 관련 규정(CCPA, GDPR 등)을 검토하고 이러한 규정을 충족하고 사용자 개인 정보를 존중하는 데이터 수집 지침을 정의해야 합니다.
2단계: 도구 구성
다음 단계는 목표 달성에 적합한 도구를 선택하고 구성하는 것입니다. 이를 수행하는 데 도움이 되고 기존 기술 스택과 쉽게 통합되는 텔레메트리 수집 도구를 선택해야 합니다. 여기에는 애플리케이션 성능 모니터링 도구(APM), 로그 수집기 또는 맞춤 SDK 등이 포함될 수 있습니다.
수집 메커니즘을 구현하고 로깅 프레임워크 또는 모니터링 에이전트를 애플리케이션에 통합해야 합니다. 이를 위해서는 OpenTelemetry가 공급업체 중립적인 좋은 옵션이 될 수 있습니다. 여기에는 코드 계측을 추가하거나 필요한 데이터를 수신하도록 기존 시스템을 구성하는 작업이 포함될 수 있습니다.
수집 매개변수를 구성하려면 샘플링 속도, 캡처할 이벤트 유형, 로그 세부정보 수준과 같은 데이터 수집 세부 사항을 설정해야 합니다. 그런 다음 중요한 정보를 필터링하도록 데이터 필터링을 구성하고 개인 정보 보호 규정을 준수하도록 익명화합니다.
3단계: 데이터 전송
다음으로 실제로 텔레메트리 데이터를 보내야 합니다. 시작하려면 데이터 전송을 위한 전송 프로토콜을 구현해야 합니다. 이는 웹 앱용 HTTPS(또는 HTTP), IoT 장치용 MQTT 또는 OpenTelemetry(OTLP)와 같은 특수 프로토콜일 수도 있습니다. 여기에는 암호화 및 인증 메커니즘을 통해 전송이 안전한지 확인하는 것이 포함됩니다.
네트워크 중단을 처리하고 안정성을 보장하려면 로컬 데이터 버퍼링 및 재시도 논리를 설정해야 합니다. 또한 애플리케이션 성능과 네트워크 대역폭의 잠재적인 영향을 최소화하려면 데이터 전송의 볼륨과 빈도의 균형을 맞춰야 합니다.
4단계: 데이터 저장
그런 다음 텔레메트리 데이터를 수신하는 데 가장 적합한 저장 공간 솔루션을 선택해야 합니다. 다양한 데이터 유형에 대해 다양한 저장 공간을 구성할 수 있습니다. 또는 Elasticsearch와 클러스터 간 검색 및 복제를 사용하여 데이터 메시를 생성하는 분산 저장 공간 접근 방식을 취하는 것이 훨씬 더 간단할 수 있습니다.
다음으로, 다양한 유형의 데이터를 저장해야 하는 기간을 정의하는 보존 정책을 구현해야 합니다. 이를 결정하려면 해당 데이터에 적용되는 분석 요구 사항과 규제 요구 사항을 모두 고려하세요. 텔레메트리 데이터 저장에 관한 결정을 내릴 때 분석 성능에 대한 필요성과 저장 비용 사이의 균형을 맞춰야 하는 경우가 많습니다.
또 다른 고려 사항은 분할 및 색인입니다. 시간 기반 분할 및 색인과 같은 기능을 사용하여 쿼리 성능을 최적화하도록 저장 공간을 구성하려고 합니다. 데이터 손실을 방지하고 텔레메트리 데이터에 지속적으로 액세스할 수 있도록 백업 및 재해 복구도 마련되어 있어야 합니다.
5단계: 텔레메트리 데이터 분석
마지막으로, 텔레메트리 데이터를 분석하고 시각화할 수 있어야 합니다. 여기에는 주요 메트릭과 추세를 나타내는 대시보드 및 시각화 개발이 포함됩니다. 또한 메트릭이 사전 정의된 임계값을 초과하거나 이상 징후가 탐지될 때 알림을 받을 수 있도록 경보 시스템을 구현해야 합니다.
텔레메트리 데이터를 최대한 활용하려면 통계 분석 및 머신 러닝과 같은 고급 분석을 설정하여 패턴을 더 잘 식별하고 향후 추세를 예측하세요. 이는 다양한 데이터 유형의 인사이트를 결합하여 시스템 활동과 사용자 행동에 대한 포괄적인 보기를 얻을 때 특히 효과적입니다.
텔레메트리 데이터의 이점
데이터를 사용하여 효과적인 텔레메트리 프로세스를 구축함으로써 얻을 수 있는 몇 가지 주요 이점은 다음과 같습니다.
- 실시간 가시성: 중요한 메트릭과 로그를 추적하고 분석하면 현재 진행 중인 상황과 개선할 수 있는 부분에 대한 즉각적인 인사이트를 얻을 수 있습니다.
- 사전 예방적인 문제 탐지 및 해결: 텔레메트리 데이터를 사용하면 문제가 확대되기 전에 잠재적인 문제를 나타낼 수 있는 이상 현상과 패턴을 식별할 수 있습니다.
- 운영 효율성 향상: 자동화된 모니터링 및 데이터 수집을 구현하여 워크플로우를 간소화하고 생산성을 높일 수 있습니다.
- 더 빠른 문제 해결: 상세한 텔레메트리 데이터는 문제의 근본 원인을 신속하게 식별하여 평균 해결 시간(MTTR)을 단축할 수 있음을 의미합니다.
- 향상된 의사 결정: 필요한 모든 데이터를 사용 가능하게 함으로써 리소스 할당, 제품 개발 및 UX 개선에 대해 데이터에 기반한 의사 결정을 내리고 정보에 입각한 전략적 선택을 내릴 수 있습니다.
텔레메트리 데이터에서 모든 이점을 얻으려면 통합 데이터 플랫폼을 사용하여 텔레메트리 데이터를 통합하는 것이 중요합니다. 이렇게 하면 다양한 소스의 데이터를 통합하고 동시에 여러 소스를 가지고 작업해야 하는 부담을 줄일 수 있습니다.
이러한 통합은 위의 이점을 제공할 뿐만 아니라 확장성과 비용 효율성을 향상시키는 동시에 모든 데이터 처리에 걸쳐 일관성을 보장합니다. 이것이 바로 OpenTelementry Semantic Conventions(Otel SemConv)와 같은 개방형 표준이 중요한 이유이기도 합니다. 이는 다양한 도구와 플랫폼 간의 상호 운용성을 보장합니다.
텔레메트리 데이터의 과제
모든 기술과 마찬가지로 텔레메트리 데이터를 사용하면 이점과 과제가 모두 발생합니다. 이러한 어려움을 극복하는 방법은 이를 이해하고 극복 방법에 대한 계획을 세우는 것입니다.
- 데이터 보안 및 개인 정보 보호: 사용자 및 고객 데이터의 안전과 개인 정보 보호는 매우 중요합니다. 이는 좋은 관행일 뿐만 아니라 평판과 규제에 큰 영향을 미칠 수 있기 때문입니다. 이를 해결하려면 암호화, 액세스 제어, 포괄적인 로깅과 같은 강력한 보안 조치를 구현해야 합니다. 또한 민감한 정보를 보호하고 데이터 액세스를 엄격하게 제어해야 합니다.
- 기존 소프트웨어 통합: 유연한 데이터 수집을 구현하여 다양한 데이터 형식 및 소스에 대한 지원을 포함해야 합니다. 이를 통해 최신 시스템과 레거시 시스템의 텔레메트리 데이터를 통합 플랫폼에 통합할 수 있습니다.
- 비용 효율적인 저장 공간: 티어형 저장 공간 옵션과 정보 수명주기 관리(ILM) 정책을 통해 데이터 접근성을 보장하면서 저장 공간 비용을 최적화할 수 있습니다. Hot-warm-cold 아키텍처는 성능과 비용 효율성의 균형을 맞추는 데도 도움이 될 수 있습니다.
- 개방형 표준 지원: 상호 운용성을 보장하려면, 가능한 한 빨리 OpenTelemetry와 같은 개방형 표준을 사용하세요. 이를 통해 텔레메트리 인프라를 미래에 대비하고 다른 도구 및 플랫폼과 쉽게 통합할 수 있습니다.
Elastic을 이용한 OpenTelemetry
안내서 앞부분에서는 데이터 수집을 통합하고 텔레메트리 데이터 형식을 표준화하는 오픈 소스 옵저버빌리티 프레임워크인 OpenTelemetry를 다루었습니다. 또한 종속성을 피하고 대용량 데이터 처리에 맞게 확장성이 뛰어난 텔레메트리에 대한 공급업체 중립적 접근 방식을 제공합니다.
이는 Elastic의 개방형 표준에 대한 우리의 약속과 매우 밀접하게 일치합니다. 이것이 바로 우리가 OpenTelemetry에 오픈 소스 사양 Elastic Common Schema(ECS)를 기여한 이유입니다.
또한 우리는 더 광범위한 옵저버빌리티 기능의 일부로 Otel 형식의 데이터를 Elasticsearch에 원활하게 수집하는 기능을 포함합니다. 이는 고급 Elasticsearch 분석을 사용하고 Otel 데이터로 검색하고 옵저버빌리티 플랫폼을 미래에도 사용할 수 있다는 것을 의미합니다.
Elastic과 OpenTelemetry의 이러한 조합은 직면하게 될 많은 주요 과제를 해결합니다.
- 다양한 종류의 데이터 소스 통합
- 데이터 보안 및 개인 정보 보호 보장
- 레거시 소프트웨어 통합 관리
- 저장 공간 비용 최적화
- 다양한 데이터 유형 처리
- 상호 운용성을 위한 개방형 표준 지원