mirror of
https://github.com/open-telemetry/opentelemetry-go.git
synced 2024-12-24 20:14:40 +02:00
OpenTelemetry Go API and SDK
https://opentelemetry.io/
83935b2558
* add propagation api. * add http propagator interface and w3c propagator implementation. * remove Extract api from trace. * remove Extract interface for tracer. * fix copyright. * fix variable names and comments. * move inject/extract out of trace. * replace INVALID_SPAN_CONTEXT with EmptySpanContext function. * fix tag.Map. * make carrier as interface instead of http.Request. * rename structs and update doc comments.. * add doc.go * update doc. * add noop propagator. * add new propagation api with Supplier interface. - added Default Tracer which simply propagates SpanContext. - added CopyOfRemote option to simply create remote span. * remove old propagator. * rename propagator to TextFormatPropagator. * rename default tracer/span as pass_through tracer/span. * add test for pass through tracer. * add missing interface to pass through tracer. * return SpanContext instead of contex.Context from Extract interface. - also remove PassThroughTracer * fix review comments. * add more test cases for traceContext extraction. * remove tidy temporarily from circle-ci target to avoid build failure. * allow header ending in dash '-'. * add inject test for non-zero value other than 01 for traceoption * add AddLink and Link interface to MockSpan * fix running go mod tidy on every build. |
||
---|---|---|
.circleci | ||
api | ||
example | ||
experimental/streaming | ||
exporter/trace/jaeger | ||
internal/trace | ||
plugin/httptrace | ||
propagation | ||
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