tracing

package
v0.10.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 8, 2018 License: Apache-2.0, MIT Imports: 5 Imported by: 0

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

func LoadPlugin(pluginDir string, opts []string) (ot.Tracer, error)

LoadPlugin loads the given opentracing plugin and returns an opentracing.Tracer DEPRECATED, use LoadTracingPlugin

func LoadTracingPlugin added in v0.9.185

func LoadTracingPlugin(pluginDirs []string, opts []string) (tracer ot.Tracer, err error)

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL