Skip to content

Commit fde162e

Browse files
added otel
1 parent cdfcbc9 commit fde162e

1 file changed

Lines changed: 53 additions & 21 deletions

File tree

x/metrics.go

Lines changed: 53 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,7 @@ import (
1919
"strings"
2020
"time"
2121

22-
"contrib.go.opencensus.io/exporter/jaeger"
2322
oc_prom "contrib.go.opencensus.io/exporter/prometheus"
24-
datadog "github.com/DataDog/opencensus-go-exporter-datadog"
2523
"github.com/dustin/go-humanize"
2624
"github.com/golang/glog"
2725
"github.com/prometheus/client_golang/prometheus"
@@ -30,7 +28,6 @@ import (
3028
ostats "go.opencensus.io/stats"
3129
"go.opencensus.io/stats/view"
3230
"go.opencensus.io/tag"
33-
"go.opencensus.io/trace"
3431
"go.opentelemetry.io/otel"
3532
"go.opentelemetry.io/otel/exporters/otlp/otlptrace"
3633
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp"
@@ -651,34 +648,69 @@ func SinceMs(startTime time.Time) float64 {
651648
func RegisterExporters(conf *viper.Viper, service string) {
652649
if traceFlag := conf.GetString("trace"); len(traceFlag) > 0 {
653650
t := z.NewSuperFlag(traceFlag).MergeAndCheckDefault(TraceDefaults)
651+
// Create resource with service information
652+
res := resource.NewWithAttributes(
653+
semconv.SchemaURL,
654+
semconv.ServiceNameKey.String(service),
655+
)
656+
657+
// Configure the batch span processor options
658+
batchOpts := []traceTel.BatchSpanProcessorOption{
659+
traceTel.WithMaxExportBatchSize(traceTel.DefaultMaxExportBatchSize),
660+
traceTel.WithBatchTimeout(traceTel.DefaultScheduleDelay * time.Millisecond),
661+
}
662+
663+
// Set up Jaeger exporter if configured
654664
if collector := t.GetString("jaeger"); len(collector) > 0 {
655-
// Port details: https://www.jaegertracing.io/docs/getting-started/
656-
// Default collectorEndpointURI := "http://localhost:14268"
657-
je, err := jaeger.NewExporter(jaeger.Options{
658-
Endpoint: collector,
659-
ServiceName: service,
660-
})
665+
// Create Jaeger exporter using OpenTelemetry OTLP
666+
jaegerExp, err := otlptrace.New(
667+
context.Background(),
668+
otlptracehttp.NewClient(
669+
otlptracehttp.WithEndpoint(collector),
670+
otlptracehttp.WithInsecure(),
671+
),
672+
)
661673
if err != nil {
662674
log.Fatalf("Failed to create the Jaeger exporter: %v", err)
663675
}
664-
// And now finally register it as a Trace Exporter
665-
trace.RegisterExporter(je)
676+
677+
// Create trace provider with Jaeger exporter
678+
tp := traceTel.NewTracerProvider(
679+
traceTel.WithBatcher(jaegerExp, batchOpts...),
680+
traceTel.WithResource(res),
681+
traceTel.WithSampler(traceTel.AlwaysSample()),
682+
)
683+
684+
// Set the trace provider
685+
otel.SetTracerProvider(tp)
686+
glog.Infof("Registered Jaeger exporter for tracing")
666687
}
688+
689+
// Set up OTLP exporter for Datadog if configured
690+
// Note: In OpenTelemetry, typically Datadog integration uses the OTLP exporter
667691
if collector := t.GetString("datadog"); len(collector) > 0 {
668-
exporter, err := datadog.NewExporter(datadog.Options{
669-
Service: service,
670-
TraceAddr: collector,
671-
})
692+
// Create OTLP exporter for Datadog
693+
ddExporter, err := otlptrace.New(
694+
context.Background(),
695+
otlptracehttp.NewClient(
696+
otlptracehttp.WithEndpoint(collector),
697+
otlptracehttp.WithInsecure(),
698+
),
699+
)
672700
if err != nil {
673-
log.Fatal(err)
701+
log.Fatalf("Failed to create OTLP exporter for Datadog: %v", err)
674702
}
675703

676-
trace.RegisterExporter(exporter)
704+
// Create trace provider with Datadog exporter
705+
tp := traceTel.NewTracerProvider(
706+
traceTel.WithBatcher(ddExporter, batchOpts...),
707+
traceTel.WithResource(res),
708+
traceTel.WithSampler(traceTel.AlwaysSample()),
709+
)
677710

678-
// For demoing purposes, always sample.
679-
trace.ApplyConfig(trace.Config{
680-
DefaultSampler: trace.AlwaysSample(),
681-
})
711+
// Set the trace provider
712+
otel.SetTracerProvider(tp)
713+
glog.Infof("Registered Datadog exporter for tracing")
682714
}
683715
}
684716

0 commit comments

Comments
 (0)