| GaonIT Cloud — 호스팅 & 클라우드
가온IT

트레이싱(APM)

개발자가 사랑하는 호스팅 & 클라우드. 지금 바로 시작하세요.

트레이싱(APM)

분산 시스템의 요청 흐름을 Trace/Span 단위로 추적해 병목 지점과 오류 원인을 빠르게 찾습니다. OpenTelemetry 기반 자동/수동 계측, 동적 샘플링, 로그·메트릭과의 상관분석을 지원합니다. 요금은 별도문의로 안내합니다.

🗺️ 서비스 맵
서비스 간 호출 관계를 자동으로 도식화하여 병목/오류 구간을 한눈에 파악합니다.
⏱️ 병목 탐지
p95/p99 지연, 슬로우 스팬, 외부 의존성(DB/캐시/HTTP) 시간을 분해해서 표시합니다.
🎛️ 유연한 샘플링
헤드/테일/동적 샘플링으로 비용을 제어하면서 인사이트를 유지합니다.
🔗 상관분석
Trace ID로 로그·메트릭과 연결해 원인 파악 시간을 단축합니다.
트레이스 구성요소
항목 설명 예
Trace 요청 전체의 단일 추적 단위 주문 API 전체 호출
Span Trace를 구성하는 세부 작업 DB 쿼리, 외부 HTTP 호출
Attributes 키/값 메타데이터 db.system=mysql, http.method=GET
Events 스팬 타임라인의 순간 이벤트 리트라이, 타임아웃 발생
Links 다중 부모/비동기 상호 참조 큐 기반 비동기 워크플로
Status 성공/오류 코드 STATUS_ERROR + 예외 메시지
Resource 서비스/환경 정보 service.name, deployment.env
인스트루멘테이션(OpenTelemetry)
자동 계측 — 프레임워크/라이브러리(HTTP, gRPC, DB, 메시징) 자동 스팬 생성.
수동 계측 — 커스텀 코드에 스팬/이벤트/속성 추가.
컨텍스트 전파 — W3C traceparent, baggage 헤더 사용.
리소스 태그 — service.name, deployment.environment, service.version.
샘플링 전략
유형 특징 권장 활용
헤드 기반 요청 진입 시 확률로 결정 트래픽이 많은 서비스의 기본
테일 기반 종료 시 지연/오류 기준으로 보존 에러/슬로우 중심의 가성비 운영
동적 샘플링 엔드포인트/상태/사용자 등 조건별 가중 핵심 경로 상시 보존 + 일반 경로 샘플
수집/전송

Agent/Collector 아키텍처를 권장합니다. 애플리케이션은 OTLP로 로컬/사내 Collector에 전송하고, Collector가 배치/필터링/마스킹/리밋 후 백엔드(APM 스토어)로 전달합니다.

애플리케이션 → Collector
# 공통 환경변수(OTLP/HTTP 예시)
OTEL_SERVICE_NAME=orders-api
OTEL_RESOURCE_ATTRIBUTES=deployment.environment=prod,service.version=1.4.2
OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4318
OTEL_TRACES_SAMPLER=parentbased_traceidratio
OTEL_TRACES_SAMPLER_ARG=0.1
Collector 파이프라인 예시
receivers:
  otlp:
    protocols:
      http:
exporters:
  logging: {}
  otlphttp:
    endpoint: https://apm-backend.example.com
processors:
  batch: {}
  memory_limiter:
    check_interval: 5s
    limit_mib: 512
service:
  pipelines:
    traces:
      receivers: [otlp]
      processors: [memory_limiter, batch]
      exporters: [logging, otlphttp]
시각화/분석 기능
기능 설명
타임라인/Flamegraph 스팬 중첩·병렬 구간 시각화, 병목 지점 강조
에러 분석 예외/상태코드 기준 필터, 최근 회귀 감지
서비스 맵 서비스 간 호출 그래프, 실패율/지연 오버레이
슬로우 쿼리 DB 유형별 상위 N 쿼리, 바인딩 파라미터 마스킹
SLO/경보 지연 p95, 오류율, 트레이스 수 급증/급감 알림
상관분석 — Logs · Metrics · Traces
로그 상관 — 애플리케이션 로그에 trace_id, span_id를 주입하여 트레이스 ↔ 로그를 상호 이동.
메트릭 상관 — 요청/오류율, 레이턴시 메트릭에서 이상 감지 시 관련 트레이스로 드릴다운.
컨텍스트 주입 — W3C 헤더를 역방향 프록시/게이트웨이에서도 보존.
Node.js (Express) — 최소 예시
// 1) 패키지: npm i @opentelemetry/api @opentelemetry/sdk-node @opentelemetry/auto-instrumentations-node @opentelemetry/exporter-trace-otlp-http express
import express from 'express';
import { NodeSDK } from '@opentelemetry/sdk-node';
import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';

const sdk = new NodeSDK({
  traceExporter: new OTLPTraceExporter({ url: process.env.OTEL_EXPORTER_OTLP_ENDPOINT + '/v1/traces' }),
  instrumentations: [getNodeAutoInstrumentations()],
});
await sdk.start();

const app = express();
app.get('/hello', async (_req, res) => { res.json({ ok: true }); });
app.listen(3000, () => console.log('up on :3000'));
Python (FastAPI) — 최소 예시
# pip install fastapi uvicorn opentelemetry-sdk opentelemetry-exporter-otlp opentelemetry-instrumentation-fastapi
from fastapi import FastAPI
from opentelemetry import trace
from opentelemetry.sdk.resources import Resource
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
from opentelemetry.instrumentation.fastapi import FastAPIInstrumentor

resource = Resource.create({"service.name": "checkout-api", "deployment.environment": "prod"})
provider = TracerProvider(resource=resource)
provider.add_span_processor(BatchSpanProcessor(OTLPSpanExporter(endpoint="http://otel-collector:4318/v1/traces")))
trace.set_tracer_provider(provider)

app = FastAPI()
FastAPIInstrumentor.instrument_app(app)

@app.get('/health')
async def health():
    return {"ok": True}
요금 안내
요금: 별도문의

에이전트 수, 초당 스팬 수, 보관기간, 데이터 전송량 및 분석 옵션에 따라 산정됩니다.

분산 트레이싱으로 장애 시간을 줄이세요
OpenTelemetry 기반으로 손쉽게 시작할 수 있도록 계측/수집/시각화를 도와드립니다.
도입 상담