fix:issues

This commit is contained in:
Rogee
2025-01-07 23:22:36 +08:00
parent 20c55ff8bd
commit 9fd960c17f
2 changed files with 99 additions and 14 deletions

View 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...)
}

View File

@@ -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),