OpenTelemetry 工程结构
本文档展示了 OpenTelemetry 项目的基本的工程结构布局。对于包结构仅展示通用的部分,对某个特定语言的包结构不做强制要求。
API 包结构
OpenTelemetry API推荐的包结构。
从最顶层目录开始的推荐包结构布局如下:
api├── context│ └── propagation├── metrics├── trace│ └── propagation├── baggage│ └── propagation├── internal└── logs
选择全小写、驼峰命名还是蛇形命名规则取决于使用的语言。
/context
本目录包含正在执行的 context propagation 的 API 。
/metrics
本目录包含用于记录应用 Metrics 数据的 Metrics API 。
/baggage
本目录包含可以用于管理 context propagation 和与 Metrics 相关的标签的 Baggage API。
/trace
跟踪 API 包含一些主要的类:
/internal (Optional)
私有的库和应用代码。
/logs (In the future)
TODO: 日志操作
SDK Package
OpenTelemetry SDK 推荐的包结构。
从最顶层目录开始的推荐包结构布局如下:
sdk├── context├── metrics├── resource├── trace├── baggage├── internal└── logs
选择全小写、驼峰命名还是蛇形命名规则取决于使用的语言。
/sdk/context
本目录包含 api/context 的 SDK 实现。
/sdk/metrics
本目录包含 api/metrics 的 SDK 实现。
/sdk/resource
resource 目录主要定义了 Resource 类型。该类型包含了统计和跟踪实体的信息。比如, Kubernetes 可以导出指向 Kubernetes 集群、命名空间、 Pod 和容器名称的 Metrics 。
/sdk/baggage
/sdk/trace
本目录包含api/trace的SDK实现。
/sdk/internal (Optional)
私有应用和库代码。
/sdk/logs (In the future)
TODO: 日志操作
