2019-09-25 22:22:33 +02:00
|
|
|
# Example
|
|
|
|
|
|
|
|
## HTTP
|
|
|
|
This is a simple example that demonstrates tracing http request from client to server. The example
|
2019-10-23 18:38:01 +02:00
|
|
|
shows key aspects of tracing such as:
|
|
|
|
|
2019-09-25 22:22:33 +02:00
|
|
|
- Root Span (on Client)
|
|
|
|
- Child Span (on Client)
|
|
|
|
- Child Span from a Remote Parent (on Server)
|
|
|
|
- SpanContext Propagation (from Client to Server)
|
|
|
|
- Span Events
|
|
|
|
- Span Attributes
|
|
|
|
|
|
|
|
Example uses
|
|
|
|
- open-telemetry SDK as trace instrumentation provider,
|
|
|
|
- httptrace plugin to facilitate tracing http request on client and server
|
|
|
|
- http trace_context propagation to propagate SpanContext on the wire.
|
2019-10-23 18:38:01 +02:00
|
|
|
- stdout exporter to print information about spans in the terminal
|
2019-09-25 22:22:33 +02:00
|
|
|
|
|
|
|
### How to run?
|
|
|
|
|
|
|
|
#### Prequisites
|
|
|
|
|
2019-10-29 17:45:48 +02:00
|
|
|
- go 1.13 installed
|
2019-09-25 22:22:33 +02:00
|
|
|
- GOPATH is configured.
|
|
|
|
|
|
|
|
#### 1 Download git repo
|
|
|
|
```
|
2019-11-01 20:40:29 +02:00
|
|
|
GO111MODULE="" go get -d go.opentelemetry.io/otel
|
2019-09-25 22:22:33 +02:00
|
|
|
```
|
|
|
|
|
2019-09-28 20:27:02 +02:00
|
|
|
#### 2 Start Server
|
2019-09-25 22:22:33 +02:00
|
|
|
```
|
2019-11-01 20:40:29 +02:00
|
|
|
cd $GOPATH/src/go.opentelemetry.io/otel/example/http/
|
2019-09-25 22:22:33 +02:00
|
|
|
go run ./server/server.go
|
2019-10-23 18:38:01 +02:00
|
|
|
```
|
2019-09-25 22:22:33 +02:00
|
|
|
|
2019-09-28 20:27:02 +02:00
|
|
|
#### 3 Start Client
|
2019-09-25 22:22:33 +02:00
|
|
|
```
|
2019-11-01 20:40:29 +02:00
|
|
|
cd $GOPATH/src/go.opentelemetry.io/otel/example/http/
|
2019-09-25 22:22:33 +02:00
|
|
|
go run ./client/client.go
|
2019-10-23 18:38:01 +02:00
|
|
|
```
|
2019-09-25 22:22:33 +02:00
|
|
|
|
2019-09-28 20:27:02 +02:00
|
|
|
#### 4 Check traces in stdout
|
2019-09-25 22:22:33 +02:00
|
|
|
|
2019-09-28 20:27:02 +02:00
|
|
|
The spans should be visible in stdout in the order that they were exported.
|