observability

package
v0.0.0-...-d364ca2 Latest Latest
Warning

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

Go to latest
Published: Aug 17, 2026 License: Apache-2.0 Imports: 26 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
}

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
}

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) 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)

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) 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