Skip to content

Commit

Permalink
feat: setup tracer
Browse files Browse the repository at this point in the history
  • Loading branch information
macgeargear committed Jul 11, 2024
1 parent d660bf8 commit 9c7891a
Showing 1 changed file with 47 additions and 0 deletions.
47 changes: 47 additions & 0 deletions tracer/tracer.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package tracer

import (
"context"

"github.com/isd-sgcu/rpkm67-checkin/config"
"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
"go.opentelemetry.io/otel/propagation"
"go.opentelemetry.io/otel/sdk/resource"
"go.opentelemetry.io/otel/sdk/trace"
semconv "go.opentelemetry.io/otel/semconv/v1.17.0"
)

func New(conf *config.Config) (*trace.TracerProvider, error) {
exporter, err := otlptracegrpc.New(
context.Background(),
otlptracegrpc.WithInsecure(),
otlptracegrpc.WithEndpoint(conf.Tracer.Endpoint),
)
if err != nil {
return nil, err
}

var environment string
if conf.App.IsDevelopment() {
environment = "development"
} else {
environment = "production"
}

tp := trace.NewTracerProvider(
trace.WithBatcher(exporter),
trace.WithResource(
resource.NewWithAttributes(
semconv.SchemaURL,
semconv.ServiceNameKey.String(conf.App.ServiceName),
attribute.String("environment", environment),
),
),
)
otel.SetTracerProvider(tp)
otel.SetTextMapPropagator(propagation.NewCompositeTextMapPropagator(propagation.TraceContext{}, propagation.Baggage{}))

return tp, nil
}

0 comments on commit 9c7891a

Please sign in to comment.