mirror of
https://github.com/open-telemetry/opentelemetry-go.git
synced 2025-01-26 03:52:03 +02:00
rghetia
83935b2558
Add propagator interface and W3C propagator (#85)
* 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.
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
Description
Languages
Go
99.8%
Makefile
0.1%