observability

package
v0.0.0-...-51ec7a6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 23, 2026 License: Apache-2.0 Imports: 32 Imported by: 0

Documentation

Overview

Package observability owns Soro tracing, metrics, and HTTP instrumentation.

Index

Constants

View Source
const RedactedValue = "[REDACTED]"

Variables

This section is empty.

Functions

func NewLogger

func NewLogger(settings LoggerConfig) (*slog.Logger, error)

NewLogger creates the framework's default structured logger. Auto format is readable text outside production and JSON in production.

Types

type Config

type Config struct {
	ServiceName        string
	Environment        string
	Version            string
	OTLPEndpoint       string
	OTLPTimeout        time.Duration
	ResourceAttributes map[string]string
}

func (Config) Validate

func (config Config) Validate() error

type DatabaseHook

type DatabaseHook struct {
	// contains filtered or unexported fields
}

func (*DatabaseHook) AfterQuery

func (hook *DatabaseHook) AfterQuery(ctx context.Context, event *bun.QueryEvent)

func (*DatabaseHook) BeforeQuery

func (hook *DatabaseHook) BeforeQuery(ctx context.Context, event *bun.QueryEvent) context.Context

type HTTPOptions

type HTTPOptions struct {
	Logger     *slog.Logger
	RequestID  func(context.Context) string
	Fields     func(context.Context) []slog.Attr
	RedactPath func(string) string
}

type LoggerConfig

type LoggerConfig struct {
	Writer        io.Writer
	Environment   string
	Level         string
	Format        string
	SensitiveKeys []string
	ReplaceAttr   func(groups []string, attr slog.Attr) slog.Attr
	// TelemetryHandler receives the same structured records as the local
	// writer after level filtering and secret redaction.
	TelemetryHandler slog.Handler
}

type Metrics

type Metrics struct {
	// contains filtered or unexported fields
}

func (*Metrics) RecordDatabase

func (metrics *Metrics) RecordDatabase(ctx context.Context, operation, status string, duration time.Duration)

func (*Metrics) RecordEvent

func (metrics *Metrics) RecordEvent(ctx context.Context, topic, subscriber string, duration time.Duration, err error)

func (*Metrics) RecordHTTP

func (metrics *Metrics) RecordHTTP(ctx context.Context, method string, status int, duration time.Duration)

func (*Metrics) RecordJob

func (metrics *Metrics) RecordJob(ctx context.Context, kind, queue string, attempts int, duration time.Duration, err error)

func (*Metrics) RecordMail

func (metrics *Metrics) RecordMail(ctx context.Context, transport string, duration time.Duration, err error)

func (*Metrics) RecordWebhook

func (metrics *Metrics) RecordWebhook(ctx context.Context, engineID, endpoint, outcome string, status int, bodyBytes int64, duration time.Duration)

type Provider

type Provider struct {
	// contains filtered or unexported fields
}

func New

func New(ctx context.Context, config Config) (*Provider, error)

func (*Provider) DatabaseHook

func (provider *Provider) DatabaseHook() *DatabaseHook

func (*Provider) HTTPMiddleware

func (provider *Provider) HTTPMiddleware(options HTTPOptions) func(http.Handler) http.Handler

func (*Provider) Handler

func (provider *Provider) Handler() http.Handler

func (*Provider) LogHandler

func (provider *Provider) LogHandler() slog.Handler

LogHandler bridges structured slog records into the application-owned OTLP logger provider. It returns nil when network export is disabled.

func (*Provider) Meter

func (provider *Provider) Meter() metricapi.Meter

func (*Provider) Metrics

func (provider *Provider) Metrics() *Metrics

func (*Provider) Propagator

func (provider *Provider) Propagator() propagation.TextMapPropagator

func (*Provider) Shutdown

func (provider *Provider) Shutdown(ctx context.Context) error

func (*Provider) Tracer

func (provider *Provider) Tracer() trace.Tracer

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL