async

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Mar 7, 2026 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

Package async provides a non-blocking metrics adapter with configurable buffer size and sampling rate for high-throughput applications.

Index

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

func (*AsyncMetrics) Stop

func (a *AsyncMetrics) Stop(ctx context.Context) error

Stop gracefully shuts down the async metrics collector

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)

type Options

type Options struct {
	BufferSize   int
	SamplingRate float64
}

Options for AsyncMetrics configuration

Jump to

Keyboard shortcuts

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