Skip to content

Commit 5afb726

Browse files
authored
Remove custom exporter (#176)
* remove usages of TestResultMetricExporter in favor of the upstream testing extension * spotless * whoops
1 parent 079c309 commit 5afb726

File tree

7 files changed

+65
-204
lines changed

7 files changed

+65
-204
lines changed

src/integrationTest/java/com/splunk/ibm/mq/integration/opentelemetry/TestResultMetricExporter.java

Lines changed: 0 additions & 64 deletions
This file was deleted.

src/test/java/com/splunk/ibm/mq/metricscollector/ChannelMetricsCollectorTest.java

Lines changed: 12 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -29,21 +29,18 @@
2929
import com.ibm.mq.headers.pcf.PCFMessage;
3030
import com.ibm.mq.headers.pcf.PCFMessageAgent;
3131
import com.splunk.ibm.mq.config.QueueManager;
32-
import com.splunk.ibm.mq.integration.opentelemetry.TestResultMetricExporter;
3332
import com.splunk.ibm.mq.metrics.MetricsConfig;
3433
import com.splunk.ibm.mq.opentelemetry.ConfigWrapper;
3534
import io.opentelemetry.api.metrics.Meter;
36-
import io.opentelemetry.sdk.metrics.SdkMeterProvider;
3735
import io.opentelemetry.sdk.metrics.data.MetricData;
38-
import io.opentelemetry.sdk.metrics.export.PeriodicMetricReader;
36+
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
3937
import java.util.ArrayList;
4038
import java.util.List;
41-
import java.util.concurrent.Executors;
42-
import java.util.concurrent.TimeUnit;
4339
import java.util.stream.Stream;
4440
import org.junit.jupiter.api.BeforeEach;
4541
import org.junit.jupiter.api.Test;
4642
import org.junit.jupiter.api.extension.ExtendWith;
43+
import org.junit.jupiter.api.extension.RegisterExtension;
4744
import org.junit.jupiter.params.ParameterizedTest;
4845
import org.junit.jupiter.params.provider.Arguments;
4946
import org.junit.jupiter.params.provider.MethodSource;
@@ -53,29 +50,21 @@
5350
@ExtendWith(MockitoExtension.class)
5451
class ChannelMetricsCollectorTest {
5552

56-
ChannelMetricsCollector classUnderTest;
57-
58-
@Mock PCFMessageAgent pcfMessageAgent;
53+
@RegisterExtension
54+
static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
5955

56+
ChannelMetricsCollector classUnderTest;
6057
QueueManager queueManager;
6158
MetricsCollectorContext context;
62-
private TestResultMetricExporter testExporter;
63-
private PeriodicMetricReader reader;
64-
private Meter meter;
59+
Meter meter;
60+
@Mock PCFMessageAgent pcfMessageAgent;
6561

6662
@BeforeEach
6763
void setup() throws Exception {
6864
ConfigWrapper config = ConfigWrapper.parse("src/test/resources/conf/config.yml");
6965
ObjectMapper mapper = new ObjectMapper();
7066
queueManager = mapper.convertValue(config.getQueueManagers().get(0), QueueManager.class);
71-
testExporter = new TestResultMetricExporter();
72-
reader =
73-
PeriodicMetricReader.builder(testExporter)
74-
.setExecutor(Executors.newScheduledThreadPool(1))
75-
.build();
76-
SdkMeterProvider meterProvider =
77-
SdkMeterProvider.builder().registerMetricReader(reader).build();
78-
meter = meterProvider.get("opentelemetry.io/mq");
67+
meter = otelTesting.getOpenTelemetry().getMeter("opentelemetry.io/mq");
7968
context =
8069
new MetricsCollectorContext(queueManager, pcfMessageAgent, null, new MetricsConfig(config));
8170
}
@@ -87,7 +76,6 @@ void testPublishMetrics() throws Exception {
8776
classUnderTest = new ChannelMetricsCollector(meter);
8877

8978
classUnderTest.accept(context);
90-
reader.forceFlush().join(1, TimeUnit.SECONDS);
9179

9280
List<String> metricsList =
9381
new ArrayList<>(
@@ -99,7 +87,7 @@ void testPublishMetrics() throws Exception {
9987
"mq.buffers.sent",
10088
"mq.buffers.received"));
10189

102-
for (MetricData metric : testExporter.getExportedMetrics()) {
90+
for (MetricData metric : otelTesting.getMetrics()) {
10391
if (metricsList.remove(metric.getName())) {
10492
if (metric.getName().equals("mq.message.count")) {
10593
assertThat(metric.getLongGaugeData().getPoints().iterator().next().getValue())
@@ -213,8 +201,7 @@ void testPublishMetrics_nullResponse() throws Exception {
213201
classUnderTest = new ChannelMetricsCollector(meter);
214202

215203
classUnderTest.accept(context);
216-
reader.forceFlush().join(1, TimeUnit.SECONDS);
217-
assertThat(testExporter.getExportedMetrics()).isEmpty();
204+
assertThat(otelTesting.getMetrics()).isEmpty();
218205
}
219206

220207
@Test
@@ -223,8 +210,7 @@ void testPublishMetrics_emptyResponse() throws Exception {
223210
classUnderTest = new ChannelMetricsCollector(meter);
224211

225212
classUnderTest.accept(context);
226-
reader.forceFlush().join(1, TimeUnit.SECONDS);
227-
assertThat(testExporter.getExportedMetrics()).isEmpty();
213+
assertThat(otelTesting.getMetrics()).isEmpty();
228214
}
229215

230216
@ParameterizedTest
@@ -234,9 +220,8 @@ void testPublishMetrics_pfException(Exception exceptionToThrow) throws Exception
234220
classUnderTest = new ChannelMetricsCollector(meter);
235221

236222
classUnderTest.accept(context);
237-
reader.forceFlush().join(1, TimeUnit.SECONDS);
238223

239-
List<MetricData> exported = testExporter.getExportedMetrics();
224+
List<MetricData> exported = otelTesting.getMetrics();
240225
assertThat(exported.get(0).getLongGaugeData().getPoints()).hasSize(1);
241226
assertThatMetric(exported.get(0), 0).hasName("mq.manager.active.channels").hasValue(0);
242227
}

src/test/java/com/splunk/ibm/mq/metricscollector/InquireChannelCmdCollectorTest.java

Lines changed: 9 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -25,49 +25,39 @@
2525
import com.ibm.mq.headers.pcf.PCFMessage;
2626
import com.ibm.mq.headers.pcf.PCFMessageAgent;
2727
import com.splunk.ibm.mq.config.QueueManager;
28-
import com.splunk.ibm.mq.integration.opentelemetry.TestResultMetricExporter;
2928
import com.splunk.ibm.mq.metrics.MetricsConfig;
3029
import com.splunk.ibm.mq.opentelemetry.ConfigWrapper;
3130
import io.opentelemetry.api.metrics.Meter;
32-
import io.opentelemetry.sdk.metrics.SdkMeterProvider;
3331
import io.opentelemetry.sdk.metrics.data.MetricData;
34-
import io.opentelemetry.sdk.metrics.export.PeriodicMetricReader;
32+
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
3533
import java.util.ArrayList;
3634
import java.util.List;
37-
import java.util.concurrent.Executors;
38-
import java.util.concurrent.TimeUnit;
3935
import org.junit.jupiter.api.BeforeEach;
4036
import org.junit.jupiter.api.Test;
4137
import org.junit.jupiter.api.extension.ExtendWith;
38+
import org.junit.jupiter.api.extension.RegisterExtension;
4239
import org.mockito.Mock;
4340
import org.mockito.junit.jupiter.MockitoExtension;
4441

4542
@ExtendWith(MockitoExtension.class)
4643
class InquireChannelCmdCollectorTest {
4744

48-
InquireChannelCmdCollector classUnderTest;
45+
@RegisterExtension
46+
static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
4947

50-
@Mock PCFMessageAgent pcfMessageAgent;
48+
InquireChannelCmdCollector classUnderTest;
5149

5250
MetricsCollectorContext context;
53-
private TestResultMetricExporter testExporter;
54-
private PeriodicMetricReader reader;
55-
private Meter meter;
51+
Meter meter;
52+
@Mock PCFMessageAgent pcfMessageAgent;
5653

5754
@BeforeEach
5855
public void setup() throws Exception {
5956
ConfigWrapper config = ConfigWrapper.parse("src/test/resources/conf/config.yml");
6057
ObjectMapper mapper = new ObjectMapper();
6158
QueueManager queueManager =
6259
mapper.convertValue(config.getQueueManagers().get(0), QueueManager.class);
63-
testExporter = new TestResultMetricExporter();
64-
reader =
65-
PeriodicMetricReader.builder(testExporter)
66-
.setExecutor(Executors.newScheduledThreadPool(1))
67-
.build();
68-
SdkMeterProvider meterProvider =
69-
SdkMeterProvider.builder().registerMetricReader(reader).build();
70-
meter = meterProvider.get("opentelemetry.io/mq");
60+
meter = otelTesting.getOpenTelemetry().getMeter("opentelemetry.io/mq");
7161
context =
7262
new MetricsCollectorContext(queueManager, pcfMessageAgent, null, new MetricsConfig(config));
7363
}
@@ -78,12 +68,11 @@ public void testProcessPCFRequestAndPublishQMetricsForInquireQStatusCmd() throws
7868
.thenReturn(createPCFResponseForInquireChannelCmd());
7969
classUnderTest = new InquireChannelCmdCollector(meter);
8070
classUnderTest.accept(context);
81-
reader.forceFlush().join(1, TimeUnit.SECONDS);
8271
List<String> metricsList =
8372
new ArrayList<>(
8473
List.of(
8574
"mq.message.retry.count", "mq.message.received.count", "mq.message.sent.count"));
86-
for (MetricData metric : testExporter.getExportedMetrics()) {
75+
for (MetricData metric : otelTesting.getMetrics()) {
8776
if (metricsList.remove(metric.getName())) {
8877
if (metric.getName().equals("mq.message.retry.count")) {
8978
assertThat(metric.getLongGaugeData().getPoints().iterator().next().getValue())

src/test/java/com/splunk/ibm/mq/metricscollector/ListenerMetricsCollectorTest.java

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -24,35 +24,31 @@
2424
import com.ibm.mq.headers.pcf.PCFMessage;
2525
import com.ibm.mq.headers.pcf.PCFMessageAgent;
2626
import com.splunk.ibm.mq.config.QueueManager;
27-
import com.splunk.ibm.mq.integration.opentelemetry.TestResultMetricExporter;
2827
import com.splunk.ibm.mq.metrics.MetricsConfig;
2928
import com.splunk.ibm.mq.opentelemetry.ConfigWrapper;
30-
import io.opentelemetry.sdk.metrics.SdkMeterProvider;
3129
import io.opentelemetry.sdk.metrics.data.LongPointData;
3230
import io.opentelemetry.sdk.metrics.data.MetricData;
33-
import io.opentelemetry.sdk.metrics.export.PeriodicMetricReader;
31+
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
3432
import java.util.HashSet;
3533
import java.util.Set;
36-
import java.util.concurrent.Executors;
37-
import java.util.concurrent.TimeUnit;
3834
import java.util.stream.Collectors;
3935
import org.junit.jupiter.api.BeforeEach;
4036
import org.junit.jupiter.api.Test;
4137
import org.junit.jupiter.api.extension.ExtendWith;
38+
import org.junit.jupiter.api.extension.RegisterExtension;
4239
import org.mockito.Mock;
4340
import org.mockito.junit.jupiter.MockitoExtension;
4441

4542
@ExtendWith(MockitoExtension.class)
4643
class ListenerMetricsCollectorTest {
44+
@RegisterExtension
45+
static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
4746

48-
private ListenerMetricsCollector classUnderTest;
49-
47+
ListenerMetricsCollector classUnderTest;
48+
QueueManager queueManager;
49+
ConfigWrapper config;
5050
@Mock private PCFMessageAgent pcfMessageAgent;
5151

52-
private QueueManager queueManager;
53-
54-
private ConfigWrapper config;
55-
5652
@BeforeEach
5753
public void setup() throws Exception {
5854
config = ConfigWrapper.parse("src/test/resources/conf/config.yml");
@@ -64,20 +60,15 @@ public void setup() throws Exception {
6460
public void testPublishMetrics() throws Exception {
6561
when(pcfMessageAgent.send(any(PCFMessage.class)))
6662
.thenReturn(createPCFResponseForInquireListenerStatusCmd());
67-
TestResultMetricExporter testExporter = new TestResultMetricExporter();
68-
PeriodicMetricReader reader =
69-
PeriodicMetricReader.builder(testExporter)
70-
.setExecutor(Executors.newScheduledThreadPool(1))
71-
.build();
72-
SdkMeterProvider meterProvider =
73-
SdkMeterProvider.builder().registerMetricReader(reader).build();
63+
7464
MetricsCollectorContext context =
7565
new MetricsCollectorContext(queueManager, pcfMessageAgent, null, new MetricsConfig(config));
76-
classUnderTest = new ListenerMetricsCollector(meterProvider.get("opentelemetry.io/mq"));
66+
classUnderTest =
67+
new ListenerMetricsCollector(
68+
otelTesting.getOpenTelemetry().getMeter("opentelemetry.io/mq"));
7769
classUnderTest.accept(context);
7870

79-
reader.forceFlush().join(1, TimeUnit.SECONDS);
80-
MetricData metric = testExporter.getExportedMetrics().get(0);
71+
MetricData metric = otelTesting.getMetrics().get(0);
8172
assertThat(metric.getName()).isEqualTo("mq.listener.status");
8273
Set<Long> values = new HashSet<>();
8374
values.add(2L);

0 commit comments

Comments
 (0)