Skip to content

Commit f9774f3

Browse files
authored
[jmx-scraper] wildfly refactor assertions (#1587)
1 parent 27643de commit f9774f3

File tree

4 files changed

+127
-126
lines changed

4 files changed

+127
-126
lines changed

jmx-scraper/src/integrationTest/java/io/opentelemetry/contrib/jmxscraper/target_systems/HBaseIntegrationTest.java

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -46,22 +46,6 @@ protected MetricsVerifier createMetricsVerifier() {
4646
.hasDataPointsWithAttributes(
4747
attributeGroup(attribute("state", "dead")),
4848
attributeGroup(attribute("state", "live"))))
49-
.add(
50-
"hbase.master.regions_in_transition.count",
51-
metric ->
52-
metric
53-
.isUpDownCounter()
54-
.hasDescription("The number of region servers.")
55-
.hasUnit("{server}")
56-
.hasDataPointsWithoutAttributes())
57-
.add(
58-
"hbase.master.regions_in_transition.count",
59-
metric ->
60-
metric
61-
.isUpDownCounter()
62-
.hasDescription("The number of regions that are in transition.")
63-
.hasUnit("{region}")
64-
.hasDataPointsWithoutAttributes())
6549
.add(
6650
"hbase.master.regions_in_transition.count",
6751
metric ->

jmx-scraper/src/integrationTest/java/io/opentelemetry/contrib/jmxscraper/target_systems/MetricsVerifier.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,9 @@ public MetricsVerifier disableStrictMode() {
6363
*/
6464
@CanIgnoreReturnValue
6565
public MetricsVerifier add(String metricName, Consumer<MetricAssert> assertion) {
66+
if (assertions.containsKey(metricName)) {
67+
throw new IllegalArgumentException("Duplicate assertion for metric " + metricName);
68+
}
6669
assertions.put(
6770
metricName,
6871
metric -> {

jmx-scraper/src/integrationTest/java/io/opentelemetry/contrib/jmxscraper/target_systems/WildflyIntegrationTest.java

Lines changed: 121 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@
55

66
package io.opentelemetry.contrib.jmxscraper.target_systems;
77

8-
import static io.opentelemetry.contrib.jmxscraper.target_systems.MetricAssertions.assertSum;
9-
import static io.opentelemetry.contrib.jmxscraper.target_systems.MetricAssertions.assertSumWithAttributes;
8+
import static io.opentelemetry.contrib.jmxscraper.assertions.DataPointAttributes.attribute;
9+
import static io.opentelemetry.contrib.jmxscraper.assertions.DataPointAttributes.attributeGroup;
1010
import static org.assertj.core.api.Assertions.assertThat;
11-
import static org.assertj.core.api.Assertions.entry;
1211

1312
import io.opentelemetry.contrib.jmxscraper.JmxScraperContainer;
13+
import io.opentelemetry.contrib.jmxscraper.assertions.AttributeMatcher;
14+
import io.opentelemetry.contrib.jmxscraper.assertions.AttributeMatcherGroup;
1415
import java.io.IOException;
1516
import java.nio.file.Files;
1617
import java.nio.file.Path;
@@ -90,111 +91,122 @@ protected JmxScraperContainer customizeScraperContainer(
9091
}
9192

9293
@Override
93-
protected void verifyMetrics() {
94-
waitAndAssertMetrics(
95-
metric ->
96-
assertSumWithAttributes(
97-
metric,
98-
"wildfly.session.count",
99-
"The number of sessions created.",
100-
"{session}",
101-
attrs -> attrs.containsOnly(entry("deployment", "testapp.war"))),
102-
metric ->
103-
assertSumWithAttributes(
104-
metric,
105-
"wildfly.session.active",
106-
"The number of currently active sessions.",
107-
"{session}",
108-
/* isMonotonic= */ false,
109-
attrs -> attrs.containsOnly(entry("deployment", "testapp.war"))),
110-
metric ->
111-
assertSumWithAttributes(
112-
metric,
113-
"wildfly.session.expired",
114-
"The number of sessions that have expired.",
115-
"{session}",
116-
attrs -> attrs.containsOnly(entry("deployment", "testapp.war"))),
117-
metric ->
118-
assertSumWithAttributes(
119-
metric,
120-
"wildfly.session.rejected",
121-
"The number of sessions that have been rejected.",
122-
"{session}",
123-
attrs -> attrs.containsOnly(entry("deployment", "testapp.war"))),
124-
metric ->
125-
assertSumWithAttributes(
126-
metric,
127-
"wildfly.request.count",
128-
"The number of requests received.",
129-
"{request}",
130-
attrs ->
131-
attrs.containsOnly(
132-
entry("server", "default-server"), entry("listener", "default"))),
133-
metric ->
134-
assertSumWithAttributes(
135-
metric,
136-
"wildfly.request.time",
137-
"The total amount of time spent on requests.",
138-
"ns",
139-
attrs ->
140-
attrs.containsOnly(
141-
entry("server", "default-server"), entry("listener", "default"))),
142-
metric ->
143-
assertSumWithAttributes(
144-
metric,
145-
"wildfly.request.server_error",
146-
"The number of requests that have resulted in a 5xx response.",
147-
"{request}",
148-
attrs ->
149-
attrs.containsOnly(
150-
entry("server", "default-server"), entry("listener", "default"))),
151-
metric ->
152-
assertSumWithAttributes(
153-
metric,
154-
"wildfly.network.io",
155-
"The number of bytes transmitted.",
156-
"By",
157-
attrs ->
158-
attrs.containsOnly(
159-
entry("server", "default-server"),
160-
entry("listener", "default"),
161-
entry("state", "in")),
162-
attrs ->
163-
attrs.containsOnly(
164-
entry("server", "default-server"),
165-
entry("listener", "default"),
166-
entry("state", "out"))),
167-
metric ->
168-
assertSumWithAttributes(
169-
metric,
170-
"wildfly.jdbc.connection.open",
171-
"The number of open jdbc connections.",
172-
"{connection}",
173-
attrs ->
174-
attrs.containsOnly(entry("data_source", "ExampleDS"), entry("state", "active")),
175-
attrs ->
176-
attrs.containsOnly(entry("data_source", "ExampleDS"), entry("state", "idle"))),
177-
metric ->
178-
assertSumWithAttributes(
179-
metric,
180-
"wildfly.jdbc.request.wait",
181-
"The number of jdbc connections that had to wait before opening.",
182-
"{request}",
183-
attrs -> attrs.containsOnly(entry("data_source", "ExampleDS"))),
184-
metric ->
185-
assertSum(
186-
metric,
187-
"wildfly.jdbc.transaction.count",
188-
"The number of transactions created.",
189-
"{transaction}"),
190-
metric ->
191-
assertSumWithAttributes(
192-
metric,
193-
"wildfly.jdbc.rollback.count",
194-
"The number of transactions rolled back.",
195-
"{transaction}",
196-
attrs -> attrs.containsOnly(entry("cause", "system")),
197-
attrs -> attrs.containsOnly(entry("cause", "resource")),
198-
attrs -> attrs.containsOnly(entry("cause", "application"))));
94+
protected MetricsVerifier createMetricsVerifier() {
95+
96+
AttributeMatcherGroup serverListenerAttributes =
97+
attributeGroup(attribute("server", "default-server"), attribute("listener", "default"));
98+
AttributeMatcher deploymentAttribute = attribute("deployment", "testapp.war");
99+
AttributeMatcher datasourceAttribute = attribute("data_source", "ExampleDS");
100+
return MetricsVerifier.create()
101+
.add(
102+
"wildfly.session.count",
103+
metric ->
104+
metric
105+
.isCounter()
106+
.hasDescription("The number of sessions created.")
107+
.hasUnit("{session}")
108+
.hasDataPointsWithOneAttribute(deploymentAttribute))
109+
.add(
110+
"wildfly.session.active",
111+
metric ->
112+
metric
113+
.isUpDownCounter()
114+
.hasDescription("The number of currently active sessions.")
115+
.hasUnit("{session}")
116+
.hasDataPointsWithOneAttribute(deploymentAttribute))
117+
.add(
118+
"wildfly.session.expired",
119+
metric ->
120+
metric
121+
.isCounter()
122+
.hasDescription("The number of sessions that have expired.")
123+
.hasUnit("{session}")
124+
.hasDataPointsWithOneAttribute(deploymentAttribute))
125+
.add(
126+
"wildfly.session.rejected",
127+
metric ->
128+
metric
129+
.isCounter()
130+
.hasDescription("The number of sessions that have been rejected.")
131+
.hasUnit("{session}")
132+
.hasDataPointsWithOneAttribute(deploymentAttribute))
133+
.add(
134+
"wildfly.request.count",
135+
metric ->
136+
metric
137+
.isCounter()
138+
.hasDescription("The number of requests received.")
139+
.hasUnit("{request}")
140+
.hasDataPointsWithAttributes(serverListenerAttributes))
141+
.add(
142+
"wildfly.request.time",
143+
metric ->
144+
metric
145+
.isCounter()
146+
.hasDescription("The total amount of time spent on requests.")
147+
.hasUnit("ns")
148+
.hasDataPointsWithAttributes(serverListenerAttributes))
149+
.add(
150+
"wildfly.request.server_error",
151+
metric ->
152+
metric
153+
.isCounter()
154+
.hasDescription("The number of requests that have resulted in a 5xx response.")
155+
.hasUnit("{request}")
156+
.hasDataPointsWithAttributes(serverListenerAttributes))
157+
.add(
158+
"wildfly.network.io",
159+
metric ->
160+
metric
161+
.isCounter()
162+
.hasDescription("The number of bytes transmitted.")
163+
.hasUnit("By")
164+
.hasDataPointsWithAttributes(
165+
attributeGroup(
166+
attribute("server", "default-server"),
167+
attribute("listener", "default"),
168+
attribute("state", "in")),
169+
attributeGroup(
170+
attribute("server", "default-server"),
171+
attribute("listener", "default"),
172+
attribute("state", "out"))))
173+
.add(
174+
"wildfly.jdbc.connection.open",
175+
metric ->
176+
metric
177+
.isUpDownCounter()
178+
.hasDescription("The number of open jdbc connections.")
179+
.hasUnit("{connection}")
180+
.hasDataPointsWithAttributes(
181+
attributeGroup(datasourceAttribute, attribute("state", "active")),
182+
attributeGroup(datasourceAttribute, attribute("state", "idle"))))
183+
.add(
184+
"wildfly.jdbc.request.wait",
185+
metric ->
186+
metric
187+
.isCounter()
188+
.hasDescription(
189+
"The number of jdbc connections that had to wait before opening.")
190+
.hasUnit("{request}")
191+
.hasDataPointsWithOneAttribute(datasourceAttribute))
192+
.add(
193+
"wildfly.jdbc.transaction.count",
194+
metric ->
195+
metric
196+
.isCounter()
197+
.hasDescription("The number of transactions created.")
198+
.hasUnit("{transaction}")
199+
.hasDataPointsWithoutAttributes())
200+
.add(
201+
"wildfly.jdbc.rollback.count",
202+
metric ->
203+
metric
204+
.isCounter()
205+
.hasDescription("The number of transactions rolled back.")
206+
.hasUnit("{transaction}")
207+
.hasDataPointsWithAttributes(
208+
attributeGroup(attribute("cause", "system")),
209+
attributeGroup(attribute("cause", "resource")),
210+
attributeGroup(attribute("cause", "application"))));
199211
}
200212
}

jmx-scraper/src/main/resources/wildfly.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,22 +59,24 @@ rules:
5959
- bean: jboss.as:subsystem=datasources,data-source=*,statistics=pool
6060
metricAttribute:
6161
data_source: param(data-source)
62-
type: counter
6362
prefix: wildfly.jdbc.
6463
mapping:
6564
ActiveCount:
6665
metric: &metric connection.open
66+
type: updowncounter
6767
unit: &unit "{connection}"
6868
desc: &desc The number of open jdbc connections.
6969
metricAttribute:
7070
state: const(active)
7171
IdleCount:
7272
metric: *metric
73+
type: updowncounter
7374
unit: *unit
7475
desc: *desc
7576
metricAttribute:
7677
state: const(idle)
7778
WaitCount:
79+
type: counter
7880
metric: request.wait
7981
unit: "{request}"
8082
desc: The number of jdbc connections that had to wait before opening.

0 commit comments

Comments
 (0)