追踪¶
Traefik Proxy 的追踪功能可跟踪系统内的操作流转。借助 trace 和 span,您可以发现性能瓶颈,定位引起延迟的应用,从而有效优化响应时间。
Traefik Proxy 使用 OpenTelemetry 导出追踪数据。OpenTelemetry 是开源可观测性框架。您可以将追踪数据发送到 OpenTelemetry 收集器,再由收集器导出到 Jaeger、Zipkin、Datadog 等各种后端。
配置¶
要在 Traefik Proxy 中启用追踪,需要在静态配置文件中配置;如果使用 Helm chart,则可在 Helm values 中配置。以下示例演示如何配置 OpenTelemetry 提供者,通过 HTTP 将追踪数据发送到收集器。
tracing:
otlp:
http:
endpoint: http://myotlpcollector:4318/v1/traces[tracing.otlp.http]
endpoint = "http://myotlpcollector:4318/v1/traces"# values.yaml
tracing:
otlp:
enabled: true
http:
enabled: true
endpoint: http://myotlpcollector:4318/v1/traces提示
详细配置选项请参阅追踪参考文档。
按路由器配置追踪¶
您可以为特定路由器启用或禁用追踪。这适合在全局保持启用的同时,为特定路由关闭追踪。
下面是在特定路由器上禁用追踪的示例:
http:
routers:
my-router:
rule: "Host(`example.com`)"
service: my-service
observability:
tracing: false[http.routers.my-router.observability]
tracing = false# 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: falselabels:
- "traefik.http.routers.my-router.observability.tracing=false"{
// ...
"Tags": [
"traefik.http.routers.my-router.observability.tracing=false"
]
}如果路由器未定义 observability 选项,就会继承入口点的可观测性配置或全局配置。