| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- // Package metrics defines the metrics APIs used by Smithy clients.
- package metrics
- import (
- "context"
- "github.com/aws/smithy-go"
- )
- // MeterProvider is the entry point for creating a Meter.
- type MeterProvider interface {
- Meter(scope string, opts ...MeterOption) Meter
- }
- // MeterOption applies configuration to a Meter.
- type MeterOption func(o *MeterOptions)
- // MeterOptions represents configuration for a Meter.
- type MeterOptions struct {
- Properties smithy.Properties
- }
- // Meter is the entry point for creation of measurement instruments.
- type Meter interface {
- // integer/synchronous
- Int64Counter(name string, opts ...InstrumentOption) (Int64Counter, error)
- Int64UpDownCounter(name string, opts ...InstrumentOption) (Int64UpDownCounter, error)
- Int64Gauge(name string, opts ...InstrumentOption) (Int64Gauge, error)
- Int64Histogram(name string, opts ...InstrumentOption) (Int64Histogram, error)
- // integer/asynchronous
- Int64AsyncCounter(name string, callback Int64Callback, opts ...InstrumentOption) (AsyncInstrument, error)
- Int64AsyncUpDownCounter(name string, callback Int64Callback, opts ...InstrumentOption) (AsyncInstrument, error)
- Int64AsyncGauge(name string, callback Int64Callback, opts ...InstrumentOption) (AsyncInstrument, error)
- // floating-point/synchronous
- Float64Counter(name string, opts ...InstrumentOption) (Float64Counter, error)
- Float64UpDownCounter(name string, opts ...InstrumentOption) (Float64UpDownCounter, error)
- Float64Gauge(name string, opts ...InstrumentOption) (Float64Gauge, error)
- Float64Histogram(name string, opts ...InstrumentOption) (Float64Histogram, error)
- // floating-point/asynchronous
- Float64AsyncCounter(name string, callback Float64Callback, opts ...InstrumentOption) (AsyncInstrument, error)
- Float64AsyncUpDownCounter(name string, callback Float64Callback, opts ...InstrumentOption) (AsyncInstrument, error)
- Float64AsyncGauge(name string, callback Float64Callback, opts ...InstrumentOption) (AsyncInstrument, error)
- }
- // InstrumentOption applies configuration to an instrument.
- type InstrumentOption func(o *InstrumentOptions)
- // InstrumentOptions represents configuration for an instrument.
- type InstrumentOptions struct {
- UnitLabel string
- Description string
- }
- // Int64Counter measures a monotonically increasing int64 value.
- type Int64Counter interface {
- Add(context.Context, int64, ...RecordMetricOption)
- }
- // Int64UpDownCounter measures a fluctuating int64 value.
- type Int64UpDownCounter interface {
- Add(context.Context, int64, ...RecordMetricOption)
- }
- // Int64Gauge samples a discrete int64 value.
- type Int64Gauge interface {
- Sample(context.Context, int64, ...RecordMetricOption)
- }
- // Int64Histogram records multiple data points for an int64 value.
- type Int64Histogram interface {
- Record(context.Context, int64, ...RecordMetricOption)
- }
- // Float64Counter measures a monotonically increasing float64 value.
- type Float64Counter interface {
- Add(context.Context, float64, ...RecordMetricOption)
- }
- // Float64UpDownCounter measures a fluctuating float64 value.
- type Float64UpDownCounter interface {
- Add(context.Context, float64, ...RecordMetricOption)
- }
- // Float64Gauge samples a discrete float64 value.
- type Float64Gauge interface {
- Sample(context.Context, float64, ...RecordMetricOption)
- }
- // Float64Histogram records multiple data points for an float64 value.
- type Float64Histogram interface {
- Record(context.Context, float64, ...RecordMetricOption)
- }
- // AsyncInstrument is the universal handle returned for creation of all async
- // instruments.
- //
- // Callers use the Stop() API to unregister the callback passed at instrument
- // creation.
- type AsyncInstrument interface {
- Stop()
- }
- // Int64Callback describes a function invoked when an async int64 instrument is
- // read.
- type Int64Callback func(context.Context, Int64Observer)
- // Int64Observer is the interface passed to async int64 instruments.
- //
- // Callers use the Observe() API of this interface to report metrics to the
- // underlying collector.
- type Int64Observer interface {
- Observe(context.Context, int64, ...RecordMetricOption)
- }
- // Float64Callback describes a function invoked when an async float64
- // instrument is read.
- type Float64Callback func(context.Context, Float64Observer)
- // Float64Observer is the interface passed to async int64 instruments.
- //
- // Callers use the Observe() API of this interface to report metrics to the
- // underlying collector.
- type Float64Observer interface {
- Observe(context.Context, float64, ...RecordMetricOption)
- }
- // RecordMetricOption applies configuration to a recorded metric.
- type RecordMetricOption func(o *RecordMetricOptions)
- // RecordMetricOptions represents configuration for a recorded metric.
- type RecordMetricOptions struct {
- Properties smithy.Properties
- }
|