<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>代码跟踪 on Dapr 文档库</title><link>https://v1-18.docs.dapr.io/zh-hans/operations/observability/tracing/</link><description>Recent content in 代码跟踪 on Dapr 文档库</description><generator>Hugo</generator><language>zh-hans</language><atom:link href="https://v1-18.docs.dapr.io/zh-hans/operations/observability/tracing/index.xml" rel="self" type="application/rss+xml"/><item><title>分布式追踪概述</title><link>https://v1-18.docs.dapr.io/zh-hans/operations/observability/tracing/tracing-overview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/zh-hans/operations/observability/tracing/tracing-overview/</guid><description>&lt;p>Dapr 通过 Open Telemetry (OTEL) 和 Zipkin 协议来实现分布式追踪。OTEL 是行业标准，并且是推荐使用的追踪协议。&lt;/p>
&lt;p>大多数可观测性工具支持 OTEL，包括：&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://cloud.google.com/products/operations">Google Cloud Operations&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://aws.amazon.com/xray/">AWS X-ray&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://newrelic.com">New Relic&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://azure.microsoft.com/services/monitor/">Azure Monitor&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.datadoghq.com">Datadog&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://zipkin.io/">Zipkin&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.jaegertracing.io/">Jaeger&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.signalfx.com/">SignalFX&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>下图展示了 Dapr（使用 OTEL 和 Zipkin 协议）如何与多个可观测性工具集成。&lt;/p>
&lt;img src="https://v1-18.docs.dapr.io/images/observability-tracing.png" width=1000 alt="Dapr 的分布式追踪">
&lt;h2 id="场景">场景&lt;/h2>
&lt;p>追踪用于服务调用和发布/订阅（pubsub）API。您可以在使用这些 API 的服务之间传递追踪上下文。追踪的使用有两种场景：&lt;/p>
&lt;ol>
&lt;li>Dapr 生成追踪上下文，您将追踪上下文传递到另一个服务。&lt;/li>
&lt;li>您生成追踪上下文，Dapr 将追踪上下文传递到服务。&lt;/li>
&lt;/ol>
&lt;h3 id="场景-1dapr-生成追踪上下文头">场景 1：Dapr 生成追踪上下文头&lt;/h3>
&lt;h4 id="顺序服务调用的传递">顺序服务调用的传递&lt;/h4>
&lt;p>Dapr 负责创建追踪头。然而，当有两个以上的服务时，您需要负责在它们之间传递追踪头。让我们通过示例来了解这些场景：&lt;/p>
&lt;h5 id="单一服务调用">单一服务调用&lt;/h5>
&lt;p>例如，&lt;code>服务 A -&amp;gt; 服务 B&lt;/code>。&lt;/p>
&lt;p>Dapr 在 &lt;code>服务 A&lt;/code> 中生成追踪头，然后从 &lt;code>服务 A&lt;/code> 传递到 &lt;code>服务 B&lt;/code>。不需要进一步的传递。&lt;/p>
&lt;h5 id="多个顺序服务调用">多个顺序服务调用&lt;/h5>
&lt;p>例如，&lt;code>服务 A -&amp;gt; 服务 B -&amp;gt; 传递追踪头到 -&amp;gt; 服务 C&lt;/code>，以及其他启用 Dapr 的服务。&lt;/p></description></item><item><title>W3C 跟踪上下文概述</title><link>https://v1-18.docs.dapr.io/zh-hans/operations/observability/tracing/w3c-tracing-overview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/zh-hans/operations/observability/tracing/w3c-tracing-overview/</guid><description>&lt;p>Dapr 采用 &lt;a href="https://opentelemetry.io/">Open Telemetry 协议&lt;/a>，该协议利用 &lt;a href="https://www.w3.org/TR/trace-context/">W3C 跟踪上下文&lt;/a> 来实现服务调用和发布/订阅消息的分布式跟踪。Dapr 生成并传播跟踪上下文信息，可以将其发送到可观测性工具进行可视化和查询。&lt;/p>
&lt;h2 id="背景">背景&lt;/h2>
&lt;p>分布式跟踪是一种由跟踪工具实现的方法，用于跟踪、分析和调试跨多个软件组件的事务。&lt;/p>
&lt;p>通常，分布式跟踪会跨越多个服务，因此需要一个唯一的标识符来标识每个事务。&lt;strong>跟踪上下文传播&lt;/strong>就是传递这种唯一标识符的过程。&lt;/p>
&lt;p>过去，不同的跟踪供应商各自实现自己的跟踪上下文传播方式。在多供应商环境中，这会导致互操作性的问题，例如：&lt;/p>
&lt;ul>
&lt;li>不同供应商收集的跟踪数据无法关联，因为没有共享的唯一标识符。&lt;/li>
&lt;li>跨越不同供应商边界的跟踪无法传播，因为没有统一的标识符集。&lt;/li>
&lt;li>中间商可能会丢弃供应商特定的元数据。&lt;/li>
&lt;li>云平台供应商、中间商和服务提供商无法保证支持跟踪上下文传播，因为没有标准可循。&lt;/li>
&lt;/ul>
&lt;p>以前，大多数应用程序由单一的跟踪供应商监控，并保持在单一平台提供商的边界内，因此这些问题没有显著影响。&lt;/p>
&lt;p>如今，越来越多的应用程序是分布式的，并利用多个中间件服务和云平台。这种现代应用程序的转变需要一个分布式跟踪上下文传播标准。&lt;/p>
&lt;p>&lt;a href="https://www.w3.org/TR/trace-context/">W3C 跟踪上下文规范&lt;/a> 定义了一种通用格式，用于交换跟踪上下文数据（称为跟踪上下文）。通过提供以下内容，跟踪上下文解决了上述问题：&lt;/p>
&lt;ul>
&lt;li>为单个跟踪和请求提供唯一标识符，允许将多个供应商的跟踪数据链接在一起。&lt;/li>
&lt;li>提供一种机制来转发供应商特定的跟踪数据，避免在单个事务中多个跟踪工具参与时出现断裂的跟踪。&lt;/li>
&lt;li>一个中间商、平台和硬件供应商可以支持的行业标准。&lt;/li>
&lt;/ul>
&lt;p>这种统一的跟踪数据传播方法提高了对分布式应用程序行为的可见性，促进了问题和性能分析。&lt;/p>
&lt;h2 id="w3c-跟踪上下文和头格式">W3C 跟踪上下文和头格式&lt;/h2>
&lt;h3 id="w3c-跟踪上下文">W3C 跟踪上下文&lt;/h3>
&lt;p>Dapr 使用标准的 W3C 跟踪上下文头。&lt;/p>
&lt;ul>
&lt;li>对于 HTTP 请求，Dapr 使用 &lt;code>traceparent&lt;/code> 头。&lt;/li>
&lt;li>对于 gRPC 请求，Dapr 使用 &lt;code>grpc-trace-bin&lt;/code> 头。&lt;/li>
&lt;/ul>
&lt;p>当请求到达时没有跟踪 ID，Dapr 会创建一个新的。否则，它会沿调用链传递跟踪 ID。&lt;/p>
&lt;h3 id="w3c-跟踪头">W3C 跟踪头&lt;/h3>
&lt;p>这些是 Dapr 为 HTTP 和 gRPC 生成和传播的特定跟踪上下文头。&lt;/p>

 &lt;!-- HTTP -->



 &lt;!-- gRPC -->


&lt;ul class="nav nav-tabs" id="tabs-0" role="tablist">
 &lt;li class="nav-item">
 &lt;button class="nav-link active"
 id="tabs-00-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-00" role="tab"
 data-td-tp-persist="http" aria-controls="tabs-00-00" aria-selected="true">
 HTTP
 &lt;/button>
 &lt;/li>&lt;li class="nav-item">
 &lt;button class="nav-link"
 id="tabs-00-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-01" role="tab"
 data-td-tp-persist="grpc" aria-controls="tabs-00-01" aria-selected="false">
 gRPC
 &lt;/button>
 &lt;/li>
&lt;/ul>

&lt;div class="tab-content" id="tabs-0-content">
 &lt;div class="tab-body tab-pane fade show active"
 id="tabs-00-00" role="tabpanel" aria-labelled-by="tabs-00-00-tab" tabindex="0">
 &lt;p>在从 HTTP 响应传播跟踪上下文头到 HTTP 请求时复制这些头：&lt;/p></description></item><item><title>配置 Dapr 发送分布式追踪数据</title><link>https://v1-18.docs.dapr.io/zh-hans/operations/observability/tracing/setup-tracing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/zh-hans/operations/observability/tracing/setup-tracing/</guid><description>&lt;div class="alert alert-primary" role="alert">
&lt;h4 class="alert-heading">注意&lt;/h4>

 建议在任何生产环境中启用 Dapr 的追踪功能。您可以根据运行环境配置 Dapr，将追踪和遥测数据发送到多种可观测性工具，无论是在云端还是本地。

&lt;/div>

&lt;h2 id="配置">配置&lt;/h2>
&lt;p>在 &lt;code>Configuration&lt;/code> 规范中的 &lt;code>tracing&lt;/code> 部分包含以下属性：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yml" data-lang="yml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">spec&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">tracing&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">samplingRate&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;1&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">otel&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">endpointAddress&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;myendpoint.cluster.local:4317&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">zipkin&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">endpointAddress&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;https://...&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>下表列出了追踪的属性：&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>属性&lt;/th>
 &lt;th>类型&lt;/th>
 &lt;th>描述&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;code>samplingRate&lt;/code>&lt;/td>
 &lt;td>string&lt;/td>
 &lt;td>设置追踪的采样率来启用或禁用追踪。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>stdout&lt;/code>&lt;/td>
 &lt;td>bool&lt;/td>
 &lt;td>如果为真，则会将更详细的信息写入追踪。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>otel.endpointAddress&lt;/code>&lt;/td>
 &lt;td>string&lt;/td>
 &lt;td>设置 Open Telemetry (OTEL) 目标主机名和可选端口。如果使用此项，则无需指定 &amp;lsquo;zipkin&amp;rsquo; 部分。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>otel.isSecure&lt;/code>&lt;/td>
 &lt;td>bool&lt;/td>
 &lt;td>指定连接到端点地址的连接是否加密。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>otel.protocol&lt;/code>&lt;/td>
 &lt;td>string&lt;/td>
 &lt;td>设置为 &lt;code>http&lt;/code> 或 &lt;code>grpc&lt;/code> 协议。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>zipkin.endpointAddress&lt;/code>&lt;/td>
 &lt;td>string&lt;/td>
 &lt;td>设置 Zipkin 服务器 URL。如果使用此项，则无需指定 &lt;code>otel&lt;/code> 部分。&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>要启用追踪，请使用配置文件（在 selfhost 模式下）或 Kubernetes 配置对象（在 Kubernetes 模式下）。例如，以下配置对象将采样率设置为 1（每个 span 都被采样），并使用 OTEL 协议将追踪发送到本地的 OTEL 服务器 localhost:4317。&lt;/p></description></item><item><title>操作指南：配置 New Relic 进行分布式追踪</title><link>https://v1-18.docs.dapr.io/zh-hans/operations/observability/tracing/newrelic/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/zh-hans/operations/observability/tracing/newrelic/</guid><description>&lt;h2 id="前提条件">前提条件&lt;/h2>
&lt;ul>
&lt;li>需要一个 &lt;a href="https://newrelic.com/signup?ref=dapr">New Relic 账户&lt;/a>，该账户永久免费，每月可免费处理 100 GB 的数据，包含 1 个完全访问用户和无限数量的基本用户。&lt;/li>
&lt;/ul>
&lt;h2 id="配置-dapr-追踪">配置 Dapr 追踪&lt;/h2>
&lt;p>Dapr 可以直接将其捕获的指标和追踪数据发送到 New Relic。最简单的方式是通过配置 Dapr，将追踪数据以 Zipkin 格式发送到 &lt;a href="https://docs.newrelic.com/docs/distributed-tracing/trace-api/report-zipkin-format-traces-trace-api/">New Relic 的 Trace API&lt;/a>。&lt;/p>
&lt;p>为了将数据集成到 New Relic 的 &lt;a href="https://newrelic.com/platform/telemetry-data-platform">Telemetry Data Platform&lt;/a>，您需要一个 &lt;a href="https://docs.newrelic.com/docs/apis/intro-apis/new-relic-api-keys/#insights-insert-key">New Relic Insights Insert API key&lt;/a>。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">apiVersion&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">dapr.io/v1alpha1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">kind&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">Configuration&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">metadata&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">appconfig&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">namespace&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">default&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">spec&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">tracing&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">samplingRate&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;1&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">zipkin&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">endpointAddress&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;https://trace-api.newrelic.com/trace/v1?Api-Key=&amp;lt;NR-INSIGHTS-INSERT-API-KEY&amp;gt;&amp;amp;Data-Format=zipkin&amp;amp;Data-Format-Version=2&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="查看追踪">查看追踪&lt;/h3>
&lt;p>New Relic 分布式追踪概览
&lt;img src="https://v1-18.docs.dapr.io/images/nr-distributed-tracing-overview.png" alt="New Relic Kubernetes Cluster Explorer App">&lt;/p>
&lt;p>New Relic 分布式追踪详情
&lt;img src="https://v1-18.docs.dapr.io/images/nr-distributed-tracing-detail.png" alt="New Relic Kubernetes Cluster Explorer App">&lt;/p></description></item><item><title>操作指南：设置 Zipkin 进行分布式追踪</title><link>https://v1-18.docs.dapr.io/zh-hans/operations/observability/tracing/zipkin/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/zh-hans/operations/observability/tracing/zipkin/</guid><description>&lt;h2 id="配置自托管模式">配置自托管模式&lt;/h2>
&lt;p>在自托管模式下，运行 &lt;code>dapr init&lt;/code> 时：&lt;/p>
&lt;ol>
&lt;li>系统会默认创建一个 YAML 文件，路径为 &lt;code>$HOME/.dapr/config.yaml&lt;/code>（Linux/Mac）或 &lt;code>%USERPROFILE%\.dapr\config.yaml&lt;/code>（Windows）。在执行 &lt;code>dapr run&lt;/code> 时，系统会默认引用该文件，除非您指定了其他配置：&lt;/li>
&lt;/ol>
&lt;ul>
&lt;li>config.yaml&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">apiVersion&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">dapr.io/v1alpha1&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">kind&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">Configuration&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">metadata&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">daprConfig&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">namespace&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">default&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">spec&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">tracing&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">samplingRate&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;1&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">zipkin&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">endpointAddress&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#4e9a06">&amp;#34;http://localhost:9411/api/v2/spans&amp;#34;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ol start="2">
&lt;li>运行 &lt;code>dapr init&lt;/code> 时，&lt;a href="https://hub.docker.com/r/openzipkin/zipkin/">openzipkin/zipkin&lt;/a> 的 Docker 容器会自动启动。您也可以手动启动：&lt;/li>
&lt;/ol>
&lt;p>使用 Docker 启动 Zipkin：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>docker run -d -p 9411:9411 openzipkin/zipkin
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ol start="3">
&lt;li>使用 &lt;code>dapr run&lt;/code> 启动应用程序时，默认会引用 &lt;code>$HOME/.dapr/config.yaml&lt;/code> 或 &lt;code>%USERPROFILE%\.dapr\config.yaml&lt;/code> 中的配置文件。您可以通过 Dapr CLI 的 &lt;code>--config&lt;/code> 参数来指定其他配置：&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>dapr run --app-id mynode --app-port &lt;span style="color:#0000cf;font-weight:bold">3000&lt;/span> node app.js
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="查看追踪">查看追踪&lt;/h3>
&lt;p>要查看追踪数据，请在浏览器中访问 http://localhost:9411，您将看到 Zipkin 的用户界面。&lt;/p></description></item><item><title>操作指南：为分布式追踪设置 Datadog</title><link>https://v1-18.docs.dapr.io/zh-hans/operations/observability/tracing/datadog/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/zh-hans/operations/observability/tracing/datadog/</guid><description>&lt;p>Dapr 捕获的指标和追踪信息可以通过 OpenTelemetry Collector 的 Datadog 导出器直接发送到 Datadog。&lt;/p>
&lt;h2 id="使用-opentelemetry-collector-和-datadog-配置-dapr-追踪">使用 OpenTelemetry Collector 和 Datadog 配置 Dapr 追踪&lt;/h2>
&lt;p>您可以使用 OpenTelemetry Collector 的 Datadog 导出器来配置 Dapr，为 Kubernetes 集群中的每个应用程序创建追踪，并将这些追踪信息收集到 Datadog 中。&lt;/p>
&lt;blockquote>
&lt;p>在开始之前，请先&lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/observability/tracing/otel-collector/open-telemetry-collector/#setting-opentelemetry-collector">设置 OpenTelemetry Collector&lt;/a>。&lt;/p>&lt;/blockquote>
&lt;ol>
&lt;li>
&lt;p>在 &lt;code>datadog&lt;/code> 导出器的配置部分，将您的 Datadog API 密钥添加到 &lt;code>./deploy/opentelemetry-collector-generic-datadog.yaml&lt;/code> 文件中：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">data&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">otel-collector-config&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">...&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">exporters&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">...&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">datadog&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">api&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">key&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">&amp;lt;YOUR_API_KEY&amp;gt;&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>运行以下命令以应用 &lt;code>opentelemetry-collector&lt;/code> 的配置。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-sh" data-lang="sh">&lt;span style="display:flex;">&lt;span>kubectl apply -f ./deploy/open-telemetry-collector-generic-datadog.yaml
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>设置一个 Dapr 配置文件以启用追踪，并部署一个使用 OpenTelemetry Collector 的追踪导出器组件。&lt;/p></description></item></channel></rss>