Remove metric related options from ConsoleExporterOptions (#2929)
This commit is contained in:
parent
843d6fd135
commit
644ba5bc14
|
|
@ -134,12 +134,14 @@ namespace Examples.AspNetCore
|
|||
builder.AddOtlpExporter();
|
||||
break;
|
||||
default:
|
||||
builder.AddConsoleExporter(options =>
|
||||
builder.AddConsoleExporter((exporterOptions, metricReaderOptions) =>
|
||||
{
|
||||
exporterOptions.Targets = ConsoleExporterOutputTargets.Console;
|
||||
|
||||
// The ConsoleMetricExporter defaults to a manual collect cycle.
|
||||
// This configuration causes metrics to be exported to stdout on a 10s interval.
|
||||
options.MetricReaderType = MetricReaderType.Periodic;
|
||||
options.PeriodicExportingMetricReaderOptions.ExportIntervalMilliseconds = 10000;
|
||||
metricReaderOptions.MetricReaderType = MetricReaderType.Periodic;
|
||||
metricReaderOptions.PeriodicExportingMetricReaderOptions.ExportIntervalMilliseconds = 10000;
|
||||
});
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -79,11 +79,13 @@ namespace Examples.Console
|
|||
else
|
||||
{
|
||||
providerBuilder
|
||||
.AddConsoleExporter(o =>
|
||||
.AddConsoleExporter((exporterOptions, metricReaderOptions) =>
|
||||
{
|
||||
o.MetricReaderType = MetricReaderType.Periodic;
|
||||
o.PeriodicExportingMetricReaderOptions.ExportIntervalMilliseconds = options.DefaultCollectionPeriodMilliseconds;
|
||||
o.AggregationTemporality = options.IsDelta ? AggregationTemporality.Delta : AggregationTemporality.Cumulative;
|
||||
exporterOptions.Targets = ConsoleExporterOutputTargets.Console;
|
||||
|
||||
metricReaderOptions.MetricReaderType = MetricReaderType.Periodic;
|
||||
metricReaderOptions.PeriodicExportingMetricReaderOptions.ExportIntervalMilliseconds = options.DefaultCollectionPeriodMilliseconds;
|
||||
metricReaderOptions.Temporality = options.IsDelta ? AggregationTemporality.Delta : AggregationTemporality.Cumulative;
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,7 @@
|
|||
OpenTelemetry.Exporter.ConsoleExporterOptions.AggregationTemporality.get -> OpenTelemetry.Metrics.AggregationTemporality
|
||||
OpenTelemetry.Exporter.ConsoleExporterOptions.AggregationTemporality.set -> void
|
||||
OpenTelemetry.Exporter.ConsoleExporterOptions.MetricReaderType.get -> OpenTelemetry.Metrics.MetricReaderType
|
||||
OpenTelemetry.Exporter.ConsoleExporterOptions.MetricReaderType.set -> void
|
||||
OpenTelemetry.Exporter.ConsoleExporterOptions.PeriodicExportingMetricReaderOptions.get -> OpenTelemetry.Metrics.PeriodicExportingMetricReaderOptions
|
||||
OpenTelemetry.Exporter.ConsoleExporterOptions.PeriodicExportingMetricReaderOptions.set -> void
|
||||
OpenTelemetry.Exporter.ConsoleMetricExporter
|
||||
OpenTelemetry.Exporter.ConsoleMetricExporter.ConsoleMetricExporter(OpenTelemetry.Exporter.ConsoleExporterOptions options) -> void
|
||||
OpenTelemetry.Metrics.ConsoleExporterMetricsExtensions
|
||||
override OpenTelemetry.Exporter.ConsoleMetricExporter.Export(in OpenTelemetry.Batch<OpenTelemetry.Metrics.Metric> batch) -> OpenTelemetry.ExportResult
|
||||
static OpenTelemetry.Metrics.ConsoleExporterMetricsExtensions.AddConsoleExporter(this OpenTelemetry.Metrics.MeterProviderBuilder builder, System.Action<OpenTelemetry.Exporter.ConsoleExporterOptions> configure = null) -> OpenTelemetry.Metrics.MeterProviderBuilder
|
||||
static OpenTelemetry.Metrics.ConsoleExporterMetricsExtensions.AddConsoleExporter(this OpenTelemetry.Metrics.MeterProviderBuilder builder) -> OpenTelemetry.Metrics.MeterProviderBuilder
|
||||
static OpenTelemetry.Metrics.ConsoleExporterMetricsExtensions.AddConsoleExporter(this OpenTelemetry.Metrics.MeterProviderBuilder builder, System.Action<OpenTelemetry.Exporter.ConsoleExporterOptions, OpenTelemetry.Metrics.MetricReaderOptions> configureExporterAndMetricReader) -> OpenTelemetry.Metrics.MeterProviderBuilder
|
||||
static OpenTelemetry.Metrics.ConsoleExporterMetricsExtensions.AddConsoleExporter(this OpenTelemetry.Metrics.MeterProviderBuilder builder, System.Action<OpenTelemetry.Exporter.ConsoleExporterOptions> configureExporter) -> OpenTelemetry.Metrics.MeterProviderBuilder
|
||||
|
|
|
|||
|
|
@ -1,11 +1,7 @@
|
|||
OpenTelemetry.Exporter.ConsoleExporterOptions.AggregationTemporality.get -> OpenTelemetry.Metrics.AggregationTemporality
|
||||
OpenTelemetry.Exporter.ConsoleExporterOptions.AggregationTemporality.set -> void
|
||||
OpenTelemetry.Exporter.ConsoleExporterOptions.MetricReaderType.get -> OpenTelemetry.Metrics.MetricReaderType
|
||||
OpenTelemetry.Exporter.ConsoleExporterOptions.MetricReaderType.set -> void
|
||||
OpenTelemetry.Exporter.ConsoleExporterOptions.PeriodicExportingMetricReaderOptions.get -> OpenTelemetry.Metrics.PeriodicExportingMetricReaderOptions
|
||||
OpenTelemetry.Exporter.ConsoleExporterOptions.PeriodicExportingMetricReaderOptions.set -> void
|
||||
OpenTelemetry.Exporter.ConsoleMetricExporter
|
||||
OpenTelemetry.Exporter.ConsoleMetricExporter.ConsoleMetricExporter(OpenTelemetry.Exporter.ConsoleExporterOptions options) -> void
|
||||
OpenTelemetry.Metrics.ConsoleExporterMetricsExtensions
|
||||
override OpenTelemetry.Exporter.ConsoleMetricExporter.Export(in OpenTelemetry.Batch<OpenTelemetry.Metrics.Metric> batch) -> OpenTelemetry.ExportResult
|
||||
static OpenTelemetry.Metrics.ConsoleExporterMetricsExtensions.AddConsoleExporter(this OpenTelemetry.Metrics.MeterProviderBuilder builder, System.Action<OpenTelemetry.Exporter.ConsoleExporterOptions> configure = null) -> OpenTelemetry.Metrics.MeterProviderBuilder
|
||||
static OpenTelemetry.Metrics.ConsoleExporterMetricsExtensions.AddConsoleExporter(this OpenTelemetry.Metrics.MeterProviderBuilder builder) -> OpenTelemetry.Metrics.MeterProviderBuilder
|
||||
static OpenTelemetry.Metrics.ConsoleExporterMetricsExtensions.AddConsoleExporter(this OpenTelemetry.Metrics.MeterProviderBuilder builder, System.Action<OpenTelemetry.Exporter.ConsoleExporterOptions, OpenTelemetry.Metrics.MetricReaderOptions> configureExporterAndMetricReader) -> OpenTelemetry.Metrics.MeterProviderBuilder
|
||||
static OpenTelemetry.Metrics.ConsoleExporterMetricsExtensions.AddConsoleExporter(this OpenTelemetry.Metrics.MeterProviderBuilder builder, System.Action<OpenTelemetry.Exporter.ConsoleExporterOptions> configureExporter) -> OpenTelemetry.Metrics.MeterProviderBuilder
|
||||
|
|
|
|||
|
|
@ -2,6 +2,11 @@
|
|||
|
||||
## Unreleased
|
||||
|
||||
* Removes metric related configuration options from `ConsoleExporterOptions`.
|
||||
`MetricReaderType`, `PeriodicExporterMetricReaderOptions`, and `Temporality`
|
||||
are now configurable via the `MetricReaderOptions`.
|
||||
([#2929](https://github.com/open-telemetry/opentelemetry-dotnet/pull/2929))
|
||||
|
||||
## 1.2.0-rc2
|
||||
|
||||
Released 2022-Feb-02
|
||||
|
|
|
|||
|
|
@ -20,31 +20,94 @@ using OpenTelemetry.Internal;
|
|||
|
||||
namespace OpenTelemetry.Metrics
|
||||
{
|
||||
/// <summary>
|
||||
/// Extension methods to simplify registering of the Console exporter.
|
||||
/// </summary>
|
||||
public static class ConsoleExporterMetricsExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Adds Console exporter to the TracerProvider.
|
||||
/// Adds <see cref="ConsoleMetricExporter"/> to the <see cref="MeterProviderBuilder"/> using default options.
|
||||
/// </summary>
|
||||
/// <param name="builder"><see cref="MeterProviderBuilder"/> builder to use.</param>
|
||||
/// <param name="configure">Exporter configuration options.</param>
|
||||
/// <returns>The instance of <see cref="MeterProviderBuilder"/> to chain the calls.</returns>
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Reliability", "CA2000:Dispose objects before losing scope", Justification = "The objects should not be disposed.")]
|
||||
public static MeterProviderBuilder AddConsoleExporter(this MeterProviderBuilder builder, Action<ConsoleExporterOptions> configure = null)
|
||||
public static MeterProviderBuilder AddConsoleExporter(this MeterProviderBuilder builder)
|
||||
{
|
||||
return AddConsoleExporter(builder, options => { });
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds <see cref="ConsoleMetricExporter"/> to the <see cref="MeterProviderBuilder"/>.
|
||||
/// </summary>
|
||||
/// <param name="builder"><see cref="MeterProviderBuilder"/> builder to use.</param>
|
||||
/// <param name="configureExporter">Exporter configuration options.</param>
|
||||
/// <returns>The instance of <see cref="MeterProviderBuilder"/> to chain the calls.</returns>
|
||||
public static MeterProviderBuilder AddConsoleExporter(this MeterProviderBuilder builder, Action<ConsoleExporterOptions> configureExporter)
|
||||
{
|
||||
Guard.ThrowIfNull(builder);
|
||||
|
||||
var options = new ConsoleExporterOptions();
|
||||
configure?.Invoke(options);
|
||||
if (builder is IDeferredMeterProviderBuilder deferredMeterProviderBuilder)
|
||||
{
|
||||
return deferredMeterProviderBuilder.Configure((sp, builder) =>
|
||||
{
|
||||
AddConsoleExporter(builder, sp.GetOptions<ConsoleExporterOptions>(), sp.GetOptions<MetricReaderOptions>(), configureExporter, null);
|
||||
});
|
||||
}
|
||||
|
||||
var exporter = new ConsoleMetricExporter(options);
|
||||
return AddConsoleExporter(builder, new ConsoleExporterOptions(), new MetricReaderOptions(), configureExporter, null);
|
||||
}
|
||||
|
||||
var reader = options.MetricReaderType == MetricReaderType.Manual
|
||||
? new BaseExportingMetricReader(exporter)
|
||||
: new PeriodicExportingMetricReader(exporter, options.PeriodicExportingMetricReaderOptions.ExportIntervalMilliseconds);
|
||||
/// <summary>
|
||||
/// Adds <see cref="ConsoleMetricExporter"/> 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 AddConsoleExporter(
|
||||
this MeterProviderBuilder builder,
|
||||
Action<ConsoleExporterOptions, MetricReaderOptions> configureExporterAndMetricReader)
|
||||
{
|
||||
Guard.ThrowIfNull(builder, nameof(builder));
|
||||
|
||||
reader.Temporality = options.AggregationTemporality;
|
||||
if (builder is IDeferredMeterProviderBuilder deferredMeterProviderBuilder)
|
||||
{
|
||||
return deferredMeterProviderBuilder.Configure((sp, builder) =>
|
||||
{
|
||||
AddConsoleExporter(builder, sp.GetOptions<ConsoleExporterOptions>(), sp.GetOptions<MetricReaderOptions>(), null, configureExporterAndMetricReader);
|
||||
});
|
||||
}
|
||||
|
||||
return builder.AddReader(reader);
|
||||
return AddConsoleExporter(builder, new ConsoleExporterOptions(), new MetricReaderOptions(), null, configureExporterAndMetricReader);
|
||||
}
|
||||
|
||||
private static MeterProviderBuilder AddConsoleExporter(
|
||||
MeterProviderBuilder builder,
|
||||
ConsoleExporterOptions exporterOptions,
|
||||
MetricReaderOptions metricReaderOptions,
|
||||
Action<ConsoleExporterOptions> configureExporter,
|
||||
Action<ConsoleExporterOptions, MetricReaderOptions> configureExporterAndMetricReader)
|
||||
{
|
||||
if (configureExporterAndMetricReader != null)
|
||||
{
|
||||
configureExporterAndMetricReader.Invoke(exporterOptions, metricReaderOptions);
|
||||
}
|
||||
else
|
||||
{
|
||||
configureExporter?.Invoke(exporterOptions);
|
||||
}
|
||||
|
||||
var metricExporter = new ConsoleMetricExporter(exporterOptions);
|
||||
|
||||
if (metricReaderOptions.MetricReaderType == (MetricReaderType)(-1))
|
||||
{
|
||||
metricReaderOptions.MetricReaderType = MetricReaderType.Manual;
|
||||
}
|
||||
|
||||
var metricReader = metricReaderOptions.MetricReaderType == MetricReaderType.Manual
|
||||
? new BaseExportingMetricReader(metricExporter)
|
||||
: new PeriodicExportingMetricReader(metricExporter, metricReaderOptions.PeriodicExportingMetricReaderOptions.ExportIntervalMilliseconds);
|
||||
|
||||
metricReader.Temporality = metricReaderOptions.Temporality;
|
||||
return builder.AddReader(metricReader);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,8 +14,6 @@
|
|||
// limitations under the License.
|
||||
// </copyright>
|
||||
|
||||
using OpenTelemetry.Metrics;
|
||||
|
||||
namespace OpenTelemetry.Exporter
|
||||
{
|
||||
public class ConsoleExporterOptions
|
||||
|
|
@ -24,21 +22,5 @@ namespace OpenTelemetry.Exporter
|
|||
/// Gets or sets the output targets for the console exporter.
|
||||
/// </summary>
|
||||
public ConsoleExporterOutputTargets Targets { get; set; } = ConsoleExporterOutputTargets.Console;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the <see cref="MetricReaderType" /> to use. Defaults to <c>MetricReaderType.Manual</c>.
|
||||
/// </summary>
|
||||
public MetricReaderType MetricReaderType { get; set; } = MetricReaderType.Manual;
|
||||
|
||||
/// <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.Delta;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,11 @@
|
|||
The default value is `http://localhost:4318`.
|
||||
([#2868](https://github.com/open-telemetry/opentelemetry-dotnet/pull/2868))
|
||||
|
||||
* Removes metric related configuration options from `OtlpExporterOptions`.
|
||||
`MetricReaderType`, `PeriodicExporterMetricReaderOptions`, and `Temporality`
|
||||
are now configurable via the `MetricReaderOptions`.
|
||||
([#2717](https://github.com/open-telemetry/opentelemetry-dotnet/pull/2717))
|
||||
|
||||
## 1.2.0-rc2
|
||||
|
||||
Released 2022-Feb-02
|
||||
|
|
|
|||
Loading…
Reference in New Issue