Skip to content

Latest commit

 

History

History
69 lines (51 loc) · 1.27 KB

README.md

File metadata and controls

69 lines (51 loc) · 1.27 KB

Tracing

Config example:

jeager:
    service_name: "foo"
    disabled: false         # default
    agent: "localhost:6831" # default

Init OT

import (
    "log"

    "github.com/city-mobil/gobuns/config"
    "github.com/city-mobil/gobuns/tracing"
    "github.com/city-mobil/gobuns/tracing/jaegercfg"
)

tracerConfFn := jaegercfg.JaegerConfig("")

err := config.InitOnce()
if err != nil {
    log.Fatal("failed init config")
}

closer, err := tracing.InitGlobalTracerFromConfig(tracerConfFn())
if err != nil {
    log.Fatal("failed to init Open Tracing ")
}
defer closer.Close()

MySQL

import (
    "database/sql"

    // register "traceable-mysql" driver
    _ "github.com/city-mobil/gobuns/tracing/mysql"
)

db, err := sql.Open("traceable-mysql", "user:password@/dbname")

HTTP middleware

import (
    "github.com/opentracing/opentracing-go"
    "github.com/city-mobil/gobuns/tracing"
)
tracer := opentracing.GlobalTracer()
mw := tracing.NewHTTPMiddleware(tracer)


handlerFunc := func(w http.ResponseWriter, r *http.Request){}
http.HandleFunc("/handler1", mw.HandlerFunc(handlerFunc))


type handler struct{}
func (h *handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
http.Handle("/handler2", mw.Handler(&handler{}))