OpenTelemetry 项目包布局
本文档旨在记录 OpenTelemetry 项目的基本布局的“外观和感觉”。此包布局有意保持通用,并且不试图强制执行特定于语言的包结构。
API 包
以下是 OpenTelemetry API 包的建议通用包结构。
典型的顶级目录布局
api
├── context
│ └── propagation
├── metrics
├── trace
│ └── propagation
├── baggage
│ └── propagation
├── internal
└── logs
小写、CamelCase 或 Snake Case(风格为 snake_case)名称的使用取决于语言。
/api/context
此目录描述了提供进程内上下文传播的 API。
/api/metrics
此目录描述了可用于记录应用程序指标的指标 API。
/api/baggage
此目录描述了可用于管理上下文传播和指标事件属性的Baggage API。
/api/trace
Trace API 由几个主要类组成。
/api/internal (可选)
不应向用户公开的库组件和实现。如果语言有内部组件的惯用布局,请遵循该语言的惯用风格。
/api/logs (未来)
待办:日志操作
SDK 包
以下是 OpenTelemetry SDK 包的建议通用包结构。
典型的顶级目录布局
sdk
├── context
├── metrics
├── resource
├── trace
├── baggage
├── internal
└── logs
小写、CamelCase 或 Snake Case(风格为 snake_case)名称的使用取决于语言。
/sdk/context
此目录描述了 api/context 的 SDK 实现。
/sdk/metrics
此目录描述了 api/metrics 的 SDK 实现。
/sdk/resource
该资源目录主要定义了一个Resource类型,该类型捕获有关从中记录统计信息或跟踪的实体的相关信息。例如,由 Kubernetes 容器公开的指标可以链接到一个指定群集、命名空间、Pod 和容器名称的资源。
/sdk/baggage
待办
/sdk/trace
此目录描述了Tracing SDK实现。
/sdk/internal (可选)
不应向用户公开的库组件和实现。如果语言有内部组件的惯用布局,请遵循该语言的惯用风格。
/sdk/logs (未来)
待办:日志操作