용어집

오픈텔레메트리(OpenTelemetry)에서 사용되는 텔레메트리 관련 용어의 정의와 표기 규칙

이 용어집은 오픈텔레메트리(OpenTelemetry) 프로젝트에서 새롭게 정의된 용어와 개념을 설명하고, 옵저버빌리티(observability) 분야에서 일반적으로 사용되는 용어가 오픈텔레메트리에서 어떤 의미로 사용되는지 명확히 설명한다.

또한 필요한 경우 철자 및 대소문자 표기에 대한 규칙도 함께 설명한다. 예를 들어 오픈텔레메트리OTel을 참고한다.

용어

집계(Aggregation)

프로그램 실행 중 특정 시간 구간 동안 발생한 여러 측정값을 결합하여, 해당 측정값에 대한 정확한 통계값 또는 추정 통계값을 생성하는 과정이다. 메트릭 데이터 소스에서 사용된다.

API

애플리케이션 프로그래밍 인터페이스(Application Programming Interface)이다. 오픈텔레메트리 프로젝트에서는 각 데이터 소스별로 텔레메트리 데이터가 생성되는 방식을 정의하는 데 사용된다.

애플리케이션

최종 사용자(end user) 또는 다른 애플리케이션을 위해 설계된 하나 이상의 서비스를 의미한다.

APM

애플리케이션 성능 모니터링(Application Performance Monitoring)은 소프트웨어 애플리케이션과 그 성능(속도, 신뢰성, 가용성 등)을 모니터링하여 문제를 탐지하고, 경고(alert)를 제공하며, 근본 원인(root cause)을 파악하기 위한 도구와 기능을 제공하는 것을 의미한다.

속성(Attribute)

메타데이터에 대한 오픈텔레메트리 용어이다. 텔레메트리를 생성하는 엔터티에 키-값 형태의 정보를 추가한다. 시그널리소스 전반에서 사용된다. attribute 스펙을 참고한다.

자동 계측(Instrumentation)

최종 사용자가 애플리케이션의 소스 코드를 수정하지 않고도 텔레메트리를 수집할 수 있는 방법을 의미한다. 구현 방식은 프로그래밍 언어에 따라 다르며, 예를 들어 바이트코드 주입(bytecode injection)이나 몽키 패칭(monkey patching)과 같은 기법이 사용된다.

배기지(Baggage)

이벤트와 서비스 간의 인과 관계(causal relationship)를 확립하는 데 도움이 되도록 메타데이터를 전파(propagate)하기 위한 메커니즘이다. baggage 스펙을 참고한다.

카디널리티(Cardinality)

주어진 속성 또는 속성 집합이 가질 수 있는 고유한 값의 개수를 의미한다. 카디널리티가 높다는 것은 고유한 값이 많다는 의미이며, 이는 텔레메트리 백엔드의 성능 및 저장소 요구사항, 그리고 메트릭 SDK가 사용하는 메모리에 영향을 줄 수 있다. 예를 들어, user_id 속성은 높은 카디널리티를 가지는 반면, "200", "404", "500"과 같은 값을 갖는 status_code 속성은 낮은 카디널리티를 가진다.

카디널리티 제한(Cardinality limit)

메트릭 SDK가 단일 메트릭 스트림에 대해 추적하는 고유한 속성 조합의 개수를 제한하기 위한 설정 가능한 최댓값이며, 메모리 사용량을 제한하는 데 사용된다. 제한에 도달하면, 이후의 조합은 otel.metric.overflow=true 속성으로 식별되는 단일 오버플로우 데이터 포인트로 집계된다. 카디널리티 제한을 참고한다.

클라이언트 라이브러리

계측된 라이브러리를 참고한다.

클라이언트 사이드 앱

애플리케이션의 구성 요소로, 사설 인프라(private infrastructure) 내부에서 실행되지 않으며 일반적으로 최종 사용자(end-user)가 직접 사용하는 애플리케이션을 의미한다. 클라이언트 측 애플리케이션의 예로는 브라우저 애플리케이션, 모바일 애플리케이션, 그리고 IoT 장치에서 실행되는 애플리케이션이 있다.

컬렉터(Collector)

오픈텔레메트리 컬렉터 또는 줄여서 컬렉터는 텔레메트리 데이터를 수신(receive), 처리(process), 내보내기(export)하기 위한 벤더 중립적인(vendor-agnostic) 구현체이다. 에이전트(agent) 또는 게이트웨이(gateway)로 배포할 수 있는 단일 바이너리로 제공된다.

표기 규칙: 영문에서 오픈텔레메트리 컬렉터를 지칭할 때는 항상 “Collector” 표기를 대문자로 표기한다. 형용사로 사용하는 경우에는 “Collector"만 사용한다. 예를 들어, “Collector configuration"과 같이 표기한다.

Contrib

여러 계측 라이브러리컬렉터는 핵심 기능(core capabilities) 집합을 제공하며, 벤더별 Exporter를 포함한 비핵심 기능(non-core capabilities)을 위한 별도의 contrib 저장소(repository)도 제공한다.

컨텍스트 전파

모든 데이터 소스트랜잭션의 수명 주기 전반에 걸쳐 상태를 저장하고 데이터에 접근하기 위한 공통 컨텍스트 메커니즘을 공유할 수 있도록 한다. 컨텍스트 전파 스펙을 참고한다.

DAG

방향성 비순환 그래프(Directed Acyclic Graph)

데이터 소스

시그널을 참고한다.

차원(Dimension)

메트릭에서 사용되는 용어이다. 속성을 참고한다.

분산 트레이싱

애플리케이션을 구성하는 서비스들이 처리하는 단일 요청의 진행 과정을 추적하는 것을 트레이스라고 한다. 분산 트레이스는 프로세스, 네트워크 및 보안 경계를 가로질러 추적된다. 분산 트레이싱을 참고한다.

배포판

커스터마이징(customization)이 적용된 업스트림 오픈텔레메트리 저장소(repository)를 감싸는 래퍼(wrapper)이다. 배포판을 참고한다.

엔티티(Entity)

물리적 또는 논리적 객체를 식별하고 설명하는 속성의 집합이다. 엔티티는 일반적으로 텔레메트리와 연관된다. 예를 들어, CPU 엔터티는 물리적 CPU를 설명하며, 서비스 엔터티는 HTTP 또는 기타 서비스를 구성하는 프로세스의 논리적 그룹을 설명한다.

이벤트

이벤트는 이벤트 이름과 잘 알려진 구조(well-known structure)를 갖는 로그 레코드이다. 예를 들어, 오픈텔레메트리의 브라우저 이벤트는 특정 명명 규칙(naming convention)을 따르며 공통된 구조 내에 특정 데이터를 포함한다.

익스포터(Exporter)

텔레메트리 데이터를 소비자(consumer)에게 전송하는 기능을 제공한다. 익스포터는 푸시(push) 기반 또는 풀(pull) 기반일 수 있다.

필드

로그 레코드에서 사용하는 용어이다. 속성리소스를 포함한 정의된 필드를 통해 메타데이터를 추가할 수 있다. 심각도(severity) 및 Trace 정보와 같은 다른 필드도 Metadata로 간주될 수 있다. 필드 스펙를 참고한다.

gRPC

고성능 오픈 소스 범용 RPC 프레임워크이다. gRPC를 참고한다.

HTTP

하이퍼텍스트 전송 프로토콜(Hypertext Transfer Protocol)의 약자이다.

계측된 라이브러리

트레이스, 메트릭, 로그와 같은 텔레메트리 시그널이 수집되는 대상 라이브러리를 의미한다. 계측된 라이브러리를 참고한다.

계측 라이브러리

특정 계측 라이브러리에 대한 계측(instrumentation)을 제공하는 라이브러리를 의미한다. 해당 라이브러리에 오픈텔레메트리 계측 기능이 내장되어 있는 경우, 계측된 라이브러리계측 라이브러리는 동일한 라이브러리일 수 있다. 라이브러리 명세를 참고한다.

JSON

JavaScript Object Notation의 약어이다.

레이블

메트릭에서 사용하는 용어이다. 메타데이터를 참고한다.

언어

프로그래밍 언어이다.

라이브러리

인터페이스를 통해 호출되는, 언어별로 구현된 기능의 집합이다.

로그

때로는 로그 레코드의 집합을 의미하는 데 사용된다.

하지만 로그가 단일 로그 레코드를 의미하는 경우도 있으므로 모호할 수 있다. 의미가 모호할 수 있는 경우에는 로그 레코드와 같은 추가 수식어를 사용하는 것이 좋다. 로그를 참고한다.

로그 레코드

타임스탬프(timestamp)와 심각도(severity)를 포함하는 데이터 기록이다. 트레이스와 연관된 경우 트레이스 ID스팬 ID를 포함할 수도 있다. 로그 레코드를 참고한다.

메타데이터

텔레메트리를 생성하는 엔터티에 추가되는 키-값 쌍이다. 예를 들어 foo="bar"가 있다. 오픈텔레메트리에서는 이러한 쌍을 속성이라고 부른다. 또한 메트릭에는 차원레이블이 있으며, 로그에는 필드가 있다.

메트릭

메타데이터와 함께 시계열(time series) 형태로 데이터 포인트를 기록한다. 데이터 포인트는 원시 측정값(raw measurements)일 수도 있고, 미리 정의된 집계(predefined aggregation) 결과일 수도 있다. 메트릭을 참고한다.

OC

OpenCensus의 약자이다.

옵저버빌리티 백엔드

텔레메트리 데이터를 수신(receive), 처리(process), 저장(store), 조회(query)하는 역할을 담당하는 옵저버빌리티 플랫폼의 구성 요소이다. 예시로는 JaegerPrometheus와 같은 오픈 소스 도구와 다양한 상용 제품이 있다. 오픈텔레메트리 자체는 옵저버빌리티 백엔드가 아니다.

옵저버빌리티 프론트엔드

텔레메트리 데이터를 시각화하고 분석하기 위한 사용자 인터페이스를 제공하는 옵저버빌리티 플랫폼의 구성 요소이다. 특히 상용 제품의 경우, 옵저버빌리티 백엔드의 일부로 제공되는 경우가 많다.

OpAMP

Open Agent Management Protocol의 약자이다.

표기 규칙: 설명이나 지침에서는 OPAMP 또는 opamp가 아닌 OpAMP로 표기한다.

OpenCensus

오픈텔레메트리의 전신(predecessor) 프로젝트이다. 자세한 내용은 역사를 참고한다.

오픈텔레메트리(OpenTelemetry)

OpenTracingOpenCensus 프로젝트의 통합을 통해 탄생한 오픈텔레메트리(OpenTelemetry)는 이 웹사이트의 주제이며, API, SDK, 그리고 도구들의 집합이다. 이를 사용하여 계측을 수행하고, 메트릭, 로그, 트레이스와 같은 텔레메트리 데이터를 생성(generate), 수집(collect)내보내기(export)할 수 있다.

표기 규칙: OpenTelemetry는 항상 하이픈 없이 하나의 단어로 표기하며, 위와 같이 대문자와 소문자를 구분하여 표기해야 한다.

OpenTracing

오픈텔레메트리의 전신(predecessor) 프로젝트이다. 자세한 내용은 역사를 참고한다.

OT

OpenTracing의 약자이다.

OTel

OpenTelemetry의 약자이다.

표기: OTEL이 아닌 OTel로 표기한다.

OTelCol

오픈텔레메트리 컬렉터의 약자이다.

OTEP

OpenTelemetry Enhancement Proposal의 약자이다.

표기 규칙: 복수형으로 사용할 때는 “OTEPs"로 표기한다. 설명 문서에서는 OTep 또는 otep와 같이 표기하지 않는다.

OTLP

오픈텔레메트리 프로토콜의 약자이다.

전파자(Propagators)

스팬의 스팬 컨텍스트(span context) 및 배기지와 같은 특정 텔레메트리 데이터 부분을 직렬화(serialize)하고 역직렬화(deserialize)하는 데 사용된다. 전파자를 참고한다.

Proto

언어에 독립적인 인터페이스 타입이다. opentelemetry-proto를 참고한다.

리시버(Receiver)

텔레메트리 데이터를 수신하는 방법을 정의하기 위해 컬렉터에서 사용하는 용어이다. 리시버는 푸시(push) 기반 또는 풀(pull) 기반일 수 있다. 리시버를 참고한다.

요청

분산 트레이싱을 참고한다.

리소스

텔레메트리를 생성하는 물리적 또는 논리적 객체를 식별하거나 설명하는 엔티티 또는 속성의 집합이다.

REST

표현 상태 전송(Representational State Transfer)의 약자이다.

RPC

원격 프로시저 호출(Remote Procedure Call)의 약자이다.

샘플링

내보내는(export) 데이터의 양을 제어하기 위한 메커니즘이다. 가장 일반적으로 트레이싱 데이터 소스와 함께 사용된다. 샘플링을 참고한다.

SDK

소프트웨어 개발 키트(Software Development Kit)의 약자이다. 오픈텔레메트리 API를 구현하는 텔레메트리 라이브러리를 의미한다.

시맨틱 컨벤션

벤더 중립적(vendor-agnostic)인 텔레메트리 데이터를 제공하기 위해 메타데이터의 표준 이름과 값을 정의한다.

서비스

애플리케이션의 구성 요소이다. 일반적으로 고가용성(high availability) 및 확장성(scalability)을 위해 하나의 서비스에 대해 여러 인스턴스가 배포된다. 또한 서비스는 여러 위치에 배포될 수 있다.

시그널

트레이스, 메트릭, 로그 중 하나를 가리킨다. 시그널을 참고한다.

스팬(Span)

트레이스 내의 단일 작업(operation)을 나타낸다. 스팬을 참고한다.

스팬 링크는 인과 관계가 있는 스팬 간의 연결이다. 자세한 내용은 스팬 간의 링크링크 지정을 참고한다.

명세

모든 구현체가 따라야 하는 언어 간 공통 요구사항과 기대사항을 설명한다. 명세을 참고한다.

상태

작업의 결과를 나타낸다. 주로 오류 발생 여부를 나타내는 데 사용된다. 상태를 참고한다.

태그

메타데이터를 참고한다.

트레이스

스팬 간의 엣지(edge)가 부모-자식 관계로 정의된 스팬DAG이다. 트레이스를 참고한다.

트레이서

스팬을 생성하는 역할을 담당한다. 트레이서를 참고한다.

트랜잭션

분산 트레이싱을 참고한다.

zPages

외부 익스포터의 프로세스 내(in-process) 대안이다. 포함된 경우, 백그라운드에서 트레이스 및 메트릭 정보를 수집하고 집계하며, 이 데이터는 요청 시 웹 페이지를 통해 제공된다. zPages를 참고한다.