tracing

package
v4.0.0-...-b8b0360 Latest Latest
Warning

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

Go to latest
Published: Jan 21, 2024 License: GPL-3.0 Imports: 9 Imported by: 0

README

How to view collected traces

Prerequisites:

  • Docker (For Jaeger image)
  • Go 1.11+ (For execution traces collected by pprof)

Using Jaeger

Tracing is disabled by default, to enable, you can use the option --enable-tracing. Jaeger endpoint can be configured with the --tracing-endpoint option and defaults to http://127.0.0.1:14268.

Run Jaeger:

$ docker run -d --name jaeger   -e COLLECTOR_ZIPKIN_HTTP_PORT=9411   -p 5775:5775/udp   -p 6831:6831/udp   -p 6832:6832/udp   -p 5778:5778   -p 16686:16686   -p 14268:14268   -p 9411:9411   jaegertracing/all-in-one:1.6

This will start the UI at http://localhost:16686

Using the Go tool

Tracing is disabled by default, to enable, you can use the option --enable-tracing. Run the application using the --pprof option to enable pprof (for trace collection).

To collect traces for 5 seconds:

$ curl http://localhost:6060/debug/pprof/trace?seconds=5 -o trace.out

View the trace with:

$ go tool trace trace.out
2018/05/04 10:39:59 Parsing trace...
2018/05/04 10:39:59 Splitting trace...
2018/05/04 10:39:59 Opening browser. Trace viewer is listening on http://127.0.0.1:51803

How to collect additional traces

We use the OpenCensus library to create traces. To trace the execution of a p2p message through the system, we must define spans around the code that handles the message. To correlate the trace with other spans defined for the same message, use the context passed inside the Message struct to create a span:

var msg p2p.Message
var mySpan *trace.Span
msg.Ctx, mySpan = trace.StartSpan(msg.Ctx, "myOperation")
myOperation()
mySpan.End()

Another example on how to define spans can be found here: https://godoc.org/go.opencensus.io/trace#example-StartSpan

Documentation

Overview

Package tracing includes useful functions for opentracing annotations.

Package tracing sets up jaeger as an opentracing tool for services in Prysm.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AnnotateError

func AnnotateError(span *trace.Span, err error)

AnnotateError on span. This should be used any time a particular span experiences an error.

func RecoveryHandlerFunc

func RecoveryHandlerFunc(ctx context.Context, p interface{}) error

RecoveryHandlerFunc is a function that recovers from the panic `p` by returning an `error`. The context can be used to extract request scoped metadata and context values.

func Setup

func Setup(serviceName, processName, endpoint string, sampleFraction float64, enable bool) error

Setup creates and initializes a new tracing configuration..

Types

This section is empty.

Jump to

Keyboard shortcuts

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