# README
GO-TRACING
Go-tracing provides an easy way to use jeager tracing with only four lines of code.
Quick start
// import the library
import "github.com/ricardo-ch/go-tracing"
// set your tracer
tracing.SetGlobalTracer(appName, "{zipkin_url}")
defer tracing.FlushCollector()
// define a trace
span, ctx := tracing.CreateSpan(ctx, "{span_name}", nil)
defer span.Finish()
Examples
make run-jaeger
go run examples/basic/main.go
go run examples/httpServer/main.go
go run examples/httpServer-middleware/main.go
go run examples/httpGoKit-middleware/main.go
To watch traces you just have to hit http://localhost:16686/search
Examples declare the envar they need in the code (e.g.: os.Setenv("JAEGER_AGENT_HOST", "localhost")
), but technically,
if using jaeger you are supposed to properly declare envar outside of the code. See list there
Features
- Create span from nothing
- Create span from context
- Extract/Inject span from/to httpRequest
- Extract/Inject span from/to a map[string]string (textMapCarrier)
- Declare an error span
License
go-tracing is licensed under the MIT license. (http://opensource.org/licenses/MIT)
Contributing
Pull requests are the way to help us here. We will be really grateful.
# Packages
No description provided by the author
# Functions
CreateSpan ...
CreateSpanFromClientContext ...
ExtractFromCarrier returns a span with context passed by the carrier ctx should not already have span in it.
No description provided by the author
No description provided by the author
GotKitEndpointMiddleWare returns a gokit.Middleware which change the behavior of a gokit.endpoint it had tracing capability.
HTTPMiddleware returns a Middleware that injects an OpenTracing Span found in context into the HTTP Headers.
InjectIntoCarrier returns a textMapCarrier, basically a map[string]string, which can be used to transmit a span context to another service with ExtractFromCarrier.
InjectSpan ...
No description provided by the author
SetSpanError ...
Pass UsingJaeger's result as argument to SetGlobalTracer to set Jaeger as your tracing system This is the default behavior.
# Type aliases
TraceOptions represents the options of a ClientTrace.