<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>OpenTelemetry</title><link>https://deploy-preview-9578--opentelemetry.netlify.app/zh/</link><description>Recent content on OpenTelemetry</description><generator>Hugo</generator><language>zh-CN</language><atom:link href="https://deploy-preview-9578--opentelemetry.netlify.app/zh/index.xml" rel="self" type="application/rss+xml"/><item><title>OBI Network Metrics configuration options</title><link>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/zero-code/obi/network/config/</link><pubDate>Mon, 06 Apr 2026 03:41:58 -0700</pubDate><guid>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/zero-code/obi/network/config/</guid><description>&lt;p&gt;Network metrics are configured under the &lt;code&gt;network&lt;/code&gt; property of the
&lt;a href="../../configure/options/"&gt;OBI Configuration YAML file&lt;/a&gt; or with a set of
environment variables prefixed as &lt;code&gt;OTEL_EBPF_NETWORK_&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Example YAML:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;network&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;enable&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;cidrs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="m"&gt;10.10.0.0&lt;/span&gt;&lt;span class="l"&gt;/24&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="m"&gt;10.0.0.0&lt;/span&gt;&lt;span class="l"&gt;/8&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="m"&gt;10.30.0.0&lt;/span&gt;&lt;span class="l"&gt;/16&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;attributes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;kubernetes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;enable&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;select&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;obi_network_flow_bytes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;include&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;k8s.src.owner.name&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;k8s.src.namespace&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;k8s.dst.owner.name&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;k8s.dst.namespace&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;src.cidr&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;dst.cidr&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;otel_metrics_export&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;endpoint&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;http://localhost:4318&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;In addition to the &lt;code&gt;network&lt;/code&gt; YAML section, OBI configuration requires an
endpoint to export the network metrics (in the previous example,
&lt;code&gt;otel_metrics_export&lt;/code&gt;, but it also accepts a
&lt;a href="../../configure/options/"&gt;Prometheus endpoint&lt;/a&gt;).&lt;/p&gt;</description></item><item><title>OBI global configuration properties</title><link>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/zero-code/obi/configure/options/</link><pubDate>Mon, 30 Mar 2026 12:18:35 +0200</pubDate><guid>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/zero-code/obi/configure/options/</guid><description>&lt;p&gt;OBI can be configured via environment variables or via a YAML configuration file
passed either with the &lt;code&gt;-config&lt;/code&gt; command-line argument or the
&lt;code&gt;OTEL_EBPF_CONFIG_PATH&lt;/code&gt; environment variable. Environment variables have
priority over the properties in the configuration file. For example, in the
following command line, the &lt;code&gt;OTEL_EBPF_LOG_LEVEL&lt;/code&gt; option overrides any
&lt;code&gt;log_level&lt;/code&gt; settings inside config.yaml:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Config argument:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;OTEL_EBPF_LOG_LEVEL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;debug obi -config /path/to/config.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Config environment variable:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;OTEL_EBPF_LOG_LEVEL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;debug &lt;span class="nv"&gt;OTEL_EBPF_CONFIG_PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/path/to/config.yaml obi
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Refer to the &lt;a href="../example/"&gt;example YAML configuration file&lt;/a&gt; for a configuration
file template.&lt;/p&gt;</description></item><item><title>代理</title><link>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/collector/deploy/agent/</link><pubDate>Mon, 30 Mar 2026 18:14:49 +0800</pubDate><guid>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/collector/deploy/agent/</guid><description>&lt;p&gt;代理 Collect 部署模式既包含采用 &lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/docs/specs/otel/protocol/"&gt;OpenTelemetry 协议（OTLP）&lt;/a&gt;并通过
OpenTelemetry SDK &lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/languages/"&gt;插桩&lt;/a&gt;的各类应用，
也包含使用 OTLP 导出器将遥测信号发送到与应用一起运行的 &lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/collector/"&gt;Collector&lt;/a&gt;
实例或与应用（例如边车或 DaemonSet）所在主机上的的其他 Collector。&lt;/p&gt;
&lt;p&gt;每个客户端 SDK 或下游 Collector 都会配置一个 Collector 位置：&lt;/p&gt;
&lt;img src="../../img/otel-agent-sdk.svg" alt="去中心化 Collector 部署概念"&gt;&lt;ol&gt;
&lt;li&gt;在应用中，SDK 被配置为将 OTLP 数据发送到 Collector。&lt;/li&gt;
&lt;li&gt;Collector 被配置为将遥测数据发送到一个或多个后端。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="example"&gt;示例&lt;a class="td-heading-self-link" href="#example" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;代理 Collector 部署模式的一个具体示例可能如下所示：你使用 OpenTelemetry Java SDK
手动为一个 &lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/languages/java/api/#meterprovider"&gt;Java 应用导出指标&lt;/a&gt;进行插桩。在应用的上下文中，你将
&lt;code&gt;OTEL_METRICS_EXPORTER&lt;/code&gt; 设置为 &lt;code&gt;otlp&lt;/code&gt;（这是默认值），并为 &lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/docs/specs/otel/protocol/exporter/"&gt;OTLP 导出器&lt;/a&gt;配置
Collector 的地址，例如（在 Bash 或 &lt;code&gt;zsh&lt;/code&gt; shell 中）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;OTEL_EXPORTER_OTLP_ENDPOINT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;http://collector.example.com:4318
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;在 &lt;code&gt;collector.example.com:4318&lt;/code&gt; 提供服务的 Collector 将被配置为：&lt;/p&gt;
 &lt;ul class="nav nav-tabs" id="tabs-0" role="tablist"&gt;
 &lt;li class="nav-item"&gt;
 &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="traces" aria-controls="tabs-00-00" aria-selected="true"&gt;
 Traces
 &lt;/button&gt;
 &lt;/li&gt;&lt;li class="nav-item"&gt;
 &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="metrics" aria-controls="tabs-00-01" aria-selected="false"&gt;
 Metrics
 &lt;/button&gt;
 &lt;/li&gt;&lt;li class="nav-item"&gt;
 &lt;button class="nav-link"
 id="tabs-00-02-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-02" role="tab"
 data-td-tp-persist="logs" aria-controls="tabs-00-02" aria-selected="false"&gt;
 Logs
 &lt;/button&gt;
 &lt;/li&gt;
&lt;/ul&gt;

&lt;div class="tab-content" id="tabs-0-content"&gt;
 &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"&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;receivers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;otlp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# 应用发送链路数据的 OTLP 接收器&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;protocols&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;http&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;endpoint&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0.0.0.0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;4318&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;processors&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;batch&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;exporters&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;otlp/jaeger&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# Jaeger 直接支持 OTLP&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;endpoint&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;https://jaeger.example.com:4317&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;service&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;pipelines&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;traces/dev&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;receivers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="l"&gt;otlp]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;processors&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="l"&gt;batch]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;exporters&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="l"&gt;otlp/jaeger]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="tab-body tab-pane fade"
 id="tabs-00-01" role="tabpanel" aria-labelled-by="tabs-00-01-tab" tabindex="0"&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;receivers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;otlp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# 应用发送指标的 OTLP 接收器&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;protocols&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;http&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;endpoint&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0.0.0.0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;4318&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;processors&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;batch&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;exporters&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;prometheusremotewrite&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# PRW 导出器，用于将指标导入到后端&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;endpoint&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;https://prw.example.com/v1/api/remote_write&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;service&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;pipelines&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;metrics/prod&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;receivers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="l"&gt;otlp]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;processors&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="l"&gt;batch]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;exporters&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="l"&gt;prometheusremotewrite]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="tab-body tab-pane fade"
 id="tabs-00-02" role="tabpanel" aria-labelled-by="tabs-00-02-tab" tabindex="0"&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;receivers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;otlp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# 应用发送日志的 OTLP 接收器&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;protocols&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;http&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;endpoint&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0.0.0.0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;4318&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;processors&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;batch&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;exporters&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;file&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# 文件导出器，用于将日志写入本地文件&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;path&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./app42_example.log&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;rotation&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;service&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;pipelines&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;logs/dev&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;receivers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="l"&gt;otlp]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;processors&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="l"&gt;batch]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;exporters&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="l"&gt;file]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;如果你想自己试一试，你可以查看端到端的 &lt;a href="https://github.com/open-telemetry/opentelemetry-java-docs/tree/main/otlp" target="_blank" rel="noopener" class="external-link"&gt;Java&lt;/a&gt; 或 &lt;a href="https://opentelemetry-python.readthedocs.io/en/stable/examples/metrics/instruments/README.html" target="_blank" rel="noopener" class="external-link"&gt;Python&lt;/a&gt; 示例。&lt;/p&gt;</description></item><item><title>Migrating from OpenCensus</title><link>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/compatibility/migration/opencensus/</link><pubDate>Thu, 19 Mar 2026 06:58:46 -0700</pubDate><guid>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/compatibility/migration/opencensus/</guid><description/></item><item><title>Migrating from OpenTracing</title><link>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/compatibility/migration/opentracing/</link><pubDate>Thu, 19 Mar 2026 06:58:46 -0700</pubDate><guid>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/compatibility/migration/opentracing/</guid><description>&lt;p&gt;Backward compatibility with &lt;a href="https://opentracing.io" target="_blank" rel="noopener" class="external-link"&gt;OpenTracing&lt;/a&gt; has been a priority for the
OpenTelemetry project from the start. To ease migration, OpenTelemetry supports
the use of both the OpenTelemetry &lt;em&gt;and&lt;/em&gt; OpenTracing APIs in the same codebase.
This allows OpenTracing instrumentation to be recorded using OpenTelemetry SDKs.&lt;/p&gt;
&lt;p&gt;To accomplish this, each OpenTelemetry SDK provides an &lt;strong&gt;OpenTracing shim&lt;/strong&gt;,
which acts as a bridge between the OpenTracing API and the OpenTelemetry SDK.
Note that OpenTracing shims are disabled by default.&lt;/p&gt;</description></item><item><title>Configure OBI export modes</title><link>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/zero-code/obi/configure/export-modes/</link><pubDate>Fri, 27 Feb 2026 08:18:31 -0800</pubDate><guid>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/zero-code/obi/configure/export-modes/</guid><description>&lt;p&gt;In Direct mode OBI pushes metrics and traces directly to a remote endpoint using
the OpenTelemetry protocol (OTLP).&lt;/p&gt;
&lt;p&gt;OBI can also expose a Prometheus HTTP endpoint ready to scrape, for example in
&lt;strong&gt;pull&lt;/strong&gt; mode.&lt;/p&gt;
&lt;p&gt;To use Direct mode requires configuration with authentication credentials. Set
the OTLP endpoint authentication credentials with these environment variables:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;OTEL_EXPORTER_OTLP_ENDPOINT&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OTEL_EXPORTER_OTLP_HEADERS&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To run in Direct mode using the Prometheus scrape endpoint, see the
&lt;a href="../options/"&gt;configuration documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="configure-and-run-obi"&gt;Configure and run OBI&lt;a class="td-heading-self-link" href="#configure-and-run-obi" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This tutorial assumes OBI and OTel Collector are running natively on the same
host, so there is no need to secure the traffic nor provide authentication in
the OTel Collector OTLP receiver.&lt;/p&gt;</description></item><item><title>Run OBI as a Docker container</title><link>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/zero-code/obi/setup/docker/</link><pubDate>Thu, 19 Feb 2026 16:15:55 +0100</pubDate><guid>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/zero-code/obi/setup/docker/</guid><description>&lt;p&gt;OBI can run a standalone Docker container that can instrument a process running
in another container.&lt;/p&gt;
&lt;p&gt;Find the latest image of OBI on
&lt;a href="https://hub.docker.com/r/otel/ebpf-instrument" target="_blank" rel="noopener" class="external-link"&gt;Docker Hub&lt;/a&gt; with the following
name:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;otel/ebpf-instrument:main
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The OBI container must be configured in following way:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;run as a &lt;strong&gt;privileged&lt;/strong&gt; container, or as a container with the &lt;code&gt;SYS_ADMIN&lt;/code&gt;
capability (but this last option might not work in some container
environments)&lt;/li&gt;
&lt;li&gt;Use the &lt;code&gt;host&lt;/code&gt; PID namespace to allow accessing to the processes in other
containers.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="image-signing-and-verification"&gt;Image Signing and Verification&lt;a class="td-heading-self-link" href="#image-signing-and-verification" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The OBI container image is signed using
&lt;a href="https://docs.sigstore.dev/cosign/signing/overview/" target="_blank" rel="noopener" class="external-link"&gt;Cosign&lt;/a&gt; with ephemeral
keys, authenticated via the OIDC (OpenID Connect) protocol in GitHub Actions.
This ensures the authenticity and integrity of the container published by the
OpenTelemetry project.&lt;/p&gt;</description></item><item><title>快速入门</title><link>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/platforms/kubernetes/getting-started/</link><pubDate>Fri, 30 Jan 2026 17:29:44 +0800</pubDate><guid>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/platforms/kubernetes/getting-started/</guid><description>&lt;p&gt;本页面将引导你以最快的方式开始使用 OpenTelemetry 监控你的 Kubernetes 集群。
它将专注于收集 Kubernetes 集群、节点、Pod 和容器的指标和日志，以及使集群支持发送 OTLP 数据的服务。&lt;/p&gt;
&lt;p&gt;如果你想在 Kubernetes 中看到 OpenTelemetry 的实际应用，最好的起点是 &lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/demo/kubernetes-deployment/"&gt;OpenTelemetry 演示&lt;/a&gt;。
该演示旨在说明 OpenTelemetry 的实现，但并非用于展示如何监控 Kubernetes 本身。
完成本教程后，安装演示并查看所有监控如何响应活跃工作负载会是一个有趣的实验。&lt;/p&gt;
&lt;p&gt;如果你想开始从 Prometheus 迁移到 OpenTelemetry，或者对使用 OpenTelemetry Collector 收集 Prometheus 指标感兴趣，请参阅
&lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/platforms/kubernetes/collector/components/#prometheus-receiver"&gt;Prometheus 接收器&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id="overview"&gt;概述&lt;a class="td-heading-self-link" href="#overview" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Kubernetes 通过多种不同方式暴露大量重要的遥测数据。
它有许多不同对象的日志、事件、指标以及其工作负载生成的数据。&lt;/p&gt;
&lt;p&gt;为了收集所有这些数据，我们将使用 &lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/collector/"&gt;OpenTelemetry Collector&lt;/a&gt;。
Collector 有许多不同的工具，可以高效地收集所有这些数据并以有意义的方式增强它。&lt;/p&gt;
&lt;p&gt;为了收集所有数据，我们需要安装两个 Collector 实例，一个作为
&lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/collector/deploy/agent/"&gt;Daemonset&lt;/a&gt;，另一个作为
&lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/collector/deploy/gateway/"&gt;Deployment&lt;/a&gt;。
Daemonset 安装的 Collector 将用于收集服务发出的遥测数据、日志以及节点、Pod 和容器的指标。
Deployment 安装的 Collector 将用于收集集群指标和事件。&lt;/p&gt;
&lt;p&gt;我们将使用
&lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/platforms/kubernetes/helm/collector/"&gt;OpenTelemetry Collector Helm Chart&lt;/a&gt;来安装 Collector，
该 Chart 提供了一些配置选项，使 Collector 的配置更加容易。
如果你不熟悉 Helm，请查看
&lt;a href="https://helm.sh/" target="_blank" rel="noopener" class="external-link"&gt;Helm 项目网站&lt;/a&gt;。
如果你对使用 Kubernetes Operator 感兴趣，请参阅
&lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/platforms/kubernetes/operator/"&gt;OpenTelemetry Operator&lt;/a&gt;，
但本指南将重点介绍 Helm Chart。&lt;/p&gt;</description></item><item><title>快速开始</title><link>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/zero-code/java/agent/getting-started/</link><pubDate>Thu, 29 Jan 2026 05:41:57 -0500</pubDate><guid>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/zero-code/java/agent/getting-started/</guid><description>&lt;h2 id="setup"&gt;安装&lt;a class="td-heading-self-link" href="#setup" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;从 &lt;code&gt;opentelemetry-java-instrumentation&lt;/code&gt; 仓库的 &lt;a href="https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases" target="_blank" rel="noopener" class="external-link"&gt;Releases&lt;/a&gt; 下载
&lt;a href="https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/latest/download/opentelemetry-javaagent.jar" target="_blank" rel="noopener" class="external-link"&gt;opentelemetry-javaagent.jar&lt;/a&gt; 并将 JAR 放在您偏好的目录中。
JAR 文件包含代理和插桩库。&lt;/li&gt;
&lt;li&gt;添加 &lt;code&gt;-javaagent:path/to/opentelemetry-javaagent.jar&lt;/code&gt; 和其他配置到
你的 JVM 启动参数并启动您的应用程序：
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;直接在启动命令上：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;java -javaagent:path/to/opentelemetry-javaagent.jar -Dotel.service.name&lt;span class="o"&gt;=&lt;/span&gt;your-service-name -jar myapp.jar
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;通过 &lt;code&gt;JAVA_TOOL_OPTIONS&lt;/code&gt; 和其他环境变量：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;JAVA_TOOL_OPTIONS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;-javaagent:path/to/opentelemetry-javaagent.jar&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;OTEL_SERVICE_NAME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;your-service-name&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;java -jar myapp.jar
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="declarative-configuration"&gt;声明式配置&lt;a class="td-heading-self-link" href="#declarative-configuration" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;声明式配置使用 YAML 文件，而非环境变量或系统属性。
当你需要设置许多配置选项，或者想要使用那些无法通过环境变量或系统属性来配置的选项时，这种方式会非常有用。&lt;/p&gt;
&lt;p&gt;有关更多详细信息，请参阅&lt;a href="../declarative-configuration"&gt;声明式配置&lt;/a&gt;页面。&lt;/p&gt;
&lt;h2 id="configuring-the-agent"&gt;配置代理&lt;a class="td-heading-self-link" href="#configuring-the-agent" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;代理高度可配置。&lt;/p&gt;
&lt;p&gt;一种选择是通过 &lt;code&gt;-D&lt;/code&gt; 标志传递配置属性。
在本示例中，配置了服务名称和用于追踪的 Zipkin 导出器：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;java -javaagent:path/to/opentelemetry-javaagent.jar &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -Dotel.service.name&lt;span class="o"&gt;=&lt;/span&gt;your-service-name &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -Dotel.traces.exporter&lt;span class="o"&gt;=&lt;/span&gt;zipkin &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -jar myapp.jar
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;你也可以使用环境变量来配置代理：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;OTEL_SERVICE_NAME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;your-service-name &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;OTEL_TRACES_EXPORTER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;zipkin &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;java -javaagent:path/to/opentelemetry-javaagent.jar &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -jar myapp.jar
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;你也可以提供一个 Java 属性文件并从中加载配置值：&lt;/p&gt;</description></item><item><title>Deploy OBI in Kubernetes with Helm</title><link>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/zero-code/obi/setup/kubernetes-helm/</link><pubDate>Mon, 26 Jan 2026 02:42:14 -0800</pubDate><guid>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/zero-code/obi/setup/kubernetes-helm/</guid><description>&lt;div class="td-alert td-alert--md alert alert-note" role="alert"&gt;&lt;div class="td-alert-heading alert-heading" role="heading"&gt;说明&lt;/div&gt;
 &lt;div class="td-alert-body"&gt;
 &lt;p&gt;For more details about the diverse Helm configuration options, check out the
&lt;a href="https://github.com/open-telemetry/opentelemetry-helm-charts/tree/main/charts/opentelemetry-ebpf-instrumentation" target="_blank" rel="noopener" class="external-link"&gt;OBI Helm chart documentation&lt;/a&gt;
or browse the chart on
&lt;a href="https://artifacthub.io/packages/helm/opentelemetry-helm/opentelemetry-ebpf-instrumentation" target="_blank" rel="noopener" class="external-link"&gt;Artifact Hub&lt;/a&gt;.
For detailed configuration parameters, see the
&lt;a href="https://github.com/open-telemetry/opentelemetry-helm-charts/blob/main/charts/opentelemetry-ebpf-instrumentation/values.yaml" target="_blank" rel="noopener" class="external-link"&gt;values.yaml&lt;/a&gt;
file.&lt;/p&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Contents:&lt;/p&gt;
&lt;!-- TOC --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#deploying-obi-from-helm"&gt;Deploying OBI from helm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#configuring-obi"&gt;Configuring OBI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#configuring-obi-metadata"&gt;Configuring OBI metadata&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#providing-secrets-to-the-helm-configuration"&gt;Providing secrets to the Helm configuration&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- TOC --&gt;
&lt;h2 id="deploying-obi-from-helm"&gt;Deploying OBI from helm&lt;a class="td-heading-self-link" href="#deploying-obi-from-helm" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;First, you need to add the OpenTelemetry helm repository to Helm:&lt;/p&gt;</description></item><item><title>Measure traffic between Cloud availability zones</title><link>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/zero-code/obi/network/inter-az/</link><pubDate>Wed, 14 Jan 2026 07:44:34 -0500</pubDate><guid>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/zero-code/obi/network/inter-az/</guid><description>&lt;div class="td-alert td-alert--md alert alert-note" role="alert"&gt;&lt;div class="td-alert-heading alert-heading" role="heading"&gt;说明&lt;/div&gt;
 &lt;div class="td-alert-body"&gt;
 &lt;p&gt;This feature is currently only available in Kubernetes clusters.&lt;/p&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Traffic between Cloud Availability Zones might incur additional costs. OBI is
able to measure it either by adding &lt;code&gt;src.zone&lt;/code&gt; and &lt;code&gt;dst.zone&lt;/code&gt; attributes to
regular network metrics, or by providing a separate
&lt;code&gt;obi.network.inter.zone.bytes&lt;/code&gt; (OTel) / &lt;code&gt;obi_network_inter_zone_bytes_total&lt;/code&gt;
(Prometheus) metric.&lt;/p&gt;
&lt;h2 id="add-srczone-and-dstzone-attributes-to-regular-network-metrics"&gt;Add &lt;code&gt;src.zone&lt;/code&gt; and &lt;code&gt;dst.zone&lt;/code&gt; attributes to regular network metrics&lt;a class="td-heading-self-link" href="#add-srczone-and-dstzone-attributes-to-regular-network-metrics" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Source and destination availability zone attributes are disabled by default in
OBI. To enable it, explicitly add them to the list of included network
attributes in the OBI YAML configuration:&lt;/p&gt;</description></item><item><title>安装 Collector</title><link>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/collector/installation/</link><pubDate>Thu, 08 Jan 2026 22:37:28 +0530</pubDate><guid>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/collector/installation/</guid><description>&lt;p&gt;你可以在多种操作系统和多种架构上部署 OpenTelemetry Collector。
以下说明展示了如何下载并安装 Collector 的最新稳定版本。&lt;/p&gt;
&lt;p&gt;如果你还不熟悉 OpenTelemetry Collector 的部署模型、组件和相关代码库，
请先查阅&lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/concepts/components/#collector"&gt;数据收集&lt;/a&gt;和&lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/collector/deploy/"&gt;部署方法&lt;/a&gt;页面。&lt;/p&gt;
&lt;h2 id="docker"&gt;Docker&lt;a class="td-heading-self-link" href="#docker" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;以下命令会拉取一个 Docker 镜像，并在容器中运行 Collector。
将 &lt;code&gt;0.149.0&lt;/code&gt; 替换为你想要运行的 Collector 版本。&lt;/p&gt;
 &lt;ul class="nav nav-tabs" id="tabs-1" role="tablist"&gt;
 &lt;li class="nav-item"&gt;
 &lt;button class="nav-link active"
 id="tabs-01-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-01-00" role="tab"
 data-td-tp-persist="dockerhub" aria-controls="tabs-01-00" aria-selected="true"&gt;
 DockerHub
 &lt;/button&gt;
 &lt;/li&gt;&lt;li class="nav-item"&gt;
 &lt;button class="nav-link"
 id="tabs-01-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-01-01" role="tab"
 data-td-tp-persist="ghcr.io" aria-controls="tabs-01-01" aria-selected="false"&gt;
 ghcr.io
 &lt;/button&gt;
 &lt;/li&gt;
&lt;/ul&gt;

&lt;div class="tab-content" id="tabs-1-content"&gt;
 &lt;div class="tab-body tab-pane fade show active"
 id="tabs-01-00" role="tabpanel" aria-labelled-by="tabs-01-00-tab" tabindex="1"&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker pull otel/opentelemetry-collector-contrib:0.149.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker run otel/opentelemetry-collector-contrib:0.149.0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="tab-body tab-pane fade"
 id="tabs-01-01" role="tabpanel" aria-labelled-by="tabs-01-01-tab" tabindex="1"&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker pull ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.149.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker run ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.149.0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;要从你的工作目录加载一个自定义配置文件，将该文件挂载为卷：&lt;/p&gt;
 &lt;ul class="nav nav-tabs" id="tabs-2" role="tablist"&gt;
 &lt;li class="nav-item"&gt;
 &lt;button class="nav-link active"
 id="tabs-02-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-02-00" role="tab"
 data-td-tp-persist="dockerhub" aria-controls="tabs-02-00" aria-selected="true"&gt;
 DockerHub
 &lt;/button&gt;
 &lt;/li&gt;&lt;li class="nav-item"&gt;
 &lt;button class="nav-link"
 id="tabs-02-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-02-01" role="tab"
 data-td-tp-persist="ghcr.io" aria-controls="tabs-02-01" aria-selected="false"&gt;
 ghcr.io
 &lt;/button&gt;
 &lt;/li&gt;
&lt;/ul&gt;

&lt;div class="tab-content" id="tabs-2-content"&gt;
 &lt;div class="tab-body tab-pane fade show active"
 id="tabs-02-00" role="tabpanel" aria-labelled-by="tabs-02-00-tab" tabindex="2"&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker run -v &lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;pwd&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;/config.yaml:/etc/otelcol-contrib/config.yaml otel/opentelemetry-collector-contrib:0.149.0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="tab-body tab-pane fade"
 id="tabs-02-01" role="tabpanel" aria-labelled-by="tabs-02-01-tab" tabindex="2"&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker run -v &lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;pwd&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;/config.yaml:/etc/otelcol-contrib/config.yaml ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.149.0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;

&lt;h2 id="docker-compose"&gt;Docker Compose&lt;a class="td-heading-self-link" href="#docker-compose" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;你可以像以下示例那样，将 OpenTelemetry Collector 添加到你现有的 &lt;code&gt;docker-compose.yaml&lt;/code&gt; 文件中：&lt;/p&gt;</description></item><item><title>快速入门</title><link>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/collector/quick-start/</link><pubDate>Thu, 08 Jan 2026 22:37:28 +0530</pubDate><guid>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/collector/quick-start/</guid><description>&lt;!-- markdownlint-disable ol-prefix blanks-around-fences --&gt;
&lt;p&gt;OpenTelemetry Collector 是一个可执行文件，它能够接收&lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/concepts/signals/traces/"&gt;链路&lt;/a&gt;、
&lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/concepts/signals/metrics/"&gt;指标&lt;/a&gt;和&lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/concepts/signals/logs/"&gt;日志&lt;/a&gt;，
处理这些遥测数据，并通过其组件将其导出到多种可观测性后端。要了解 Collector 的概念性概览，
请参见 &lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/collector/"&gt;Collector&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;你将学习如何在不到五分钟的时间内完成以下操作：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;设置并运行 OpenTelemetry Collector。&lt;/li&gt;
&lt;li&gt;发送遥测数据并查看 Collector 对其进行处理。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="prerequisites"&gt;前提条件&lt;a class="td-heading-self-link" href="#prerequisites" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;请确保你的开发环境具备以下条件。本文档假设你使用的是 &lt;code&gt;bash&lt;/code&gt;，请根据你所偏好的 Shell 适配相关配置与命令。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://www.docker.com/" target="_blank" rel="noopener" class="external-link"&gt;Docker&lt;/a&gt; 或任何兼容的容器运行时。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://go.dev/" target="_blank" rel="noopener" class="external-link"&gt;Go&lt;/a&gt; 1.20 或更高版本&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://pkg.go.dev/cmd/go#hdr-Environment_variables" target="_blank" rel="noopener" class="external-link"&gt;&lt;code&gt;GOBIN&lt;/code&gt; 环境变量&lt;/a&gt;已设置；若未设置，请按如下方式进行初始化&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;GOBIN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;GOBIN&lt;/span&gt;&lt;span class="k"&gt;:-$(&lt;/span&gt;go env GOPATH&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="p"&gt;/bin&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="set-up-the-environment"&gt;设置环境&lt;a class="td-heading-self-link" href="#set-up-the-environment" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;拉取 OpenTelemetry Collector Contrib 的 Docker 镜像：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker pull otel/opentelemetry-collector-contrib:0.149.0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;安装 &lt;a href="https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/cmd/telemetrygen" target="_blank" rel="noopener" class="external-link"&gt;telemetrygen&lt;/a&gt; 工具：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;go install github.com/open-telemetry/opentelemetry-collector-contrib/cmd/telemetrygen@latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;此工具可以模拟生成&lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/concepts/signals/traces/"&gt;链路&lt;/a&gt;、&lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/concepts/signals/metrics/"&gt;指标&lt;/a&gt;和&lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/concepts/signals/logs/"&gt;日志&lt;/a&gt;的客户端行为。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="generate-and-collect-telemetry"&gt;生成并收集遥测数据&lt;a class="td-heading-self-link" href="#generate-and-collect-telemetry" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ol start="3"&gt;
&lt;li&gt;
&lt;p&gt;启动 Collector，使其监听端口 4317（用于 OTLP gRPC）、4318（用于 OTLP HTTP）和 55679（用于 ZPages）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker run
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -p 127.0.0.1:4317:4317
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -p 127.0.0.1:4318:4318
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -p 127.0.0.1:55679:55679
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; otel/opentelemetry-collector-contrib:0.149.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 2&amp;gt;&lt;span class="p"&gt;&amp;amp;&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; tee collector-output.txt &lt;span class="c1"&gt;# 可选择将输出保存，以便后续搜索&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;在另一个终端窗口中生成几个示例链路：&lt;/p&gt;</description></item><item><title>日志</title><link>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/concepts/signals/logs/</link><pubDate>Thu, 08 Jan 2026 12:52:37 -0300</pubDate><guid>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/concepts/signals/logs/</guid><description>&lt;p&gt;&lt;strong&gt;日志&lt;/strong&gt;是带有时间戳的文本记录，可以是结构化的（推荐）或非结构化的，且可附带元数据。
在所有遥测信号中，日志具有最悠久的历史。大多数编程语言都内置了日志记录功能，或有知名且广泛使用的日志库。&lt;/p&gt;
&lt;h2 id="opentelemetry-logs"&gt;OpenTelemetry 日志&lt;a class="td-heading-self-link" href="#opentelemetry-logs" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;OpenTelemetry 并未定义专用的 API 或 SDK 来创建日志。相反，OpenTelemetry 日志指的是你已有的日志，
这些日志来自现有的日志框架或基础设施组件。OpenTelemetry SDK 和自动注入功能利用多个组件，
自动将日志与&lt;a href="../traces"&gt;链路&lt;/a&gt;关联。&lt;/p&gt;
&lt;p&gt;OpenTelemetry 的日志支持旨在与你已有的日志完全兼容，提供了能力来为这些日志添加上下文，
并提供统一的工具包，将来自不同来源的日志解析并转换为统一格式。&lt;/p&gt;
&lt;h3 id="opentelemetry-logs-in-the-opentelemetry-collector"&gt;OpenTelemetry Collector 中的 OpenTelemetry 日志&lt;a class="td-heading-self-link" href="#opentelemetry-logs-in-the-opentelemetry-collector" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/collector/"&gt;OpenTelemetry Collector&lt;/a&gt; 提供了多个处理日志的工具：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;多种接收器，可从特定的、已知的数据源解析日志。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;filelogreceiver&lt;/code&gt;，可从任意文件读取日志，并支持多种日志格式解析或使用正则表达式。&lt;/li&gt;
&lt;li&gt;类似 &lt;code&gt;transformprocessor&lt;/code&gt; 的处理器，可解析嵌套数据、扁平化结构、添加/移除/更新值等。&lt;/li&gt;
&lt;li&gt;多种导出器（exporters），可将日志数据导出为非 OpenTelemetry 格式。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;采纳 OpenTelemetry 的第一步通常是部署 Collector 作为通用日志代理。&lt;/p&gt;
&lt;h3 id="opentelemetry-logs-for-applications"&gt;应用中的 OpenTelemetry 日志&lt;a class="td-heading-self-link" href="#opentelemetry-logs-for-applications" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;在应用中，可以通过任意日志库或语言内置日志功能创建 OpenTelemetry 日志。
当你启用自动注入或激活 SDK 后，OpenTelemetry 会自动将现有日志与活动的链路与 Span 关联起来，
并将这些 ID 包裹到日志正文中。换句话说，OpenTelemetry 会自动关联你的日志与链路信息。&lt;/p&gt;
&lt;h3 id="language-support"&gt;语言支持情况&lt;a class="td-heading-self-link" href="#language-support" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;日志信号在 OpenTelemetry 规范中是&lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/docs/specs/otel/versioning-and-stability/#stable"&gt;稳定的&lt;/a&gt;。
各语言对 Logs API 和 SDK 的支持情况如下：&lt;/p&gt;</description></item><item><title>OBI network metrics quickstart</title><link>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/zero-code/obi/network/quickstart/</link><pubDate>Tue, 16 Dec 2025 14:16:09 +0100</pubDate><guid>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/zero-code/obi/network/quickstart/</guid><description>&lt;p&gt;OBI can generate network metrics in any environment (physical host, virtual
host, or container). It&amp;rsquo;s recommended to use a Kubernetes environment, as OBI is
able to decorate each metric with the metadata of the source and destination
Kubernetes entities.&lt;/p&gt;
&lt;p&gt;The instructions in this quickstart guide focus on deploying directly to
Kubernetes with the kubectl command line utility. This tutorial describes how to
deploy OBI in Kubernetes from scratch. To use Helm, consult the
&lt;a href="../../setup/kubernetes-helm/"&gt;Deploy OBI in Kubernetes with Helm&lt;/a&gt;
documentation.&lt;/p&gt;</description></item><item><title>规范状态概览</title><link>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/specs/status/</link><pubDate>Fri, 31 Oct 2025 11:11:54 -0400</pubDate><guid>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/specs/status/</guid><description>&lt;p&gt;OpenTelemetry 是基于各种信号逐一开发的。链路追踪、指标、Baggage 和日志都是一种信号。
每个信号都构建在上下文传播机制之上，这是一种用于在分布式系统中关联数据的共享机制。&lt;/p&gt;
&lt;p&gt;每个信号由四个&lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/concepts/components/"&gt;核心组件&lt;/a&gt;组成：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;API&lt;/li&gt;
&lt;li&gt;SDK&lt;/li&gt;
&lt;li&gt;&lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/docs/specs/otlp/"&gt;OpenTelemetry 协议&lt;/a&gt;（OTLP）&lt;/li&gt;
&lt;li&gt;&lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/collector/"&gt;Collector&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;信号还包括 contrib 组件，这是插件和插桩组成的生态体系。
所有插桩遵循统一的语义约定，以确保在观察常见操作（如 HTTP 请求）时生成相同的数据。&lt;/p&gt;
&lt;p&gt;如需了解信号和组件的信息，请参阅 OTel 规范的&lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/docs/specs/otel/overview/"&gt;概览页面&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id="component-lifecycle"&gt;组件生命周期&lt;a class="td-heading-self-link" href="#component-lifecycle" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;组件遵循以下开发生命周期：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;**草案（Draft）**组件仍在设计中，尚未纳入规范。&lt;/li&gt;
&lt;li&gt;**实验性（Experimental）**组件已发布并可进行测试。&lt;/li&gt;
&lt;li&gt;**稳定（Stable）**组件向后兼容，并享有长期支持。&lt;/li&gt;
&lt;li&gt;**弃用（Deprecated）**组件仍然稳定，但未来可能被移除。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;有关生命周期和长期支持的完整定义，
参阅&lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/docs/specs/otel/versioning-and-stability/"&gt;版本管理与稳定性&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id="current-status"&gt;当前状态&lt;a class="td-heading-self-link" href="#current-status" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;以下是目前各个信号的高层次状态报告。请注意，虽然 OpenTelemetry 各客户端遵循统一规范开发，但它们是独立开发的。&lt;/p&gt;
&lt;p&gt;建议查看每个客户端在其
&lt;a href="https://github.com/open-telemetry" target="_blank" rel="noopener" class="external-link"&gt;GitHub 仓库&lt;/a&gt;中 README 文件的当前状态说明。客户端对特性支持的具体情况可在
&lt;a href="https://github.com/open-telemetry/opentelemetry-specification/blob/main/spec-compliance-matrix.md" target="_blank" rel="noopener" class="external-link"&gt;规范兼容性表&lt;/a&gt;中查看。&lt;/p&gt;
&lt;p&gt;注意，以下各部分中的 &lt;strong&gt;Collector&lt;/strong&gt; 状态与&lt;strong&gt;协议&lt;/strong&gt;状态一致。&lt;/p&gt;
&lt;h3 id="tracing"&gt;链路追踪&lt;a class="td-heading-self-link" href="#tracing" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/docs/specs/otel/trace/"&gt;规范&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;备注：
&lt;ul&gt;
&lt;li&gt;链路追踪规范现已完全稳定，并纳入长期支持范围。&lt;/li&gt;
&lt;li&gt;链路追踪规范仍可扩展，但必须保持向后兼容。&lt;/li&gt;
&lt;li&gt;一旦链路追踪实现完成，OpenTelemetry 客户端将进入 v1.0 版本。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="metrics"&gt;指标&lt;a class="td-heading-self-link" href="#metrics" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/docs/specs/otel/metrics/"&gt;规范&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;备注：
&lt;ul&gt;
&lt;li&gt;OpenTelemetry 各项指标正在积极开发中。&lt;/li&gt;
&lt;li&gt;数据模型已稳定，并作为 OTLP 协议的一部分发布。&lt;/li&gt;
&lt;li&gt;Collector 中已提供对指标处理的实验性支持。&lt;/li&gt;
&lt;li&gt;Collector 正与 Prometheus 社区合作，开发对 Prometheus 的支持。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="baggage"&gt;Baggage&lt;a class="td-heading-self-link" href="#baggage" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/docs/specs/otel/baggage/"&gt;规范&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SDK：&lt;/strong&gt; 稳定&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;协议：&lt;/strong&gt; 不适用&lt;/li&gt;
&lt;li&gt;备注：
&lt;ul&gt;
&lt;li&gt;Baggage 现已完全稳定。&lt;/li&gt;
&lt;li&gt;Baggage 不是可观测性工具，而是一种在事务中附加任意键值对的系统，使下游服务可以访问这些值。
因此，Baggage 没有 OTLP 或 Collector 组件。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="logging"&gt;日志&lt;a class="td-heading-self-link" href="#logging" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/docs/specs/otel/logs/"&gt;规范&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;备注：
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/docs/specs/otel/logs/data-model/"&gt;日志数据模型&lt;/a&gt;已作为 OpenTelemetry 协议的一部分发布。&lt;/li&gt;
&lt;li&gt;多种数据格式的日志处理已通过 Stanza 捐赠集成至 Collector。&lt;/li&gt;
&lt;li&gt;OpenTelemetry 的 Log Bridge API 允许开发日志附加器，用于将现有日志框架中的日志桥接到 OpenTelemetry
中。该 API 并不面向终端用户直接调用。目前正在开发多种编程语言的日志附加器。&lt;/li&gt;
&lt;li&gt;OpenTelemetry Log SDK 是 Log Bridge API 的标准实现。应用可以通过配置该 SDK
来指定日志的处理与导出方式（例如使用 OTLP 协议）。&lt;/li&gt;
&lt;li&gt;OpenTelemetry 的 Log Bridge API 还包含实验性支持，
可用于生成符合&lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/docs/specs/semconv/general/events/"&gt;事件语义约定&lt;/a&gt;的日志记录。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="profiles"&gt;分析配置&lt;a class="td-heading-self-link" href="#profiles" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/docs/specs/otel/profiles/"&gt;规范&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Metrics</title><link>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/concepts/signals/metrics/</link><pubDate>Thu, 14 Aug 2025 10:14:16 -0300</pubDate><guid>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/concepts/signals/metrics/</guid><description>&lt;p&gt;一个 &lt;strong&gt;metric&lt;/strong&gt; 是在运行时捕获的服务的&lt;strong&gt;测量值&lt;/strong&gt;。捕获测量值的时刻称为 &lt;strong&gt;metric 事件&lt;/strong&gt;，它不仅包括测量值本身，还包括捕获它的时间和相关的元数据。&lt;/p&gt;
&lt;p&gt;应用和请求的 metrics 是可用性和性能的重要指标。自定义 metric 可以在‘可用性因素是如何影响到用户体验和业务’方面提供见解。收集的数据可以用于异常警告或触发调度决策，以在高要求时自动扩展部署。&lt;/p&gt;
&lt;p&gt;要了解 OpenTelemetry 中的 metrics 是如何工作的，让我们看看在对代码进行观测时会涉及的一系列组件。&lt;/p&gt;
&lt;h2 id="meter-provider"&gt;Meter Provider&lt;a class="td-heading-self-link" href="#meter-provider" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Meter Provider（有时称为 &lt;code&gt;MeterProvider&lt;/code&gt;）是 &lt;code&gt;Meter&lt;/code&gt; 的提供者。在大多数应用程序中，Meter Provider 只初始化一次，其生命周期与应用程序的生命周期匹配。Meter Provider 的初始化还包括资源和导出器（Exporter）的初始化。它通常是使用 OpenTelemetry 进行观测的第一步。在某些语言 SDK 中，已经为您初始化了全局 Meter Provider。&lt;/p&gt;
&lt;h2 id="meter"&gt;Meter&lt;a class="td-heading-self-link" href="#meter" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Meter 创建 &lt;a href="#metric-instruments"&gt;metric instruments&lt;/a&gt;，在运行时捕获有关服务的测量值。Meter 是由 Meter Provider 创建的。&lt;/p&gt;
&lt;h2 id="metric-exporter"&gt;Metric Exporter&lt;a class="td-heading-self-link" href="#metric-exporter" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Metric Exporter 将度量数据发送给消费者。这个消费者可以是开发期间用于调试的标准输出、OpenTelemetry Collector，或您选择的任何开源或供应商后端。&lt;/p&gt;
&lt;h2 id="metric-instruments"&gt;Metric Instruments（测量仪器）&lt;a class="td-heading-self-link" href="#metric-instruments" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;在 OpenTelemetry 中，测量值是由 &lt;strong&gt;metric instruments&lt;/strong&gt; 捕获的。Metric instruments 由以下部分定义：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;名称&lt;/li&gt;
&lt;li&gt;类型&lt;/li&gt;
&lt;li&gt;单位（可选）&lt;/li&gt;
&lt;li&gt;描述（可选）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;名称、单位和描述由开发人员选择，或者通过&lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/docs/specs/semconv/general/metrics/"&gt;语义约定&lt;/a&gt;为常见的如请求和进程指标定义。&lt;/p&gt;
&lt;p&gt;仪器类型如下：&lt;/p&gt;</description></item><item><title>前置条件</title><link>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/contributing/prerequisites/</link><pubDate>Thu, 14 Aug 2025 10:14:16 -0300</pubDate><guid>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/contributing/prerequisites/</guid><description>&lt;p&gt;要参与本仓库的贡献，你需要熟悉以下技术和工具：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://git-scm.com/" target="_blank" rel="noopener" class="external-link"&gt;git&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/" target="_blank" rel="noopener" class="external-link"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Markdown（&lt;a href="https://commonmark.org/" target="_blank" rel="noopener" class="external-link"&gt;CommonMark&lt;/a&gt;）&lt;/li&gt;
&lt;li&gt;YAML&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;有关文档如何在本地构建和测试的技术细节，请参阅开发指南。&lt;/p&gt;
&lt;h2 id="cla"&gt;签署 CNCF CLA&lt;a class="td-heading-self-link" href="#cla" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;所有 OpenTelemetry 贡献者必须签署 Linux 基金会的&lt;a href="https://docs.linuxfoundation.org/lfx/easycla/contributors" target="_blank" rel="noopener" class="external-link"&gt;贡献者许可协议（CLA）&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;尚未签署 CLA 的贡献者提交的 PR 会在自动测试中失败。
你提供的姓名和电子邮件必须与 &lt;code&gt;git config&lt;/code&gt; 中的内容一致，
并且还必须与你用于签署 CNCF CLA 的信息一致。&lt;/p&gt;
&lt;h2 id="行为准则"&gt;行为准则&lt;a class="td-heading-self-link" href="#%e8%a1%8c%e4%b8%ba%e5%87%86%e5%88%99" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;所有 OpenTelemetry 贡献者都必须遵守 &lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct.md" target="_blank" rel="noopener" class="external-link"&gt;CNCF 社区行为准则&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id="社区指南"&gt;社区指南&lt;a class="td-heading-self-link" href="#%e7%a4%be%e5%8c%ba%e6%8c%87%e5%8d%97" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;有关 OpenTelemetry 社区的通用指南，包括角色和预期，请参阅 &lt;a href="https://github.com/open-telemetry/community/blob/main/guides/contributor/README.md" target="_blank" rel="noopener" class="external-link"&gt;OpenTelemetry 新贡献者指南&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>链路（Trace）</title><link>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/concepts/signals/traces/</link><pubDate>Thu, 14 Aug 2025 10:14:16 -0300</pubDate><guid>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/concepts/signals/traces/</guid><description>&lt;p&gt;&lt;strong&gt;链路&lt;/strong&gt;为我们提供了向应用发出请求时会发生什么的总览图。
无论你的应用是具有单个数据库的单体应用还是复杂的服务网格，链路对于了解请求在应用中的完整“路径”至关重要。&lt;/p&gt;
&lt;p&gt;让我们通过三个用 &lt;a href="#spans"&gt;Span&lt;/a&gt; 表示的工作单元来探讨这个问题：&lt;/p&gt;
&lt;div class="alert alert-primary" role="alert"&gt;&lt;div class="h4 alert-heading" role="heading"&gt;Note&lt;/div&gt;
&lt;p&gt;以下 JSON 示例不表示特定格式，尤其是不表示
&lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/docs/specs/otlp/#json-protobuf-encoding"&gt;OTLP/JSON&lt;/a&gt;，因为 OTLP/JSON 更详细。&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code&gt;hello&lt;/code&gt; span:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;hello&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;context&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;trace_id&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;5b8aa5a2d2c872e8321cf37308d69df2&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;span_id&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;051581bf3cb55c13&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;parent_id&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;start_time&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;2022-04-29T18:52:58.114201Z&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;end_time&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;2022-04-29T18:52:58.114687Z&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;attributes&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;http.route&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;some_route1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;events&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Guten Tag!&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;timestamp&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;2022-04-29T18:52:58.114561Z&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;attributes&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;event_attributes&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这是根 Span，表示整个操作的开始和结束。请注意，它有一个 &lt;code&gt;trace_id&lt;/code&gt; 字段指示链路，
但没有 &lt;code&gt;parent_id&lt;/code&gt;。因此这是一个根 Span。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;hello-greetings&lt;/code&gt; span:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;hello-greetings&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;context&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;trace_id&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;5b8aa5a2d2c872e8321cf37308d69df2&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;span_id&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;5fb397be34d26b51&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;parent_id&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;051581bf3cb55c13&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;start_time&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;2022-04-29T18:52:58.114304Z&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;end_time&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;2022-04-29T22:52:58.114561Z&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;attributes&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;http.route&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;some_route2&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;events&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;hey there!&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;timestamp&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;2022-04-29T18:52:58.114561Z&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;attributes&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;event_attributes&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;bye now!&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;timestamp&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;2022-04-29T18:52:58.114585Z&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;attributes&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;event_attributes&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;此 Span 封装了特定任务，例如 hello-greetings，其父级 Span 是 &lt;code&gt;hello&lt;/code&gt; Span。请注意，它的 &lt;code&gt;trace_id&lt;/code&gt; 与根 Span
相同，这表明它们属于同一链路。此外，它的 &lt;code&gt;parent_id&lt;/code&gt; 与 &lt;code&gt;hello&lt;/code&gt; Span 的 &lt;code&gt;span_id&lt;/code&gt;一致。&lt;/p&gt;</description></item><item><title>从 OpenTracing 迁移</title><link>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/migration/opentracing/</link><pubDate>Thu, 24 Jul 2025 15:38:52 +0800</pubDate><guid>https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/migration/opentracing/</guid><description>&lt;p&gt;OpenTelemetry 项目自从诞生以来，&lt;a href="https://opentracing.io" target="_blank" rel="noopener" class="external-link"&gt;OpenTracing&lt;/a&gt; 的向后兼容性就是优先事项之一。
为了简化迁移过程，OpenTelemetry 支持在同一代码库中同时使用 OpenTelemetry &lt;strong&gt;和&lt;/strong&gt;
OpenTracing API。这样就可以使用 OpenTelemetry SDK 记录 OpenTracing 的插桩数据。&lt;/p&gt;
&lt;p&gt;为实现这一点，每个 OpenTelemetry SDK 都提供了一个 &lt;strong&gt;OpenTracing Shim&lt;/strong&gt;，
它充当 OpenTracing API 和 OpenTelemetry SDK 之间的桥梁。请注意，OpenTracing Shim 默认是禁用的。&lt;/p&gt;
&lt;h2 id="language-version-support"&gt;语言版本支持&lt;a class="td-heading-self-link" href="#language-version-support" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;在使用 OpenTracing Shim 之前，请检查你的编程语言和运行时组件版本，
并在必要时进行更新。下表列出了 OpenTracing 和 OpenTelemetry API 的最低&lt;strong&gt;语言&lt;/strong&gt;版本要求：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;语言&lt;/th&gt;
 &lt;th&gt;OpenTracing API&lt;/th&gt;
 &lt;th&gt;OpenTelemetry API&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://pkg.go.dev/go.opentelemetry.io/otel/bridge/opentracing" target="_blank" rel="noopener" class="external-link"&gt;Go&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;1.13&lt;/td&gt;
 &lt;td&gt;1.16&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://github.com/open-telemetry/opentelemetry-java/tree/main/opentracing-shim" target="_blank" rel="noopener" class="external-link"&gt;Java&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;7&lt;/td&gt;
 &lt;td&gt;8&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://opentelemetry-python.readthedocs.io/en/stable/shim/opentracing_shim/opentracing_shim.html" target="_blank" rel="noopener" class="external-link"&gt;Python&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;2.7&lt;/td&gt;
 &lt;td&gt;3.6&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://www.npmjs.com/package/@opentelemetry/shim-opentracing" target="_blank" rel="noopener" class="external-link"&gt;JavaScript&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;6&lt;/td&gt;
 &lt;td&gt;8.5&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://deploy-preview-9578--opentelemetry.netlify.app/zh/docs/languages/dotnet/shim/"&gt;.NET&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;1.3&lt;/td&gt;
 &lt;td&gt;1.4&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://github.com/open-telemetry/opentelemetry-cpp/tree/main/opentracing-shim" target="_blank" rel="noopener" class="external-link"&gt;C++&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;11&lt;/td&gt;
 &lt;td&gt;11&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;请注意，OpenTelemetry API 和 SDK 通常比 OpenTracing 要求更高的语言版本。&lt;/p&gt;</description></item></channel></rss>