diff --git a/examples/AspNet/Global.asax.cs b/examples/AspNet/Global.asax.cs
index 7096ca266..3d08c198b 100644
--- a/examples/AspNet/Global.asax.cs
+++ b/examples/AspNet/Global.asax.cs
@@ -93,7 +93,6 @@ namespace Examples.AspNet
// The ConsoleMetricExporter defaults to a manual collect cycle.
// This configuration causes metrics to be exported to stdout on a 10s interval.
- metricReaderOptions.MetricReaderType = MetricReaderType.Periodic;
metricReaderOptions.PeriodicExportingMetricReaderOptions.ExportIntervalMilliseconds = 10000;
});
break;
diff --git a/examples/AspNetCore/Program.cs b/examples/AspNetCore/Program.cs
index e0bf8bac9..853e8e42f 100644
--- a/examples/AspNetCore/Program.cs
+++ b/examples/AspNetCore/Program.cs
@@ -135,7 +135,6 @@ builder.Services.AddOpenTelemetryMetrics(options =>
{
// The ConsoleMetricExporter defaults to a manual collect cycle.
// This configuration causes metrics to be exported to stdout on a 10s interval.
- metricReaderOptions.MetricReaderType = MetricReaderType.Periodic;
metricReaderOptions.PeriodicExportingMetricReaderOptions.ExportIntervalMilliseconds = 10000;
});
break;
diff --git a/examples/Console/TestMetrics.cs b/examples/Console/TestMetrics.cs
index 9a6cd75a6..b9864e817 100644
--- a/examples/Console/TestMetrics.cs
+++ b/examples/Console/TestMetrics.cs
@@ -70,7 +70,6 @@ namespace Examples.Console
{
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;
});
@@ -82,7 +81,6 @@ namespace Examples.Console
{
exporterOptions.Targets = ConsoleExporterOutputTargets.Console;
- metricReaderOptions.MetricReaderType = MetricReaderType.Periodic;
metricReaderOptions.PeriodicExportingMetricReaderOptions.ExportIntervalMilliseconds = options.DefaultCollectionPeriodMilliseconds;
metricReaderOptions.Temporality = options.IsDelta ? AggregationTemporality.Delta : AggregationTemporality.Cumulative;
});
diff --git a/src/OpenTelemetry.Exporter.Console/ConsoleExporterMetricsExtensions.cs b/src/OpenTelemetry.Exporter.Console/ConsoleExporterMetricsExtensions.cs
index fad30a688..6d7766b3b 100644
--- a/src/OpenTelemetry.Exporter.Console/ConsoleExporterMetricsExtensions.cs
+++ b/src/OpenTelemetry.Exporter.Console/ConsoleExporterMetricsExtensions.cs
@@ -15,6 +15,7 @@
//
using System;
+using System.Threading;
using OpenTelemetry.Exporter;
using OpenTelemetry.Internal;
@@ -25,6 +26,9 @@ namespace OpenTelemetry.Metrics
///
public static class ConsoleExporterMetricsExtensions
{
+ private const int DefaultExportIntervalMilliseconds = Timeout.Infinite;
+ private const int DefaultExportTimeoutMilliseconds = Timeout.Infinite;
+
///
/// Adds to the using default options.
///
@@ -97,13 +101,12 @@ namespace OpenTelemetry.Metrics
var metricExporter = new ConsoleMetricExporter(exporterOptions);
- var metricReader = metricReaderOptions.MetricReaderType == MetricReaderType.Manual
- ? new BaseExportingMetricReader(metricExporter)
- : new PeriodicExportingMetricReader(
- metricExporter,
- metricReaderOptions.PeriodicExportingMetricReaderOptions.ExportIntervalMilliseconds ?? -1);
+ var metricReader = PeriodicExportingMetricReaderHelper.CreatePeriodicExportingMetricReader(
+ metricExporter,
+ metricReaderOptions,
+ DefaultExportIntervalMilliseconds,
+ DefaultExportTimeoutMilliseconds);
- metricReader.Temporality = metricReaderOptions.Temporality;
return builder.AddReader(metricReader);
}
}
diff --git a/src/OpenTelemetry.Exporter.Console/OpenTelemetry.Exporter.Console.csproj b/src/OpenTelemetry.Exporter.Console/OpenTelemetry.Exporter.Console.csproj
index 53a3bd54c..56e58bbb2 100644
--- a/src/OpenTelemetry.Exporter.Console/OpenTelemetry.Exporter.Console.csproj
+++ b/src/OpenTelemetry.Exporter.Console/OpenTelemetry.Exporter.Console.csproj
@@ -17,6 +17,7 @@
+
diff --git a/src/OpenTelemetry.Exporter.InMemory/InMemoryExporterMetricsExtensions.cs b/src/OpenTelemetry.Exporter.InMemory/InMemoryExporterMetricsExtensions.cs
index 7f5c44650..9809b0955 100644
--- a/src/OpenTelemetry.Exporter.InMemory/InMemoryExporterMetricsExtensions.cs
+++ b/src/OpenTelemetry.Exporter.InMemory/InMemoryExporterMetricsExtensions.cs
@@ -16,6 +16,7 @@
using System;
using System.Collections.Generic;
+using System.Threading;
using OpenTelemetry.Exporter;
using OpenTelemetry.Internal;
@@ -26,6 +27,9 @@ namespace OpenTelemetry.Metrics
///
public static class InMemoryExporterMetricsExtensions
{
+ private const int DefaultExportIntervalMilliseconds = Timeout.Infinite;
+ private const int DefaultExportTimeoutMilliseconds = Timeout.Infinite;
+
///
/// Adds InMemory metric exporter to the using default options.
///
@@ -81,13 +85,12 @@ namespace OpenTelemetry.Metrics
var metricExporter = new InMemoryExporter(exportedItems);
- var metricReader = metricReaderOptions.MetricReaderType == MetricReaderType.Manual
- ? new BaseExportingMetricReader(metricExporter)
- : new PeriodicExportingMetricReader(
- metricExporter,
- metricReaderOptions.PeriodicExportingMetricReaderOptions.ExportIntervalMilliseconds ?? -1);
+ var metricReader = PeriodicExportingMetricReaderHelper.CreatePeriodicExportingMetricReader(
+ metricExporter,
+ metricReaderOptions,
+ DefaultExportIntervalMilliseconds,
+ DefaultExportTimeoutMilliseconds);
- metricReader.Temporality = metricReaderOptions.Temporality;
return builder.AddReader(metricReader);
}
}
diff --git a/src/OpenTelemetry.Exporter.InMemory/OpenTelemetry.Exporter.InMemory.csproj b/src/OpenTelemetry.Exporter.InMemory/OpenTelemetry.Exporter.InMemory.csproj
index aacbab5f9..308038dc4 100644
--- a/src/OpenTelemetry.Exporter.InMemory/OpenTelemetry.Exporter.InMemory.csproj
+++ b/src/OpenTelemetry.Exporter.InMemory/OpenTelemetry.Exporter.InMemory.csproj
@@ -17,6 +17,7 @@
+
diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/OpenTelemetry.Exporter.OpenTelemetryProtocol.csproj b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/OpenTelemetry.Exporter.OpenTelemetryProtocol.csproj
index 36398e596..dbdcc132b 100644
--- a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/OpenTelemetry.Exporter.OpenTelemetryProtocol.csproj
+++ b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/OpenTelemetry.Exporter.OpenTelemetryProtocol.csproj
@@ -46,6 +46,7 @@
+
diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/OtlpMetricExporterExtensions.cs b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/OtlpMetricExporterExtensions.cs
index 89bf04a8d..496c60a18 100644
--- a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/OtlpMetricExporterExtensions.cs
+++ b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/OtlpMetricExporterExtensions.cs
@@ -26,6 +26,7 @@ namespace OpenTelemetry.Metrics
public static class OtlpMetricExporterExtensions
{
private const int DefaultExportIntervalMilliseconds = 60000;
+ private const int DefaultExportTimeoutMilliseconds = 30000;
///
/// Adds to the using default options.
@@ -104,13 +105,12 @@ namespace OpenTelemetry.Metrics
var metricExporter = new OtlpMetricExporter(exporterOptions);
- var metricReader = metricReaderOptions.MetricReaderType == MetricReaderType.Manual
- ? new BaseExportingMetricReader(metricExporter)
- : new PeriodicExportingMetricReader(
- metricExporter,
- metricReaderOptions.PeriodicExportingMetricReaderOptions.ExportIntervalMilliseconds ?? DefaultExportIntervalMilliseconds);
+ var metricReader = PeriodicExportingMetricReaderHelper.CreatePeriodicExportingMetricReader(
+ metricExporter,
+ metricReaderOptions,
+ DefaultExportIntervalMilliseconds,
+ DefaultExportTimeoutMilliseconds);
- metricReader.Temporality = metricReaderOptions.Temporality;
return builder.AddReader(metricReader);
}
}
diff --git a/src/OpenTelemetry/.publicApi/net461/PublicAPI.Unshipped.txt b/src/OpenTelemetry/.publicApi/net461/PublicAPI.Unshipped.txt
index 91d679d8b..59c1a0fbb 100644
--- a/src/OpenTelemetry/.publicApi/net461/PublicAPI.Unshipped.txt
+++ b/src/OpenTelemetry/.publicApi/net461/PublicAPI.Unshipped.txt
@@ -3,10 +3,7 @@ OpenTelemetry.Batch.Batch(T[] items, int count) -> void
OpenTelemetry.Batch.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
@@ -81,9 +78,6 @@ OpenTelemetry.Metrics.MetricReader.MetricReader() -> void
OpenTelemetry.Metrics.MetricReader.Shutdown(int timeoutMilliseconds = -1) -> bool
OpenTelemetry.Metrics.MetricReader.Temporality.get -> OpenTelemetry.Metrics.AggregationTemporality
OpenTelemetry.Metrics.MetricReader.Temporality.set -> void
-OpenTelemetry.Metrics.MetricReaderType
-OpenTelemetry.Metrics.MetricReaderType.Manual = 0 -> OpenTelemetry.Metrics.MetricReaderType
-OpenTelemetry.Metrics.MetricReaderType.Periodic = 1 -> OpenTelemetry.Metrics.MetricReaderType
OpenTelemetry.Metrics.MetricStreamConfiguration
OpenTelemetry.Metrics.MetricStreamConfiguration.Description.get -> string
OpenTelemetry.Metrics.MetricStreamConfiguration.Description.set -> void
@@ -105,6 +99,8 @@ OpenTelemetry.Metrics.PeriodicExportingMetricReaderOptions
OpenTelemetry.Metrics.PeriodicExportingMetricReaderOptions.PeriodicExportingMetricReaderOptions() -> void
OpenTelemetry.Metrics.PeriodicExportingMetricReaderOptions.ExportIntervalMilliseconds.get -> int?
OpenTelemetry.Metrics.PeriodicExportingMetricReaderOptions.ExportIntervalMilliseconds.set -> void
+OpenTelemetry.Metrics.PeriodicExportingMetricReaderOptions.ExportTimeoutMilliseconds.get -> int?
+OpenTelemetry.Metrics.PeriodicExportingMetricReaderOptions.ExportTimeoutMilliseconds.set -> void
OpenTelemetry.ReadOnlyTagCollection
OpenTelemetry.ReadOnlyTagCollection.Count.get -> int
OpenTelemetry.ReadOnlyTagCollection.Enumerator
diff --git a/src/OpenTelemetry/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt b/src/OpenTelemetry/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt
index 91d679d8b..59c1a0fbb 100644
--- a/src/OpenTelemetry/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt
+++ b/src/OpenTelemetry/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt
@@ -3,10 +3,7 @@ OpenTelemetry.Batch.Batch(T[] items, int count) -> void
OpenTelemetry.Batch.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
@@ -81,9 +78,6 @@ OpenTelemetry.Metrics.MetricReader.MetricReader() -> void
OpenTelemetry.Metrics.MetricReader.Shutdown(int timeoutMilliseconds = -1) -> bool
OpenTelemetry.Metrics.MetricReader.Temporality.get -> OpenTelemetry.Metrics.AggregationTemporality
OpenTelemetry.Metrics.MetricReader.Temporality.set -> void
-OpenTelemetry.Metrics.MetricReaderType
-OpenTelemetry.Metrics.MetricReaderType.Manual = 0 -> OpenTelemetry.Metrics.MetricReaderType
-OpenTelemetry.Metrics.MetricReaderType.Periodic = 1 -> OpenTelemetry.Metrics.MetricReaderType
OpenTelemetry.Metrics.MetricStreamConfiguration
OpenTelemetry.Metrics.MetricStreamConfiguration.Description.get -> string
OpenTelemetry.Metrics.MetricStreamConfiguration.Description.set -> void
@@ -105,6 +99,8 @@ OpenTelemetry.Metrics.PeriodicExportingMetricReaderOptions
OpenTelemetry.Metrics.PeriodicExportingMetricReaderOptions.PeriodicExportingMetricReaderOptions() -> void
OpenTelemetry.Metrics.PeriodicExportingMetricReaderOptions.ExportIntervalMilliseconds.get -> int?
OpenTelemetry.Metrics.PeriodicExportingMetricReaderOptions.ExportIntervalMilliseconds.set -> void
+OpenTelemetry.Metrics.PeriodicExportingMetricReaderOptions.ExportTimeoutMilliseconds.get -> int?
+OpenTelemetry.Metrics.PeriodicExportingMetricReaderOptions.ExportTimeoutMilliseconds.set -> void
OpenTelemetry.ReadOnlyTagCollection
OpenTelemetry.ReadOnlyTagCollection.Count.get -> int
OpenTelemetry.ReadOnlyTagCollection.Enumerator
diff --git a/src/OpenTelemetry/CHANGELOG.md b/src/OpenTelemetry/CHANGELOG.md
index 5cfd6d278..99271b782 100644
--- a/src/OpenTelemetry/CHANGELOG.md
+++ b/src/OpenTelemetry/CHANGELOG.md
@@ -7,6 +7,19 @@
period.
([#2982](https://github.com/open-telemetry/opentelemetry-dotnet/pull/2982))
+* Added the `PeriodicExportingMetricReaderOptions.ExportTimeoutMilliseconds`
+ option.
+ ([#3038](https://github.com/open-telemetry/opentelemetry-dotnet/pull/3038))
+
+* Removed `MetricReaderType`. This enumeration was previously used when
+ configuing a metric reader with an exporter to configure whether the export
+ cycle would be periodic or manual (i.e., requiring a explicit call to flush
+ metrics). This change affects the push-based metric exporters: OTLP, Console,
+ and InMemory. For these exporters, a manual export cycle can now be achieved
+ by setting `PeriodicExportingMetricReaderOptions.ExportIntervalMilliseconds`
+ to `-1`.
+ ([#3038](https://github.com/open-telemetry/opentelemetry-dotnet/pull/3038))
+
## 1.2.0-rc3
Released 2022-Mar-04
diff --git a/src/OpenTelemetry/Internal/PeriodicExportingMetricReaderHelper.cs b/src/OpenTelemetry/Internal/PeriodicExportingMetricReaderHelper.cs
new file mode 100644
index 000000000..940846a51
--- /dev/null
+++ b/src/OpenTelemetry/Internal/PeriodicExportingMetricReaderHelper.cs
@@ -0,0 +1,40 @@
+//
+// 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.
+//
+
+namespace OpenTelemetry.Metrics;
+
+internal static class PeriodicExportingMetricReaderHelper
+{
+ internal static PeriodicExportingMetricReader CreatePeriodicExportingMetricReader(
+ BaseExporter exporter,
+ MetricReaderOptions options,
+ int defaultExportIntervalMilliseconds,
+ int defaultExportTimeoutMilliseconds)
+ {
+ var exportInterval =
+ options.PeriodicExportingMetricReaderOptions.ExportIntervalMilliseconds
+ ?? defaultExportIntervalMilliseconds;
+
+ var exportTimeout =
+ options.PeriodicExportingMetricReaderOptions.ExportTimeoutMilliseconds
+ ?? defaultExportTimeoutMilliseconds;
+
+ var metricReader = new PeriodicExportingMetricReader(exporter, exportInterval, exportTimeout);
+ metricReader.Temporality = options.Temporality;
+
+ return metricReader;
+ }
+}
diff --git a/src/OpenTelemetry/Metrics/MetricReaderOptions.cs b/src/OpenTelemetry/Metrics/MetricReaderOptions.cs
index 0ca01e8b2..335f71bca 100644
--- a/src/OpenTelemetry/Metrics/MetricReaderOptions.cs
+++ b/src/OpenTelemetry/Metrics/MetricReaderOptions.cs
@@ -28,12 +28,7 @@ public class MetricReaderOptions
public AggregationTemporality Temporality { get; set; } = AggregationTemporality.Cumulative;
///
- /// Gets or sets the to use. Defaults to MetricReaderType.Periodic.
+ /// Gets the options.
///
- public MetricReaderType MetricReaderType { get; set; } = MetricReaderType.Periodic;
-
- ///
- /// Gets or sets the options. Ignored unless MetricReaderType is Periodic.
- ///
- public PeriodicExportingMetricReaderOptions PeriodicExportingMetricReaderOptions { get; set; } = new PeriodicExportingMetricReaderOptions();
+ public PeriodicExportingMetricReaderOptions PeriodicExportingMetricReaderOptions { get; private set; } = new PeriodicExportingMetricReaderOptions();
}
diff --git a/src/OpenTelemetry/Metrics/MetricReaderType.cs b/src/OpenTelemetry/Metrics/MetricReaderType.cs
deleted file mode 100644
index 2e8524b6a..000000000
--- a/src/OpenTelemetry/Metrics/MetricReaderType.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-//
-// 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.
-//
-
-namespace OpenTelemetry.Metrics
-{
- ///
- /// Type of to be used.
- ///
- public enum MetricReaderType
- {
- ///
- /// Use the .
- /// This requires manually invoking MetricReader.Collect() to export metrics.
- ///
- Manual,
-
- ///
- /// Uses the .
- /// MetricReader.Collect() will be invoked on a defined interval.
- ///
- Periodic,
- }
-}
diff --git a/src/OpenTelemetry/Metrics/PeriodicExportingMetricReader.cs b/src/OpenTelemetry/Metrics/PeriodicExportingMetricReader.cs
index 40300d001..554c86cc9 100644
--- a/src/OpenTelemetry/Metrics/PeriodicExportingMetricReader.cs
+++ b/src/OpenTelemetry/Metrics/PeriodicExportingMetricReader.cs
@@ -52,7 +52,7 @@ namespace OpenTelemetry.Metrics
{
Guard.ThrowIfInvalidTimeout(exportIntervalMilliseconds);
Guard.ThrowIfZero(exportIntervalMilliseconds);
- Guard.ThrowIfOutOfRange(exportTimeoutMilliseconds, min: 0);
+ Guard.ThrowIfInvalidTimeout(exportTimeoutMilliseconds);
if ((this.SupportedExportModes & ExportModes.Push) != ExportModes.Push)
{
diff --git a/src/OpenTelemetry/Metrics/PeriodicExportingMetricReaderOptions.cs b/src/OpenTelemetry/Metrics/PeriodicExportingMetricReaderOptions.cs
index 1a2efa19b..a8072a0e4 100644
--- a/src/OpenTelemetry/Metrics/PeriodicExportingMetricReaderOptions.cs
+++ b/src/OpenTelemetry/Metrics/PeriodicExportingMetricReaderOptions.cs
@@ -20,7 +20,16 @@ namespace OpenTelemetry.Metrics
{
///
/// Gets or sets the metric export interval in milliseconds.
+ /// If not set, the default value depends on the type of metric exporter
+ /// associated with the metric reader.
///
public int? ExportIntervalMilliseconds { get; set; }
+
+ ///
+ /// Gets or sets the metric export timeout in milliseconds.
+ /// If not set, the default value depends on the type of metric exporter
+ /// associated with the metric reader.
+ ///
+ public int? ExportTimeoutMilliseconds { get; set; }
}
}
diff --git a/test/Benchmarks/Metrics/HistogramBenchmarks.cs b/test/Benchmarks/Metrics/HistogramBenchmarks.cs
index b4148433c..bb036558d 100644
--- a/test/Benchmarks/Metrics/HistogramBenchmarks.cs
+++ b/test/Benchmarks/Metrics/HistogramBenchmarks.cs
@@ -90,7 +90,6 @@ namespace Benchmarks.Metrics
.AddMeter(this.meter.Name)
.AddInMemoryExporter(exportedItems, metricReaderOptions =>
{
- metricReaderOptions.MetricReaderType = MetricReaderType.Periodic;
metricReaderOptions.PeriodicExportingMetricReaderOptions.ExportIntervalMilliseconds = 1000;
})
.AddView(this.histogram.Name, new ExplicitBucketHistogramConfiguration() { Boundaries = this.bounds })
diff --git a/test/Benchmarks/Metrics/MetricsBenchmarks.cs b/test/Benchmarks/Metrics/MetricsBenchmarks.cs
index 9f61fe543..03063bbcb 100644
--- a/test/Benchmarks/Metrics/MetricsBenchmarks.cs
+++ b/test/Benchmarks/Metrics/MetricsBenchmarks.cs
@@ -74,7 +74,6 @@ namespace Benchmarks.Metrics
.AddMeter(this.meter.Name) // All instruments from this meter are enabled.
.AddInMemoryExporter(exportedItems, metricReaderOptions =>
{
- metricReaderOptions.MetricReaderType = MetricReaderType.Periodic;
metricReaderOptions.PeriodicExportingMetricReaderOptions.ExportIntervalMilliseconds = 1000;
metricReaderOptions.Temporality = this.AggregationTemporality;
})