* Enable animal sniffer on metrics
* Use LongAdder/DoubleAdder if available
* Exclude implementation classes instead of used fields.
* keySet
Co-authored-by: Anuraag Agrawal <anuraaga@gmail.com>
* Add mechanism to track view/instrument registration for errors.
- Create SourceInfo class to track code/config based sources of errors.
- Add SourceInfo creation to both InstrumentDescritpor and View
- Update DuplicateMetricStorageException to remember source
MetricDescriptors
- Update MetricDescriptor to include source view + instrument
descriptors.
- Add new error messages with gory detail on conflict that will be
logged.
* Move InstrumentDescriptor into internal package
We use this class to track instrument sources/debugging so we don't want it exposed publicly. This just moves it next to MetricDescriptor.
* Fix logs to include throwable.
* Fix javadoc.
* Add mechanism to enable/disable metric diagnostics.
- Create DebugConfig class that knows whether metrics are on/off
- Add testing utility to enable/disable debug configuraiton.
- Update NoSourceInfo to use real enablement message.
- Move "default on" diagnostic tests into their own group, similar to
context.
* Update to use Thread.getStackTrace
* Fixes from review.
* 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.
* Expose aggregation configuration and wire in exemplar sampler
- Expose classes for aggregation configuration that are visible in exemplar sampler
- Create default exemplar sampler that samples w/ traces
- Expand metric benchmarks to include exemplar + no-exemplar to check overhead.
* Fix merge conflict.
* Wire exemplar filter config into autoconfigure module.
* Expose aggregation configuration and wire in exemplar sampler
- Expose classes for aggregation configuration that are visible in exemplar sampler
- Create default exemplar sampler that samples w/ traces
- Expand metric benchmarks to include exemplar + no-exemplar to check overhead.
* Fix merge conflict.
* Wire exemplar filter config into autoconfigure module.
* Migrate exemplar reservoir instantiation into aggregations. Start migrating off AggregatorFactory -> Aggregation.
* Small cleanup.
* Fixes from review (and report of clsasloader fixes from other laptop.
* Migrate to null-object pattern.
* Add internal boilerplate.
* Run spotless.
* Fix toString of aggregation values.
* Fix ==
* Update java metrics data model and create assertion based testing library.
* Update existing SDK for Label => Attribute in data model
- Finish wiring through changes to all code/tests.
- DOES NOT touch API
- Update existing tests to use new testing library to be sensitive to attribute vs. label hashing alterations + equality of the metrics.data package types.
* Fix javadoc breakages
* Fix JMH compile
* Finish javadoc
* Fixes from review
* Remove botched file.
* Fixes from review.