imqa.document

네트워크 연결성 계측

@imqa/instrumentation-connectivity

NPM Version NPM Last Update NPM Unpacked Size npm package minimized gzipped size NPM Downloads NPM Type Definitions

개요

연결성 계측은 웹 애플리케이션의 네트워크 연결 상태와 인터넷 연결성 변화를 자동으로 감지하고 모니터링하는 기능을 제공합니다. 온라인/오프라인 상태, 연결 품질, 네트워크 타입 변경 등을 실시간으로 추적하여 네트워크 환경에 따른 사용자 경험을 분석할 수 있습니다.

주요 기능

연결 상태 모니터링

  • 온라인/오프라인 상태 변화 감지
  • 네트워크 연결 품질 측정
  • 연결 속도 및 대역폭 추정

네트워크 타입 감지

  • WiFi, 셀룰러, 이더넷 등 연결 타입 식별
  • 네트워크 변경 시점 추적
  • 데이터 사용량 최적화 지원

연결성 기반 적응

  • 네트워크 상태에 따른 성능 최적화
  • 오프라인 모드 지원을 위한 데이터
  • 사용자 경험 개선을 위한 인사이트

계측 범위

연결성 계측은 다음과 같은 네트워크 이벤트를 추적합니다:

  • 연결 상태: 온라인, 오프라인, 연결 불안정
  • 네트워크 타입: WiFi, 셀룰러(3G/4G/5G), 이더넷
  • 연결 품질: 지연시간, 처리량, 패킷 손실
  • 연결 변경: 네트워크 전환 및 재연결 이벤트

주요 속성

리소스 속성

리소스 섹션은 서비스와 환경을 설명하는 속성을 포함합니다:

속성설명
service.nameTelemetry를 생성하는 서비스의 이름
service.version서비스 버전
service.namespace서비스 네임스페이스
deployment.environment.name배포 환경
telemetry.sdk.languageTelemetry SDK의 프로그래밍 언어
telemetry.sdk.nameTelemetry SDK의 이름
telemetry.sdk.versionTelemetry SDK의 버전
process.runtime.name런타임 이름 (예: "browser")
os.name운영체제 이름
os.version운영체제 버전
imqa.browser.device디바이스 타입
imqa.browser.name브라우저 이름
imqa.browser.version브라우저 전체 버전
imqa.browser.version_major브라우저 메이저 버전
service.key서비스 식별 키
imqa.agent.versionIMQA 에이전트 버전
rum.versionRUM (Real User Monitoring) 버전
rum.scriptInstanceRUM 스크립트 인스턴스 식별자
session.id사용자 세션 식별자

인스트루멘테이션 범위

연결성 Telemetry는 주로 다음과 같은 인스트루멘테이션 범위를 통해 캡처됩니다:

  • @imqa/instrumentation-connectivity: 브라우저의 네트워크 연결 상태 변경 캡처

연결성 스팬

각 스팬은 브라우저에서 발생하는 연결 상태 변경을 나타내며, 다음과 같은 내용을 포함합니다:

  • traceId: 트레이스의 고유 식별자
  • spanId: 스팬의 고유 식별자
  • name: 작업의 이름 (일반적으로 "connectivity")
  • kind: 스팬의 타입 (INTERNAL = 1)
  • startTimeUnixNano: 에포크 이후의 연결 상태 변경 시간 (나노초)
  • endTimeUnixNano: 종료 시간 (순간적 이벤트의 경우 시작 시간과 동일) (나노초)
  • status: 결과 상태 (OK = 0, ERROR = 1, UNSET = 2)

연결성 스팬 속성

각 연결성 스팬은 다음과 같은 속성을 포함합니다:

속성타입설명
location.hrefstring현재 페이지 URL
environmentstring환경 이름
deployment.environmentstring배포 환경
screen.namestring화면/페이지 이름
screen.typestring화면/페이지 타입
session.idstring사용자 세션 식별자
url.fullstring완전한 URL
onlineboolean네트워크 연결 상태 (true = 온라인, false = 오프라인)
componentstring인스트루멘테이션 컴포넌트 이름
span.typestring스팬 타입 (예: "connectivity")

사용 방법

이 스키마는 IMQA 모니터링 시스템으로 Telemetry 데이터를 처리하고 저장하기 전에 연결성 Telemetry 데이터를 검증하는 데 사용됩니다. 이는 모든 필수 필드가 올바르게 포함되어 있는지 확인합니다.

계측 설정

(boolean 또는 InstrumentationConfig, 선택)

네트워크 연결 상태 계측을 활성화하거나 비활성화합니다. true로 설정하면 네트워크 상태(온라인/오프라인 변화)가 자동으로 계측됩니다.

interface InstrumentationConfig {
  enabled?: boolean;
}

예시

유효한 연결성 Telemetry 객체는 다음과 같은 내용을 포함합니다:

  • 서비스, 브라우저 및 환경을 식별하는 리소스 정보
  • 연결 상태 변경을 나타내는 하나 이상의 스팬
  • 연결 상태(온라인/오프라인)에 대한 상세 정보를 포함하는 각 스팬

연결 상태 변경을 모니터링하면 네트워크 상태가 불안정할 때의 사용자 경험을 이해하는 데 도움이 됩니다. 이러한 메트릭은 오프라인이나 간헐적인 네트워크 환경에서 작동해야 하는 애플리케이션에 매우 유용합니다.

데이터는 다양한 Telemetry 수집 및 분석 도구와 호환되는 OpenTelemetry 프로토콜 형식을 따릅니다.