Mark Exemplars internal (#4533)

Co-authored-by: Alan West <3676547+alanwest@users.noreply.github.com>
This commit is contained in:
Utkarsh Umesan Pillai 2023-05-31 20:32:43 -07:00 committed by GitHub
parent 0ddbdb4e53
commit ccfbcc62d1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 21 additions and 112 deletions

View File

@ -110,7 +110,8 @@ appBuilder.Services.AddOpenTelemetry()
// Ensure the MeterProvider subscribes to any custom Meters. // Ensure the MeterProvider subscribes to any custom Meters.
builder builder
.AddMeter(Instrumentation.MeterName) .AddMeter(Instrumentation.MeterName)
.SetExemplarFilter(new TraceBasedExemplarFilter())
// .SetExemplarFilter(new TraceBasedExemplarFilter())
.AddRuntimeInstrumentation() .AddRuntimeInstrumentation()
.AddHttpClientInstrumentation() .AddHttpClientInstrumentation()
.AddAspNetCoreInstrumentation(); .AddAspNetCoreInstrumentation();

View File

@ -189,6 +189,7 @@ namespace OpenTelemetry.Exporter
} }
var exemplarString = new StringBuilder(); var exemplarString = new StringBuilder();
/* Commenting out as Exemplars is marked internal
foreach (var exemplar in metricPoint.GetExemplars()) foreach (var exemplar in metricPoint.GetExemplars())
{ {
if (exemplar.Timestamp != default) if (exemplar.Timestamp != default)
@ -219,6 +220,7 @@ namespace OpenTelemetry.Exporter
exemplarString.AppendLine(); exemplarString.AppendLine();
} }
} }
*/
msg = new StringBuilder(); msg = new StringBuilder();
msg.Append('('); msg.Append('(');

View File

@ -18,7 +18,6 @@ using System.Collections.Concurrent;
using System.Reflection; using System.Reflection;
using System.Reflection.Emit; using System.Reflection.Emit;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using Google.Protobuf;
using Google.Protobuf.Collections; using Google.Protobuf.Collections;
using OpenTelemetry.Metrics; using OpenTelemetry.Metrics;
using OtlpCollector = OpenTelemetry.Proto.Collector.Metrics.V1; using OtlpCollector = OpenTelemetry.Proto.Collector.Metrics.V1;
@ -270,6 +269,7 @@ namespace OpenTelemetry.Exporter.OpenTelemetryProtocol.Implementation
} }
} }
/* Commenting out as Exemplars is marked internal
var exemplars = metricPoint.GetExemplars(); var exemplars = metricPoint.GetExemplars();
foreach (var examplar in exemplars) foreach (var examplar in exemplars)
{ {
@ -303,6 +303,7 @@ namespace OpenTelemetry.Exporter.OpenTelemetryProtocol.Implementation
dataPoint.Exemplars.Add(otlpExemplar); dataPoint.Exemplars.Add(otlpExemplar);
} }
} }
*/
histogram.DataPoints.Add(dataPoint); histogram.DataPoints.Add(dataPoint);
} }

View File

@ -2,24 +2,12 @@ OpenTelemetry.Logs.LogRecord.Attributes.get -> System.Collections.Generic.IReadO
OpenTelemetry.Logs.LogRecord.Attributes.set -> void OpenTelemetry.Logs.LogRecord.Attributes.set -> void
OpenTelemetry.Logs.LogRecord.Body.get -> string? OpenTelemetry.Logs.LogRecord.Body.get -> string?
OpenTelemetry.Logs.LogRecord.Body.set -> void OpenTelemetry.Logs.LogRecord.Body.set -> void
OpenTelemetry.Metrics.AlwaysOffExemplarFilter
OpenTelemetry.Metrics.AlwaysOffExemplarFilter.AlwaysOffExemplarFilter() -> void
OpenTelemetry.Metrics.AlwaysOnExemplarFilter
OpenTelemetry.Metrics.AlwaysOnExemplarFilter.AlwaysOnExemplarFilter() -> void
OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration
OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.Base2ExponentialBucketHistogramConfiguration() -> void OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.Base2ExponentialBucketHistogramConfiguration() -> void
OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxScale.get -> int OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxScale.get -> int
OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxScale.set -> void OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxScale.set -> void
OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxSize.get -> int OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxSize.get -> int
OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxSize.set -> void OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxSize.set -> void
OpenTelemetry.Metrics.Exemplar
OpenTelemetry.Metrics.Exemplar.DoubleValue.get -> double
OpenTelemetry.Metrics.Exemplar.Exemplar() -> void
OpenTelemetry.Metrics.Exemplar.SpanId.get -> System.Diagnostics.ActivitySpanId?
OpenTelemetry.Metrics.Exemplar.Timestamp.get -> System.DateTimeOffset
OpenTelemetry.Metrics.Exemplar.TraceId.get -> System.Diagnostics.ActivityTraceId?
OpenTelemetry.Metrics.ExemplarFilter
OpenTelemetry.Metrics.ExemplarFilter.ExemplarFilter() -> void
OpenTelemetry.Metrics.ExponentialHistogramBuckets OpenTelemetry.Metrics.ExponentialHistogramBuckets
OpenTelemetry.Metrics.ExponentialHistogramBuckets.Enumerator OpenTelemetry.Metrics.ExponentialHistogramBuckets.Enumerator
OpenTelemetry.Metrics.ExponentialHistogramBuckets.Enumerator.Current.get -> long OpenTelemetry.Metrics.ExponentialHistogramBuckets.Enumerator.Current.get -> long
@ -32,20 +20,7 @@ OpenTelemetry.Metrics.ExponentialHistogramData.PositiveBuckets.get -> OpenTeleme
OpenTelemetry.Metrics.ExponentialHistogramData.Scale.get -> int OpenTelemetry.Metrics.ExponentialHistogramData.Scale.get -> int
OpenTelemetry.Metrics.ExponentialHistogramData.ZeroCount.get -> long OpenTelemetry.Metrics.ExponentialHistogramData.ZeroCount.get -> long
OpenTelemetry.Metrics.MetricType.ExponentialHistogram = 80 -> OpenTelemetry.Metrics.MetricType OpenTelemetry.Metrics.MetricType.ExponentialHistogram = 80 -> OpenTelemetry.Metrics.MetricType
OpenTelemetry.Metrics.TraceBasedExemplarFilter
OpenTelemetry.Metrics.TraceBasedExemplarFilter.TraceBasedExemplarFilter() -> void
override OpenTelemetry.BaseExportProcessor<T>.ToString() -> string! override OpenTelemetry.BaseExportProcessor<T>.ToString() -> string!
override OpenTelemetry.BaseProcessor<T>.ToString() -> string! override OpenTelemetry.BaseProcessor<T>.ToString() -> string!
static OpenTelemetry.Metrics.MeterProviderBuilderExtensions.SetExemplarFilter(this OpenTelemetry.Metrics.MeterProviderBuilder! meterProviderBuilder, OpenTelemetry.Metrics.ExemplarFilter! exemplarFilter) -> OpenTelemetry.Metrics.MeterProviderBuilder!
~abstract OpenTelemetry.Metrics.ExemplarFilter.ShouldSample(double value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
~abstract OpenTelemetry.Metrics.ExemplarFilter.ShouldSample(long value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
~OpenTelemetry.Metrics.Exemplar.FilteredTags.get -> System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<string, object>>
OpenTelemetry.Metrics.MetricPoint.GetExemplars() -> OpenTelemetry.Metrics.Exemplar[]!
OpenTelemetry.Metrics.MetricPoint.GetExponentialHistogramData() -> OpenTelemetry.Metrics.ExponentialHistogramData! OpenTelemetry.Metrics.MetricPoint.GetExponentialHistogramData() -> OpenTelemetry.Metrics.ExponentialHistogramData!
~override OpenTelemetry.Metrics.AlwaysOffExemplarFilter.ShouldSample(double value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
~override OpenTelemetry.Metrics.AlwaysOffExemplarFilter.ShouldSample(long value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
~override OpenTelemetry.Metrics.AlwaysOnExemplarFilter.ShouldSample(double value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
~override OpenTelemetry.Metrics.AlwaysOnExemplarFilter.ShouldSample(long value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
~override OpenTelemetry.Metrics.TraceBasedExemplarFilter.ShouldSample(double value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
~override OpenTelemetry.Metrics.TraceBasedExemplarFilter.ShouldSample(long value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
OpenTelemetry.Resources.ResourceBuilder.AddDetector(System.Func<System.IServiceProvider!, OpenTelemetry.Resources.IResourceDetector!>! resourceDetectorFactory) -> OpenTelemetry.Resources.ResourceBuilder! OpenTelemetry.Resources.ResourceBuilder.AddDetector(System.Func<System.IServiceProvider!, OpenTelemetry.Resources.IResourceDetector!>! resourceDetectorFactory) -> OpenTelemetry.Resources.ResourceBuilder!

View File

@ -2,24 +2,12 @@ OpenTelemetry.Logs.LogRecord.Attributes.get -> System.Collections.Generic.IReadO
OpenTelemetry.Logs.LogRecord.Attributes.set -> void OpenTelemetry.Logs.LogRecord.Attributes.set -> void
OpenTelemetry.Logs.LogRecord.Body.get -> string? OpenTelemetry.Logs.LogRecord.Body.get -> string?
OpenTelemetry.Logs.LogRecord.Body.set -> void OpenTelemetry.Logs.LogRecord.Body.set -> void
OpenTelemetry.Metrics.AlwaysOffExemplarFilter
OpenTelemetry.Metrics.AlwaysOffExemplarFilter.AlwaysOffExemplarFilter() -> void
OpenTelemetry.Metrics.AlwaysOnExemplarFilter
OpenTelemetry.Metrics.AlwaysOnExemplarFilter.AlwaysOnExemplarFilter() -> void
OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration
OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.Base2ExponentialBucketHistogramConfiguration() -> void OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.Base2ExponentialBucketHistogramConfiguration() -> void
OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxScale.get -> int OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxScale.get -> int
OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxScale.set -> void OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxScale.set -> void
OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxSize.get -> int OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxSize.get -> int
OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxSize.set -> void OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxSize.set -> void
OpenTelemetry.Metrics.Exemplar
OpenTelemetry.Metrics.Exemplar.DoubleValue.get -> double
OpenTelemetry.Metrics.Exemplar.Exemplar() -> void
OpenTelemetry.Metrics.Exemplar.SpanId.get -> System.Diagnostics.ActivitySpanId?
OpenTelemetry.Metrics.Exemplar.Timestamp.get -> System.DateTimeOffset
OpenTelemetry.Metrics.Exemplar.TraceId.get -> System.Diagnostics.ActivityTraceId?
OpenTelemetry.Metrics.ExemplarFilter
OpenTelemetry.Metrics.ExemplarFilter.ExemplarFilter() -> void
OpenTelemetry.Metrics.ExponentialHistogramBuckets OpenTelemetry.Metrics.ExponentialHistogramBuckets
OpenTelemetry.Metrics.ExponentialHistogramBuckets.Enumerator OpenTelemetry.Metrics.ExponentialHistogramBuckets.Enumerator
OpenTelemetry.Metrics.ExponentialHistogramBuckets.Enumerator.Current.get -> long OpenTelemetry.Metrics.ExponentialHistogramBuckets.Enumerator.Current.get -> long
@ -32,20 +20,7 @@ OpenTelemetry.Metrics.ExponentialHistogramData.PositiveBuckets.get -> OpenTeleme
OpenTelemetry.Metrics.ExponentialHistogramData.Scale.get -> int OpenTelemetry.Metrics.ExponentialHistogramData.Scale.get -> int
OpenTelemetry.Metrics.ExponentialHistogramData.ZeroCount.get -> long OpenTelemetry.Metrics.ExponentialHistogramData.ZeroCount.get -> long
OpenTelemetry.Metrics.MetricType.ExponentialHistogram = 80 -> OpenTelemetry.Metrics.MetricType OpenTelemetry.Metrics.MetricType.ExponentialHistogram = 80 -> OpenTelemetry.Metrics.MetricType
OpenTelemetry.Metrics.TraceBasedExemplarFilter
OpenTelemetry.Metrics.TraceBasedExemplarFilter.TraceBasedExemplarFilter() -> void
override OpenTelemetry.BaseExportProcessor<T>.ToString() -> string! override OpenTelemetry.BaseExportProcessor<T>.ToString() -> string!
override OpenTelemetry.BaseProcessor<T>.ToString() -> string! override OpenTelemetry.BaseProcessor<T>.ToString() -> string!
static OpenTelemetry.Metrics.MeterProviderBuilderExtensions.SetExemplarFilter(this OpenTelemetry.Metrics.MeterProviderBuilder! meterProviderBuilder, OpenTelemetry.Metrics.ExemplarFilter! exemplarFilter) -> OpenTelemetry.Metrics.MeterProviderBuilder!
~abstract OpenTelemetry.Metrics.ExemplarFilter.ShouldSample(double value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
~abstract OpenTelemetry.Metrics.ExemplarFilter.ShouldSample(long value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
~OpenTelemetry.Metrics.Exemplar.FilteredTags.get -> System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<string, object>>
OpenTelemetry.Metrics.MetricPoint.GetExemplars() -> OpenTelemetry.Metrics.Exemplar[]!
OpenTelemetry.Metrics.MetricPoint.GetExponentialHistogramData() -> OpenTelemetry.Metrics.ExponentialHistogramData! OpenTelemetry.Metrics.MetricPoint.GetExponentialHistogramData() -> OpenTelemetry.Metrics.ExponentialHistogramData!
~override OpenTelemetry.Metrics.AlwaysOffExemplarFilter.ShouldSample(double value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
~override OpenTelemetry.Metrics.AlwaysOffExemplarFilter.ShouldSample(long value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
~override OpenTelemetry.Metrics.AlwaysOnExemplarFilter.ShouldSample(double value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
~override OpenTelemetry.Metrics.AlwaysOnExemplarFilter.ShouldSample(long value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
~override OpenTelemetry.Metrics.TraceBasedExemplarFilter.ShouldSample(double value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
~override OpenTelemetry.Metrics.TraceBasedExemplarFilter.ShouldSample(long value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
OpenTelemetry.Resources.ResourceBuilder.AddDetector(System.Func<System.IServiceProvider!, OpenTelemetry.Resources.IResourceDetector!>! resourceDetectorFactory) -> OpenTelemetry.Resources.ResourceBuilder! OpenTelemetry.Resources.ResourceBuilder.AddDetector(System.Func<System.IServiceProvider!, OpenTelemetry.Resources.IResourceDetector!>! resourceDetectorFactory) -> OpenTelemetry.Resources.ResourceBuilder!

View File

@ -2,24 +2,12 @@ OpenTelemetry.Logs.LogRecord.Attributes.get -> System.Collections.Generic.IReadO
OpenTelemetry.Logs.LogRecord.Attributes.set -> void OpenTelemetry.Logs.LogRecord.Attributes.set -> void
OpenTelemetry.Logs.LogRecord.Body.get -> string? OpenTelemetry.Logs.LogRecord.Body.get -> string?
OpenTelemetry.Logs.LogRecord.Body.set -> void OpenTelemetry.Logs.LogRecord.Body.set -> void
OpenTelemetry.Metrics.AlwaysOffExemplarFilter
OpenTelemetry.Metrics.AlwaysOffExemplarFilter.AlwaysOffExemplarFilter() -> void
OpenTelemetry.Metrics.AlwaysOnExemplarFilter
OpenTelemetry.Metrics.AlwaysOnExemplarFilter.AlwaysOnExemplarFilter() -> void
OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration
OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.Base2ExponentialBucketHistogramConfiguration() -> void OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.Base2ExponentialBucketHistogramConfiguration() -> void
OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxScale.get -> int OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxScale.get -> int
OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxScale.set -> void OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxScale.set -> void
OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxSize.get -> int OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxSize.get -> int
OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxSize.set -> void OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxSize.set -> void
OpenTelemetry.Metrics.Exemplar
OpenTelemetry.Metrics.Exemplar.DoubleValue.get -> double
OpenTelemetry.Metrics.Exemplar.Exemplar() -> void
OpenTelemetry.Metrics.Exemplar.SpanId.get -> System.Diagnostics.ActivitySpanId?
OpenTelemetry.Metrics.Exemplar.Timestamp.get -> System.DateTimeOffset
OpenTelemetry.Metrics.Exemplar.TraceId.get -> System.Diagnostics.ActivityTraceId?
OpenTelemetry.Metrics.ExemplarFilter
OpenTelemetry.Metrics.ExemplarFilter.ExemplarFilter() -> void
OpenTelemetry.Metrics.ExponentialHistogramBuckets OpenTelemetry.Metrics.ExponentialHistogramBuckets
OpenTelemetry.Metrics.ExponentialHistogramBuckets.Enumerator OpenTelemetry.Metrics.ExponentialHistogramBuckets.Enumerator
OpenTelemetry.Metrics.ExponentialHistogramBuckets.Enumerator.Current.get -> long OpenTelemetry.Metrics.ExponentialHistogramBuckets.Enumerator.Current.get -> long
@ -32,20 +20,7 @@ OpenTelemetry.Metrics.ExponentialHistogramData.PositiveBuckets.get -> OpenTeleme
OpenTelemetry.Metrics.ExponentialHistogramData.Scale.get -> int OpenTelemetry.Metrics.ExponentialHistogramData.Scale.get -> int
OpenTelemetry.Metrics.ExponentialHistogramData.ZeroCount.get -> long OpenTelemetry.Metrics.ExponentialHistogramData.ZeroCount.get -> long
OpenTelemetry.Metrics.MetricType.ExponentialHistogram = 80 -> OpenTelemetry.Metrics.MetricType OpenTelemetry.Metrics.MetricType.ExponentialHistogram = 80 -> OpenTelemetry.Metrics.MetricType
OpenTelemetry.Metrics.TraceBasedExemplarFilter
OpenTelemetry.Metrics.TraceBasedExemplarFilter.TraceBasedExemplarFilter() -> void
override OpenTelemetry.BaseExportProcessor<T>.ToString() -> string! override OpenTelemetry.BaseExportProcessor<T>.ToString() -> string!
override OpenTelemetry.BaseProcessor<T>.ToString() -> string! override OpenTelemetry.BaseProcessor<T>.ToString() -> string!
static OpenTelemetry.Metrics.MeterProviderBuilderExtensions.SetExemplarFilter(this OpenTelemetry.Metrics.MeterProviderBuilder! meterProviderBuilder, OpenTelemetry.Metrics.ExemplarFilter! exemplarFilter) -> OpenTelemetry.Metrics.MeterProviderBuilder!
~abstract OpenTelemetry.Metrics.ExemplarFilter.ShouldSample(double value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
~abstract OpenTelemetry.Metrics.ExemplarFilter.ShouldSample(long value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
~OpenTelemetry.Metrics.Exemplar.FilteredTags.get -> System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<string, object>>
OpenTelemetry.Metrics.MetricPoint.GetExemplars() -> OpenTelemetry.Metrics.Exemplar[]!
OpenTelemetry.Metrics.MetricPoint.GetExponentialHistogramData() -> OpenTelemetry.Metrics.ExponentialHistogramData! OpenTelemetry.Metrics.MetricPoint.GetExponentialHistogramData() -> OpenTelemetry.Metrics.ExponentialHistogramData!
~override OpenTelemetry.Metrics.AlwaysOffExemplarFilter.ShouldSample(double value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
~override OpenTelemetry.Metrics.AlwaysOffExemplarFilter.ShouldSample(long value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
~override OpenTelemetry.Metrics.AlwaysOnExemplarFilter.ShouldSample(double value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
~override OpenTelemetry.Metrics.AlwaysOnExemplarFilter.ShouldSample(long value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
~override OpenTelemetry.Metrics.TraceBasedExemplarFilter.ShouldSample(double value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
~override OpenTelemetry.Metrics.TraceBasedExemplarFilter.ShouldSample(long value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
OpenTelemetry.Resources.ResourceBuilder.AddDetector(System.Func<System.IServiceProvider!, OpenTelemetry.Resources.IResourceDetector!>! resourceDetectorFactory) -> OpenTelemetry.Resources.ResourceBuilder! OpenTelemetry.Resources.ResourceBuilder.AddDetector(System.Func<System.IServiceProvider!, OpenTelemetry.Resources.IResourceDetector!>! resourceDetectorFactory) -> OpenTelemetry.Resources.ResourceBuilder!

View File

@ -2,24 +2,12 @@ OpenTelemetry.Logs.LogRecord.Attributes.get -> System.Collections.Generic.IReadO
OpenTelemetry.Logs.LogRecord.Attributes.set -> void OpenTelemetry.Logs.LogRecord.Attributes.set -> void
OpenTelemetry.Logs.LogRecord.Body.get -> string? OpenTelemetry.Logs.LogRecord.Body.get -> string?
OpenTelemetry.Logs.LogRecord.Body.set -> void OpenTelemetry.Logs.LogRecord.Body.set -> void
OpenTelemetry.Metrics.AlwaysOffExemplarFilter
OpenTelemetry.Metrics.AlwaysOffExemplarFilter.AlwaysOffExemplarFilter() -> void
OpenTelemetry.Metrics.AlwaysOnExemplarFilter
OpenTelemetry.Metrics.AlwaysOnExemplarFilter.AlwaysOnExemplarFilter() -> void
OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration
OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.Base2ExponentialBucketHistogramConfiguration() -> void OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.Base2ExponentialBucketHistogramConfiguration() -> void
OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxScale.get -> int OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxScale.get -> int
OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxScale.set -> void OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxScale.set -> void
OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxSize.get -> int OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxSize.get -> int
OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxSize.set -> void OpenTelemetry.Metrics.Base2ExponentialBucketHistogramConfiguration.MaxSize.set -> void
OpenTelemetry.Metrics.Exemplar
OpenTelemetry.Metrics.Exemplar.DoubleValue.get -> double
OpenTelemetry.Metrics.Exemplar.Exemplar() -> void
OpenTelemetry.Metrics.Exemplar.SpanId.get -> System.Diagnostics.ActivitySpanId?
OpenTelemetry.Metrics.Exemplar.Timestamp.get -> System.DateTimeOffset
OpenTelemetry.Metrics.Exemplar.TraceId.get -> System.Diagnostics.ActivityTraceId?
OpenTelemetry.Metrics.ExemplarFilter
OpenTelemetry.Metrics.ExemplarFilter.ExemplarFilter() -> void
OpenTelemetry.Metrics.ExponentialHistogramBuckets OpenTelemetry.Metrics.ExponentialHistogramBuckets
OpenTelemetry.Metrics.ExponentialHistogramBuckets.Enumerator OpenTelemetry.Metrics.ExponentialHistogramBuckets.Enumerator
OpenTelemetry.Metrics.ExponentialHistogramBuckets.Enumerator.Current.get -> long OpenTelemetry.Metrics.ExponentialHistogramBuckets.Enumerator.Current.get -> long
@ -32,20 +20,7 @@ OpenTelemetry.Metrics.ExponentialHistogramData.PositiveBuckets.get -> OpenTeleme
OpenTelemetry.Metrics.ExponentialHistogramData.Scale.get -> int OpenTelemetry.Metrics.ExponentialHistogramData.Scale.get -> int
OpenTelemetry.Metrics.ExponentialHistogramData.ZeroCount.get -> long OpenTelemetry.Metrics.ExponentialHistogramData.ZeroCount.get -> long
OpenTelemetry.Metrics.MetricType.ExponentialHistogram = 80 -> OpenTelemetry.Metrics.MetricType OpenTelemetry.Metrics.MetricType.ExponentialHistogram = 80 -> OpenTelemetry.Metrics.MetricType
OpenTelemetry.Metrics.TraceBasedExemplarFilter
OpenTelemetry.Metrics.TraceBasedExemplarFilter.TraceBasedExemplarFilter() -> void
override OpenTelemetry.BaseExportProcessor<T>.ToString() -> string! override OpenTelemetry.BaseExportProcessor<T>.ToString() -> string!
override OpenTelemetry.BaseProcessor<T>.ToString() -> string! override OpenTelemetry.BaseProcessor<T>.ToString() -> string!
static OpenTelemetry.Metrics.MeterProviderBuilderExtensions.SetExemplarFilter(this OpenTelemetry.Metrics.MeterProviderBuilder! meterProviderBuilder, OpenTelemetry.Metrics.ExemplarFilter! exemplarFilter) -> OpenTelemetry.Metrics.MeterProviderBuilder!
~abstract OpenTelemetry.Metrics.ExemplarFilter.ShouldSample(double value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
~abstract OpenTelemetry.Metrics.ExemplarFilter.ShouldSample(long value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
~OpenTelemetry.Metrics.Exemplar.FilteredTags.get -> System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<string, object>>
OpenTelemetry.Metrics.MetricPoint.GetExemplars() -> OpenTelemetry.Metrics.Exemplar[]!
OpenTelemetry.Metrics.MetricPoint.GetExponentialHistogramData() -> OpenTelemetry.Metrics.ExponentialHistogramData! OpenTelemetry.Metrics.MetricPoint.GetExponentialHistogramData() -> OpenTelemetry.Metrics.ExponentialHistogramData!
~override OpenTelemetry.Metrics.AlwaysOffExemplarFilter.ShouldSample(double value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
~override OpenTelemetry.Metrics.AlwaysOffExemplarFilter.ShouldSample(long value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
~override OpenTelemetry.Metrics.AlwaysOnExemplarFilter.ShouldSample(double value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
~override OpenTelemetry.Metrics.AlwaysOnExemplarFilter.ShouldSample(long value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
~override OpenTelemetry.Metrics.TraceBasedExemplarFilter.ShouldSample(double value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
~override OpenTelemetry.Metrics.TraceBasedExemplarFilter.ShouldSample(long value, System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<string, object>> tags) -> bool
OpenTelemetry.Resources.ResourceBuilder.AddDetector(System.Func<System.IServiceProvider!, OpenTelemetry.Resources.IResourceDetector!>! resourceDetectorFactory) -> OpenTelemetry.Resources.ResourceBuilder! OpenTelemetry.Resources.ResourceBuilder.AddDetector(System.Func<System.IServiceProvider!, OpenTelemetry.Resources.IResourceDetector!>! resourceDetectorFactory) -> OpenTelemetry.Resources.ResourceBuilder!

View File

@ -310,7 +310,7 @@ namespace OpenTelemetry.Metrics
/// <param name="meterProviderBuilder"><see cref="MeterProviderBuilder"/>.</param> /// <param name="meterProviderBuilder"><see cref="MeterProviderBuilder"/>.</param>
/// <param name="exemplarFilter"><see cref="ExemplarFilter"/> ExemplarFilter to use.</param> /// <param name="exemplarFilter"><see cref="ExemplarFilter"/> ExemplarFilter to use.</param>
/// <returns>The supplied <see cref="MeterProviderBuilder"/> for chaining.</returns> /// <returns>The supplied <see cref="MeterProviderBuilder"/> for chaining.</returns>
public static MeterProviderBuilder SetExemplarFilter(this MeterProviderBuilder meterProviderBuilder, ExemplarFilter exemplarFilter) internal static MeterProviderBuilder SetExemplarFilter(this MeterProviderBuilder meterProviderBuilder, ExemplarFilter exemplarFilter)
{ {
Guard.ThrowIfNull(exemplarFilter); Guard.ThrowIfNull(exemplarFilter);
@ -325,6 +325,7 @@ namespace OpenTelemetry.Metrics
return meterProviderBuilder; return meterProviderBuilder;
} }
#pragma warning disable SA1202 // `public` members should come before `internal` members
/// <summary> /// <summary>
/// Run the given actions to initialize the <see cref="MeterProvider"/>. /// Run the given actions to initialize the <see cref="MeterProvider"/>.
/// </summary> /// </summary>
@ -339,5 +340,6 @@ namespace OpenTelemetry.Metrics
return null; return null;
} }
#pragma warning restore SA1202
} }
} }

View File

@ -20,7 +20,7 @@ namespace OpenTelemetry.Metrics;
/// An ExemplarFilter which makes no measurements eligible for being an Exemplar. /// An ExemplarFilter which makes no measurements eligible for being an Exemplar.
/// Using this ExemplarFilter is as good as disabling Exemplar feature. /// Using this ExemplarFilter is as good as disabling Exemplar feature.
/// </summary> /// </summary>
public sealed class AlwaysOffExemplarFilter : ExemplarFilter internal sealed class AlwaysOffExemplarFilter : ExemplarFilter
{ {
public override bool ShouldSample(long value, ReadOnlySpan<KeyValuePair<string, object>> tags) public override bool ShouldSample(long value, ReadOnlySpan<KeyValuePair<string, object>> tags)
{ {

View File

@ -19,7 +19,7 @@ namespace OpenTelemetry.Metrics;
/// <summary> /// <summary>
/// An ExemplarFilter which makes all measurements eligible for being an Exemplar. /// An ExemplarFilter which makes all measurements eligible for being an Exemplar.
/// </summary> /// </summary>
public sealed class AlwaysOnExemplarFilter : ExemplarFilter internal sealed class AlwaysOnExemplarFilter : ExemplarFilter
{ {
public override bool ShouldSample(long value, ReadOnlySpan<KeyValuePair<string, object>> tags) public override bool ShouldSample(long value, ReadOnlySpan<KeyValuePair<string, object>> tags)
{ {

View File

@ -18,10 +18,11 @@ using System.Diagnostics;
namespace OpenTelemetry.Metrics namespace OpenTelemetry.Metrics
{ {
#pragma warning disable SA1623 // The property's documentation summary text should begin with: `Gets or sets`
/// <summary> /// <summary>
/// Represents an Exemplar data. /// Represents an Exemplar data.
/// </summary> /// </summary>
public struct Exemplar internal struct Exemplar
{ {
/// <summary> /// <summary>
/// Gets the timestamp (UTC). /// Gets the timestamp (UTC).
@ -51,4 +52,5 @@ namespace OpenTelemetry.Metrics
/// </summary> /// </summary>
public List<KeyValuePair<string, object>> FilteredTags { get; internal set; } public List<KeyValuePair<string, object>> FilteredTags { get; internal set; }
} }
#pragma warning restore SA1623
} }

View File

@ -18,7 +18,7 @@ namespace OpenTelemetry.Metrics;
/// <summary> /// <summary>
/// The base class for defining Exemplar Filter. /// The base class for defining Exemplar Filter.
/// </summary> /// </summary>
public abstract class ExemplarFilter internal abstract class ExemplarFilter
{ {
/// <summary> /// <summary>
/// Determines if a given measurement is eligible for being /// Determines if a given measurement is eligible for being

View File

@ -22,7 +22,7 @@ namespace OpenTelemetry.Metrics;
/// An ExemplarFilter which makes those measurements eligible for being an Exemplar, /// An ExemplarFilter which makes those measurements eligible for being an Exemplar,
/// which are recorded in the context of a sampled parent activity (span). /// which are recorded in the context of a sampled parent activity (span).
/// </summary> /// </summary>
public sealed class TraceBasedExemplarFilter : ExemplarFilter internal sealed class TraceBasedExemplarFilter : ExemplarFilter
{ {
public override bool ShouldSample(long value, ReadOnlySpan<KeyValuePair<string, object>> tags) public override bool ShouldSample(long value, ReadOnlySpan<KeyValuePair<string, object>> tags)
{ {

View File

@ -336,7 +336,7 @@ namespace OpenTelemetry.Metrics
/// </summary> /// </summary>
/// <returns><see cref="Exemplar"/>.</returns> /// <returns><see cref="Exemplar"/>.</returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public readonly Exemplar[] GetExemplars() internal readonly Exemplar[] GetExemplars()
{ {
// TODO: Do not expose Exemplar data structure (array now) // TODO: Do not expose Exemplar data structure (array now)
return this.mpComponents?.Exemplars ?? Array.Empty<Exemplar>(); return this.mpComponents?.Exemplars ?? Array.Empty<Exemplar>();

View File

@ -131,7 +131,7 @@ namespace Benchmarks.Metrics
this.histogramWithTagReduction.Record(random.Next(1000), tags); this.histogramWithTagReduction.Record(random.Next(1000), tags);
} }
public class HighValueExemplarFilter : ExemplarFilter internal class HighValueExemplarFilter : ExemplarFilter
{ {
public override bool ShouldSample(long value, ReadOnlySpan<KeyValuePair<string, object>> tags) public override bool ShouldSample(long value, ReadOnlySpan<KeyValuePair<string, object>> tags)
{ {

View File

@ -44,7 +44,8 @@ public partial class Program
using var meterProvider = Sdk.CreateMeterProviderBuilder() using var meterProvider = Sdk.CreateMeterProviderBuilder()
.AddMeter(TestMeter.Name) .AddMeter(TestMeter.Name)
.SetExemplarFilter(new AlwaysOnExemplarFilter())
// .SetExemplarFilter(new AlwaysOnExemplarFilter())
.AddPrometheusHttpListener( .AddPrometheusHttpListener(
options => options.UriPrefixes = new string[] { $"http://localhost:9185/" }) options => options.UriPrefixes = new string[] { $"http://localhost:9185/" })
.Build(); .Build();

View File

@ -123,7 +123,7 @@ public class MetricTestsBase
} }
} }
public static Exemplar[] GetExemplars(MetricPoint mp) internal static Exemplar[] GetExemplars(MetricPoint mp)
{ {
return mp.GetExemplars().Where(exemplar => exemplar.Timestamp != default).ToArray(); return mp.GetExemplars().Where(exemplar => exemplar.Timestamp != default).ToArray();
} }