-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Lightstep Metrics SDK exemplar support #576
base: main
Are you sure you want to change the base?
Conversation
This code was last updated before Go generics. It's an obvious win here, and was easy to do. Also adds CopyFrom() and Init() method in support of lightstep/otel-launcher-go#576 and new tests.
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## main #576 +/- ##
==========================================
- Coverage 89.60% 89.09% -0.52%
==========================================
Files 62 64 +2
Lines 3686 4007 +321
==========================================
+ Hits 3303 3570 +267
- Misses 285 334 +49
- Partials 98 103 +5 ☔ View full report in Codecov by Sentry. |
Recent benchmarks:
AFTER
If we take the best-case performance and study the before/after with trace enabled, it appears similar. For example, BenchmarkCounterAddNoAttrs-10 rises from 45ns to 60ns. |
8413826
to
3684834
Compare
Description:
First implementation of the OpenTelemetry metrics SDK exemplar specification in the LS Metrics SDK.
This implements the specified exemplar filter mechanism.
This implements two exemplar reservoirs, one named
Last
and one namedWeighted
.Last picks a single exemplar, the most recent.
Weighted uses the VarOpt algorithm from https://github.com/lightstep/varopt.
Depends on lightstep/varopt#20Link to tracking Issue:
#575
Testing: New tests.
Documentation: New documentation. The new functionality is labeled as experimental.