Fix build

This commit is contained in:
Jack Berg 2025-06-03 17:50:17 -05:00
parent 4d94d04f51
commit eb3d80a0b0
No known key found for this signature in database
GPG Key ID: 8ACA4A135F1F2D23
8 changed files with 367 additions and 388 deletions

View File

@ -66,6 +66,16 @@ testing {
implementation("io.grpc:grpc-stub")
implementation("io.grpc:grpc-netty")
// NOTE: this is a strange dependency. junit reflectively analyzes classes as part of its test discovery process, eventually encounters to jackson-databind classes, and fails with a NoClassDefFoundError:
// JUnit Jupiter > initializationError FAILED
// org.junit.platform.launcher.core.DiscoveryIssueException: TestEngine with ID 'junit-jupiter' encountered a critical issue during test discovery:
//
// (1) [ERROR] ClassSelector [className = 'io.opentelemetry.exporter.internal.grpc.GrpcExporterTest$DummyMarshaler', classLoader = jdk.internal.loader.ClassLoaders$AppClassLoader@2aae9190] resolution failed
// Source: ClassSource [className = 'io.opentelemetry.exporter.internal.grpc.GrpcExporterTest$DummyMarshaler', filePosition = null]
// at io.opentelemetry.exporter.internal.grpc.GrpcExporterTest$DummyMarshaler.<no-method>(SourceFile:0)
// Cause: java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/JsonGenerator
implementation("com.fasterxml.jackson.core:jackson-databind")
}
}
}

View File

@ -50,16 +50,14 @@ import java.util.List;
import java.util.function.Consumer;
import java.util.stream.Stream;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtensionContext;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.ArgumentsProvider;
import org.junit.jupiter.params.provider.ArgumentsSource;
import org.junit.jupiter.params.provider.MethodSource;
class LowAllocationMetricsRequestMarshalerTest {
@ParameterizedTest
@ArgumentsSource(MetricsProvider.class)
@MethodSource("metricsArgs")
void validateOutput(Collection<MetricData> metrics) throws Exception {
byte[] result;
{
@ -85,7 +83,7 @@ class LowAllocationMetricsRequestMarshalerTest {
}
@ParameterizedTest
@ArgumentsSource(MetricsProvider.class)
@MethodSource("metricsArgs")
void validateJsonOutput(Collection<MetricData> metrics) throws Exception {
String result;
{
@ -110,8 +108,164 @@ class LowAllocationMetricsRequestMarshalerTest {
assertThat(lowAllocationResult).isEqualTo(result);
}
private static Stream<Arguments> metricsArgs() {
return Stream.of(
arguments(
named(
"long gauge",
metrics(
meterProvider ->
meterProvider
.get("long gauge")
.gaugeBuilder("gauge")
.setDescription("gauge description")
.setUnit("unit")
.ofLongs()
.buildWithCallback(
measurement ->
measurement.record(
5,
Attributes.of(AttributeKey.stringKey("key"), "value")))))),
arguments(
named(
"long counter",
metrics(
meterProvider -> {
LongCounter longCounter =
meterProvider
.get("long counter")
.counterBuilder("counter")
.setDescription("counter description")
.setUnit("unit")
.build();
longCounter.add(1);
longCounter.add(2, Attributes.of(AttributeKey.longKey("lives"), 9L));
longCounter.add(3);
}))),
arguments(
named(
"long updowncounter",
metrics(
meterProvider -> {
LongUpDownCounter longUpDownCounter =
meterProvider
.get("long updowncounter")
.upDownCounterBuilder("updowncounter")
.setDescription("updowncounter description")
.setUnit("unit")
.build();
longUpDownCounter.add(1);
longUpDownCounter.add(-1, Attributes.of(AttributeKey.booleanKey("on"), true));
longUpDownCounter.add(1);
}))),
arguments(
named(
"double gauge",
metrics(
meterProvider ->
meterProvider
.get("double gauge")
.gaugeBuilder("doublegauge")
.setDescription("doublegauge")
.setUnit("unit")
.buildWithCallback(measurement -> measurement.record(5.0))))),
arguments(
named(
"double counter",
metrics(
meterProvider -> {
DoubleCounter doubleCounter =
meterProvider
.get("double counter")
.counterBuilder("doublecounter")
.ofDoubles()
.build();
doubleCounter.add(1.0);
doubleCounter.add(2.0);
}))),
arguments(
named(
"double updowncounter",
metrics(
meterProvider -> {
DoubleUpDownCounter doubleUpDownCounter =
meterProvider
.get("double updowncounter")
.upDownCounterBuilder("doubleupdown")
.ofDoubles()
.build();
doubleUpDownCounter.add(1.0);
doubleUpDownCounter.add(-1.0);
}))),
arguments(
named(
"double histogram",
metrics(
meterProvider -> {
DoubleHistogram histogram =
meterProvider
.get("double histogram")
.histogramBuilder("histogram")
.build();
histogram.record(1.0);
histogram.record(2.0);
histogram.record(3.0);
histogram.record(4.0);
histogram.record(5.0);
}))),
arguments(
named(
"long histogram",
metrics(
meterProvider -> {
LongHistogram histogram =
meterProvider
.get("long histogram")
.histogramBuilder("histogram")
.ofLongs()
.build();
histogram.record(1);
histogram.record(2);
histogram.record(3);
histogram.record(4);
histogram.record(5);
}))),
arguments(
named(
"double exponential histogram",
metrics(
meterProvider -> {
DoubleHistogram histogram =
meterProvider
.get("double exponential histogram")
.histogramBuilder("exponentialhistogram")
.build();
histogram.record(1.0);
histogram.record(2.0);
histogram.record(3.0);
histogram.record(4.0);
histogram.record(5.0);
}))),
arguments(
named(
"long exponential histogram",
metrics(
meterProvider -> {
DoubleHistogram histogram =
meterProvider
.get("long exponential histogram")
.histogramBuilder("exponentialhistogram")
.build();
histogram.record(1);
histogram.record(2);
histogram.record(3);
histogram.record(4);
histogram.record(5);
}))));
}
@ParameterizedTest
@ArgumentsSource(ExemplarProvider.class)
@MethodSource("exemplarArgs")
void validateExemplar(ExemplarData exemplar) throws Exception {
byte[] result;
{
@ -146,6 +300,25 @@ class LowAllocationMetricsRequestMarshalerTest {
assertThat(lowAllocationResult).isEqualTo(result);
}
private static Stream<Arguments> exemplarArgs() {
SpanContext spanContext =
SpanContext.create(
"7b2e170db4df2d593ddb4ddf2ddf2d59",
"170d3ddb4d23e81f",
TraceFlags.getSampled(),
TraceState.getDefault());
return Stream.of(
arguments(
named(
"double exemplar",
ImmutableDoubleExemplarData.create(Attributes.empty(), 12345, spanContext, 5.0))),
arguments(
named(
"long exemplar",
ImmutableLongExemplarData.create(Attributes.empty(), 12345, spanContext, 5))));
}
@Test
void validateSummary() throws Exception {
List<ValueAtQuantile> percentileValues =
@ -222,187 +395,4 @@ class LowAllocationMetricsRequestMarshalerTest {
return metricReader.collectAllMetrics();
}
private static class MetricsProvider implements ArgumentsProvider {
@Override
public Stream<? extends Arguments> provideArguments(ExtensionContext context) {
return Stream.of(
arguments(
named(
"long gauge",
metrics(
meterProvider ->
meterProvider
.get("long gauge")
.gaugeBuilder("gauge")
.setDescription("gauge description")
.setUnit("unit")
.ofLongs()
.buildWithCallback(
measurement ->
measurement.record(
5,
Attributes.of(
AttributeKey.stringKey("key"), "value")))))),
arguments(
named(
"long counter",
metrics(
meterProvider -> {
LongCounter longCounter =
meterProvider
.get("long counter")
.counterBuilder("counter")
.setDescription("counter description")
.setUnit("unit")
.build();
longCounter.add(1);
longCounter.add(2, Attributes.of(AttributeKey.longKey("lives"), 9L));
longCounter.add(3);
}))),
arguments(
named(
"long updowncounter",
metrics(
meterProvider -> {
LongUpDownCounter longUpDownCounter =
meterProvider
.get("long updowncounter")
.upDownCounterBuilder("updowncounter")
.setDescription("updowncounter description")
.setUnit("unit")
.build();
longUpDownCounter.add(1);
longUpDownCounter.add(
-1, Attributes.of(AttributeKey.booleanKey("on"), true));
longUpDownCounter.add(1);
}))),
arguments(
named(
"double gauge",
metrics(
meterProvider ->
meterProvider
.get("double gauge")
.gaugeBuilder("doublegauge")
.setDescription("doublegauge")
.setUnit("unit")
.buildWithCallback(measurement -> measurement.record(5.0))))),
arguments(
named(
"double counter",
metrics(
meterProvider -> {
DoubleCounter doubleCounter =
meterProvider
.get("double counter")
.counterBuilder("doublecounter")
.ofDoubles()
.build();
doubleCounter.add(1.0);
doubleCounter.add(2.0);
}))),
arguments(
named(
"double updowncounter",
metrics(
meterProvider -> {
DoubleUpDownCounter doubleUpDownCounter =
meterProvider
.get("double updowncounter")
.upDownCounterBuilder("doubleupdown")
.ofDoubles()
.build();
doubleUpDownCounter.add(1.0);
doubleUpDownCounter.add(-1.0);
}))),
arguments(
named(
"double histogram",
metrics(
meterProvider -> {
DoubleHistogram histogram =
meterProvider
.get("double histogram")
.histogramBuilder("histogram")
.build();
histogram.record(1.0);
histogram.record(2.0);
histogram.record(3.0);
histogram.record(4.0);
histogram.record(5.0);
}))),
arguments(
named(
"long histogram",
metrics(
meterProvider -> {
LongHistogram histogram =
meterProvider
.get("long histogram")
.histogramBuilder("histogram")
.ofLongs()
.build();
histogram.record(1);
histogram.record(2);
histogram.record(3);
histogram.record(4);
histogram.record(5);
}))),
arguments(
named(
"double exponential histogram",
metrics(
meterProvider -> {
DoubleHistogram histogram =
meterProvider
.get("double exponential histogram")
.histogramBuilder("exponentialhistogram")
.build();
histogram.record(1.0);
histogram.record(2.0);
histogram.record(3.0);
histogram.record(4.0);
histogram.record(5.0);
}))),
arguments(
named(
"long exponential histogram",
metrics(
meterProvider -> {
DoubleHistogram histogram =
meterProvider
.get("long exponential histogram")
.histogramBuilder("exponentialhistogram")
.build();
histogram.record(1);
histogram.record(2);
histogram.record(3);
histogram.record(4);
histogram.record(5);
}))));
}
}
private static class ExemplarProvider implements ArgumentsProvider {
@Override
public Stream<? extends Arguments> provideArguments(ExtensionContext context) {
SpanContext spanContext =
SpanContext.create(
"7b2e170db4df2d593ddb4ddf2ddf2d59",
"170d3ddb4d23e81f",
TraceFlags.getSampled(),
TraceState.getDefault());
return Stream.of(
arguments(
named(
"double exemplar",
ImmutableDoubleExemplarData.create(Attributes.empty(), 12345, spanContext, 5.0))),
arguments(
named(
"long exemplar",
ImmutableLongExemplarData.create(Attributes.empty(), 12345, spanContext, 5))));
}
}
}

View File

@ -91,12 +91,10 @@ import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInstance;
import org.junit.jupiter.api.extension.ExtensionContext;
import org.junit.jupiter.api.extension.RegisterExtension;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.ArgumentsProvider;
import org.junit.jupiter.params.provider.ArgumentsSource;
import org.junit.jupiter.params.provider.MethodSource;
import org.junit.jupiter.params.provider.ValueSource;
import org.slf4j.event.Level;
import org.slf4j.event.LoggingEvent;
@ -462,7 +460,7 @@ public abstract class AbstractGrpcTelemetryExporterTest<T, U extends Message> {
}
@ParameterizedTest
@ArgumentsSource(ClientPrivateKeyProvider.class)
@MethodSource("clientPrivateKeyArgs")
void clientTls(byte[] privateKey) throws Exception {
TelemetryExporter<T> exporter =
exporterBuilder()
@ -480,14 +478,10 @@ public abstract class AbstractGrpcTelemetryExporterTest<T, U extends Message> {
}
}
private static class ClientPrivateKeyProvider implements ArgumentsProvider {
@Override
@SuppressWarnings("PrimitiveArrayPassedToVarargsMethod")
public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception {
return Stream.of(
arguments(named("PEM", Files.readAllBytes(clientCertificate.privateKeyFile().toPath()))),
arguments(named("DER", clientCertificate.privateKey().getEncoded())));
}
private static Stream<Arguments> clientPrivateKeyArgs() throws Exception {
return Stream.of(
arguments(named("PEM", Files.readAllBytes(clientCertificate.privateKeyFile().toPath()))),
arguments(named("DER", clientCertificate.privateKey().getEncoded())));
}
@Test

View File

@ -92,12 +92,10 @@ import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInstance;
import org.junit.jupiter.api.extension.ExtensionContext;
import org.junit.jupiter.api.extension.RegisterExtension;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.ArgumentsProvider;
import org.junit.jupiter.params.provider.ArgumentsSource;
import org.junit.jupiter.params.provider.MethodSource;
import org.junit.jupiter.params.provider.ValueSource;
import org.mockserver.integration.ClientAndServer;
import org.slf4j.event.Level;
@ -477,7 +475,7 @@ public abstract class AbstractHttpTelemetryExporterTest<T, U extends Message> {
}
@ParameterizedTest
@ArgumentsSource(ClientPrivateKeyProvider.class)
@MethodSource("clientPrivateKeyArgs")
void clientTls(byte[] privateKey) throws Exception {
TelemetryExporter<T> exporter =
exporterBuilder()
@ -495,14 +493,10 @@ public abstract class AbstractHttpTelemetryExporterTest<T, U extends Message> {
}
}
private static class ClientPrivateKeyProvider implements ArgumentsProvider {
@Override
@SuppressWarnings("PrimitiveArrayPassedToVarargsMethod")
public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception {
return Stream.of(
arguments(named("PEM", Files.readAllBytes(clientCertificate.privateKeyFile().toPath()))),
arguments(named("DER", clientCertificate.privateKey().getEncoded())));
}
private static Stream<Arguments> clientPrivateKeyArgs() throws Exception {
return Stream.of(
arguments(named("PEM", Files.readAllBytes(clientCertificate.privateKeyFile().toPath()))),
arguments(named("DER", clientCertificate.privateKey().getEncoded())));
}
@Test

View File

@ -11,6 +11,16 @@ dependencies {
implementation(project(":sdk:common"))
compileOnly("com.fasterxml.jackson.core:jackson-core")
// NOTE: this is a strange dependency. junit reflectively analyzes classes as part of its test discovery process, eventually encounters to jackson-databind classes, and fails with a NoClassDefFoundError:
// JUnit Jupiter > initializationError FAILED
// org.junit.platform.launcher.core.DiscoveryIssueException: TestEngine with ID 'junit-jupiter' encountered a critical issue during test discovery:
//
// (1) [ERROR] ClassSelector [className = 'io.opentelemetry.exporter.sender.jdk.internal.JdkHttpSenderTest$NoOpMarshaler', classLoader = jdk.internal.loader.ClassLoaders$AppClassLoader@2aae9190] resolution failed
// Source: ClassSource [className = 'io.opentelemetry.exporter.sender.jdk.internal.JdkHttpSenderTest$NoOpMarshaler', filePosition = null]
// at io.opentelemetry.exporter.sender.jdk.internal.JdkHttpSenderTest$NoOpMarshaler.<no-method>(SourceFile:0)
// Cause: java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/JsonGenerator
testImplementation("com.fasterxml.jackson.core:jackson-databind")
}
tasks {

View File

@ -38,12 +38,10 @@ import java.util.stream.Stream;
import javax.annotation.Nullable;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.extension.ExtensionContext;
import org.junit.jupiter.api.extension.RegisterExtension;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.ArgumentsProvider;
import org.junit.jupiter.params.provider.ArgumentsSource;
import org.junit.jupiter.params.provider.MethodSource;
/** Integration tests for the B3 propagators, in various configurations. */
class B3PropagationIntegrationTest {
@ -160,7 +158,7 @@ class B3PropagationIntegrationTest {
}
@ParameterizedTest
@ArgumentsSource(WebClientArgumentSupplier.class)
@MethodSource("webClientArgs")
void propagation(String testType, WebClient client) throws IOException {
OpenTelemetrySdk clientSdk = setupClient();
@ -181,7 +179,7 @@ class B3PropagationIntegrationTest {
}
@ParameterizedTest
@ArgumentsSource(WebClientArgumentSupplier.class)
@MethodSource("webClientArgs")
void noClientTracing(String testType, WebClient client) throws IOException {
assertThat(client.get("/frontend").aggregate().join().contentUtf8()).isEqualTo("OK");
@ -194,6 +192,11 @@ class B3PropagationIntegrationTest {
.allSatisfy(spanData -> assertThat(spanData.getTraceId()).isEqualTo(traceId));
}
private static Stream<Arguments> webClientArgs() {
return Stream.of(
Arguments.of("b3multi", b3MultiClient), Arguments.of("b3single", b3SingleClient));
}
private static WebClient createPropagatingClient(URI uri, TextMapPropagator propagator) {
return WebClient.builder(uri)
.decorator(
@ -234,12 +237,4 @@ class B3PropagationIntegrationTest {
}
});
}
public static class WebClientArgumentSupplier implements ArgumentsProvider {
@Override
public Stream<? extends Arguments> provideArguments(ExtensionContext context) {
return Stream.of(
Arguments.of("b3multi", b3MultiClient), Arguments.of("b3single", b3SingleClient));
}
}
}

View File

@ -45,12 +45,10 @@ import org.awaitility.core.ThrowingRunnable;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtensionContext;
import org.junit.jupiter.api.extension.RegisterExtension;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.ArgumentsProvider;
import org.junit.jupiter.params.provider.ArgumentsSource;
import org.junit.jupiter.params.provider.MethodSource;
import org.slf4j.event.Level;
import org.slf4j.event.LoggingEvent;
@ -169,7 +167,7 @@ class JaegerRemoteSamplerTest {
}
@ParameterizedTest
@ArgumentsSource(ClientPrivateKeyProvider.class)
@MethodSource("clientPrivateKeyArgs")
void clientTlsConnectionWorks(byte[] privateKey) throws IOException {
try (JaegerRemoteSampler sampler =
JaegerRemoteSampler.builder()
@ -189,14 +187,10 @@ class JaegerRemoteSamplerTest {
}
}
private static class ClientPrivateKeyProvider implements ArgumentsProvider {
@Override
@SuppressWarnings("PrimitiveArrayPassedToVarargsMethod")
public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception {
return Stream.of(
arguments(named("PEM", Files.readAllBytes(clientCertificate.privateKeyFile().toPath()))),
arguments(named("DER", clientCertificate.privateKey().getEncoded())));
}
private static Stream<Arguments> clientPrivateKeyArgs() throws IOException {
return Stream.of(
arguments(named("PEM", Files.readAllBytes(clientCertificate.privateKeyFile().toPath()))),
arguments(named("DER", clientCertificate.privateKey().getEncoded())));
}
@Test

View File

@ -51,11 +51,9 @@ import java.util.function.Consumer;
import java.util.stream.Stream;
import javax.annotation.Nullable;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.extension.ExtensionContext;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.ArgumentsProvider;
import org.junit.jupiter.params.provider.ArgumentsSource;
import org.junit.jupiter.params.provider.MethodSource;
class AttributesAdviceTest {
@ -74,7 +72,7 @@ class AttributesAdviceTest {
}
@ParameterizedTest
@ArgumentsSource(InstrumentsProvider.class)
@MethodSource("instrumentProviderArgs")
void instrumentWithoutAdvice(
InstrumentFactory instrumentFactory, PointsAssert<AbstractPointAssert<?, ?>> pointsAssert) {
InMemoryMetricReader reader = InMemoryMetricReader.create();
@ -91,7 +89,7 @@ class AttributesAdviceTest {
}
@ParameterizedTest
@ArgumentsSource(InstrumentsProvider.class)
@MethodSource("instrumentProviderArgs")
void instrumentWithAdvice(
InstrumentFactory instrumentFactory, PointsAssert<AbstractPointAssert<?, ?>> pointsAssert) {
InMemoryMetricReader reader = InMemoryMetricReader.create();
@ -113,7 +111,7 @@ class AttributesAdviceTest {
}
@ParameterizedTest
@ArgumentsSource(InstrumentsProvider.class)
@MethodSource("instrumentProviderArgs")
void instrumentWithAdviceAndViews(
InstrumentFactory instrumentFactory, PointsAssert<AbstractPointAssert<?, ?>> pointsAssert) {
InMemoryMetricReader reader = InMemoryMetricReader.create();
@ -143,7 +141,7 @@ class AttributesAdviceTest {
}
@ParameterizedTest
@ArgumentsSource(InstrumentsProvider.class)
@MethodSource("instrumentProviderArgs")
void instrumentWithAdviceAndDescriptionViews(
InstrumentFactory instrumentFactory, PointsAssert<AbstractPointAssert<?, ?>> pointsAssert) {
InMemoryMetricReader reader = InMemoryMetricReader.create();
@ -175,7 +173,7 @@ class AttributesAdviceTest {
}
@ParameterizedTest
@ArgumentsSource(InstrumentsProvider.class)
@MethodSource("instrumentProviderArgs")
void instrumentWithAdviceAndBaggage(
InstrumentFactory instrumentFactory, PointsAssert<AbstractPointAssert<?, ?>> pointsAssert) {
InMemoryMetricReader reader = InMemoryMetricReader.create();
@ -217,148 +215,142 @@ class AttributesAdviceTest {
equalTo(stringKey("baggage1"), "value1"))));
}
static final class InstrumentsProvider implements ArgumentsProvider {
@Override
public Stream<? extends Arguments> provideArguments(ExtensionContext context) {
return Stream.of(
// double counter
arguments(
(InstrumentFactory)
(meterProvider, name, attributesAdvice) -> {
DoubleCounterBuilder doubleCounterBuilder =
meterProvider.get("meter").counterBuilder(name).ofDoubles();
if (attributesAdvice != null) {
((ExtendedDoubleCounterBuilder) doubleCounterBuilder)
.setAttributesAdvice(attributesAdvice);
}
DoubleCounter counter = doubleCounterBuilder.build();
return counter::add;
},
(PointsAssert<DoublePointAssert>)
(metricAssert, assertions) ->
metricAssert.hasDoubleSumSatisfying(
sum -> sum.hasPointsSatisfying(assertions))),
// long counter
arguments(
(InstrumentFactory)
(meterProvider, name, attributesAdvice) -> {
LongCounterBuilder doubleCounterBuilder =
meterProvider.get("meter").counterBuilder(name);
if (attributesAdvice != null) {
((ExtendedLongCounterBuilder) doubleCounterBuilder)
.setAttributesAdvice(attributesAdvice);
}
LongCounter counter = doubleCounterBuilder.build();
return counter::add;
},
(PointsAssert<LongPointAssert>)
(metricAssert, assertions) ->
metricAssert.hasLongSumSatisfying(
sum -> sum.hasPointsSatisfying(assertions))),
// double gauge
arguments(
(InstrumentFactory)
(meterProvider, name, attributesAdvice) -> {
DoubleGaugeBuilder doubleGaugeBuilder =
meterProvider.get("meter").gaugeBuilder(name);
if (attributesAdvice != null) {
((ExtendedDoubleGaugeBuilder) doubleGaugeBuilder)
.setAttributesAdvice(attributesAdvice);
}
DoubleGauge gauge = doubleGaugeBuilder.build();
return gauge::set;
},
(PointsAssert<DoublePointAssert>)
(metricAssert, assertions) ->
metricAssert.hasDoubleGaugeSatisfying(
sum -> sum.hasPointsSatisfying(assertions))),
// long gauge
arguments(
(InstrumentFactory)
(meterProvider, name, attributesAdvice) -> {
LongGaugeBuilder longGaugeBuilder =
meterProvider.get("meter").gaugeBuilder(name).ofLongs();
if (attributesAdvice != null) {
((ExtendedLongGaugeBuilder) longGaugeBuilder)
.setAttributesAdvice(attributesAdvice);
}
LongGauge gauge = longGaugeBuilder.build();
return gauge::set;
},
(PointsAssert<LongPointAssert>)
(metricAssert, assertions) ->
metricAssert.hasLongGaugeSatisfying(
sum -> sum.hasPointsSatisfying(assertions))),
// double histogram
arguments(
(InstrumentFactory)
(meterProvider, name, attributesAdvice) -> {
DoubleHistogramBuilder doubleHistogramBuilder =
meterProvider.get("meter").histogramBuilder(name);
if (attributesAdvice != null) {
((ExtendedDoubleHistogramBuilder) doubleHistogramBuilder)
.setAttributesAdvice(attributesAdvice);
}
DoubleHistogram histogram = doubleHistogramBuilder.build();
return histogram::record;
},
(PointsAssert<HistogramPointAssert>)
(metricAssert, assertions) ->
metricAssert.hasHistogramSatisfying(
sum -> sum.hasPointsSatisfying(assertions))),
// long histogram
arguments(
(InstrumentFactory)
(meterProvider, name, attributesAdvice) -> {
LongHistogramBuilder doubleHistogramBuilder =
meterProvider.get("meter").histogramBuilder(name).ofLongs();
if (attributesAdvice != null) {
((ExtendedLongHistogramBuilder) doubleHistogramBuilder)
.setAttributesAdvice(attributesAdvice);
}
LongHistogram histogram = doubleHistogramBuilder.build();
return histogram::record;
},
(PointsAssert<HistogramPointAssert>)
(metricAssert, assertions) ->
metricAssert.hasHistogramSatisfying(
sum -> sum.hasPointsSatisfying(assertions))),
// double up down counter
arguments(
(InstrumentFactory)
(meterProvider, name, attributesAdvice) -> {
DoubleUpDownCounterBuilder doubleUpDownCounterBuilder =
meterProvider.get("meter").upDownCounterBuilder(name).ofDoubles();
if (attributesAdvice != null) {
((ExtendedDoubleUpDownCounterBuilder) doubleUpDownCounterBuilder)
.setAttributesAdvice(attributesAdvice);
}
DoubleUpDownCounter upDownCounter = doubleUpDownCounterBuilder.build();
return upDownCounter::add;
},
(PointsAssert<DoublePointAssert>)
(metricAssert, assertions) ->
metricAssert.hasDoubleSumSatisfying(
sum -> sum.hasPointsSatisfying(assertions))),
// long up down counter
arguments(
(InstrumentFactory)
(meterProvider, name, attributesAdvice) -> {
LongUpDownCounterBuilder doubleUpDownCounterBuilder =
meterProvider.get("meter").upDownCounterBuilder(name);
if (attributesAdvice != null) {
((ExtendedLongUpDownCounterBuilder) doubleUpDownCounterBuilder)
.setAttributesAdvice(attributesAdvice);
}
LongUpDownCounter upDownCounter = doubleUpDownCounterBuilder.build();
return upDownCounter::add;
},
(PointsAssert<LongPointAssert>)
(metricAssert, assertions) ->
metricAssert.hasLongSumSatisfying(
sum -> sum.hasPointsSatisfying(assertions))));
}
private static Stream<Arguments> instrumentProviderArgs() {
return Stream.of(
// double counter
arguments(
(InstrumentFactory)
(meterProvider, name, attributesAdvice) -> {
DoubleCounterBuilder doubleCounterBuilder =
meterProvider.get("meter").counterBuilder(name).ofDoubles();
if (attributesAdvice != null) {
((ExtendedDoubleCounterBuilder) doubleCounterBuilder)
.setAttributesAdvice(attributesAdvice);
}
DoubleCounter counter = doubleCounterBuilder.build();
return counter::add;
},
(PointsAssert<DoublePointAssert>)
(metricAssert, assertions) ->
metricAssert.hasDoubleSumSatisfying(
sum -> sum.hasPointsSatisfying(assertions))),
// long counter
arguments(
(InstrumentFactory)
(meterProvider, name, attributesAdvice) -> {
LongCounterBuilder doubleCounterBuilder =
meterProvider.get("meter").counterBuilder(name);
if (attributesAdvice != null) {
((ExtendedLongCounterBuilder) doubleCounterBuilder)
.setAttributesAdvice(attributesAdvice);
}
LongCounter counter = doubleCounterBuilder.build();
return counter::add;
},
(PointsAssert<LongPointAssert>)
(metricAssert, assertions) ->
metricAssert.hasLongSumSatisfying(sum -> sum.hasPointsSatisfying(assertions))),
// double gauge
arguments(
(InstrumentFactory)
(meterProvider, name, attributesAdvice) -> {
DoubleGaugeBuilder doubleGaugeBuilder =
meterProvider.get("meter").gaugeBuilder(name);
if (attributesAdvice != null) {
((ExtendedDoubleGaugeBuilder) doubleGaugeBuilder)
.setAttributesAdvice(attributesAdvice);
}
DoubleGauge gauge = doubleGaugeBuilder.build();
return gauge::set;
},
(PointsAssert<DoublePointAssert>)
(metricAssert, assertions) ->
metricAssert.hasDoubleGaugeSatisfying(
sum -> sum.hasPointsSatisfying(assertions))),
// long gauge
arguments(
(InstrumentFactory)
(meterProvider, name, attributesAdvice) -> {
LongGaugeBuilder longGaugeBuilder =
meterProvider.get("meter").gaugeBuilder(name).ofLongs();
if (attributesAdvice != null) {
((ExtendedLongGaugeBuilder) longGaugeBuilder)
.setAttributesAdvice(attributesAdvice);
}
LongGauge gauge = longGaugeBuilder.build();
return gauge::set;
},
(PointsAssert<LongPointAssert>)
(metricAssert, assertions) ->
metricAssert.hasLongGaugeSatisfying(
sum -> sum.hasPointsSatisfying(assertions))),
// double histogram
arguments(
(InstrumentFactory)
(meterProvider, name, attributesAdvice) -> {
DoubleHistogramBuilder doubleHistogramBuilder =
meterProvider.get("meter").histogramBuilder(name);
if (attributesAdvice != null) {
((ExtendedDoubleHistogramBuilder) doubleHistogramBuilder)
.setAttributesAdvice(attributesAdvice);
}
DoubleHistogram histogram = doubleHistogramBuilder.build();
return histogram::record;
},
(PointsAssert<HistogramPointAssert>)
(metricAssert, assertions) ->
metricAssert.hasHistogramSatisfying(
sum -> sum.hasPointsSatisfying(assertions))),
// long histogram
arguments(
(InstrumentFactory)
(meterProvider, name, attributesAdvice) -> {
LongHistogramBuilder doubleHistogramBuilder =
meterProvider.get("meter").histogramBuilder(name).ofLongs();
if (attributesAdvice != null) {
((ExtendedLongHistogramBuilder) doubleHistogramBuilder)
.setAttributesAdvice(attributesAdvice);
}
LongHistogram histogram = doubleHistogramBuilder.build();
return histogram::record;
},
(PointsAssert<HistogramPointAssert>)
(metricAssert, assertions) ->
metricAssert.hasHistogramSatisfying(
sum -> sum.hasPointsSatisfying(assertions))),
// double up down counter
arguments(
(InstrumentFactory)
(meterProvider, name, attributesAdvice) -> {
DoubleUpDownCounterBuilder doubleUpDownCounterBuilder =
meterProvider.get("meter").upDownCounterBuilder(name).ofDoubles();
if (attributesAdvice != null) {
((ExtendedDoubleUpDownCounterBuilder) doubleUpDownCounterBuilder)
.setAttributesAdvice(attributesAdvice);
}
DoubleUpDownCounter upDownCounter = doubleUpDownCounterBuilder.build();
return upDownCounter::add;
},
(PointsAssert<DoublePointAssert>)
(metricAssert, assertions) ->
metricAssert.hasDoubleSumSatisfying(
sum -> sum.hasPointsSatisfying(assertions))),
// long up down counter
arguments(
(InstrumentFactory)
(meterProvider, name, attributesAdvice) -> {
LongUpDownCounterBuilder doubleUpDownCounterBuilder =
meterProvider.get("meter").upDownCounterBuilder(name);
if (attributesAdvice != null) {
((ExtendedLongUpDownCounterBuilder) doubleUpDownCounterBuilder)
.setAttributesAdvice(attributesAdvice);
}
LongUpDownCounter upDownCounter = doubleUpDownCounterBuilder.build();
return upDownCounter::add;
},
(PointsAssert<LongPointAssert>)
(metricAssert, assertions) ->
metricAssert.hasLongSumSatisfying(sum -> sum.hasPointsSatisfying(assertions))));
}
@FunctionalInterface