Sobes.tech
Middle

Have you worked with OpenTelemetry?

sobes.tech AI

Answer from AI

Yes, I have worked with OpenTelemetry in Go projects for collecting metrics, logs, and traces. OpenTelemetry allows standardizing telemetry collection and integrating with various monitoring systems.

Example of initializing tracing in Go:

import (
    "go.opentelemetry.io/otel"
    "go.opentelemetry.io/otel/exporters/stdout/stdouttrace"
    "go.opentelemetry.io/otel/sdk/trace"
    "context"
)

func initTracer() (*trace.TracerProvider, error) {
    exporter, err := stdouttrace.New()
    if err != nil {
        return nil, err
    }
    tp := trace.NewTracerProvider(
        trace.WithBatcher(exporter),
    )
    otel.SetTracerProvider(tp)
    return tp, nil
}

func main() {
    tp, err := initTracer()
    if err != nil {
        panic(err)
    }
    defer tp.Shutdown(context.Background())

    tracer := otel.Tracer("example-tracer")
    ctx, span := tracer.Start(context.Background(), "main-span")
    defer span.End()

    // Your code
}

OpenTelemetry helps improve application observability and simplifies troubleshooting.