Skip to content

Commit

Permalink
Refactored init code to pass a pointer to cfg.Tracing. Also, enhanced…
Browse files Browse the repository at this point in the history
… code readability.
  • Loading branch information
austinhartzheim committed Mar 27, 2018
1 parent bd0d37c commit 9620fe8
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 26 deletions.
12 changes: 1 addition & 11 deletions main.go
Expand Up @@ -120,7 +120,7 @@ func main() {
initRuntime(cfg)
initBackend(cfg)
//Init OpenTracing if Enabled in the Properties File Tracing.TracingEnabled
initOpenTracing(cfg)
trace.InitializeTracer(&cfg.Tracing)

startAdmin(cfg)

Expand Down Expand Up @@ -384,16 +384,6 @@ func initBackend(cfg *config.Config) {
}
}

// OpenTracing Init
func initOpenTracing(cfg *config.Config) {
// If fabio.properties file has tracing.TracingEnabled set to true the init tracing
if cfg.Tracing.TracingEnabled {
trace.InitializeTracer(cfg.Tracing.CollectorType, cfg.Tracing.ConnectString, cfg.Tracing.ServiceName, cfg.Tracing.Topic, cfg.Tracing.SamplerRate, cfg.Tracing.SpanHost)

}

}

func watchBackend(cfg *config.Config, first chan bool) {
var (
last string
Expand Down
32 changes: 18 additions & 14 deletions trace/trace.go
Expand Up @@ -6,6 +6,7 @@ import (
"os"
"strings"

"github.com/fabiolb/fabio/config"
opentracing "github.com/opentracing/opentracing-go"
"github.com/opentracing/opentracing-go/ext"
zipkin "github.com/openzipkin/zipkin-go-opentracing"
Expand All @@ -20,13 +21,14 @@ func InjectHeaders(span opentracing.Span, req *http.Request) {
)
}

func CreateCollector(collectorType string, connectString string, topic string) zipkin.Collector {
func CreateCollector(collectorType, connectString, topic string) zipkin.Collector {
var collector zipkin.Collector
var err error

if collectorType == "http" {
switch collectorType {
case "http":
collector, err = zipkin.NewHTTPCollector(connectString)
} else if collectorType == "kafka" {
case "kafka":
// TODO set logger?
kafkaHosts := strings.Split(connectString, ",")
collector, err = zipkin.NewKafkaCollector(
Expand All @@ -36,8 +38,7 @@ func CreateCollector(collectorType string, connectString string, topic string) z
}

if err != nil {
log.Printf("Unable to create Zipkin %s collector: %+v", collectorType, err)
os.Exit(-1)
log.Fatalf("Unable to create Zipkin %s collector: %+v", collectorType, err)
}

return collector
Expand Down Expand Up @@ -76,18 +77,21 @@ func CreateSpan(r *http.Request, serviceName string) opentracing.Span {
return span // caller must defer span.finish()
}

func InitializeTracer(collectorType string, connectString string, serviceName string, topic string, samplerRate float64, addressPort string) {
log.Printf("Tracing initializing - type: %s, connection string: %s, service name: %s, topic: %s, samplerRate: %v", collectorType, connectString, serviceName, topic, samplerRate)
// InitializeTracer initializes OpenTracing support if Tracing.TracingEnabled
// is set in the config.
func InitializeTracer(traceConfig *config.Tracing) {
if !traceConfig.TracingEnabled {
return
}

log.Printf("Tracing initializing - type: %s, connection string: %s, service name: %s, topic: %s, samplerRate: %v",
traceConfig.CollectorType, traceConfig.ConnectString, traceConfig.ServiceName, traceConfig.Topic, traceConfig.SamplerRate)

// Create a new Zipkin Collector, Recorder, and Tracer
collector := CreateCollector(collectorType, connectString, topic)
recorder := zipkin.NewRecorder(collector, false, addressPort, serviceName)
tracer := CreateTracer(recorder, samplerRate)
collector := CreateCollector(traceConfig.CollectorType, traceConfig.ConnectString, traceConfig.Topic)
recorder := zipkin.NewRecorder(collector, false, traceConfig.SpanHost, traceConfig.ServiceName)
tracer := CreateTracer(recorder, traceConfig.SamplerRate)

// Set the Zipkin Tracer created above to the GlobalTracer
opentracing.SetGlobalTracer(tracer)

log.Printf("\n\nTRACER: %v\n\n", tracer)
log.Printf("\n\nCOLLECTOR: %v\n\n", collector)
log.Printf("\n\nRECORDER: %v\n\n", recorder)
}
12 changes: 11 additions & 1 deletion trace/trace_test.go
Expand Up @@ -4,6 +4,7 @@ import (
"net/http"
"testing"

"github.com/fabiolb/fabio/config"
opentracing "github.com/opentracing/opentracing-go"
mocktracer "github.com/opentracing/opentracing-go/mocktracer"
zipkin "github.com/openzipkin/zipkin-go-opentracing"
Expand Down Expand Up @@ -60,13 +61,22 @@ func TestCreateSpanWithParent(t *testing.T) {

func TestInitializeTracer(t *testing.T) {
opentracing.SetGlobalTracer(nil)
InitializeTracer("", "", "", "", 0.0, "")
InitializeTracer(&config.Tracing{TracingEnabled: true})
if opentracing.GlobalTracer() == nil {
t.Error("InitializeTracer set a nil tracer.")
t.FailNow()
}
}

func TestInitializeTracerWhileDisabled(t *testing.T) {
opentracing.SetGlobalTracer(nil)
InitializeTracer(&config.Tracing{TracingEnabled: false})
if opentracing.GlobalTracer() != nil {
t.Error("InitializeTracer set a tracer while tracing was disabled.")
t.FailNow()
}
}

func TestInjectHeaders(t *testing.T) {
mt := mocktracer.New()
opentracing.SetGlobalTracer(mt)
Expand Down

0 comments on commit 9620fe8

Please sign in to comment.