|
| 1 | +--- |
| 2 | +title: Distributions(发行版) |
| 3 | +description: 发行版是 OpenTelemetry 组件的定制版本,不应与“分支(fork)”混淆。 |
| 4 | +weight: 190 |
| 5 | +anchor: distributions |
| 6 | +default_lang_commit: 3337aa6fbaccf5e8734a1ef2c6ca8b61496c3d93 |
| 7 | +--- |
| 8 | + |
| 9 | +## 简介 {#introduction} |
| 10 | + |
| 11 | +OpenTelemetry 项目由多个支持不同[信号](../signals)的[组件](../components)构成。 |
| 12 | +其官方参考实现包括: |
| 13 | + |
| 14 | +- 各语言的 [自动探针库](../instrumentation) |
| 15 | +- 一个 [Collector 二进制文件](/docs/concepts/components/#collector) |
| 16 | + |
| 17 | +任何参考实现都可以进行定制,形成一个发行版(Distribution)。 |
| 18 | + |
| 19 | +## 什么是发行版?{#what-is-a-distribution} |
| 20 | + |
| 21 | +**发行版**是某个 OpenTelemetry 组件的定制版本。本质上, |
| 22 | +它是对上游 OpenTelemetry 仓库的封装,并包含一些定制功能。 |
| 23 | +**发行版不应与 Fork 混淆**。 |
| 24 | + |
| 25 | +发行版中的定制内容可能包括: |
| 26 | + |
| 27 | +- 用于简化使用流程或对某个后端/厂商环境定制的脚本 |
| 28 | +- 为了适配特定后端、厂商或最终用户而修改的默认设置 |
| 29 | +- 面向厂商或最终用户的额外打包选项 |
| 30 | +- 比 OpenTelemetry 原生实现更广的测试、性能或安全覆盖 |
| 31 | +- OpenTelemetry 尚未提供的附加功能 |
| 32 | +- 经过精简、功能减少的版本 |
| 33 | + |
| 34 | +发行版大致可分为以下几类: |
| 35 | + |
| 36 | +- **“纯净版”(Pure)**:这类发行版与上游功能保持一致,100% 兼容, |
| 37 | + 通常仅针对易用性或打包方式进行增强。此类定制通常面向特定后端、厂商或最终用户。 |
| 38 | +- **“增强版”(Plus)**:这类发行版在上游基础上增加了额外功能, |
| 39 | + 例如添加了尚未合入 OpenTelemetry 主项目的探针库或厂商专用导出器。 |
| 40 | +- **“精简版”(Minus)**:这类发行版移除了上游部分功能。 |
| 41 | + 例如,可能剔除了某些探针库、接收器、处理器、导出器或扩展组件。 |
| 42 | + 此类定制可能是为了提升支持性或安全性。 |
| 43 | + |
| 44 | +## 谁可以创建发行版?{#who-can-create-a-distribution} |
| 45 | + |
| 46 | +\*\*任何人都可以创建自己的发行版。 |
| 47 | +\*\*目前已有多个[厂商](/ecosystem/vendors/)提供了自己的[发行版](/ecosystem/distributions/)。 |
| 48 | +此外,如果你希望使用某些尚未合入 OpenTelemetry 主项目的 Registry 组件, |
| 49 | +作为最终用户你也可以考虑创建一个定制发行版。 |
| 50 | + |
| 51 | +## 贡献还是发行?{#contribution-or-distribution} |
| 52 | + |
| 53 | +在深入学习如何创建发行版之前,建议你先思考一下: |
| 54 | +你对某个 OpenTelemetry 组件的改动是否对所有用户都有价值?是否应该合并到官方参考实现中? |
| 55 | + |
| 56 | +以下问题可以帮助你判断: |
| 57 | + |
| 58 | +- 你编写的“易用性脚本”能否被通用化? |
| 59 | +- 你修改的默认设置是否对大多数用户都更合适? |
| 60 | +- 你添加的打包方式是否确实特定于某个使用场景? |
| 61 | +- 你增加的测试、性能或安全覆盖能否直接用于参考实现? |
| 62 | +- 你新增的功能是否可能成为 OpenTelemetry 的标准部分?是否与社区沟通过? |
| 63 | + |
| 64 | +## 创建你自己的发行版 {#creating-your-own-distribution} |
| 65 | + |
| 66 | +### Collector 发行版 {#collector} |
| 67 | + |
| 68 | +你可以参考以下博客文章了解如何创建属于你自己的 Collector 发行版: |
| 69 | +[如何构建属于你的 OpenTelemetry Collector 发行版](https://medium.com/p/42337e994b63) |
| 70 | + |
| 71 | +如果你正计划构建一个 Collector 发行版,可以使用官方的 |
| 72 | +[OpenTelemetry Collector Builder 工具](https://github.com/open-telemetry/opentelemetry-collector/tree/main/cmd/builder) |
| 73 | +作为起点。 |
| 74 | + |
| 75 | +### 语言特定的自动探针库 {#language-specific-instrumentation-libraries} |
| 76 | + |
| 77 | +不同语言的自动探针库也提供了定制扩展机制。例如: |
| 78 | + |
| 79 | +- [Java agent 扩展机制](/docs/zero-code/java/agent/extensions) |
| 80 | + |
| 81 | +## 遵循品牌使用规范 {#follow-the-guidelines} |
| 82 | + |
| 83 | +如果你在发行版中使用了 OpenTelemetry 项目的标识(如 logo、名称等), |
| 84 | +请务必遵循 [OpenTelemetry 品牌使用指南][guidelines]。 |
| 85 | + |
| 86 | +目前,OpenTelemetry 项目**尚未提供发行版认证机制**。未来可能会效仿 Kubernetes 项目, |
| 87 | +引入认证与合作伙伴机制。在评估某个发行版时,请确保它不会导致供应商锁定(Vendor Lock-in)。 |
| 88 | + |
| 89 | +> 注意:**发行版的技术支持由发行版的作者负责,非 OpenTelemetry 官方团队。** |
| 90 | +
|
| 91 | +[guidelines]: https://github.com/open-telemetry/community/blob/main/marketing-guidelines.md |
0 commit comments