observability

package
v1.1.1 Latest Latest
Warning

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

Go to latest
Published: Sep 21, 2025 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DefaultLogger

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

DefaultLogger provides a simple implementation of the Logger interface

func NewDefaultLogger

func NewDefaultLogger(level LogLevel) *DefaultLogger

NewDefaultLogger creates a new default logger

func (*DefaultLogger) Debug

func (l *DefaultLogger) Debug(ctx context.Context, msg string, fields map[string]interface{})

Debug logs a debug message

func (*DefaultLogger) Error

func (l *DefaultLogger) Error(ctx context.Context, msg string, fields map[string]interface{})

Error logs an error message

func (*DefaultLogger) Info

func (l *DefaultLogger) Info(ctx context.Context, msg string, fields map[string]interface{})

Info logs an info message

func (*DefaultLogger) Warn

func (l *DefaultLogger) Warn(ctx context.Context, msg string, fields map[string]interface{})

Warn logs a warning message

func (*DefaultLogger) WithFields

func (l *DefaultLogger) WithFields(fields map[string]interface{}) Logger

WithFields returns a new logger with additional fields

type DefaultMetricsCollector

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

DefaultMetricsCollector provides a simple in-memory metrics implementation

func NewDefaultMetricsCollector

func NewDefaultMetricsCollector() *DefaultMetricsCollector

NewDefaultMetricsCollector creates a new default metrics collector

func (*DefaultMetricsCollector) GetMetrics

GetMetrics returns a snapshot of current metrics

func (*DefaultMetricsCollector) RecordCacheEviction

func (m *DefaultMetricsCollector) RecordCacheEviction(ctx context.Context, key string)

RecordCacheEviction records a cache eviction

func (*DefaultMetricsCollector) RecordCacheHit

func (m *DefaultMetricsCollector) RecordCacheHit(ctx context.Context, key string)

RecordCacheHit records a cache hit

func (*DefaultMetricsCollector) RecordCacheMiss

func (m *DefaultMetricsCollector) RecordCacheMiss(ctx context.Context, key string)

RecordCacheMiss records a cache miss

func (*DefaultMetricsCollector) RecordError

func (m *DefaultMetricsCollector) RecordError(ctx context.Context, operation string, errorType core.ErrorType)

RecordError records an error by type

func (*DefaultMetricsCollector) RecordFlagCheck

func (m *DefaultMetricsCollector) RecordFlagCheck(ctx context.Context, key string, enabled bool, duration time.Duration)

RecordFlagCheck records a flag check operation

func (*DefaultMetricsCollector) RecordFlagDelete

func (m *DefaultMetricsCollector) RecordFlagDelete(ctx context.Context, key string, success bool, duration time.Duration)

RecordFlagDelete records a flag delete operation

func (*DefaultMetricsCollector) RecordFlagGet

func (m *DefaultMetricsCollector) RecordFlagGet(ctx context.Context, key string, found bool, duration time.Duration)

RecordFlagGet records a flag get operation

func (*DefaultMetricsCollector) RecordFlagSet

func (m *DefaultMetricsCollector) RecordFlagSet(ctx context.Context, key string, success bool, duration time.Duration)

RecordFlagSet records a flag set operation

func (*DefaultMetricsCollector) RecordStorageOperation

func (m *DefaultMetricsCollector) RecordStorageOperation(ctx context.Context, operation string, success bool, duration time.Duration)

RecordStorageOperation records a storage operation

type LogLevel

type LogLevel int

LogLevel represents different logging levels

const (
	LogLevelDebug LogLevel = iota
	LogLevelInfo
	LogLevelWarn
	LogLevelError
)

func (LogLevel) String

func (l LogLevel) String() string

type Logger

type Logger interface {
	Debug(ctx context.Context, msg string, fields map[string]interface{})
	Info(ctx context.Context, msg string, fields map[string]interface{})
	Warn(ctx context.Context, msg string, fields map[string]interface{})
	Error(ctx context.Context, msg string, fields map[string]interface{})
	WithFields(fields map[string]interface{}) Logger
}

Logger defines the interface for structured logging

type MetricsCollector

type MetricsCollector interface {
	// Flag access metrics
	RecordFlagCheck(ctx context.Context, key string, enabled bool, duration time.Duration)
	RecordFlagGet(ctx context.Context, key string, found bool, duration time.Duration)
	RecordFlagSet(ctx context.Context, key string, success bool, duration time.Duration)
	RecordFlagDelete(ctx context.Context, key string, success bool, duration time.Duration)

	// Cache metrics
	RecordCacheHit(ctx context.Context, key string)
	RecordCacheMiss(ctx context.Context, key string)
	RecordCacheEviction(ctx context.Context, key string)

	// Storage metrics
	RecordStorageOperation(ctx context.Context, operation string, success bool, duration time.Duration)

	// Error metrics
	RecordError(ctx context.Context, operation string, errorType core.ErrorType)

	// Get metrics snapshot
	GetMetrics() core.MetricsSnapshot
}

MetricsCollector defines the interface for collecting metrics

type NoOpLogger

type NoOpLogger struct{}

NoOpLogger is a logger that does nothing

func NewNoOpLogger

func NewNoOpLogger() *NoOpLogger

NewNoOpLogger creates a new no-op logger

func (*NoOpLogger) Debug

func (l *NoOpLogger) Debug(ctx context.Context, msg string, fields map[string]interface{})

Debug does nothing

func (*NoOpLogger) Error

func (l *NoOpLogger) Error(ctx context.Context, msg string, fields map[string]interface{})

Error does nothing

func (*NoOpLogger) Info

func (l *NoOpLogger) Info(ctx context.Context, msg string, fields map[string]interface{})

Info does nothing

func (*NoOpLogger) Warn

func (l *NoOpLogger) Warn(ctx context.Context, msg string, fields map[string]interface{})

Warn does nothing

func (*NoOpLogger) WithFields

func (l *NoOpLogger) WithFields(fields map[string]interface{}) Logger

WithFields returns the same no-op logger

type NoOpMetricsCollector

type NoOpMetricsCollector struct{}

NoOpMetricsCollector is a metrics collector that does nothing

func NewNoOpMetricsCollector

func NewNoOpMetricsCollector() *NoOpMetricsCollector

NewNoOpMetricsCollector creates a new no-op metrics collector

func (*NoOpMetricsCollector) GetMetrics

func (m *NoOpMetricsCollector) GetMetrics() core.MetricsSnapshot

GetMetrics returns an empty metrics snapshot

func (*NoOpMetricsCollector) RecordCacheEviction

func (m *NoOpMetricsCollector) RecordCacheEviction(ctx context.Context, key string)

RecordCacheEviction does nothing

func (*NoOpMetricsCollector) RecordCacheHit

func (m *NoOpMetricsCollector) RecordCacheHit(ctx context.Context, key string)

RecordCacheHit does nothing

func (*NoOpMetricsCollector) RecordCacheMiss

func (m *NoOpMetricsCollector) RecordCacheMiss(ctx context.Context, key string)

RecordCacheMiss does nothing

func (*NoOpMetricsCollector) RecordError

func (m *NoOpMetricsCollector) RecordError(ctx context.Context, operation string, errorType core.ErrorType)

RecordError does nothing

func (*NoOpMetricsCollector) RecordFlagCheck

func (m *NoOpMetricsCollector) RecordFlagCheck(ctx context.Context, key string, enabled bool, duration time.Duration)

RecordFlagCheck does nothing

func (*NoOpMetricsCollector) RecordFlagDelete

func (m *NoOpMetricsCollector) RecordFlagDelete(ctx context.Context, key string, success bool, duration time.Duration)

RecordFlagDelete does nothing

func (*NoOpMetricsCollector) RecordFlagGet

func (m *NoOpMetricsCollector) RecordFlagGet(ctx context.Context, key string, found bool, duration time.Duration)

RecordFlagGet does nothing

func (*NoOpMetricsCollector) RecordFlagSet

func (m *NoOpMetricsCollector) RecordFlagSet(ctx context.Context, key string, success bool, duration time.Duration)

RecordFlagSet does nothing

func (*NoOpMetricsCollector) RecordStorageOperation

func (m *NoOpMetricsCollector) RecordStorageOperation(ctx context.Context, operation string, success bool, duration time.Duration)

RecordStorageOperation does nothing

Jump to

Keyboard shortcuts

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