* Deprecate SdkTracerManagement
* Deprecate global SDK
* Deprecate more
* Fix
* Cleanup
* Fix
* Handle test order random
* Collector removed queued_retry
* Add a notion of Accumulation as the value passed between Accumulator and Processor
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
* Fix PR review comments
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
* Remove dependency on metrics from sdk:all
* Update sdk/all/build.gradle
Co-authored-by: Christian Neumüller <christian+github@neumueller.me>
Co-authored-by: Christian Neumüller <christian+github@neumueller.me>
This ensure clear separation of functionality. This PR does not change any functionality, it just restructures the code to separate global functionality from
the Default implementation. Also helps to ensure that Global initialization does not happen by mistake when working only with the default implementation.
Also it helps with methods like `OpenTelemetry.get()` and `OpenTelemetry.set()` to understand they are interacting with global instance
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
* Refactored benchmark to use OTLP exporter and collector
* Refactoring to add benchmarks with Simple and Batch span processors
* Removing otlp exporter from the collector config
* Using setTraceConfig to set the initial config rather than update it
* Spotlessapply
* Hide implementation of MultiSpanExporter behind interface.
* spanprocessor too
* composite
* composite
* Optimize composites based on number of items.
* Spotless
* IntelliJ + spotless race condition
* Fix test
* Make the OpenTelemetrySdk a subclass of DefaultOpenTelemetry
* Remove SPI from the explicit OpenTelemetrySdk builder usage.
Add a (super ugly) test to make sure that the clock and resource are getting set.
* Update sdk/all/src/test/java/io/opentelemetry/sdk/OpenTelemetrySdkTest.java
Co-authored-by: Anuraag Agrawal <anuraaga@gmail.com>
* Update sdk/all/src/test/java/io/opentelemetry/sdk/OpenTelemetrySdkTest.java
Co-authored-by: Anuraag Agrawal <anuraaga@gmail.com>
* address code review comments; add tests
* Require the MeterProvider to be a MeterSdkProvider
Co-authored-by: Anuraag Agrawal <anuraaga@gmail.com>
* Make the baggage API fully functional in the API
and get rid of the BaggageManager that was needed previously.
* javadoc cleanup
* more javadoc cleanup
* make the ImmutableBaggage package access
* subsume methods from AttributesKeys to AttributeKey
* remove missed instance of AttributesKeys
* make javadoc wording more representative of method intent
* have the TracerSdkProvider return the public interface, rather than a package-access class.
* change the OpenTelemetrySdk to return a management interface, rather than the SDK implementation class directly.
* formatting fix
* rename methods/parameters for the new interface
get rid of almost all production-code references to the TracerSdkProvider
* update some docs that still refer to using the old method/class
* Remove addLink that accepts Link interface
Currently the Link interface cannot easily be removed, used in the Sampler interface,
will do a separate PR for that.
Based on the specs we don't have to offer a "lazy" formatted Link API (was removed some time ago).
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
* Copy javadoc instead of reference
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
Co-authored-by: Anuraag Agrawal <aanuraag@amazon.co.jp>
* Remove Event interface, and it's usage
Based on the specification we are not required to expose this interface or have APIs that accept this interface.
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
* Fix links to Event
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
* Fix more javadocs references to Event
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
* Remove Descriptor from metrics data to be consistent with proto
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
* Remove references to descriptor
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
* Add a generic type for the key on the ImmutableKeyValuePairs.
This necessitated changing the `get` to `getValue` to avoid clashing with the java.util.Map interface.
Also introduced convenience sub-interfaces for consuming labels and attributes, so consumers don't have to worry about the types if they don't want to.
* Make AttributesMap not extend map, and restore the get method name for Attributes.
* key class and implementation
* key class and implementation
* The code compiles
* little tweaks
* some cleanup, tests are passing
* remove AttributeValue and clean up misc. references to it.
* clean up some unused bits
* add a TODO
* a bit of cleanup; fix a todo
* update for changes from the main branch
* Change method to get the underlying key.
Move the key creators to a AttributesKeys class.
Hide the implementation classes and replace with interface use.
* use autovalue for the key implementations
* fix javadoc issues
* update benchmark keys, and a few tweaks from PR review
* Add javadoc notes to encourage using the lower-overhead attribute options.
* Add javadoc clarifying subclass responsibilities around empty keys.
* make the compareTo on AttributeKeyImpl null-safe, for extra safety
* fix formatting
* switch to java 8
* update the READMEs and use Object.equals in a couple of cases to test that we're really compiling for java 8/android 24.
* formatting
* use the newer release options for the build, and change the int test to not be java 7 any more.
* switch back to source/target compatibility
* sure wish I could run docker locally to test this out.
* This is a combination of 2 commits.
This is the 1st commit message:
WIP on converting to String-based SpanContext
don't hand out the byte arrays publicly, but require making copies
make sure to hand out fresh invalid byte arrays.
Use strings for span and trace ids.
Switch over to CharSequence instead of String for the ids
Fix a couple of places that were casting to String
Add some simple wrappers for the generated longs to save converting until the last moment to the character-based representation.
introduce a reusable threadlocal char buffer for generating random ids.
update for changes from upstream
Change the SpanContext to store the ids as Strings internally
Change the id access methods on SpanContext to be clearly labeled as the base16 representations
Add a new create method that allows specifying offsets for traceId and spanId CharSequences
Provide an option for creating a SpanContext from longs or Strings, optionally.
fix a typo
update from upstream
The commit message #2 will be skipped:
don't hand out the byte arrays publicly, but require making copies
* WIP on converting to String-based SpanContext
* Update the SpanContext to only store Strings internally for Trace and Span ids.
* remove dead files
* cleanup some CharSequence usages to String
* Update api/src/main/java/io/opentelemetry/trace/BigendianEncoding.java
Co-authored-by: Anuraag Agrawal <anuraaga@gmail.com>
* Update extensions/trace_propagators/src/main/java/io/opentelemetry/extensions/trace/propagation/B3PropagatorInjectorSingleHeader.java
Co-authored-by: Anuraag Agrawal <anuraaga@gmail.com>
* Update api/src/main/java/io/opentelemetry/trace/SpanId.java
Co-authored-by: Anuraag Agrawal <anuraaga@gmail.com>
* Update api/src/main/java/io/opentelemetry/trace/TraceId.java
Co-authored-by: Anuraag Agrawal <anuraaga@gmail.com>
* updates from PR suggestion fubars
* some cleanup from PR feedback
* Switch back to String from CharSequence
* Get rid of the overload with the offsets
* Lots of bits of cleanup from PR feedback.
* more renaming of base16 to hex
Co-authored-by: Anuraag Agrawal <anuraaga@gmail.com>
* More aggresive version of BatchSpanProcessor
* Add benchmark
* Polish
* Polish
* Incorporated some changes from #1571
* Rollback one test change
* Polish
* Polish
* Split single "sdk" module into separate pieces for common, correlationcontext, metrics, tracing, and the combination of them all
* Modify comment to not reference implementation class
* Moved JMH code to /sdk/all
* Move new files to adjusted location
* Move new files from rebase