metrics/smithyotelmetrics/int64.go (30 lines of code) (raw):
package smithyotelmetrics
import (
"context"
"github.com/aws/smithy-go/metrics"
otelmetric "go.opentelemetry.io/otel/metric"
)
type int64Counter struct {
otel interface {
Add(context.Context, int64, ...otelmetric.AddOption)
}
}
var _ metrics.Int64Counter = (*int64Counter)(nil)
var _ metrics.Int64UpDownCounter = (*int64Counter)(nil)
func (i *int64Counter) Add(ctx context.Context, v int64, opts ...metrics.RecordMetricOption) {
i.otel.Add(ctx, v, withMetricProps(opts...))
}
type int64Gauge struct {
otel otelmetric.Int64Gauge
}
var _ metrics.Int64Gauge = (*int64Gauge)(nil)
func (i *int64Gauge) Sample(ctx context.Context, v int64, opts ...metrics.RecordMetricOption) {
i.otel.Record(ctx, v, withMetricProps(opts...))
}
type int64Histogram struct {
otel otelmetric.Int64Histogram
}
var _ metrics.Int64Histogram = (*int64Histogram)(nil)
func (i *int64Histogram) Record(ctx context.Context, v int64, opts ...metrics.RecordMetricOption) {
i.otel.Record(ctx, v, withMetricProps(opts...))
}