java.lang.Object
io.opentelemetry.sdk.extension.incubator.metric.viewconfig.ViewConfig

public final class ViewConfig extends Object
Enables file based YAML configuration of Metric SDK Views.

For example, a YAML file with the following content:

   - selector:
       instrument_name: my-instrument
       instrument_type: COUNTER
       instrument_unit: ms
       meter_name: my-meter
       meter_version: 1.0.0
       meter_schema_url: http://example.com
     view:
       name: new-instrument-name
       description: new-description
       aggregation: explicit_bucket_histogram
       attribute_keys:
         - foo
         - bar
 

Is equivalent to the following configuration:


 SdkMeterProvider.builder()
     .registerView(
         InstrumentSelector.builder()
             .setName("my-instrument")
             .setType(InstrumentType.COUNTER)
             .setUnit("ms")
             .setMeterName("my-meter")
             .setMeterVersion("1.0.0")
             .setMeterSchemaUrl("http://example.com")
             .build(),
         View.builder()
             .setName("new-instrument")
             .setDescription("new-description")
             .setAggregation(Aggregation.explicitBucketHistogram())
             .setAttributesFilter(key -> new HashSet<>(Arrays.asList("foo", "bar")).contains(key))
             .build());
 
  • Method Details

    • registerViews

      public static void registerViews(io.opentelemetry.sdk.metrics.SdkMeterProviderBuilder meterProviderBuilder, InputStream inputStream)
      Load the view configuration YAML from the inputStream and apply it to the SdkMeterProviderBuilder.
      Throws:
      io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException - if unable to interpret inputStream contents