* Unexport NoopXXX trace types
The change unexports the noop implementations and provide the NoopProvider function for user to construct noop providers. Users can access noop tracer and noop spans by using the provider.
This change removes the types users should never be directly using from the package. It improves the usability of the API by reducing the API surface to half and helping the user to focus on the canonical APIs.
Fixes#1133
* Provide noop tracer and span for internal use
* Remove obsolete doc
* Use noop span instead of nil
* Fix the broken build
* Unify API Span Start/End Options
Replace both with `SpanOption`. Add a unified `SpanConfig` to match and
a `SpanConfigure` function to parse a `SpanConfig` from `SpanOption`s.
Update all the related options to use new `SpanOption`s.
* No non-zero SpanConfig defaults
The SDK uses an internal clock for the current time that cannot be use
if it does not know the time has not been set.
* Append attributes for WithAttributes
This preserves existing behavior.
* Add unit test for SpanConfigure
* Propagate changes
* Update append option documentation
* Update testing comments
* Move comments on guarantees to appropriate function
* Add documentation for SDK methods
Include SDK implementation specific information in the Tracer Start
method and Span End method.
* Add changes to Changelog
* Apply suggestions from code review
Co-authored-by: ET <evantorrie@users.noreply.github.com>
* Update the SpanKind comment in the SpanConfig
Try for a less tautological comment.
Co-authored-by: ET <evantorrie@users.noreply.github.com>
* Update License header for all source files
- Add Apache 2.0 header to source files that did not have one.
- Update all existing headers dated to 2019 to be 2020
- Remove comma from License header to comply with the Apache 2.0
guidelines.
* Update Copyright notice
Use the standard Copyright notices outlined by the
[CNCF](https://github.com/cncf/foundation/blob/master/copyright-notices.md#copyright-notices)
Tracer.WithSpan() will now accept StartOptions as a variadic final parameter `opts`
that will be passed to the Tracer.Start() invocation that creates the Span
wrapping the user-provided function.
* Make span start/end configuration more greppable
Rename SpanOption to StartOption
Rename StartOptions to StartConfig
Rename EndOptions to EndConfig
fixes#197
* clean dead code from noop tracer
* rename arguments from the Tracer interface's methods
* remove service, resources and component options from sdk/tracer and mock tracer
* remove unused fields from sdk/tracer
* 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.
* Move scope.Active to trace.CurrentSpan
* Remove scope / does not build
* Global tracer
* Checkpoint
* Checkpoint
* Add key/key.go for key.New
* Comments
* Remove more EventID and ScopeID
* Use Handle to describe static objects
* TODOs
* Remove empty file
* Remove singletons
* Update TODOs
* TODO about map update
* Make stats package option aliases (like key has)
* Rename experimental/streaming
* streaming SDK builds w/ many TODOs
* Get the examples building
* Tidy up metric API / add interface check
* Remove logic from the registry; this is now a placeholder
* fix compile errors.
* fix lint errors.
* add circle-ci job.
* rename IDHigh to TraceIDHigh
* rename the file.
* add go get for goimports and golangci-lint
* enable GO111MODULE and remove comments.
* remove working dir and update cache name
* Add TEST_RESULT env back.
* run go mod tidy.
* remove go mod download.
* add test coverage.
* fix TraceID.
* fix circlefi config error.
* remove install-tools.
* remove ALL_TEST_SRC from Makefile.