라우터별 관측성
라우터별 관측성 (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을 생성해요.