You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
677 B
25 lines
677 B
package grpc
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"gitoa.ru/go-4devs/otel/meter"
|
|
"go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc"
|
|
"go.opentelemetry.io/otel/sdk/metric"
|
|
)
|
|
|
|
func With(endpoint string, options ...otlpmetricgrpc.Option) func(context.Context, *meter.Option) error {
|
|
return func(ctx context.Context, o *meter.Option) error {
|
|
if len(options) == 0 {
|
|
options = append(options, otlpmetricgrpc.WithInsecure(), otlpmetricgrpc.WithEndpoint(endpoint))
|
|
}
|
|
|
|
exp, err := otlpmetricgrpc.New(ctx, options...)
|
|
if err != nil {
|
|
return fmt.Errorf("create otlpmetricgrpc: %w", err)
|
|
}
|
|
|
|
return meter.WithReader(metric.NewPeriodicReader(exp))(ctx, o)
|
|
}
|
|
}
|
|
|