This is a Go repository with three apps: shopping-cart, orders, and payments.
These apps use custom middleware that carries X-B3-TraceId
and X-B3-SpanId
headers that the CF router injects to trace the calls between them. The traces can then be viewed in PCF-Metrics.
To add tracing the following is necessary:
- Every subsequent request should have
X-B3-TraceId
andX-B3-SpanId
headers with the values from the current request headers (see/middlewares/proxy_middleware
)
Make sure GOPATH is set up. (e.g. export GOPATH=$HOME/go
)
go get github.com/pivotal-cf/pcf-metrics-trace-example-golang
To use the script, you must login as a user that has the ability to assign space permissions and make spaces. It will create a shopping-cart, orders, and payments app that can be used to preview an example trace. You will also need to set the SUFFIX
environment variable to a unique identifier for your tracer applications.
cf login
cd $GOPATH/src/github.com/pivotal-cf/pcf-metrics-trace-example-golang
./scripts/deploy.sh
Curl the /checkout
endpoint for the given shopping cart app.
curl shopping-cart-test.cfapps.io/checkout
To view the trace in PCF-Metrics, go to the shopping-cart app in PCF-Metrics. Find the log corresponding to the /checkout endpoint and click the 'View in Trace Explorer' icon.