Skip to content

Commit 98b5e06

Browse files
committed
[zh] add commit hash and unify case
1 parent 2916548 commit 98b5e06

File tree

1 file changed

+33
-32
lines changed

1 file changed

+33
-32
lines changed

content/zh/docs/concepts/signals/traces.md

+33-32
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
---
2-
title: Traces
2+
title: 链路(Trace)
33
weight: 1
44
description: 请求通过应用程序的路径。
5+
default_lang_commit: f6af710a28eb8e4cd4306f0a807ac6c6220bbc76
56
---
67

78
**Traces** 为我们提供了向应用程序发出请求时会发生什么的总览图。无论您的应用程序是具有单个数据库的整体式应用程序还是复杂的服务网格,trace 对于了解请求在应用程序中的完整“路径”至关重要。
@@ -41,7 +42,7 @@ description: 请求通过应用程序的路径。
4142
}
4243
```
4344

44-
这是根 span,表示整个操作的开始和结束。请注意,它有一个 `trace_id` 字段指示 trace,但没有 `parent_id`。这就是您知道它是根 span 的方式。
45+
这是根 Span,表示整个操作的开始和结束。请注意,它有一个 `trace_id` 字段指示 trace,但没有 `parent_id`。这就是您知道它是根 Span 的方式。
4546

4647
`hello-greetings` span:
4748

@@ -77,7 +78,7 @@ description: 请求通过应用程序的路径。
7778
}
7879
```
7980

80-
span 封装了特定任务,例如说问候,其父级是 `hello` span。请注意,它与根 span 共享相同的`trace_id`,这表明它是同一 trace 的一部分。此外,它还具有`parent_id``hello` span`span_id`匹配。
81+
Span 封装了特定任务,例如说问候,其父级是 `hello` Span。请注意,它与根 Span 共享相同的`trace_id`,这表明它是同一 trace 的一部分。此外,它还具有`parent_id``hello` Span`span_id`匹配。
8182

8283
`hello-salutations` span:
8384

@@ -106,7 +107,7 @@ description: 请求通过应用程序的路径。
106107
}
107108
```
108109

109-
span 表示此 trace 中的第三个操作,与上一个操作一样,它是 `hello` span 的子级。这也使它与 `hello-greetings` span 同级。
110+
Span 表示此 trace 中的第三个操作,与上一个操作一样,它是 `hello` Span 的子级。这也使它与 `hello-greetings` Span 同级。
110111

111112
这三个 JSON 块都共享相同的 `trace_id`,并且 `parent_id` field 表示层次结构。这使它成为 Trace!
112113

@@ -120,7 +121,7 @@ Tracer Provider(有时称为 `TracerProvider`)是 `Trace` 的生产工厂。
120121

121122
## Tracer
122123

123-
Tracer 创建的 span 包含有关给定操作(例如服务中的请求)所发生情况的更多信息。Tracer 是从 Tracer Provider 创建的。
124+
Tracer 创建的 Span 包含有关给定操作(例如服务中的请求)所发生情况的更多信息。Tracer 是从 Tracer Provider 创建的。
124125

125126
## Trace 导出者
126127

@@ -135,15 +136,15 @@ Context Propagation 是实现 Distributed Tracing 的核心概念。使用上下
135136
**Span** 表示工作或操作单元。Span 是 Trace 的构建块。在 OpenTelemetry 中,它们包括以下信息:
136137

137138
- 名字
138-
-span ID(根 span 为空)
139+
-Span ID(根 Span 为空)
139140
- 开始和结束时间戳
140-
- [上下文](#span-context)
141+
- [Span 上下文](#span-context)
141142
- [属性](#attributes)
142143
- [Span 事件](#span-events)
143144
- [Span 链接](#span-links)
144145
- [Span 状态](#span-status)
145146

146-
Sample span:
147+
Span 样例:
147148

148149
```json
149150
{
@@ -182,28 +183,28 @@ Sample span:
182183
}
183184
```
184185

185-
Span 可以嵌套,这由父 span ID 的存在来标识:子 span 表示子操作。这允许 span 更准确地捕获应用程序中完成的工作。
186+
Span 可以嵌套,这由父 Span ID 的存在来标识:子 Span 表示子操作。这允许 Span 更准确地捕获应用程序中完成的工作。
186187

187188
### Span 上下文
188189

189-
Span context 是每个 span 上的不可变对象,其中包含以下内容:
190+
Span context 是每个 Span 上的不可变对象,其中包含以下内容:
190191

191-
- 表示 span 所属trace的 Trace ID
192+
- 表示 Span 所属 trace 的 Trace ID
192193
- Span 的 Span ID
193194
- Trace Flags,一种二进制编码,包含有关 trace 的信息
194195
- Trace State,可以携带供应商特定 trace 信息的键值对列表
195196

196-
Span 上下文是 span 的一部分,它与 span 一起序列化和传播[分布式上下文](#context-propagation)[包袱](../baggage)
197+
Span 上下文是 Span 的一部分,它与 Span 一起序列化和传播[分布式上下文](#context-propagation)[包袱](../baggage)
197198

198199
由于 Span Context 包含 trace ID,因此在创建 [Span 链接](#span-links)
199200

200201
### 属性
201202

202203
属性是包含元数据的键值对,您可以使用这些元数据对 Span 进行注释,以携带有关它正在跟踪的操作的信息。
203204

204-
例如,如果 span trace 将商品添加到电子商务系统中用户购物车的操作,则可以捕获用户的 ID、要添加到购物车的商品的 ID 以及购物车 ID。
205+
例如,如果 Span 跟踪了将商品添加到电子商务系统中用户购物车的操作,则可以捕获用户的 ID、要添加到购物车的商品的 ID 以及购物车 ID。
205206

206-
您可以在创建 span 期间或之后向 span 添加属性。最好在创建范围时添加属性,以使属性可用于 SDK 采样。如果必须在 span 创建后添加值,请使用该值更新 span
207+
您可以在创建 Span 期间或之后向 Span 添加属性。最好在创建范围时添加属性,以使属性可用于 SDK 采样。如果必须在 Span 创建后添加值,请使用该值更新 Span
207208

208209
属性具有每种语言 SDK 实现的以下规则:
209210

@@ -225,72 +226,72 @@ Span 最适合用于第一种情况,因为它是具有开始和结束的操作
225226

226227
Span Event 最适合用于跟踪第二种情况,因为它表示有意义的单一时间点。
227228

228-
#### 何时使用 span 事件与 span 属性
229+
#### 何时使用 Span 事件与 Span 属性
229230

230-
由于 span 事件也包含属性,因此何时使用事件而不是属性的问题可能并不总是有明显的答案。为了做出明智的决定,请考虑特定时间戳是否有意义。
231+
由于 Span 事件也包含属性,因此何时使用事件而不是属性的问题可能并不总是有明显的答案。为了做出明智的决定,请考虑特定时间戳是否有意义。
231232

232-
例如,当您使用 span 跟踪操作并且操作完成时,您可能希望将操作中的数据添加到您的遥测数据中。
233+
例如,当您使用 Span 跟踪操作并且操作完成时,您可能希望将操作中的数据添加到您的遥测数据中。
233234

234-
- 如果操作完成的时间戳有意义或相关,请将数据附加到 span 事件。
235-
- 如果时间戳没有意义,请将数据附加为 span 属性。
235+
- 如果操作完成的时间戳有意义或相关,请将数据附加到 Span 事件。
236+
- 如果时间戳没有意义,请将数据附加为 Span 属性。
236237

237238
### Span 链接
238239

239240
链接的存在以便您可以将一个 Span 与一个或多个 Span 相关联,从而暗示因果关系。例如,假设我们有一个分布式系统,其中某些操作由 trace 跟踪。
240241

241242
为了响应其中一些操作,其他操作将排队等待执行,但其执行是异步的。我们也可以通过 trace 来跟踪这个后续操作。
242243

243-
我们希望将后续操作的 trace 与第一个 trace 相关联,但无法预测后续操作何时开始。我们需要关联这两个 trace,因此我们将使用 span 链接。
244+
我们希望将后续操作的 trace 与第一个 trace 相关联,但无法预测后续操作何时开始。我们需要关联这两个 trace,因此我们将使用 Span 链接。
244245

245246
您可以将第一个 trace 的最后一个 Span 链接到第二个 trace 中的第一个 Span。现在,它们彼此之间有因果关系。
246247

247-
链接是可选的,但可以将跟踪 span 彼此关联起来。
248+
链接是可选的,但可以将跟踪 Span 彼此关联起来。
248249

249250
有关 Span 链接的更多信息,请参阅[链接](/docs/specs/otel/trace/api/#link)
250251

251252
### Span 状态
252253

253-
每个 span 都有一个状态。三个可能的值是:
254+
每个 Span 都有一个状态。三个可能的值是:
254255

255256
- `Unset`
256257
- `Error`
257258
- `Ok`
258259

259260
默认值为 `Unset`。Span 状态为 Unset 表示它跟踪的操作已成功完成,没有错误。
260261

261-
span 状态为 `Error` 时,这意味着它跟踪的操作中发生了一些错误。例如,这可能是由于处理请求的服务器上的 HTTP 500 错误造成的。
262+
Span 状态为 `Error` 时,这意味着它跟踪的操作中发生了一些错误。例如,这可能是由于处理请求的服务器上的 HTTP 500 错误造成的。
262263

263-
span 状态为 `Ok`(正常) 时,这意味着应用程序开发人员已将该 span 显式标记为无错误。虽然这不直观,但当已知 span 已完成且没有错误时,不需要将 span 状态设置为 `Ok,因为` `Unset` `涵盖了这一点。Ok` 的作用是表示对用户显式设置的 span 状态的明确“最终调用”。这在开发人员希望除了 “successful” 之外没有其他 span 解释的情况下非常有用。
264+
Span 状态为 `Ok`(正常) 时,这意味着应用程序开发人员已将该 Span 显式标记为无错误。虽然这不直观,但当已知 Span 已完成且没有错误时,不需要将 Span 状态设置为 `Ok,因为` `Unset` `涵盖了这一点。Ok` 的作用是表示对用户显式设置的 Span 状态的明确“最终调用”。这在开发人员希望除了 “successful” 之外没有其他 Span 解释的情况下非常有用。
264265

265-
重申一下:`Unset` 表示一个 span 完成且没有错误。还行 表示开发人员何时明确将 Span 标记为成功。在大多数 情况下,无需将 span 显式标记为 `Ok`
266+
重申一下:`Unset` 表示一个 Span 完成且没有错误。还行 表示开发人员何时明确将 Span 显式标记为 `Ok`
266267

267268
### Span 类型
268269

269-
创建 span 时,它是 `Client``Server``Internal``Producer``Consumer` 之一。这种 span 类型为跟踪后端提供了有关如何组装 trace 的提示。根据 OpenTelemetry 规范,服务器 span 的父级通常是远程客户端 span,而 client span 的子级通常是服务器 span。同样,使用者 span 的父级始终是生产者,而生产者 span 的子级始终是使用者。如果未提供,则假定 span 类型为 internal。
270+
创建 Span 时,它是 `Client``Server``Internal``Producer``Consumer` 之一。这种 Span 类型为跟踪后端提供了有关如何组装 trace 的提示。根据 OpenTelemetry 规范,服务器 Span 的父级通常是远程客户端 Span,而 client Span 的子级通常是服务器 Span。同样,使用者 Span 的父级始终是生产者,而生产者 Span 的子级始终是使用者。如果未提供,则假定 Span 类型为 internal。
270271

271272

272273
有关 SpanKind 的更多信息,请参阅[SpanKind](/docs/specs/otel/trace/api/#spankind)
273274

274275
#### Client
275276

276-
Client span 表示同步传出远程调用,例如传出 HTTP 请求或数据库调用。请注意,在此上下文中, “synchronous” 不是指 `async/await`,而是指它不排队以供以后处理的事实。
277+
Client Span 表示同步传出远程调用,例如传出 HTTP 请求或数据库调用。请注意,在此上下文中, “synchronous” 不是指 `async/await`,而是指它不排队以供以后处理的事实。
277278

278279
#### Server
279280

280-
Server span 表示同步传入的远程调用,例如传入的 HTTP 请求或远程过程调用。
281+
Server Span 表示同步传入的远程调用,例如传入的 HTTP 请求或远程过程调用。
281282

282283
#### Internal
283284

284-
Internal span 表示不跨越进程边界的操作。诸如检测函数调用或 Express 中间件之类的操作可能会使用内部 span
285+
Internal Span 表示不跨越进程边界的操作。诸如检测函数调用或 Express 中间件之类的操作可能会使用内部 Span
285286

286287
#### Producer
287288

288-
Producer span 表示创建可在以后异步处理的任务。它可以是远程任务,例如插入任务队列的任务,也可以是由事件侦听器处理的本地任务。
289+
Producer Span 表示创建可在以后异步处理的任务。它可以是远程任务,例如插入任务队列的任务,也可以是由事件侦听器处理的本地任务。
289290

290291
#### Consumer
291292

292-
Consumer span 表示对生产者创建的任务的处理,并且可能在生产者 span 结束很久之后才开始。
293+
Consumer Span 表示对生产者创建的任务的处理,并且可能在生产者 Span 结束很久之后才开始。
293294

294-
## Specification
295+
## 规范
295296

296297
有关更多信息,请参阅[traces 规范](/docs/specs/otel/overview/#tracing-signal)

0 commit comments

Comments
 (0)