Documentation ¶
Overview ¶
Package tracing handles opentracing support for skipper
Implementations of Opentracing API can be found in the https://github.com/skipper-plugins. It follows how to implement a new tracer plugin for this interface.
The tracers, except for "noop", are built as Go Plugins. Note the warning from Go's plugin.go:
// The plugin support is currently incomplete, only supports Linux, // and has known bugs. Please report any issues.
All plugins must have a function named "InitTracer" with the following signature
func([]string) (opentracing.Tracer, error)
The parameters passed are all arguments for the plugin, i.e. everything after the first word from skipper's -opentracing parameter. E.g. when the -opentracing parameter is "mytracer foo=bar token=xxx somename=bla:3" the "mytracer" plugin will receive
[]string{"foo=bar", "token=xxx", "somename=bla:3"}
as arguments.
The tracer plugin implementation is responsible to parse the received arguments.
An example plugin looks like
package main import ( basic "github.com/opentracing/basictracer-go" opentracing "github.com/opentracing/opentracing-go" ) func InitTracer(opts []string) (opentracing.Tracer, error) { return basic.NewTracerWithOptions(basic.Options{ Recorder: basic.NewInMemoryRecorder(), ShouldSample: func(traceID uint64) bool { return traceID%64 == 0 }, MaxLogsPerSpan: 25, }), nil }
This should be built with
go build -buildmode=plugin -o basic.so ./basic/basic.go
and copied to the given as -plugindir (by default, "./plugins").
Then it can be loaded with -opentracing basic as parameter to skipper.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func LoadPlugin ¶
LoadPlugin loads the given opentracing plugin and returns an opentracing.Tracer DEPRECATED, use LoadTracingPlugin
Types ¶
This section is empty.