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