2727import io .opentelemetry .sdk .autoconfigure .spi .AutoConfigurationCustomizerProvider ;
2828import io .opentelemetry .sdk .autoconfigure .spi .ConfigProperties ;
2929import io .opentelemetry .sdk .autoconfigure .spi .ConfigurationException ;
30- import io .opentelemetry .sdk .autoconfigure .spi .internal .DefaultConfigProperties ;
3130import io .opentelemetry .sdk .metrics .Aggregation ;
32- import io .opentelemetry .sdk .metrics .InstrumentSelector ;
3331import io .opentelemetry .sdk .metrics .InstrumentType ;
3432import io .opentelemetry .sdk .metrics .SdkMeterProvider ;
3533import io .opentelemetry .sdk .metrics .SdkMeterProviderBuilder ;
36- import io .opentelemetry .sdk .metrics .View ;
3734import io .opentelemetry .sdk .metrics .export .MetricExporter ;
3835import io .opentelemetry .sdk .metrics .export .MetricReader ;
3936import io .opentelemetry .sdk .metrics .export .PeriodicMetricReader ;
@@ -153,7 +150,9 @@ private SdkTracerProviderBuilder customizeTracerProviderBuilder(
153150 SdkTracerProviderBuilder tracerProviderBuilder , ConfigProperties configProps ) {
154151 if (isApplicationSignalsEnabled (configProps )) {
155152 logger .info ("AWS Application Signals enabled" );
156- Duration exportInterval = getMetricExportInterval (configProps );
153+ Duration exportInterval =
154+ SDKMeterProviderBuilder .getMetricExportInterval (
155+ configProps , DEFAULT_METRIC_EXPORT_INTERVAL , logger );
157156 // Construct and set local and remote attributes span processor
158157 tracerProviderBuilder .addSpanProcessor (
159158 AttributePropagatingSpanProcessorBuilder .create ().build ());
@@ -186,13 +185,16 @@ private SdkMeterProviderBuilder customizeMeterProvider(
186185 String jmxRuntimeScopeName = "io.opentelemetry.jmx" ;
187186 registeredScopeNames .add (jmxRuntimeScopeName );
188187
189- configureMetricFilter (configProps , sdkMeterProviderBuilder , registeredScopeNames );
188+ SDKMeterProviderBuilder .configureMetricFilter (
189+ configProps , sdkMeterProviderBuilder , registeredScopeNames , logger );
190190
191191 MetricExporter metricsExporter =
192192 ApplicationSignalsExporterProvider .INSTANCE .createExporter (configProps );
193193 MetricReader metricReader =
194194 ScopeBasedPeriodicMetricReader .create (metricsExporter , registeredScopeNames )
195- .setInterval (getMetricExportInterval (configProps ))
195+ .setInterval (
196+ SDKMeterProviderBuilder .getMetricExportInterval (
197+ configProps , DEFAULT_METRIC_EXPORT_INTERVAL , logger ))
196198 .build ();
197199 sdkMeterProviderBuilder .registerMetricReader (metricReader );
198200
@@ -201,44 +203,6 @@ private SdkMeterProviderBuilder customizeMeterProvider(
201203 return sdkMeterProviderBuilder ;
202204 }
203205
204- private static void configureMetricFilter (
205- ConfigProperties configProps ,
206- SdkMeterProviderBuilder sdkMeterProviderBuilder ,
207- Set <String > registeredScopeNames ) {
208- Set <String > exporterNames =
209- DefaultConfigProperties .getSet (configProps , "otel.metrics.exporter" );
210- if (exporterNames .contains ("none" )) {
211- for (String scope : registeredScopeNames ) {
212- sdkMeterProviderBuilder .registerView (
213- InstrumentSelector .builder ().setMeterName (scope ).build (),
214- View .builder ().setAggregation (Aggregation .defaultAggregation ()).build ());
215-
216- logger .log (Level .FINE , "Registered scope {0}" , scope );
217- }
218- sdkMeterProviderBuilder .registerView (
219- InstrumentSelector .builder ().setName ("*" ).build (),
220- View .builder ().setAggregation (Aggregation .drop ()).build ());
221- }
222- }
223-
224- private static Duration getMetricExportInterval (ConfigProperties configProps ) {
225- Duration exportInterval =
226- configProps .getDuration ("otel.metric.export.interval" , DEFAULT_METRIC_EXPORT_INTERVAL );
227- logger .log (
228- Level .FINE ,
229- String .format ("AWS Application Signals Metrics export interval: %s" , exportInterval ));
230- // Cap export interval to 60 seconds. This is currently required for metrics-trace correlation
231- // to work correctly.
232- if (exportInterval .compareTo (DEFAULT_METRIC_EXPORT_INTERVAL ) > 0 ) {
233- exportInterval = DEFAULT_METRIC_EXPORT_INTERVAL ;
234- logger .log (
235- Level .INFO ,
236- String .format (
237- "AWS Application Signals metrics export interval capped to %s" , exportInterval ));
238- }
239- return exportInterval ;
240- }
241-
242206 private SpanExporter customizeSpanExporter (
243207 SpanExporter spanExporter , ConfigProperties configProps ) {
244208 if (isApplicationSignalsEnabled (configProps )) {
0 commit comments