0

I am planning to use Jaeger tracing in on my Golang server. Everything is ok but I haven't found a way to handle Jaeger errors. I want to catch, for example, connection error to Jaeger backend while sending trace and write it to loggly.

Code example:

package main

import (
    "fmt"
    "log"

    "golang.org/x/net/context"

    "contrib.go.opencensus.io/exporter/jaeger"
    "go.opencensus.io/trace"
)

func main() {
    agentEndpointURI := "localhost:6831"
    collectorEndpointURI := "http://localhost:14268/api/traces"

    je, err := jaeger.NewExporter(jaeger.Options{
        AgentEndpoint:     agentEndpointURI,
        CollectorEndpoint: collectorEndpointURI,
        ServiceName:       "example",
    })
    if err != nil {
        log.Fatalf("Failed to create the Jaeger exporter: %v", err)
    }

    trace.RegisterExporter(je)
    trace.ApplyConfig(trace.Config{
        DefaultSampler: trace.AlwaysSample(),
    })

    traceMethod()
}

func traceMethod() {
    ctx := context.Background()

    ctx, span := trace.StartSpan(ctx, "traceMethod")

    // Do something here if the trace doesn't reach jaeger backend, write error to loggly

    fmt.Println("send trace")

    defer span.End()
}
Yuri Shkuro
  • 564
  • 1
  • 3
  • 15
IvanSpk
  • 137
  • 1
  • 12

0 Answers0