fix:issues
This commit is contained in:
91
templates/project/providers/otel/funcs.go.tpl
Normal file
91
templates/project/providers/otel/funcs.go.tpl
Normal file
@@ -0,0 +1,91 @@
|
||||
package otel
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"go.opentelemetry.io/otel/metric"
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
)
|
||||
|
||||
var (
|
||||
tracer trace.Tracer
|
||||
meter metric.Meter
|
||||
)
|
||||
|
||||
func Start(ctx context.Context, spanName string, opts ...trace.SpanStartOption) (context.Context, trace.Span) {
|
||||
return tracer.Start(ctx, spanName, opts...)
|
||||
}
|
||||
|
||||
func Int64Counter(name string, options ...metric.Int64CounterOption) (metric.Int64Counter, error) {
|
||||
return meter.Int64Counter(name, options...)
|
||||
}
|
||||
|
||||
// Int64UpDownCounter
|
||||
func Int64UpDownCounter(name string, options ...metric.Int64UpDownCounterOption) (metric.Int64UpDownCounter, error) {
|
||||
return meter.Int64UpDownCounter(name, options...)
|
||||
}
|
||||
|
||||
// Int64Histogram
|
||||
func Int64Histogram(name string, options ...metric.Int64HistogramOption) (metric.Int64Histogram, error) {
|
||||
return meter.Int64Histogram(name, options...)
|
||||
}
|
||||
|
||||
// Int64Gauge
|
||||
func Int64Gauge(name string, options ...metric.Int64GaugeOption) (metric.Int64Gauge, error) {
|
||||
return meter.Int64Gauge(name, options...)
|
||||
}
|
||||
|
||||
// Int64ObservableCounter
|
||||
func Int64ObservableCounter(name string, options ...metric.Int64ObservableCounterOption) (metric.Int64ObservableCounter, error) {
|
||||
return meter.Int64ObservableCounter(name, options...)
|
||||
}
|
||||
|
||||
// Int64ObservableUpDownCounter
|
||||
func Int64ObservableUpDownCounter(name string, options ...metric.Int64ObservableUpDownCounterOption) (metric.Int64ObservableUpDownCounter, error) {
|
||||
return meter.Int64ObservableUpDownCounter(name, options...)
|
||||
}
|
||||
|
||||
// Int64ObservableGauge
|
||||
func Int64ObservableGauge(name string, options ...metric.Int64ObservableGaugeOption) (metric.Int64ObservableGauge, error) {
|
||||
return meter.Int64ObservableGauge(name, options...)
|
||||
}
|
||||
|
||||
// Float64Counter
|
||||
func Float64Counter(name string, options ...metric.Float64CounterOption) (metric.Float64Counter, error) {
|
||||
return meter.Float64Counter(name, options...)
|
||||
}
|
||||
|
||||
// Float64UpDownCounter
|
||||
func Float64UpDownCounter(name string, options ...metric.Float64UpDownCounterOption) (metric.Float64UpDownCounter, error) {
|
||||
return meter.Float64UpDownCounter(name, options...)
|
||||
}
|
||||
|
||||
// Float64Histogram
|
||||
func Float64Histogram(name string, options ...metric.Float64HistogramOption) (metric.Float64Histogram, error) {
|
||||
return meter.Float64Histogram(name, options...)
|
||||
}
|
||||
|
||||
// Float64Gauge
|
||||
func Float64Gauge(name string, options ...metric.Float64GaugeOption) (metric.Float64Gauge, error) {
|
||||
return meter.Float64Gauge(name, options...)
|
||||
}
|
||||
|
||||
// Float64ObservableCounter
|
||||
func Float64ObservableCounter(name string, options ...metric.Float64ObservableCounterOption) (metric.Float64ObservableCounter, error) {
|
||||
return meter.Float64ObservableCounter(name, options...)
|
||||
}
|
||||
|
||||
// Float64ObservableUpDownCounter
|
||||
func Float64ObservableUpDownCounter(name string, options ...metric.Float64ObservableUpDownCounterOption) (metric.Float64ObservableUpDownCounter, error) {
|
||||
return meter.Float64ObservableUpDownCounter(name, options...)
|
||||
}
|
||||
|
||||
// Float64ObservableGauge
|
||||
func Float64ObservableGauge(name string, options ...metric.Float64ObservableGaugeOption) (metric.Float64ObservableGauge, error) {
|
||||
return meter.Float64ObservableGauge(name, options...)
|
||||
}
|
||||
|
||||
// RegisterCallback
|
||||
func RegisterCallback(f metric.Callback, instruments ...metric.Observable) (metric.Registration, error) {
|
||||
return meter.RegisterCallback(f, instruments...)
|
||||
}
|
||||
@@ -18,21 +18,14 @@ import (
|
||||
"go.opentelemetry.io/otel/exporters/otlp/otlptrace"
|
||||
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
|
||||
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp"
|
||||
"go.opentelemetry.io/otel/metric"
|
||||
"go.opentelemetry.io/otel/propagation"
|
||||
sdkmetric "go.opentelemetry.io/otel/sdk/metric"
|
||||
"go.opentelemetry.io/otel/sdk/resource"
|
||||
sdktrace "go.opentelemetry.io/otel/sdk/trace"
|
||||
semconv "go.opentelemetry.io/otel/semconv/v1.15.0"
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
"google.golang.org/grpc/encoding/gzip"
|
||||
)
|
||||
|
||||
var (
|
||||
Tracer trace.Tracer
|
||||
Meter metric.Meter
|
||||
)
|
||||
|
||||
func Provide(opts ...opt.Option) error {
|
||||
o := opt.New(opts...)
|
||||
var config Config
|
||||
@@ -41,7 +34,7 @@ func Provide(opts ...opt.Option) error {
|
||||
}
|
||||
config.format()
|
||||
return container.Container.Provide(func(ctx context.Context) (contracts.Initial, error) {
|
||||
o := &OTEL{
|
||||
o := &builder{
|
||||
config: &config,
|
||||
}
|
||||
|
||||
@@ -57,20 +50,21 @@ func Provide(opts ...opt.Option) error {
|
||||
return o, errors.Wrapf(err, "Failed to create OpenTelemetry tracer provider")
|
||||
}
|
||||
|
||||
Tracer = otel.Tracer(config.ServiceName)
|
||||
Meter = otel.Meter(config.ServiceName)
|
||||
tracer = otel.Tracer(config.ServiceName)
|
||||
meter = otel.Meter(config.ServiceName)
|
||||
|
||||
log.Info("otel provider init success")
|
||||
return o, nil
|
||||
}, o.DiOptions()...)
|
||||
}
|
||||
|
||||
type OTEL struct {
|
||||
type builder struct {
|
||||
config *Config
|
||||
|
||||
resource *resource.Resource
|
||||
}
|
||||
|
||||
func (o *OTEL) initResource(ctx context.Context) (err error) {
|
||||
func (o *builder) initResource(ctx context.Context) (err error) {
|
||||
hostName, _ := os.Hostname()
|
||||
|
||||
o.resource, err = resource.New(
|
||||
@@ -91,7 +85,7 @@ func (o *OTEL) initResource(ctx context.Context) (err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func (o *OTEL) initMeterProvider(ctx context.Context) (err error) {
|
||||
func (o *builder) initMeterProvider(ctx context.Context) (err error) {
|
||||
exporterGrpcFunc := func(ctx context.Context) (sdkmetric.Exporter, error) {
|
||||
opts := []otlpmetricgrpc.Option{
|
||||
otlpmetricgrpc.WithEndpoint(o.config.EndpointGRPC),
|
||||
@@ -160,7 +154,7 @@ func (o *OTEL) initMeterProvider(ctx context.Context) (err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func (o *OTEL) initTracerProvider(ctx context.Context) error {
|
||||
func (o *builder) initTracerProvider(ctx context.Context) error {
|
||||
exporterGrpcFunc := func(ctx context.Context) (*otlptrace.Exporter, error) {
|
||||
opts := []otlptracegrpc.Option{
|
||||
otlptracegrpc.WithCompressor(gzip.Name),
|
||||
|
||||
Reference in New Issue
Block a user