* Overload put with AttributeKey with String array
* Use generic instead of String
* Format and javadoc
* Cast to type
* New public method
* File based view configuration (#4163)
* Add experimental view config module
* Rename view-config to metric-incubator
* Switch naming from camelCase to snake_case
* Extend with attribute key filter
* Wire up to autoconfiguration
* Use snakeyaml instead of jackson
* PR feedback
* PR feedback
* Remove explicit okio dependency (#4187)
* Deprecate PrometheusCollector (#4185)
* Correct javadoc
Co-authored-by: Anuraag Agrawal <anuraaga@gmail.com>
* Cast to type
Co-authored-by: jack-berg <34418638+jack-berg@users.noreply.github.com>
Co-authored-by: Anuraag Agrawal <anuraaga@gmail.com>
* Catch throwable in async callbacks, and propogate if fatal
* Add unit tests, adjust propagate ordering
* Create util function for propagateIfFatal
* PR feedback
* Initial implementation of simple ExemplarReservoirs
- Add an implementation of naive fixed-bucket reservoir sampling
- Add an implementation of FixedSizeHistogram reservoir sampling where latest-measurement per-histogram-bucket is kept.
- Add assertions for exemplars.
* Remove explicit locks for mild performance boost.
* Create a new random holder abstraction.
- Create new random holder abstraction that allows
- ThreadLocalRandom when efficient
- simple detection of Android + workaround for TLR
- Overridable with mocked random for testing.
- Update tracing RandomIdGenerator to leverage new RnadomHolder
- Expand exemplar reservoir tests to use new random holder
- Remove android-only random id generator test
* Add api diff + fix silly naming thing.
* Move random hodler to be Supplier, other updates from code review.
* Fixes from review.
* Fix bytebuddy issue with mocking.
* Update sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/exemplar/AbstractFixedSizeExemplarReservoir.java
Co-authored-by: John Watson <jkwatson@gmail.com>
* Fix name from review.
* Update sdk/common/src/main/java/io/opentelemetry/sdk/internal/RandomSupplier.java
Co-authored-by: John Watson <jkwatson@gmail.com>
Co-authored-by: Anuraag Agrawal <anuraaga@gmail.com>
* Allow users to access the default Clock and TestClock
* Update TestClock API
* Doc
* Fix
* html
* Less newlines
* Update sdk/common/src/main/java/io/opentelemetry/sdk/common/Clock.java
Co-authored-by: John Watson <jkwatson@gmail.com>
Co-authored-by: John Watson <jkwatson@gmail.com>
* Add the OpenTelemetry schema URL to the InstrumentationLibraryInfo and the corresponding API calls.
* small refactoring and doc tweaks from feedback
* make the instrumentation version nullable on the method that takes a schema
* update the apidiffs
* add since tags and a few more missing nullable annotations
* Switch to using a Builder rather than method overloads.
* initial implementation of logging throttling
* simplify the throttle and incorporate into all the exporters
* small cleanup
* try the ratelimiter and see if it can work
* try the ratelimiter and see if it can work
* re-implement the ThrottlingLogger using the RateLimiter from Jaeger.
* code cleanup & additional tests
* add a unit test for the log level check
* Update sdk/common/src/main/java/io/opentelemetry/sdk/internal/ThrottlingLogger.java
Co-authored-by: Anuraag Agrawal <anuraaga@gmail.com>
Co-authored-by: Anuraag Agrawal <anuraaga@gmail.com>
* autoconfigure
* Finish
* Refactor
* Fix OsResource to use empty
* Fix BeanstalkResource to use empty
* Fix ResourceTest to use empty
* Fix Ec2Resource to use empty
* Fix EcsResource to use empty
* Fix ProcessRuntimeResource to use empty
* Fix ProcessRuntimeResource to use empty
* Fix EksResource to use empty
* Fix LambdaResource to use empty
* Fix ProcessResource to use empty
Co-authored-by: Bogdan Drutu <bogdandrutu@gmail.com>
Co-authored-by: Bogdan Drutu <lazy@splunk.com>
* Add VERSIONING document and make sure all internal packages have doc about internalness.
* Make internal package caveat even stronger
* Users must not use internal package.
* Migrate to using gradle platform to manage dependency versions instead of global variables.
* Remove unused and fix test
* Revert test yolo
* Workaround test ordering issue by just merging them
* Spot
* Assign a fallback service name to resources when building the signal Provider instances.
* Add a MANDATORY resource that will contain all mandatory attributes.
* some cleanups of leftover stuff
* make the MANDATORY resource instance private
* updates from ResourceAttributes changes
* be sure to set the service name in the jaeger tests
* Generate the ResourceAttributes class
* deprecate the old one
* convert usages to the new one
* re-use the template with some special logic for the addition
* deprecate the old resource attributes in the wrong class
* subsume methods from AttributesKeys to AttributeKey
* remove missed instance of AttributesKeys
* make javadoc wording more representative of method intent
* Reverse the precedence on Labels and Attributes to prefer the last one added, rather than the first.
Note: this necessitated changing the way Resources were merged, and the way recordException was implemented.
Added an addAll method to the builder to support efficiently addition of attributes from existing attributes.
* run the formatter
* revert 2 unneeded assertion changes
* Update from rebase
* 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.
* 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.
* Add some javadoc to the new interfaces.
* Make AttributesMap not extend map, and restore the get method name for Attributes.
* make ImmutableKeyValuePairs also have a parameterized key type