본문 바로가기
WIKI 기술 지식 베이스

추적

원문 보기 위키 갱신

추적 (Tracing)

출처: Tracing

본문

추적

Traefik Proxy의 추적(tracing)은 시스템 내부에서 작업의 흐름을 추적하게 해 줘요. 트레이스(trace)와 스팬(span)을 이용하면 성능 병목을 찾아내고 속도 저하를 일으키는 애플리케이션을 정확히 짚어 응답 시간을 효과적으로 최적화할 수 있어요.

Traefik Proxy는 트레이스를 내보낼 때 OpenTelemetry를 사용해요. OpenTelemetry는 오픈소스 관찰성 프레임워크인데요, 트레이스를 OpenTelemetry 컬렉터(collector)로 보내면 컬렉터가 이를 Jaeger, Zipkin, Datadog 같은 다양한 백엔드로 다시 내보낼 수 있어요.

설정 (Configuration)

Traefik Proxy에서 추적을 활성화하려면 정적 설정 파일이나(Helm 차트를 쓴다면) Helm 값에 추적을 설정해야 해요. 다음 예시는 HTTP를 통해 트레이스를 컬렉터로 보내도록 OpenTelemetry 프로바이더를 구성하는 방법을 보여줘요.

구조화 (YAML)

tracing:
  otlp:
    http:
      endpoint: http://myotlpcollector:4318/v1/traces

구조화 (TOML)

[tracing.otlp.http]
  endpoint = "http://myotlpcollector:4318/v1/traces"

Helm 차트 값 (Helm Chart Values)

# values.yaml
tracing:
  otlp:
    enabled: true
    http:
      enabled: true
      endpoint: http://myotlpcollector:4318/v1/traces

정보 (Info)

자세한 설정 옵션은 추적 참조 문서를 참고하세요.

라우터별 추적 (Per-Router Tracing)

특정 라우터에 대해 추적을 활성화하거나 비활성화할 수 있어요. 특정 라우트에서는 추적을 끄면서 전역으로는 켜두고 싶을 때 유용하죠.

특정 라우터에서 추적을 비활성화하는 예시를 볼게요:

구조화 (YAML)

http:
  routers:
    my-router:
      rule: "Host(`example.com`)"
      service: my-service
      observability:
        tracing: false

구조화 (TOML)

[http.routers.my-router.observability]
  tracing = false

Kubernetes

# ingressoute.yaml
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
  name: my-router
spec:
  routes:
    - kind: Rule
      match: Host(`example.com`)
      services:
        - name: my-service
          port: 80
      observability:
        tracing: false

Labels (레이블)

labels:
  - "traefik.http.routers.my-router.observability.tracing=false"

Tags (태그)

{
  // ...
  "Tags": [
    "traefik.http.routers.my-router.observability.tracing=false"
  ]
}

라우터에 observability 옵션이 정의되어 있지 않으면, 엔트리포인트의 관찰성 설정이나 전역 설정의 동작을 상속받아요.

더 알아보기 (Learn more)