Documentation
¶
Index ¶
- Constants
- func NewLoggerProvider(ctx context.Context, res *resource.Resource, otlpEndpoint string, ...) (*sdklog.LoggerProvider, error)
- func NewMeterProvider(res *resource.Resource) (*sdkmetric.MeterProvider, http.Handler, error)
- func NewResource(ctx context.Context, bootstrapConf conf.BootstrapConf) (*resource.Resource, error)
- func NewTracerProvider(ctx context.Context, res *resource.Resource, otlpEndpoint string, ...) (*sdktrace.TracerProvider, error)
- type Conf
- type Providers
Constants ¶
const DefaultInitTimeout = 3 * time.Second
DefaultInitTimeout 是初始化 Telemetry 的默认超时时间。
Variables ¶
This section is empty.
Functions ¶
func NewLoggerProvider ¶
func NewLoggerProvider(ctx context.Context, res *resource.Resource, otlpEndpoint string, insecure bool) (*sdklog.LoggerProvider, error)
NewLoggerProvider 初始化 LoggerProvider 并配置 OTLP gRPC 导出器。
参数:
- ctx: 上下文
- res: 资源属性(包含服务名、版本等)
- otlpEndpoint: OTLP 收集器地址
- insecure: 是否使用非安全连接
返回:
- *sdklog.LoggerProvider: 配置好的 LoggerProvider
- error: 初始化过程中的错误
func NewMeterProvider ¶
NewMeterProvider 初始化 MeterProvider 并配置 Prometheus 导出器。
参数:
- res: 资源属性(包含服务名、版本等)
返回:
- *sdkmetric.MeterProvider: 配置好的 MeterProvider
- http.Handler: 用于暴露 /metrics 的 HTTP Handler
- error: 初始化过程中的错误
func NewResource ¶
NewResource 创建 OpenTelemetry Resource。 Resource 包含描述实体的属性,例如服务名称、版本等。
func NewTracerProvider ¶
func NewTracerProvider(ctx context.Context, res *resource.Resource, otlpEndpoint string, insecure bool) (*sdktrace.TracerProvider, error)
NewTracerProvider 初始化 TracerProvider 并配置 OTLP gRPC 导出器。
参数:
- ctx: 上下文
- res: 资源属性(包含服务名、版本等)
- otlpEndpoint: OTLP 收集器地址(例如 "localhost:4317")
- insecure: 是否使用非安全连接(HTTP/gRPC without TLS)
返回:
- *sdktrace.TracerProvider: 配置好的 TracerProvider
- error: 初始化过程中的错误
Types ¶
type Conf ¶
type Conf struct {
// OTLPEndpoint 是 OpenTelemetry Collector 的地址 (host:port)。
OTLPEndpoint string
// Insecure 决定是否使用非安全连接 (HTTP/gRPC without TLS)。
Insecure bool
// Traces 开关,控制是否启用链路追踪。
Traces bool
// Logs 开关,控制是否启用日志收集。
Logs bool
// Metrics 开关,控制是否启用指标监控。
Metrics bool
}
Conf 定义了 Telemetry 的配置结构。 它可以映射到配置文件(如 JSON/YAML)中的 telemetry 字段。
func (*Conf) GetOTLPEndpoint ¶
GetOTLPEndpoint 获取 OTLP Endpoint (别名)。
func (*Conf) GetOtelEndpoint ¶
GetOtelEndpoint 获取 OTLP Endpoint。
type Providers ¶
type Providers struct {
TracerProvider *sdktrace.TracerProvider
MeterProvider *sdkmetric.MeterProvider
LoggerProvider *sdklog.LoggerProvider
// MetricsHandler 是 Prometheus 的 HTTP Handler,
// 用于对外暴露 /metrics 接口供 Prometheus Server 拉取数据。
MetricsHandler http.Handler
}
Providers 聚合了 OpenTelemetry 的三个主要 Provider: - TracerProvider: 用于链路追踪 - MeterProvider: 用于指标监控 - LoggerProvider: 用于日志记录
func NewProviders ¶
func NewProviders(bootstrapConf conf.BootstrapConf) (*Providers, func(context.Context) error, error)
NewProviders 创建并初始化 Telemetry Providers。 这是一个便捷函数,内部调用 SetupWithContext,使用默认的 5 秒超时。
参数:
- bootstrapConf: 引导配置,包含 OTel 配置信息
返回:
- *Providers: 包含 Tracer, Meter, Logger Provider
- func(context.Context) error: 关闭函数,用于优雅关闭 Providers
- error: 初始化错误
func SetupWithContext ¶
func SetupWithContext(ctx context.Context, bootstrapConf conf.BootstrapConf) (*Providers, func(context.Context) error, error)
SetupWithContext 使用给定的上下文初始化 Telemetry Providers。 它会根据 bootstrapConf 中的配置决定是否启用 Traces, Metrics, Logs。
主要步骤:
- 创建 Resource (Service Name, Version)
- 设置全局 Propagator (TraceContext, Baggage)
- 初始化 Traces (如果启用)
- 初始化 Metrics (如果启用)
- 初始化 Logs (如果启用)
返回:
- *Providers: 包含 Tracer, Meter, Logger Provider
- func(context.Context) error: 关闭函数,用于优雅关闭 Providers
- error: 初始化错误