apmot

package module
v1.15.0 Latest Latest
Warning

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

Go to latest
Published: Dec 8, 2021 License: Apache-2.0 Imports: 13 Imported by: 14

Documentation

Overview

Package apmot provides an Elastic APM implementation of the OpenTracing API.

Things not implemented by this tracer:

  • binary propagation format
  • baggage
  • logging (generally; errors are reported)
Example
tracer, apmtracer, recorder := newTestTracer()
defer apmtracer.Close()
opentracing.SetGlobalTracer(tracer)
defer opentracing.SetGlobalTracer(nil)

parent := opentracing.StartSpan("Parent")
for i := 0; i < 5; i++ {
	id := fmt.Sprintf("span_%d", i)
	parent.LogEvent(fmt.Sprintf("Starting %s", id))
	child := opentracing.StartSpan(id, opentracing.ChildOf(parent.Context()))
	time.Sleep(10 * time.Millisecond)
	child.Finish()
}
parent.LogEvent("A Log")
parent.Finish()
apmtracer.Flush(nil)

payloads := recorder.Payloads()
if len(payloads.Transactions) != 1 {
	panic(fmt.Errorf("expected 1 transaction, got %d", len(payloads.Transactions)))
}
for _, transaction := range payloads.Transactions {
	fmt.Printf("transaction: %s/%s\n", transaction.Name, transaction.Type)
}
for _, span := range payloads.Spans {
	fmt.Printf("span: %s/%s\n", span.Name, span.Type)
}
Output:

transaction: Parent/custom
span: span_0/custom
span: span_1/custom
span: span_2/custom
span: span_3/custom
span: span_4/custom

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func New

func New(opts ...Option) opentracing.Tracer

New returns a new opentracing.Tracer backed by the supplied Elastic APM tracer.

By default, the returned tracer will use apm.DefaultTracer. This can be overridden by using a WithTracer option. The option WithSpanRefValidator allows one to override the set of spans that are recorded. By default only child-of spans are recorded.

Types

type Option

type Option func(*otTracer)

Option sets options for the OpenTracing Tracer implementation.

func WithSpanRefValidator added in v1.10.0

func WithSpanRefValidator(validator SpanRefValidator) Option

WithSpanRefValidator returns an Option which sets the span validation function. By default only child-of span are considered valid.

func WithTracer

func WithTracer(t *apm.Tracer) Option

WithTracer returns an Option which sets t as the underlying apm.Tracer for constructing an OpenTracing Tracer.

type SpanRefValidator added in v1.10.0

type SpanRefValidator func(ref opentracing.SpanReference) bool

SpanRefValidator verifies if a span is valid and should be recorded.

Jump to

Keyboard shortcuts

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