OTLP exporter options separate out MetricReader options (#2717)
* Separate out OtlpMetricReaderOptions from OtlpExporterOptions
* Collapse config delegates into one
* Rename AggregationTemporality to Temporatlity
* Update public API
* Change parameter names
* Move MetricReaderOptions to SDK
* Default OTLP metric exporter to use a periodic metric reader and cumulative temporality
* Update example to configure exporter options
* Update public API
* Everyone loves a good stackoverflow
* Update public API
* Fix bad merge
* Change namespace
* Fix the public API
* I ❤️ trying to get the public API correct without Visual Studio
* Remove check for unspecified temporality
Co-authored-by: Cijo Thomas <cithomas@microsoft.com>
This commit is contained in:
parent
4f40d740e8
commit
f234829964
|
|
@ -117,6 +117,9 @@ namespace Examples.Console
|
|||
|
||||
[Option("useExporter", Default = "console", HelpText = "Options include otlp or console.", Required = false)]
|
||||
public string UseExporter { get; set; }
|
||||
|
||||
[Option('p', "useGrpc", HelpText = "Use gRPC or HTTP when using the OTLP exporter", Required = false, Default = true)]
|
||||
public bool UseGrpc { get; set; }
|
||||
}
|
||||
|
||||
[Verb("grpc", HelpText = "Specify the options required to test Grpc.Net.Client")]
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ using System.Diagnostics.Metrics;
|
|||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using OpenTelemetry;
|
||||
using OpenTelemetry.Exporter;
|
||||
using OpenTelemetry.Metrics;
|
||||
using OpenTelemetry.Resources;
|
||||
|
||||
|
|
@ -66,11 +67,13 @@ namespace Examples.Console
|
|||
AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true);
|
||||
|
||||
providerBuilder
|
||||
.AddOtlpExporter(o =>
|
||||
.AddOtlpExporter((exporterOptions, metricReaderOptions) =>
|
||||
{
|
||||
o.MetricReaderType = MetricReaderType.Periodic;
|
||||
o.PeriodicExportingMetricReaderOptions.ExportIntervalMilliseconds = options.DefaultCollectionPeriodMilliseconds;
|
||||
o.AggregationTemporality = options.IsDelta ? AggregationTemporality.Delta : AggregationTemporality.Cumulative;
|
||||
exporterOptions.Protocol = options.UseGrpc ? OtlpExportProtocol.Grpc : OtlpExportProtocol.HttpProtobuf;
|
||||
|
||||
metricReaderOptions.MetricReaderType = MetricReaderType.Periodic;
|
||||
metricReaderOptions.PeriodicExportingMetricReaderOptions.ExportIntervalMilliseconds = options.DefaultCollectionPeriodMilliseconds;
|
||||
metricReaderOptions.Temporality = options.IsDelta ? AggregationTemporality.Delta : AggregationTemporality.Cumulative;
|
||||
});
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -1,6 +1,4 @@
|
|||
OpenTelemetry.Exporter.OtlpExporterOptions
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.AggregationTemporality.get -> OpenTelemetry.Metrics.AggregationTemporality
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.AggregationTemporality.set -> void
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.BatchExportProcessorOptions.get -> OpenTelemetry.BatchExportProcessorOptions<System.Diagnostics.Activity>
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.BatchExportProcessorOptions.set -> void
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.Endpoint.get -> System.Uri
|
||||
|
|
@ -9,10 +7,6 @@ OpenTelemetry.Exporter.OtlpExporterOptions.ExportProcessorType.get -> OpenTeleme
|
|||
OpenTelemetry.Exporter.OtlpExporterOptions.ExportProcessorType.set -> void
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.Headers.get -> string
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.Headers.set -> void
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.MetricReaderType.get -> OpenTelemetry.Metrics.MetricReaderType
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.MetricReaderType.set -> void
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.PeriodicExportingMetricReaderOptions.get -> OpenTelemetry.Metrics.PeriodicExportingMetricReaderOptions
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.PeriodicExportingMetricReaderOptions.set -> void
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.HttpClientFactory.get -> System.Func<System.Net.Http.HttpClient>
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.HttpClientFactory.set -> void
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.OtlpExporterOptions() -> void
|
||||
|
|
@ -33,5 +27,7 @@ override OpenTelemetry.Exporter.OtlpMetricExporter.Export(in OpenTelemetry.Batch
|
|||
override OpenTelemetry.Exporter.OtlpMetricExporter.OnShutdown(int timeoutMilliseconds) -> bool
|
||||
override OpenTelemetry.Exporter.OtlpTraceExporter.Export(in OpenTelemetry.Batch<System.Diagnostics.Activity> activityBatch) -> OpenTelemetry.ExportResult
|
||||
override OpenTelemetry.Exporter.OtlpTraceExporter.OnShutdown(int timeoutMilliseconds) -> bool
|
||||
static OpenTelemetry.Metrics.OtlpMetricExporterExtensions.AddOtlpExporter(this OpenTelemetry.Metrics.MeterProviderBuilder builder, System.Action<OpenTelemetry.Exporter.OtlpExporterOptions> configure = null) -> OpenTelemetry.Metrics.MeterProviderBuilder
|
||||
static OpenTelemetry.Metrics.OtlpMetricExporterExtensions.AddOtlpExporter(this OpenTelemetry.Metrics.MeterProviderBuilder builder) -> OpenTelemetry.Metrics.MeterProviderBuilder
|
||||
static OpenTelemetry.Metrics.OtlpMetricExporterExtensions.AddOtlpExporter(this OpenTelemetry.Metrics.MeterProviderBuilder builder, System.Action<OpenTelemetry.Exporter.OtlpExporterOptions, OpenTelemetry.Metrics.MetricReaderOptions> configureExporterAndMetricReader) -> OpenTelemetry.Metrics.MeterProviderBuilder
|
||||
static OpenTelemetry.Metrics.OtlpMetricExporterExtensions.AddOtlpExporter(this OpenTelemetry.Metrics.MeterProviderBuilder builder, System.Action<OpenTelemetry.Exporter.OtlpExporterOptions> configureExporter) -> OpenTelemetry.Metrics.MeterProviderBuilder
|
||||
static OpenTelemetry.Trace.OtlpTraceExporterHelperExtensions.AddOtlpExporter(this OpenTelemetry.Trace.TracerProviderBuilder builder, System.Action<OpenTelemetry.Exporter.OtlpExporterOptions> configure = null) -> OpenTelemetry.Trace.TracerProviderBuilder
|
||||
|
|
|
|||
|
|
@ -1,9 +1,3 @@
|
|||
OpenTelemetry.Exporter.OtlpExporterOptions.AggregationTemporality.get -> OpenTelemetry.Metrics.AggregationTemporality
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.AggregationTemporality.set -> void
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.MetricReaderType.get -> OpenTelemetry.Metrics.MetricReaderType
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.MetricReaderType.set -> void
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.PeriodicExportingMetricReaderOptions.get -> OpenTelemetry.Metrics.PeriodicExportingMetricReaderOptions
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.PeriodicExportingMetricReaderOptions.set -> void
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.HttpClientFactory.get -> System.Func<System.Net.Http.HttpClient>
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.HttpClientFactory.set -> void
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.Protocol.get -> OpenTelemetry.Exporter.OtlpExportProtocol
|
||||
|
|
@ -16,4 +10,6 @@ OpenTelemetry.Exporter.OtlpMetricExporter.OtlpMetricExporter(OpenTelemetry.Expor
|
|||
OpenTelemetry.Metrics.OtlpMetricExporterExtensions
|
||||
override OpenTelemetry.Exporter.OtlpMetricExporter.Export(in OpenTelemetry.Batch<OpenTelemetry.Metrics.Metric> metrics) -> OpenTelemetry.ExportResult
|
||||
override OpenTelemetry.Exporter.OtlpMetricExporter.OnShutdown(int timeoutMilliseconds) -> bool
|
||||
static OpenTelemetry.Metrics.OtlpMetricExporterExtensions.AddOtlpExporter(this OpenTelemetry.Metrics.MeterProviderBuilder builder, System.Action<OpenTelemetry.Exporter.OtlpExporterOptions> configure = null) -> OpenTelemetry.Metrics.MeterProviderBuilder
|
||||
static OpenTelemetry.Metrics.OtlpMetricExporterExtensions.AddOtlpExporter(this OpenTelemetry.Metrics.MeterProviderBuilder builder) -> OpenTelemetry.Metrics.MeterProviderBuilder
|
||||
static OpenTelemetry.Metrics.OtlpMetricExporterExtensions.AddOtlpExporter(this OpenTelemetry.Metrics.MeterProviderBuilder builder, System.Action<OpenTelemetry.Exporter.OtlpExporterOptions, OpenTelemetry.Metrics.MetricReaderOptions> configureExporterAndMetricReader) -> OpenTelemetry.Metrics.MeterProviderBuilder
|
||||
static OpenTelemetry.Metrics.OtlpMetricExporterExtensions.AddOtlpExporter(this OpenTelemetry.Metrics.MeterProviderBuilder builder, System.Action<OpenTelemetry.Exporter.OtlpExporterOptions> configureExporter) -> OpenTelemetry.Metrics.MeterProviderBuilder
|
||||
|
|
|
|||
|
|
@ -1,9 +1,3 @@
|
|||
OpenTelemetry.Exporter.OtlpExporterOptions.AggregationTemporality.get -> OpenTelemetry.Metrics.AggregationTemporality
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.AggregationTemporality.set -> void
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.MetricReaderType.get -> OpenTelemetry.Metrics.MetricReaderType
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.MetricReaderType.set -> void
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.PeriodicExportingMetricReaderOptions.get -> OpenTelemetry.Metrics.PeriodicExportingMetricReaderOptions
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.PeriodicExportingMetricReaderOptions.set -> void
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.HttpClientFactory.get -> System.Func<System.Net.Http.HttpClient>
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.HttpClientFactory.set -> void
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.Protocol.get -> OpenTelemetry.Exporter.OtlpExportProtocol
|
||||
|
|
@ -16,4 +10,6 @@ OpenTelemetry.Exporter.OtlpMetricExporter.OtlpMetricExporter(OpenTelemetry.Expor
|
|||
OpenTelemetry.Metrics.OtlpMetricExporterExtensions
|
||||
override OpenTelemetry.Exporter.OtlpMetricExporter.Export(in OpenTelemetry.Batch<OpenTelemetry.Metrics.Metric> metrics) -> OpenTelemetry.ExportResult
|
||||
override OpenTelemetry.Exporter.OtlpMetricExporter.OnShutdown(int timeoutMilliseconds) -> bool
|
||||
static OpenTelemetry.Metrics.OtlpMetricExporterExtensions.AddOtlpExporter(this OpenTelemetry.Metrics.MeterProviderBuilder builder, System.Action<OpenTelemetry.Exporter.OtlpExporterOptions> configure = null) -> OpenTelemetry.Metrics.MeterProviderBuilder
|
||||
static OpenTelemetry.Metrics.OtlpMetricExporterExtensions.AddOtlpExporter(this OpenTelemetry.Metrics.MeterProviderBuilder builder) -> OpenTelemetry.Metrics.MeterProviderBuilder
|
||||
static OpenTelemetry.Metrics.OtlpMetricExporterExtensions.AddOtlpExporter(this OpenTelemetry.Metrics.MeterProviderBuilder builder, System.Action<OpenTelemetry.Exporter.OtlpExporterOptions, OpenTelemetry.Metrics.MetricReaderOptions> configureExporterAndMetricReader) -> OpenTelemetry.Metrics.MeterProviderBuilder
|
||||
static OpenTelemetry.Metrics.OtlpMetricExporterExtensions.AddOtlpExporter(this OpenTelemetry.Metrics.MeterProviderBuilder builder, System.Action<OpenTelemetry.Exporter.OtlpExporterOptions> configureExporter) -> OpenTelemetry.Metrics.MeterProviderBuilder
|
||||
|
|
|
|||
|
|
@ -1,9 +1,3 @@
|
|||
OpenTelemetry.Exporter.OtlpExporterOptions.AggregationTemporality.get -> OpenTelemetry.Metrics.AggregationTemporality
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.AggregationTemporality.set -> void
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.MetricReaderType.get -> OpenTelemetry.Metrics.MetricReaderType
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.MetricReaderType.set -> void
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.PeriodicExportingMetricReaderOptions.get -> OpenTelemetry.Metrics.PeriodicExportingMetricReaderOptions
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.PeriodicExportingMetricReaderOptions.set -> void
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.HttpClientFactory.get -> System.Func<System.Net.Http.HttpClient>
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.HttpClientFactory.set -> void
|
||||
OpenTelemetry.Exporter.OtlpExporterOptions.Protocol.get -> OpenTelemetry.Exporter.OtlpExportProtocol
|
||||
|
|
@ -16,4 +10,6 @@ OpenTelemetry.Exporter.OtlpMetricExporter.OtlpMetricExporter(OpenTelemetry.Expor
|
|||
OpenTelemetry.Metrics.OtlpMetricExporterExtensions
|
||||
override OpenTelemetry.Exporter.OtlpMetricExporter.Export(in OpenTelemetry.Batch<OpenTelemetry.Metrics.Metric> metrics) -> OpenTelemetry.ExportResult
|
||||
override OpenTelemetry.Exporter.OtlpMetricExporter.OnShutdown(int timeoutMilliseconds) -> bool
|
||||
static OpenTelemetry.Metrics.OtlpMetricExporterExtensions.AddOtlpExporter(this OpenTelemetry.Metrics.MeterProviderBuilder builder, System.Action<OpenTelemetry.Exporter.OtlpExporterOptions> configure = null) -> OpenTelemetry.Metrics.MeterProviderBuilder
|
||||
static OpenTelemetry.Metrics.OtlpMetricExporterExtensions.AddOtlpExporter(this OpenTelemetry.Metrics.MeterProviderBuilder builder) -> OpenTelemetry.Metrics.MeterProviderBuilder
|
||||
static OpenTelemetry.Metrics.OtlpMetricExporterExtensions.AddOtlpExporter(this OpenTelemetry.Metrics.MeterProviderBuilder builder, System.Action<OpenTelemetry.Exporter.OtlpExporterOptions, OpenTelemetry.Metrics.MetricReaderOptions> configureExporterAndMetricReader) -> OpenTelemetry.Metrics.MeterProviderBuilder
|
||||
static OpenTelemetry.Metrics.OtlpMetricExporterExtensions.AddOtlpExporter(this OpenTelemetry.Metrics.MeterProviderBuilder builder, System.Action<OpenTelemetry.Exporter.OtlpExporterOptions> configureExporter) -> OpenTelemetry.Metrics.MeterProviderBuilder
|
||||
|
|
|
|||
|
|
@ -146,22 +146,6 @@ namespace OpenTelemetry.Exporter
|
|||
/// </summary>
|
||||
public BatchExportProcessorOptions<Activity> BatchExportProcessorOptions { get; set; } = new BatchExportActivityProcessorOptions();
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the <see cref="MetricReaderType" /> to use. Defaults to <c>MetricReaderType.Periodic</c>.
|
||||
/// </summary>
|
||||
public MetricReaderType MetricReaderType { get; set; } = MetricReaderType.Periodic;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the <see cref="PeriodicExportingMetricReaderOptions" /> options. Ignored unless <c>MetricReaderType</c> is <c>Periodic</c>.
|
||||
/// </summary>
|
||||
public PeriodicExportingMetricReaderOptions PeriodicExportingMetricReaderOptions { get; set; } = new PeriodicExportingMetricReaderOptions();
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the AggregationTemporality used for Histogram
|
||||
/// and Sum metrics.
|
||||
/// </summary>
|
||||
public AggregationTemporality AggregationTemporality { get; set; } = AggregationTemporality.Cumulative;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the factory function called to create the <see
|
||||
/// cref="HttpClient"/> instance that will be used at runtime to
|
||||
|
|
|
|||
|
|
@ -25,13 +25,23 @@ namespace OpenTelemetry.Metrics
|
|||
/// </summary>
|
||||
public static class OtlpMetricExporterExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Adds <see cref="OtlpMetricExporter"/> to the <see cref="MeterProviderBuilder"/> using default options.
|
||||
/// </summary>
|
||||
/// <param name="builder"><see cref="MeterProviderBuilder"/> builder to use.</param>
|
||||
/// <returns>The instance of <see cref="MeterProviderBuilder"/> to chain the calls.</returns>
|
||||
public static MeterProviderBuilder AddOtlpExporter(this MeterProviderBuilder builder)
|
||||
{
|
||||
return AddOtlpExporter(builder, options => { });
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds <see cref="OtlpMetricExporter"/> to the <see cref="MeterProviderBuilder"/>.
|
||||
/// </summary>
|
||||
/// <param name="builder"><see cref="MeterProviderBuilder"/> builder to use.</param>
|
||||
/// <param name="configure">Exporter configuration options.</param>
|
||||
/// <param name="configureExporter">Exporter configuration options.</param>
|
||||
/// <returns>The instance of <see cref="MeterProviderBuilder"/> to chain the calls.</returns>
|
||||
public static MeterProviderBuilder AddOtlpExporter(this MeterProviderBuilder builder, Action<OtlpExporterOptions> configure = null)
|
||||
public static MeterProviderBuilder AddOtlpExporter(this MeterProviderBuilder builder, Action<OtlpExporterOptions> configureExporter)
|
||||
{
|
||||
Guard.ThrowIfNull(builder);
|
||||
|
||||
|
|
@ -39,32 +49,69 @@ namespace OpenTelemetry.Metrics
|
|||
{
|
||||
return deferredMeterProviderBuilder.Configure((sp, builder) =>
|
||||
{
|
||||
AddOtlpExporter(builder, sp.GetOptions<OtlpExporterOptions>(), configure, sp);
|
||||
AddOtlpExporter(builder, sp.GetOptions<OtlpExporterOptions>(), sp.GetOptions<MetricReaderOptions>(), configureExporter, null, sp);
|
||||
});
|
||||
}
|
||||
|
||||
return AddOtlpExporter(builder, new OtlpExporterOptions(), configure, serviceProvider: null);
|
||||
return AddOtlpExporter(builder, new OtlpExporterOptions(), new MetricReaderOptions(), configureExporter, null, serviceProvider: null);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds <see cref="OtlpMetricExporter"/> to the <see cref="MeterProviderBuilder"/>.
|
||||
/// </summary>
|
||||
/// <param name="builder"><see cref="MeterProviderBuilder"/> builder to use.</param>
|
||||
/// <param name="configureExporterAndMetricReader">Exporter and <see cref="MetricReader"/> configuration options.</param>
|
||||
/// <returns>The instance of <see cref="MeterProviderBuilder"/> to chain the calls.</returns>
|
||||
public static MeterProviderBuilder AddOtlpExporter(
|
||||
this MeterProviderBuilder builder,
|
||||
Action<OtlpExporterOptions, MetricReaderOptions> configureExporterAndMetricReader)
|
||||
{
|
||||
Guard.ThrowIfNull(builder, nameof(builder));
|
||||
|
||||
if (builder is IDeferredMeterProviderBuilder deferredMeterProviderBuilder)
|
||||
{
|
||||
return deferredMeterProviderBuilder.Configure((sp, builder) =>
|
||||
{
|
||||
AddOtlpExporter(builder, sp.GetOptions<OtlpExporterOptions>(), sp.GetOptions<MetricReaderOptions>(), null, configureExporterAndMetricReader, sp);
|
||||
});
|
||||
}
|
||||
|
||||
return AddOtlpExporter(builder, new OtlpExporterOptions(), new MetricReaderOptions(), null, configureExporterAndMetricReader, serviceProvider: null);
|
||||
}
|
||||
|
||||
private static MeterProviderBuilder AddOtlpExporter(
|
||||
MeterProviderBuilder builder,
|
||||
OtlpExporterOptions options,
|
||||
Action<OtlpExporterOptions> configure,
|
||||
OtlpExporterOptions exporterOptions,
|
||||
MetricReaderOptions metricReaderOptions,
|
||||
Action<OtlpExporterOptions> configureExporter,
|
||||
Action<OtlpExporterOptions, MetricReaderOptions> configureExporterAndMetricReader,
|
||||
IServiceProvider serviceProvider)
|
||||
{
|
||||
configure?.Invoke(options);
|
||||
if (configureExporterAndMetricReader != null)
|
||||
{
|
||||
configureExporterAndMetricReader.Invoke(exporterOptions, metricReaderOptions);
|
||||
}
|
||||
else
|
||||
{
|
||||
configureExporter?.Invoke(exporterOptions);
|
||||
}
|
||||
|
||||
options.TryEnableIHttpClientFactoryIntegration(serviceProvider, "OtlpMetricExporter");
|
||||
exporterOptions.TryEnableIHttpClientFactoryIntegration(serviceProvider, "OtlpMetricExporter");
|
||||
|
||||
options.AppendExportPath(OtlpExporterOptions.MetricsExportPath);
|
||||
exporterOptions.AppendExportPath(OtlpExporterOptions.MetricsExportPath);
|
||||
|
||||
var metricExporter = new OtlpMetricExporter(options);
|
||||
var metricExporter = new OtlpMetricExporter(exporterOptions);
|
||||
|
||||
var metricReader = options.MetricReaderType == MetricReaderType.Manual
|
||||
if (metricReaderOptions.MetricReaderType == (MetricReaderType)(-1))
|
||||
{
|
||||
metricReaderOptions.MetricReaderType = MetricReaderType.Periodic;
|
||||
}
|
||||
|
||||
var metricReader = metricReaderOptions.MetricReaderType == MetricReaderType.Manual
|
||||
? new BaseExportingMetricReader(metricExporter)
|
||||
: new PeriodicExportingMetricReader(metricExporter, options.PeriodicExportingMetricReaderOptions.ExportIntervalMilliseconds);
|
||||
: new PeriodicExportingMetricReader(metricExporter, metricReaderOptions.PeriodicExportingMetricReaderOptions.ExportIntervalMilliseconds);
|
||||
|
||||
metricReader.Temporality = options.AggregationTemporality;
|
||||
metricReader.Temporality = metricReaderOptions.Temporality;
|
||||
return builder.AddReader(metricReader);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,14 @@
|
|||
OpenTelemetry.BaseExporter<T>.ForceFlush(int timeoutMilliseconds = -1) -> bool
|
||||
OpenTelemetry.Batch<T>.Batch(T[] items, int count) -> void
|
||||
OpenTelemetry.Batch<T>.Count.get -> long
|
||||
OpenTelemetry.Metrics.MetricReaderOptions
|
||||
OpenTelemetry.Metrics.MetricReaderOptions.MetricReaderOptions() -> void
|
||||
OpenTelemetry.Metrics.MetricReaderOptions.MetricReaderType.get -> OpenTelemetry.Metrics.MetricReaderType
|
||||
OpenTelemetry.Metrics.MetricReaderOptions.MetricReaderType.set -> void
|
||||
OpenTelemetry.Metrics.MetricReaderOptions.PeriodicExportingMetricReaderOptions.get -> OpenTelemetry.Metrics.PeriodicExportingMetricReaderOptions
|
||||
OpenTelemetry.Metrics.MetricReaderOptions.PeriodicExportingMetricReaderOptions.set -> void
|
||||
OpenTelemetry.Metrics.MetricReaderOptions.Temporality.get -> OpenTelemetry.Metrics.AggregationTemporality
|
||||
OpenTelemetry.Metrics.MetricReaderOptions.Temporality.set -> void
|
||||
OpenTelemetry.Metrics.AggregationTemporality
|
||||
OpenTelemetry.Metrics.AggregationTemporality.Cumulative = 1 -> OpenTelemetry.Metrics.AggregationTemporality
|
||||
OpenTelemetry.Metrics.AggregationTemporality.Delta = 2 -> OpenTelemetry.Metrics.AggregationTemporality
|
||||
|
|
|
|||
|
|
@ -1,6 +1,14 @@
|
|||
OpenTelemetry.BaseExporter<T>.ForceFlush(int timeoutMilliseconds = -1) -> bool
|
||||
OpenTelemetry.Batch<T>.Batch(T[] items, int count) -> void
|
||||
OpenTelemetry.Batch<T>.Count.get -> long
|
||||
OpenTelemetry.Metrics.MetricReaderOptions
|
||||
OpenTelemetry.Metrics.MetricReaderOptions.MetricReaderOptions() -> void
|
||||
OpenTelemetry.Metrics.MetricReaderOptions.MetricReaderType.get -> OpenTelemetry.Metrics.MetricReaderType
|
||||
OpenTelemetry.Metrics.MetricReaderOptions.MetricReaderType.set -> void
|
||||
OpenTelemetry.Metrics.MetricReaderOptions.PeriodicExportingMetricReaderOptions.get -> OpenTelemetry.Metrics.PeriodicExportingMetricReaderOptions
|
||||
OpenTelemetry.Metrics.MetricReaderOptions.PeriodicExportingMetricReaderOptions.set -> void
|
||||
OpenTelemetry.Metrics.MetricReaderOptions.Temporality.get -> OpenTelemetry.Metrics.AggregationTemporality
|
||||
OpenTelemetry.Metrics.MetricReaderOptions.Temporality.set -> void
|
||||
OpenTelemetry.Metrics.AggregationTemporality
|
||||
OpenTelemetry.Metrics.AggregationTemporality.Cumulative = 1 -> OpenTelemetry.Metrics.AggregationTemporality
|
||||
OpenTelemetry.Metrics.AggregationTemporality.Delta = 2 -> OpenTelemetry.Metrics.AggregationTemporality
|
||||
|
|
|
|||
|
|
@ -0,0 +1,58 @@
|
|||
// <copyright file="MetricReaderOptions.cs" company="OpenTelemetry Authors">
|
||||
// Copyright The OpenTelemetry Authors
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
// </copyright>
|
||||
|
||||
namespace OpenTelemetry.Metrics;
|
||||
|
||||
/// <summary>
|
||||
/// Options for configuring either a <see cref="BaseExportingMetricReader"/> or <see cref="PeriodicExportingMetricReader"/> .
|
||||
/// </summary>
|
||||
public class MetricReaderOptions
|
||||
{
|
||||
private const MetricReaderType MetricReaderTypeUnspecified = (MetricReaderType)(-1);
|
||||
private MetricReaderType metricReaderType = MetricReaderTypeUnspecified;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the AggregationTemporality used for Histogram
|
||||
/// and Sum metrics.
|
||||
/// </summary>
|
||||
public AggregationTemporality Temporality { get; set; } = AggregationTemporality.Cumulative;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the <see cref="MetricReaderType" /> to use. Defaults to <c>MetricReaderType.Manual</c>.
|
||||
/// </summary>
|
||||
public MetricReaderType MetricReaderType
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.metricReaderType == MetricReaderTypeUnspecified)
|
||||
{
|
||||
this.metricReaderType = MetricReaderType.Manual;
|
||||
}
|
||||
|
||||
return this.metricReaderType;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
this.metricReaderType = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the <see cref="PeriodicExportingMetricReaderOptions" /> options. Ignored unless <c>MetricReaderType</c> is <c>Periodic</c>.
|
||||
/// </summary>
|
||||
public PeriodicExportingMetricReaderOptions PeriodicExportingMetricReaderOptions { get; set; } = new PeriodicExportingMetricReaderOptions();
|
||||
}
|
||||
Loading…
Reference in New Issue