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

라우터별 관측성

원문 보기 위키 갱신

라우터별 관측성 (Per-Router Observability)

출처: Per-Router Observability

본문

Observability

Traefik의 관측성 기능에는 로그, 액세스 로그, 메트릭, 트레이싱이 포함돼요. 이 옵션들을 전역으로 설정할 수도 있고, 라우터별이나 엔트리포인트별처럼 더 세부적인 레벨에서도 설정할 수 있어요.

기본적으로 라우터의 관측성 구성은 연결된 엔트리포인트에서 상속되며, 관측성 옵션으로 설정할 수 있어요. 다만 라우터가 자신만의 관측성 구성을 정의하면 이 기본값에서 벗어나게 돼요(opt-out).

ℹ️ 정보

라우터 레벨의 관측성을 활성화하려면 먼저 access-logs, tracing, metrics를 활성화해야 해요.

메트릭 레이어가 addEntryPointsLabels, addRoutersLabels, addServicesLabels 옵션으로 활성화되지 않은 경우, 라우터에 메트릭을 켜도 활성화되지 않아요.

AddInternals 옵션

기본적으로, 그리고 모든 신호 유형(access-logs, metrics, tracing)에 대해 Traefik은 내부 리소스에 대한 관측성을 비활성화해요. 아래에서 설명하는 관측성 옵션은 AddInternals 옵션과 충돌할 수 없으며, 무시돼요.

예를 들어, 라우터가 api@internal 서비스를 노출하고 metrics.AddInternals가 false라면, 라우터 관측성 구성이 메트릭을 활성화하더라도 이 서비스는 절대 메트릭을 만들지 않아요.

Configuration Example (설정 예시)

Structured (YAML)

http:
  routers:
    my-router:
      rule: "Path(`/foo`)"
      service: service-foo
      observability:
        metrics: false
        accessLogs: false
        tracing: false
        traceVerbosity: detailed

Structured (TOML)

[http.routers.my-router]
  rule = "Path(`/foo`)"
  service = "service-foo"

  [http.routers.my-router.observability]
    metrics = false
    accessLogs = false
    tracing = false
    traceVerbosity = "detailed"

Labels

labels:
  - "traefik.http.routers.my-router.rule=Path(`/foo`)"
  - "traefik.http.routers.my-router.service=service-foo"
  - "traefik.http.routers.my-router.observability.metrics=false"
  - "traefik.http.routers.my-router.observability.accessLogs=false"
  - "traefik.http.routers.my-router.observability.tracing=false"
  - "traefik.http.routers.my-router.observability.traceVerbosity=detailed"

Tags

{
  // ...
  "Tags": [
    "traefik.http.routers.my-router.rule=Path(`/foo`)",
    "traefik.http.routers.my-router.service=service-foo",
    "traefik.http.routers.my-router.observability.metrics=false",
    "traefik.http.routers.my-router.observability.accessLogs=false",
    "traefik.http.routers.my-router.observability.tracing=false",
    "traefik.http.routers.my-router.observability.traceVerbosity=detailed"
  ]
}

Configuration Options (설정 옵션)

| Field | Description | Default | Required | | accessLogs | accessLogs 옵션은 라우터가 액세스 로그를 생성할지 제어해요. | true | No | | metrics | metrics 옵션은 라우터가 메트릭을 생성할지 제어해요. | true | No | | tracing | tracing 옵션은 라우터가 트레이스를 생성할지 제어해요. | true | No | | traceVerbosity | traceVerbosity 옵션은 라우터의 트레이싱 상세 수준을 제어해요. 가능한 값: minimal(기본값), detailed. 설정하지 않으면 entryPoint에서 값을 상속받아요. | minimal | No |

traceVerbosity

observability.traceVerbosity는 라우터의 트레이싱 상세 수준을 정의해요.

가능한 값은 다음과 같아요:

  • minimal: 라우터가 처리하는 각 요청에 대해 서버 span 하나와 클라이언트 span 하나를 생성해요.

  • detailed: 라우터가 처리하는 각 요청에 대해 실행되는 각 미들웨어별로 추가 span을 생성해요.

더 알아보기 (Learn more)