use of io.opentelemetry.sdk.metrics.view.InstrumentSelector in project opentelemetry-java by open-telemetry.
the class ViewConfigTest method toInstrumentSelector_Empty.
@Test
void toInstrumentSelector_Empty() {
InstrumentSelector selector = ViewConfig.toInstrumentSelector(SelectorSpecification.builder().build());
assertThat(selector).isEqualTo(InstrumentSelector.builder().build());
}
use of io.opentelemetry.sdk.metrics.view.InstrumentSelector in project opentelemetry-java by open-telemetry.
the class ViewConfigTest method toInstrumentSelector.
@Test
void toInstrumentSelector() {
InstrumentSelector selector = ViewConfig.toInstrumentSelector(SelectorSpecification.builder().instrumentName("name").instrumentType(InstrumentType.COUNTER).meterName("meterName").meterVersion("meterVersion").meterSchemaUrl("http://example.com").build());
assertThat(selector.getInstrumentNameFilter().test("name")).isTrue();
assertThat(selector.getInstrumentNameFilter().test("name1")).isFalse();
assertThat(selector.getInstrumentType()).isEqualTo(InstrumentType.COUNTER);
assertThat(selector.getMeterNameFilter().test("meterName")).isTrue();
assertThat(selector.getMeterNameFilter().test("meterName1")).isFalse();
assertThat(selector.getMeterVersionFilter().test("meterVersion")).isTrue();
assertThat(selector.getMeterVersionFilter().test("meterVersion1")).isFalse();
assertThat(selector.getMeterSchemaUrlFilter().test("http://example.com")).isTrue();
assertThat(selector.getMeterSchemaUrlFilter().test("http://example1.com")).isFalse();
}
use of io.opentelemetry.sdk.metrics.view.InstrumentSelector in project opentelemetry-java by open-telemetry.
the class SdkMeterProviderTest method viewSdk_AllowMulitpleViewsPerAsynchronousInstrument.
@Test
void viewSdk_AllowMulitpleViewsPerAsynchronousInstrument() {
InstrumentSelector selector = InstrumentSelector.builder().setType(InstrumentType.OBSERVABLE_GAUGE).setName("test").build();
InMemoryMetricReader reader = InMemoryMetricReader.create();
SdkMeterProvider provider = sdkMeterProviderBuilder.registerMetricReader(reader).registerView(selector, View.builder().setName("not_test").setDescription("not_desc").setAggregation(Aggregation.lastValue()).build()).registerView(selector, View.builder().setName("not_test_2").setDescription("not_desc_2").setAggregation(Aggregation.sum()).build()).build();
Meter meter = provider.get(SdkMeterProviderTest.class.getName());
meter.gaugeBuilder("test").setDescription("desc").setUnit("unit").buildWithCallback(obs -> obs.record(1.0));
assertThat(reader.collectAllMetrics()).satisfiesExactlyInAnyOrder(metric -> assertThat(metric).hasName("not_test").hasDescription("not_desc").hasUnit("unit").hasDoubleGauge(), metric -> assertThat(metric).hasName("not_test_2").hasDescription("not_desc_2").hasUnit("unit").hasDoubleSum());
}
use of io.opentelemetry.sdk.metrics.view.InstrumentSelector in project opentelemetry-java by open-telemetry.
the class SdkMeterProviderTest method viewSdk_capturesBaggageFromContext.
@Test
void viewSdk_capturesBaggageFromContext() {
InstrumentSelector selector = InstrumentSelector.builder().setType(InstrumentType.COUNTER).setName("test").build();
InMemoryMetricReader reader = InMemoryMetricReader.create();
SdkMeterProvider provider = sdkMeterProviderBuilder.registerMetricReader(reader).registerView(selector, ((ViewBuilderImpl) View.builder().setAggregation(Aggregation.sum())).appendAllBaggageAttributes().build()).build();
Meter meter = provider.get(SdkMeterProviderTest.class.getName());
Baggage baggage = Baggage.builder().put("baggage", "value").build();
Context context = Context.root().with(baggage);
LongCounter counter = meter.counterBuilder("test").build();
// Make sure whether or not we explicitly pass baggage, all values have it appended.
counter.add(1, Attributes.empty(), context);
// Also check implicit context
try (Scope ignored = context.makeCurrent()) {
counter.add(1, Attributes.empty());
}
// Now make sure all metrics have baggage appended.
// Implicitly we should have ONLY ONE metric data point that has baggage appended.
assertThat(reader.collectAllMetrics()).satisfiesExactly(metric -> assertThat(metric).hasName("test").hasLongSum().isCumulative().points().satisfiesExactly(point -> assertThat(point).hasAttributes(Attributes.builder().put("baggage", "value").build())));
}
use of io.opentelemetry.sdk.metrics.view.InstrumentSelector in project opentelemetry-java by open-telemetry.
the class SdkMeterProviderTest method viewSdk_AllowMulitpleViewsPerSynchronousInstrument.
@Test
void viewSdk_AllowMulitpleViewsPerSynchronousInstrument() {
InstrumentSelector selector = InstrumentSelector.builder().setType(InstrumentType.HISTOGRAM).setName("test").build();
InMemoryMetricReader reader = InMemoryMetricReader.create();
SdkMeterProvider provider = sdkMeterProviderBuilder.registerMetricReader(reader).registerView(selector, View.builder().setName("not_test").setDescription("not_desc").setAggregation(Aggregation.lastValue()).build()).registerView(selector, View.builder().setName("not_test_2").setDescription("not_desc_2").setAggregation(Aggregation.sum()).build()).build();
Meter meter = provider.get(SdkMeterProviderTest.class.getName());
DoubleHistogram histogram = meter.histogramBuilder("test").setDescription("desc").setUnit("unit").build();
histogram.record(1.0);
assertThat(reader.collectAllMetrics()).satisfiesExactlyInAnyOrder(metric -> assertThat(metric).hasName("not_test").hasDescription("not_desc").hasUnit("unit").hasDoubleGauge(), metric -> assertThat(metric).hasName("not_test_2").hasDescription("not_desc_2").hasUnit("unit").hasDoubleSum());
}
Aggregations