Documentation
¶
Index ¶
- Constants
- func ContextFunc(ctx context.Context) []zapcore.Field
- func FilterFieldsCore(core zapcore.Core, dropKeys ...string) zapcore.Core
- func HasContext(ctx context.Context) bool
- func Layer(name string) di.Option
- func Module() di.Node
- func NewBaseLogger(cfg Config) (*zap.Logger, error)
- func NewEventLogger(log *zap.Logger) fxevent.Logger
- func NewLogExporter(ctx context.Context, config Config, opts ...otlploggrpc.Option) (sdklog.Exporter, error)
- func NewLogger(config Config, lp *LoggerProvider) (*zap.Logger, error)
- func NewMetricExporter(ctx context.Context, config Config) (sdkmetric.Exporter, error)
- func NewResource(ctx context.Context, config Config) (*resource.Resource, error)
- func NewTraceExporter(ctx context.Context, config Config, opts ...otlptracegrpc.Option) (sdktrace.SpanExporter, error)
- func WithLogger(ctx context.Context, logger *zap.Logger) context.Context
- func WithTracer(ctx context.Context, tracer trace.Tracer) context.Context
- func ZapFieldsFromContext(ctx context.Context, buf *[4]zap.Field) []zap.Field
- type Attached
- type Config
- type LayerMetadata
- type LoggerProvider
- type LogsConfig
- type MeterProvider
- type MetricsConfig
- type MetricsTuning
- type MockObservable
- type MockObservable_Expecter
- type MockObservable_apply_Call
- type OTLPConfig
- type Observable
- type Observer
- type Span
- type TLSConfig
- type Telemetry
- type TracerProvider
- type TracesConfig
Constants ¶
const ObservablesGroupName = "us.observables"
ObservablesGroupName is the DI group name for observable setters.
Variables ¶
This section is empty.
Functions ¶
func FilterFieldsCore ¶
FilterFieldsCore drops fields with matching keys before writing to the core.
func HasContext ¶
HasContext returns true if ctx contains observer, logger, or tracer overrides.
func NewLogExporter ¶
func NewMetricExporter ¶
func NewTraceExporter ¶
func NewTraceExporter(ctx context.Context, config Config, opts ...otlptracegrpc.Option) (sdktrace.SpanExporter, error)
func WithLogger ¶
WithLogger stores a zap.Logger in context for later span creation.
func WithTracer ¶
WithTracer stores a trace.Tracer in context for later span creation.
Types ¶
type Attached ¶
type Attached struct {
Logger *zap.Logger
TracerProvider *TracerProvider
}
Attached is a marker indicating telemetry has been wired.
func AttachTelemetryToObservables ¶
func AttachTelemetryToObservables(logger *zap.Logger, tp *TracerProvider, observables ...Observable) Attached
type Config ¶
type Config struct {
ServiceName string `mapstructure:"service_name"`
LogLevel string `mapstructure:"log_level" default:"info"`
Enabled bool `mapstructure:"enabled" default:"false"`
ResourceAttrs map[string]string `mapstructure:"resource_attributes"`
OTLP OTLPConfig `mapstructure:"otlp"`
Traces TracesConfig `mapstructure:"traces"`
Logs LogsConfig `mapstructure:"logs"`
Metrics MetricsConfig `mapstructure:"metrics"`
}
func (Config) OTLPForLogs ¶
func (c Config) OTLPForLogs() OTLPConfig
OTLPForLogs returns the merged OTLP config for logs.
func (Config) OTLPForMetrics ¶
func (c Config) OTLPForMetrics() OTLPConfig
OTLPForMetrics returns the merged OTLP config for metrics.
func (Config) OTLPForTraces ¶
func (c Config) OTLPForTraces() OTLPConfig
OTLPForTraces returns the merged OTLP config for traces.
type LayerMetadata ¶
LayerMetadata describes a logical layer used for tracer naming.
type LoggerProvider ¶
type LoggerProvider struct {
*sdklog.LoggerProvider
}
func NewLoggerProvider ¶
type LogsConfig ¶
type LogsConfig struct {
Exporter string `mapstructure:"exporter" default:"none"`
OTLP OTLPConfig `mapstructure:"otlp"`
}
type MetricsConfig ¶
type MetricsConfig struct {
Exporter string `mapstructure:"exporter" default:"none"`
Tuning MetricsTuning `mapstructure:"tuning"`
OTLP OTLPConfig `mapstructure:"otlp"`
}
type MetricsTuning ¶
type MockObservable ¶ added in v1.2.0
MockObservable is an autogenerated mock type for the Observable type
func NewMockObservable ¶ added in v1.2.0
func NewMockObservable(t interface {
mock.TestingT
Cleanup(func())
}) *MockObservable
NewMockObservable creates a new instance of MockObservable. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. The first argument is typically a *testing.T value.
func (*MockObservable) EXPECT ¶ added in v1.2.0
func (_m *MockObservable) EXPECT() *MockObservable_Expecter
type MockObservable_Expecter ¶ added in v1.2.0
type MockObservable_Expecter struct {
// contains filtered or unexported fields
}
type MockObservable_apply_Call ¶ added in v1.2.0
MockObservable_apply_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'apply'
func (*MockObservable_apply_Call) Return ¶ added in v1.2.0
func (_c *MockObservable_apply_Call) Return() *MockObservable_apply_Call
func (*MockObservable_apply_Call) Run ¶ added in v1.2.0
func (_c *MockObservable_apply_Call) Run(run func(observer *Observer)) *MockObservable_apply_Call
func (*MockObservable_apply_Call) RunAndReturn ¶ added in v1.2.0
func (_c *MockObservable_apply_Call) RunAndReturn(run func(observer *Observer)) *MockObservable_apply_Call
type OTLPConfig ¶
type OTLPConfig struct {
Endpoint string `mapstructure:"endpoint"`
Protocol string `mapstructure:"protocol"`
Headers map[string]string `mapstructure:"headers"`
TimeoutMS int `mapstructure:"timeout_ms"`
Compression string `mapstructure:"compression"`
Insecure bool `mapstructure:"insecure"`
TLS TLSConfig `mapstructure:"tls"`
}
func (OTLPConfig) EndpointForGRPC ¶
func (c OTLPConfig) EndpointForGRPC() string
func (OTLPConfig) EndpointForHTTP ¶
func (c OTLPConfig) EndpointForHTTP() (string, string)
func (OTLPConfig) Timeout ¶
func (c OTLPConfig) Timeout() time.Duration
type Observable ¶
type Observable interface {
// contains filtered or unexported methods
}
Observable is implemented by types that can receive an Observability instance.
type Observer ¶
func NewNopObserver ¶ added in v1.2.0
func NewNopObserver() *Observer
func (*Observer) Span ¶
func (o *Observer) Span(ctx context.Context, name string, opts ...trace.SpanStartOption) (context.Context, *Span)
Span starts a new span and returns enriched context plus span-scoped observability.
type Span ¶
type Span struct {
*Observer
// contains filtered or unexported fields
}
type TLSConfig ¶
type Telemetry ¶
type Telemetry struct {
Obs *Observer
}
Observable can be embedded to receive an Observability via DI auto-grouping.
type TracerProvider ¶
type TracerProvider struct {
*sdktrace.TracerProvider
}
func NewTracerProvider ¶
func NewTracerProvider(ctx context.Context, resource *resource.Resource, config Config, exporter sdktrace.SpanExporter) (*TracerProvider, error)
type TracesConfig ¶
type TracesConfig struct {
Exporter string `mapstructure:"exporter" default:"none"`
Sampler string `mapstructure:"sampler" default:"parentbased_traceidratio"`
SamplerArg float64 `mapstructure:"sampler_arg" default:"1"`
OTLP OTLPConfig `mapstructure:"otlp"`
}