Skip to content

yuewokeji/opentracing-go-plugins

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenTracing-Go-Plugins

The plugins of opentracing-go.

Installation

go get -u github.com/yuewokeji/opentracing-go-plugins

Configuration

Initialize a tracer

Create a tracer such as jaeger.

package main

import (
	"github.com/opentracing/opentracing-go"
	"github.com/uber/jaeger-client-go"
	"github.com/uber/jaeger-client-go/transport"
	"io"
)

func initJaeger(service, url string) (opentracing.Tracer, io.Closer) {
	sender := transport.NewHTTPTransport(url)
	reporter := jaeger.NewRemoteReporter(sender, jaeger.ReporterOptions.Logger(jaeger.StdLogger))

	// samples 100% of traces
	tracer, closer := jaeger.NewTracer(service, jaeger.NewConstSampler(true), reporter)
	return tracer, closer
}

Initialize the global tracer

Let's initialize the global tracer, that's because the function opentracing.GlobalTracer() returns a no-op tracer by default.

func initGlobalTracer() io.Closer {
	// the closer can be used in shutdown hooks
	tracer, closer := initJaeger("hello-world", "https://your-reporter-url")

	opentracing.SetGlobalTracer(tracer)
	return closer
}

Plugin Summary

  1. goroutine
  2. gin
  3. goredis
  4. gorm
  5. grpc
  6. http client
  7. omnipotent