Skip to content

Commit 4544e73

Browse files
committed
[zh] Add signals/baggage.md
Signed-off-by: windsonsea <[email protected]>
1 parent 8a5b880 commit 4544e73

File tree

3 files changed

+150
-50
lines changed

3 files changed

+150
-50
lines changed
Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,31 @@
11
---
22
title: 信号
33
description: 了解 OpenTelemetry 支持的遥测类别
4-
aliases:
5-
- /docs/concepts/data-sources
6-
- /docs/concepts/otel-concepts
4+
aliases: [data-sources, otel-concepts]
75
weight: 11
86
default_lang_commit: e7c30e9
97
drifted_from_default: true
108
---
119

12-
OpenTelemetry 的目的是收集、处理和导出 **[信号][]**
10+
OpenTelemetry 的目的是收集、处理和导出[信号][signals]
1311
信号是系统输出,描述了操作系统和平台上运行的应用程序的底层活动。
1412
信号可以是你希望在特定时间点测量的某项指标,如温度或内存使用率,
15-
也可以是贯穿分布式系统组件的事件,你希望对其进行跟踪
13+
也可以是贯穿你希望跟踪的分布式系统组件的事件
1614
你可以将不同的信号组合在一起,从不同角度观察同一种技术的内部运作方式。
1715

1816
目前,OpenTelemetry 支持以下类型的信号:
1917

20-
- [追踪(Trace)](/docs/concepts/signals/traces)
18+
- [链路(Trace)](/docs/concepts/signals/traces)
2119
- [指标 (Metric)](/docs/concepts/signals/metrics)
2220
- [日志 (Log)](/docs/concepts/signals/logs)
2321
- [行李 (Baggage)](/docs/concepts/signals/baggage)
2422

25-
**事件**是一种特定类型的日志,而
26-
[**profiles** 正在由 Profiling 工作组开发](https://github.com/open-telemetry/opentelemetry-specification/blob/main/oteps/profiles/0212-profiling-vision.md)
23+
正在开发或处于[提案][proposal]阶段的信号:
2724

28-
[信号]: /docs/specs/otel/glossary/#signals
25+
- [事件][Events],一种特定类型的[日志](logs)
26+
- [性能分析数据][Profiles],由 Profiling 工作组负责推进。
27+
28+
[Events]: /docs/specs/otel/logs/data-model/#events
29+
[Profiles]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/oteps/profiles/0212-profiling-vision.md
30+
[proposal]: https://github.com/open-telemetry/opentelemetry-specification/tree/main/oteps/#readme
31+
[signals]: /docs/specs/otel/glossary/#signals
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
---
2+
title: Baggage(行李)
3+
weight: 4
4+
description: 在信号之间传递的上下文信息。
5+
default_lang_commit: 8a5b880c16d49257a147c2c3ec4a6ef6fcee8e20
6+
---
7+
8+
在 OpenTelemetry 中,Baggage 是在 Span 之间传递的上下文信息。Baggage 是一个键值对存储,
9+
这意味着它允许你在传递[上下文](../../context-propagation/#context)的同时
10+
[传播](../../context-propagation/#propagation)任何你想传递的数据。
11+
12+
Baggage 允许你在服务和进程之间传递数据,
13+
从而可以将其添加到这些服务中的[链路](../traces/)[指标](../metrics/)[日志](../logs/)中。
14+
15+
## 示例 {#example}
16+
17+
Baggage 通常用于链路,以在服务之间传播附加数据。
18+
19+
例如,假设你在请求开始时拥有一个 `clientId`,但你希望该 ID 能在链路中的所有
20+
Span、中间某个服务的指标,以及沿途的一些日志中都能使用。由于链路可能跨越多个服务,
21+
因此你需要一种方法来传播该数据,而无需在代码库的多个位置复制 `clientId`
22+
23+
通过使用[上下文传播](../traces/#context-propagation)在这些服务之间传递
24+
Baggage,`clientId` 就可以用于添加到任何额外的 Span、指标或日志中。此外,
25+
插桩会自动为你传播 Baggage。
26+
27+
![OTel Baggage](../otel-baggage.svg)
28+
29+
## OTel Baggage 应该用于什么? {#why-should-otel-baggage-be-used-for}
30+
31+
Baggage 最适合用于将请求开始时通常可用的信息,传递到后续处理流程中。
32+
这些信息可以包括账户标识、用户 ID、产品 ID 和来源 IP 等。
33+
34+
使用 Baggage 传播这些信息,可以对后端的遥测数据进行更深入的分析。例如,
35+
如果你在一个链路数据库调用的 Span 上包含用户 ID,
36+
你就可以更轻松地回答“哪些用户遇到的数据库调用最慢?”这样的问题。
37+
你还可以在记录下游操作的日志时,将相同的用户 ID 包含在日志数据中。
38+
39+
![OTel Baggage](../otel-baggage-2.svg)
40+
41+
## Baggage 的安全注意事项 {#baggage-security-considerations}
42+
43+
敏感的 Baggage 项可能会被共享给非预期的资源,例如第三方 API。
44+
这是因为自动插桩会在大多数服务的网络请求中包含 Baggage。具体而言,
45+
Baggage 和其他链路上下文的部分会通过 HTTP 头部发送,
46+
因此对任何检查你的网络流量的人都是可见的。
47+
如果网络流量限制在你的内部网络中,则该风险可能不适用,
48+
但请注意下游服务可能会将 Baggage 传播到你的网络之外。
49+
50+
此外,没有内建的完整性检查机制来确保 Baggage 项确实是你的,因此在读取时需小心谨慎。
51+
52+
## Baggage 不等同于属性 {#baggage-is-not-the-same-as-attributes}
53+
54+
关于 Baggage 的一个重要说明是,它是一个独立的键值对存储,默认不会与
55+
Span、指标或日志上的属性关联,除非你显式地将其添加。
56+
57+
要将 Baggage 条目添加为属性,你需要显式地从 Baggage 中读取数据,
58+
并将其作为属性添加到你的 Span、指标或日志中。
59+
60+
由于 Baggage 的常见用例之一是将数据添加到整个链路的
61+
[Span 属性](../traces/#attributes)中,因此一些语言提供了
62+
Baggage Span Processor,可在创建 Span 时将 Baggage 中的数据作为属性添加。
63+
64+
> 更多信息,请参阅 [Baggage 规范][baggage specification]
65+
66+
[baggage specification]: /docs/specs/otel/overview/#baggage-signal

0 commit comments

Comments
 (0)