Sobes.tech
Senior

How have you used OpenTelemetry? Where did you send the traces?

sobes.tech AI

Answer from AI

I used OpenTelemetry in Go for collecting distributed traces and metrics from microservices. I typically integrated the SDK into the application, creating spans for key operations such as HTTP requests, database calls, and external services.

I sent traces to observability systems like Jaeger or Zipkin using the respective exporters. I also often sent data to cloud monitoring services like Google Cloud Trace or AWS X-Ray, depending on the infrastructure. This allowed visualizing call chains and quickly identifying performance bottlenecks.

Example of initializing a Jaeger exporter in Go:

import (
    "go.opentelemetry.io/otel"
    "go.opentelemetry.io/otel/exporters/jaeger"
    "go.opentelemetry.io/otel/sdk/trace"
)

func initTracer() (*trace.TracerProvider, error) {
    exp, err := jaeger.New(jaeger.WithCollectorEndpoint(jaeger.WithEndpoint("http://localhost:14268/api/traces")))
    if err != nil {
        return nil, err
    }
    tp := trace.NewTracerProvider(trace.WithBatcher(exp))
    otel.SetTracerProvider(tp)
    return tp, nil
}
How have you used OpenTelemetry? Where did you send… - sobes.tech