tracing

package
v0.10.59 Latest Latest
Warning

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

Go to latest
Published: Aug 16, 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.

Directories

Path Synopsis
Package tracingtest provides an OpenTracing implementation for testing purposes.
Package tracingtest provides an OpenTracing implementation for testing purposes.

Jump to

Keyboard shortcuts

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