分布式跟踪

    Dapr 使用 Zipkin 协议进行分布式跟踪和指标收集。 由于 Zipkin 协议无处不在,许多后端被开箱即用,例如 Stackdriver、 、 New Relic 等。 与 OpenTelemetry 收藏器组合,Dapr 可以导出跟踪到许多其他后端,包括但不局限于 Datadog, , Jaeger, and

    • 无需代码检测。 所有流量都会自动跟踪可配置的跟踪级别。
    • 跨微服务的一致跟踪行为。 跟踪是在 Dapr sidecar 上进行配置和管理的,因此它可以在服务之间保持一致,这些服务由不同的团队提供,并可能以不同的编程语言编写。
    • 可配置和可扩展。 通过利用 Zipkin API 和 OpenTelemetry 收集器,可以将 Dapr 追踪配置为与流行的追踪后端配合使用,包括客户可能有的自定义后端。

    Dapr 使用标准的 W3C 跟踪上下文标头。 对于 HTTP 请求,Dapr 使用 标头。 对于 gRPC 请求,Dapr 使用 标头。 当请求到达时,如果没有跟踪 ID ,Dapr 将创建一个新的跟踪 ID。 否则,它将沿调用链传递跟踪 ID。

    Read W3C distributed tracing for more background on W3C Trace Context.

    若要更改默认的跟踪行为,请使用配置文件(在自托管模式下)或 Kubernetes 配置对象(在 Kubernetes 模式下)。 例如,以下配置对象将采样率更改为 1(即每个Span都采样),并使用 Zipkin 协议将跟踪发送到位于 的 Zipkin 服务器:

    注意:将 更改为0 完全禁用追踪。