Skip to content

Instantly share code, notes, and snippets.

@seanhoughton
Created December 21, 2018 00:34
Show Gist options
  • Save seanhoughton/be270dbe24845e943df9e3cd58c7c520 to your computer and use it in GitHub Desktop.
Save seanhoughton/be270dbe24845e943df9e3cd58c7c520 to your computer and use it in GitHub Desktop.
Reproduction of no spans being sent
package main
import (
"fmt"
"io"
"log"
"time"
opentracing "github.com/opentracing/opentracing-go"
jaegercfg "github.com/uber/jaeger-client-go/config"
)
func main() {
closer, err := tracingDev()
if err != nil {
log.Printf("Failed to initialize tracing: %v\n", err)
}
testfunc()
if closer != nil {
log.Printf("Flushing spans (?)\n")
closer.Close()
}
}
func testfunc() {
span := opentracing.StartSpan("outer span")
defer span.Finish()
numSpans := 1000
for i := 0; i < numSpans; i++ {
subspan := opentracing.StartSpan("inner span", opentracing.ChildOf(span.Context()))
subspan.SetTag("iteration", fmt.Sprintf("%d", i))
time.Sleep(50 * time.Millisecond)
subspan.Finish()
time.Sleep(50 * time.Millisecond)
log.Printf("Span %d/%d\n", i, numSpans)
}
}
type logForwarder struct {
}
func (l *logForwarder) Error(msg string) {
log.Println(msg)
}
func (l *logForwarder) Infof(msg string, args ...interface{}) {
log.Printf(msg, args...)
}
func tracingDev() (io.Closer, error) {
cfg, err := jaegercfg.FromEnv()
if err != nil {
return nil, err
}
cfg.ServiceName = "jaegertest"
cfg.Reporter.LogSpans = true
tracer, closer, err := cfg.NewTracer(jaegercfg.Logger(&logForwarder{}))
if err != nil {
return nil, err
}
opentracing.SetGlobalTracer(tracer)
return closer, nil
}
@seanhoughton
Copy link
Author

Here's the go.mod file:

module jaegertest

require (
	github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd // indirect
	github.com/davecgh/go-spew v1.1.1 // indirect
	github.com/opentracing/opentracing-go v1.0.2
	github.com/pkg/errors v0.8.0 // indirect
	github.com/pmezard/go-difflib v1.0.0 // indirect
	github.com/stretchr/testify v1.2.2 // indirect
	github.com/uber-go/atomic v1.3.2 // indirect
	github.com/uber/jaeger-client-go v2.15.0+incompatible
	github.com/uber/jaeger-lib v1.5.0 // indirect
	go.uber.org/atomic v1.3.2 // indirect
	golang.org/x/net v0.0.0-20181129055619-fae4c4e3ad76 // indirect
)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment