Documentation
¶
Overview ¶
Package async provides a non-blocking metrics adapter with configurable buffer size and sampling rate for high-throughput applications.
Index ¶
- type AsyncMetrics
- func (a *AsyncMetrics) Flush(ctx context.Context) error
- func (a *AsyncMetrics) IncrementCounter(metric string, value int64)
- func (a *AsyncMetrics) RecordDuration(operation string, duration time.Duration)
- func (a *AsyncMetrics) RecordHistogram(metric string, value float64)
- func (a *AsyncMetrics) SetGauge(metric string, value float64)
- func (a *AsyncMetrics) Stop(ctx context.Context) error
- type MetricsOperation
- type OptionFunc
- type Options
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AsyncMetrics ¶
type AsyncMetrics struct {
// contains filtered or unexported fields
}
AsyncMetrics wraps a MetricsPort for non-blocking async operation
func NewAsyncMetrics ¶
func NewAsyncMetrics(inner port.MetricsPort, opts ...OptionFunc) *AsyncMetrics
NewAsyncMetrics creates a new async metrics wrapper
func (*AsyncMetrics) Flush ¶
func (a *AsyncMetrics) Flush(ctx context.Context) error
Flush waits for all queued operations to complete
func (*AsyncMetrics) IncrementCounter ¶
func (a *AsyncMetrics) IncrementCounter(metric string, value int64)
IncrementCounter implements port.MetricsPort
func (*AsyncMetrics) RecordDuration ¶
func (a *AsyncMetrics) RecordDuration(operation string, duration time.Duration)
RecordDuration implements port.MetricsPort
func (*AsyncMetrics) RecordHistogram ¶
func (a *AsyncMetrics) RecordHistogram(metric string, value float64)
RecordHistogram implements port.MetricsPort
func (*AsyncMetrics) SetGauge ¶
func (a *AsyncMetrics) SetGauge(metric string, value float64)
SetGauge implements port.MetricsPort
type MetricsOperation ¶
type MetricsOperation struct {
Type string // "duration", "counter", "gauge", "histogram"
Metric string
Operation string
Duration time.Duration
Value any
}
MetricsOperation represents a single metrics operation
type OptionFunc ¶
type OptionFunc func(*Options)
OptionFunc is a function that modifies Options
func WithBufferSize ¶
func WithBufferSize(size int) OptionFunc
WithBufferSize sets the buffer size for the operation queue
func WithSamplingRate ¶
func WithSamplingRate(rate float64) OptionFunc
WithSamplingRate sets the sampling rate (0.0 to 1.0)