mirror of
https://github.com/open-telemetry/opentelemetry-go.git
synced 2024-12-04 09:43:23 +02:00
OpenTelemetry Go API and SDK
https://opentelemetry.io/
670b0365d8
This is to make tag.Map an immutable type, so it is safe to use concurrently. The safety is not yet fully achieved because of the functions returning contents of the map (Value and Foreach). The functions give callers an access to core.Value objects, which contain a byte slice, which has pointer like semantics. So to avoid accidental changes, we will need to copy the value if it is of BYTES type. Fixes #59 |
||
---|---|---|
.circleci | ||
api | ||
example | ||
experimental/streaming | ||
plugin/httptrace | ||
sdk | ||
.gitignore | ||
.golangci.yml | ||
CODEOWNERS | ||
go.mod | ||
go.sum | ||
LICENSE | ||
Makefile | ||
README.md | ||
tools.go |
OpenTelemetry-Go
This is a prototype intended to be modified into the opentelemetry-go implementation. The api
directory here should be used as a starting point to introduce a new OpenTelemetry exporter, whereas the existing exporter/observer
streaming model should be help verify the api
To run the examples, first build the stderr tracer plugin (requires Linux or OS X):
(cd ./experimental/streaming/exporter/stdout/plugin && make)
(cd ./experimental/streaming/exporter/spanlog/plugin && make)
Then set the OPENTELEMETRY_LIB
environment variable to the .so file in that directory, e.g.,
OPENTELEMETRY_LIB=./experimental/streaming/exporter/stderr/plugin/stderr.so go run ./example/http/server/server.go
and
OPENTELEMETRY_LIB=./experimental/streaming/exporter/spanlog/plugin/spanlog.so go run ./example/http/client/client.go