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 由几个主要类组成。

  • Tracer 用于所有操作。请参阅Tracer 部分。
  • Span 是一个可变对象,用于存储有关当前操作执行的信息。请参阅Span 部分。

/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 (未来)

待办:日志操作