Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
cmd
 
 
pb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Tracer – Zipping through time

Tracer is a distributed tracing system, designed after Dapper. The instrumentation is compatible with the OpenTracing specification.

Status

Tracer is currently in alpha state. It is in a working state, but very much unfinished, hardly tested and will contain bugs. You're welcome to test it, though!

Quickstart

The following steps will install Tracer, the Tracer UI and set up PostgreSQL to be used as a storage backend.

The following software is required:

  • Go 1.6 or later for building Tracer
  • PostgreSQL 9.5 or later for the storage engine

Installation

go get github.com/tracer/tracer/cmd/tracer
go get github.com/tracer/tracer-ui/cmd/tracer-ui

Configuration

Create a PostgreSQL user and schema for Tracer and import the file $GOPATH/src/github.com/tracer/tracer/storage/postgres/schema.sql. The example configuration uses the username and password tracer and the database postgres, but you're free to edit the config.

Now you can start Tracer and its UI:

cp $GOPATH/src/github.com/tracer/tracer/cmd/tracer/example.conf .
# possibly edit example.conf
$GOPATH/bin/tracer -c example.conf &
$GOPATH/bin/tracer-ui -t $GOPATH/src/github.com/tracer/tracer-ui/zipkin-ui &

To insert a basic demo trace, run

go run $GOPATH/src/github.com/tracer/tracer/cmd/demo/demo.go

To view the UI, point your browser at http://localhost:9997/.

If you want to add instrumentation to your own code, check out OpenTracing and opentracing-go for the API. To instantiate a Tracer instance that logs to the server you just started, write something like this:

import "github.com/tracer/tracer"

...

storage, err := tracer.NewGRPC("localhost:9999", &tracer.GRPCOptions{
	QueueSize:     1024,
   	FlushInterval: 1 * time.Second,
}, grpc.WithInsecure())
if err != nil {
	log.Fatal(err)
}
t := tracer.NewTracer("frontend", storage, tracer.RandomID{})

This will create a tracer t that sends traces via gRPC to your server.

For more information on Tracer's instrumentation API check godoc.org.

About

Dapper-style tracing in Go

Resources

License

Releases

No releases published

Packages

No packages published
You can’t perform that action at this time.