* Introduce an Attributes interface and have ImmutableAttributes and the AttributesMap implement it.
* make the attribute limiting a little clearer.
* tiny javadoc fix
* Rework to restore the Attributes class, and introduce a ReadableAttributes interface
* polish the javadoc a bit
* fix some broken javadoc
* revert example change; revert test name change
* javadoc de-escalation
* fix bad merge
* Convert Link and Event types to use the new immutable Attributes
update from the upstream branch
update from parent branch changes
* move the limiting of attributes to a custom consumer class
* prototype for class to replace Map<String, AttributeValue)
* safely copy the builder's data
* add the empty constant
* optimization for attributes with a single key/value
* Add an iterator/iterable and some simple tests
* fix animalsniffer complaint
* tests for de-duping and order-independent equality, plus removal of possibly unneeded access methods.
* clean up the sort&filter method a tad
* replace the iterator with a foreach method
* Make the Attributes parameterized by the value type.
* Add basic javadoc
* remove helper class; add a simple test for the builder; make the tests more robust
* Add a varargs method for creating an arbitrary number of key/value pairs.
* static import the check method, for consistency
* Refactor to have an interface and two implementations, with some shared logic.
* fix an accidental rename
* really fix it for real
* add a few more tests
* preserve the `setAttribute` names from existing Span API
* Replace the treemap sorting and filtering with a quicksort and post-filter.
* remove an unneeded list.
* switch to an abstract base class to remove some code duplication
* Updated docs based on feedback.
* Small change to use the builder for the empty implementations.
* add shortcut methods to get tracers and meters
* add shortcut methods to get tracers and meters
* add shortcut methods to get tracers and meters
* add shortcut methods to get tracers and meters
* added jaeger propogator and test
* address PR comments about logging and static var names
* added jaeger client for testing jaeger propagator
* added comment to explain why UTF-8 decoding is needed
* Initial def of string constants for semantic convention span attribute names
* Change to recommended name and update to latest specifications
* Changed constants to objects which enabled typed setting of span attributes
* Sync Javadoc with specifications document.
* Update to latest factory name
* Renaming to make usage clearer
* API improvements and cleanup based on PR comments
* Removed methods required by code reviews
* Made setter classes final
* Initial Propagators refactor.
* Add tests for the new propagators changes.
* Make the SDK compile/pass.
* Make the OT shim compile/pass.
* Make contrib components compile/pass.
* Improvement over Span/SpanContext handling in Context.
* Add Span.setParent(Context) overload.
* Do not provide default values for Span/SpanContext keys in Context.
* Improve the Context's active state handling.
* Rename DistributedContext to CorrelationContext.
* Improve names for correlationcontext's ContextUtils methods.
* Don't provide an automatic default for current CorrelationContext.
* Improve the client-server example after the recent changes.
* Adds CorrelationContext.Builder.setParent(Context) overload.
* s/be/become.
* Fix javadoc.
* No need to use diamond.
* Simply import withScopedContext().
* Fix the API/SDK build.
* Remove the builder from the Propagators interface.
* Fix name.
* Use Collections.emptyList() directly.
* Rename Propagators to ContextPropagators.
* Move context/ members in api/ to context_prop/
* Add check/tests for null scoped Contexts.
* Rename ContextUtils classes to better alternatives.
* Update the context* util classes.
* Make the code compile after the latest master merge.
* Cache the fields() in our default composite propagator.
* Remove the overloads of setParent(Context) for now.
* Use DefaultSpan for the tests instead of calling getTracerProvider()
* Fix the sdk testbed artifact build.
* Make the B3 propagator comply with the new propagator API.
* Simplify the HttpTraceContextTest tests.
* Simplify the ContextUtils* classes handling of default values.
* Minor nit.
* Update api/src/main/java/io/opentelemetry/OpenTelemetry.java
Co-Authored-By: Giovanni Liva <giovanni.liva@dynatrace.com>
* Annotate ContextPropagators with ThreadSafe instead of Immutable.
* Do not use the fully qualified ContextUtils identifier.
* Remove SpanContext support from TracingContextUtils.
* Rever to using non-defaulted key for TracingContextUtils.
* Revert the default keys for CorrelationsContextUtils.
Co-authored-by: Giovanni Liva <giovanni.liva@dynatrace.com>
* Initial relocation of ContextUtils classes.
Now they will live within the child `propagation` package,
with a prefix based on their cross-cutting concern, to be
referenced easily.
* More gradle cleanups, separate jmh and jmhreport config
Signed-off-by: Bogdan Cristian Drutu <bogdandrutu@gmail.com>
* Remove the need to includ jmhreport
Signed-off-by: Bogdan Cristian Drutu <bogdandrutu@gmail.com>
* Only projects with the plugin maven-publish will be published
Signed-off-by: Bogdan Cristian Drutu <bogdandrutu@gmail.com>
* Switch to use pluginManagement, Use gradle plugin for jmh.
Signed-off-by: Bogdan Cristian Drutu <bogdandrutu@gmail.com>
* Fix jmh report
Signed-off-by: Bogdan Cristian Drutu <bogdandrutu@gmail.com>
* Use ' for the moment for plugin ids in main gradle
* test: add benchmarks for http trace context extract and inject
* test: add benchmarks for http trace context extract and inject
* docs: add docs
* style: apply google code style
* style: format jmh.gradle, use not deprecated archiveFileName
* test: add params for trace id and span id
* fix: fix merge conflicts
* feat: use HashMap move params to inner state
* feat: use same measurement params
* fix: apply google code style
* fix: extract span creation for more clear benchmark
* test: use vector of traceparents, increase iterations to 50k
* style: apply google code style
* feat: use vector of traceparents in inject benchmark
* Add counters to the batch recorder.
Also, allow non-monotonic batch recordings.
* remove the throws on the javadoc
* put the proper since tags on the new methods
* remove an import that seems only necessary for IDEA
* formatting
* Move unbind to the Bound to simplify usage
Signed-off-by: Bogdan Cristian Drutu <bogdandrutu@gmail.com>
* Change names to be English friendly
Signed-off-by: Bogdan Cristian Drutu <bogdandrutu@gmail.com>
* Introduce automatic module names into all libraries being built.
* Centralise manifest config of automatic module name into root build.gradle file.
* Adding empty new lines
* Ignore null or blank string-valued span attributes.
* also ignore null & blank strings on active span attributes.
* change to ignore at the AttributeValue level, rather than above
* switch to varargs
* update the sdk to handle the varargs option
* format
* rename a variable to make more sense
* add back a test with 2 key/value pairs
* replace the emptyLabelSet method with the empty varargs call
* add a method to create a labelset with an arbitrary number of labels.
* add notnull annotations
* rebase for SDK implementation
* remove Nonnull annotations