Skip to content

Commit 9727eb2

Browse files
committed
add network io
1 parent 81a82c1 commit 9727eb2

File tree

6 files changed

+87
-61
lines changed

6 files changed

+87
-61
lines changed

instrumentation/jmx-metrics/library/build.gradle.kts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,10 @@ tasks {
3131
.withNormalizer(ClasspathNormalizer::class)
3232

3333
doFirst {
34-
jvmArgs("-Dio.opentelemetry.javaagent.path=${shadowTask.archiveFile.get()}",
35-
"-Dio.opentelemetry.testapp.path=${testAppTask.get().archiveFile.get().asFile.absolutePath}")
34+
jvmArgs(
35+
"-Dio.opentelemetry.javaagent.path=${shadowTask.archiveFile.get()}",
36+
"-Dio.opentelemetry.testapp.path=${testAppTask.get().archiveFile.get().asFile.absolutePath}"
37+
)
3638
}
3739
}
3840
}

instrumentation/jmx-metrics/library/src/main/resources/jmx/rules/wildfly.yaml

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -44,25 +44,25 @@ rules:
4444
metric: error.count
4545
unit: "{request}"
4646
desc: The number of requests that have resulted in a 5xx response.
47-
#
48-
# - bean: jboss.as:subsystem=undertow,server=*,http-listener=*
49-
# metricAttribute:
50-
# server: param(server)
51-
# listener: param(http-listener)
52-
# type: counter
53-
# unit: By
54-
# mapping:
55-
# bytesSent:
56-
# metric: wildfly.network.io
57-
# desc: Total number of bytes transferred
58-
# metricAttribute:
59-
# direction: const(out)
60-
# bytesReceived:
61-
# metric: wildfly.network.io
62-
# desc: Total number of bytes transferred
63-
# metricAttribute:
64-
# direction: const(in)
65-
#
47+
48+
- bean: jboss.as:subsystem=undertow,server=*,http-listener=*
49+
metricAttribute:
50+
wildfly.server: param(server)
51+
wildfly.listener: param(http-listener)
52+
type: counter
53+
unit: By
54+
mapping:
55+
bytesSent:
56+
metric: &metric wildfly.network.io
57+
desc: &desc Total number of bytes transferred
58+
metricAttribute:
59+
network.io.direction: const(transmit)
60+
bytesReceived:
61+
metric: *metric
62+
desc: *desc
63+
metricAttribute:
64+
network.io.direction: const(receive)
65+
6666
# - bean: jboss.as:subsystem=datasources,data-source=*,statistics=pool
6767
# unit: "1"
6868
# metricAttribute:

instrumentation/jmx-metrics/library/src/test/java/io/opentelemetry/instrumentation/jmx/rules/TargetSystemTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ static void beforeAll() {
7979
TargetSystemTest.testAppPath = getArtifactPath("io.opentelemetry.testapp.path");
8080
}
8181

82-
private static Path getArtifactPath(String systemProperty){
82+
private static Path getArtifactPath(String systemProperty) {
8383
String pathValue = System.getProperty(systemProperty);
8484
assertThat(pathValue).isNotNull();
8585
Path path = Paths.get(pathValue);

instrumentation/jmx-metrics/library/src/test/java/io/opentelemetry/instrumentation/jmx/rules/TomcatTest.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,7 @@
2222
public class TomcatTest extends TargetSystemTest {
2323

2424
@ParameterizedTest
25-
@ValueSource(strings = {
26-
"tomcat:10.0",
27-
"tomcat:9.0"
28-
})
25+
@ValueSource(strings = {"tomcat:10.0", "tomcat:9.0"})
2926
void testCollectedMetrics(String dockerImageName) {
3027
List<String> yamlFiles = Collections.singletonList("tomcat.yaml");
3128

instrumentation/jmx-metrics/library/src/test/java/io/opentelemetry/instrumentation/jmx/rules/WildflyTest.java

Lines changed: 61 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,24 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
16
package io.opentelemetry.instrumentation.jmx.rules;
27

8+
import static io.opentelemetry.instrumentation.jmx.rules.assertions.DataPointAttributes.attribute;
9+
import static io.opentelemetry.instrumentation.jmx.rules.assertions.DataPointAttributes.attributeGroup;
10+
11+
import io.opentelemetry.instrumentation.jmx.rules.assertions.AttributeMatcher;
12+
import io.opentelemetry.instrumentation.jmx.rules.assertions.AttributeMatcherGroup;
313
import java.time.Duration;
414
import java.util.ArrayList;
515
import java.util.Collections;
616
import java.util.List;
7-
import io.opentelemetry.instrumentation.jmx.rules.assertions.AttributeMatcher;
8-
import io.opentelemetry.instrumentation.jmx.rules.assertions.AttributeMatcherGroup;
917
import org.junit.jupiter.params.ParameterizedTest;
1018
import org.junit.jupiter.params.provider.ValueSource;
1119
import org.testcontainers.containers.GenericContainer;
1220
import org.testcontainers.containers.wait.strategy.Wait;
1321

14-
import static io.opentelemetry.instrumentation.jmx.rules.assertions.DataPointAttributes.attribute;
15-
import static io.opentelemetry.instrumentation.jmx.rules.assertions.DataPointAttributes.attributeGroup;
16-
1722
public class WildflyTest extends TargetSystemTest {
1823

1924
private static final int WILDFLY_SERVICE_PORT = 8080;
@@ -29,11 +34,12 @@ public void testWildflyMetrics(String dockerImage) {
2934
jvmArgs.add(javaAgentJvmArgument());
3035
jvmArgs.addAll(javaPropertiesToJvmArgs(otelConfigProperties(yamlFiles)));
3136

32-
GenericContainer<?> target = new GenericContainer<>(dockerImage)
33-
.withStartupTimeout(Duration.ofMinutes(2))
34-
.withExposedPorts(WILDFLY_SERVICE_PORT)
35-
.withEnv("JAVA_TOOL_OPTIONS", String.join(" ", jvmArgs))
36-
.waitingFor(Wait.forListeningPorts(WILDFLY_SERVICE_PORT));
37+
GenericContainer<?> target =
38+
new GenericContainer<>(dockerImage)
39+
.withStartupTimeout(Duration.ofMinutes(2))
40+
.withExposedPorts(WILDFLY_SERVICE_PORT)
41+
.withEnv("JAVA_TOOL_OPTIONS", String.join(" ", jvmArgs))
42+
.waitingFor(Wait.forListeningPorts(WILDFLY_SERVICE_PORT));
3743

3844
copyAgentToTarget(target);
3945
copyYamlFilesToTarget(target, yamlFiles);
@@ -46,10 +52,10 @@ public void testWildflyMetrics(String dockerImage) {
4652

4753
private static MetricsVerifier createMetricsVerifier() {
4854
AttributeMatcher deploymentAttribute = attribute("wildfly.deployment", "testapp.war");
49-
AttributeMatcherGroup serverListenerAttributes = attributeGroup(
50-
attribute("wildfly.server", "default-server"),
51-
attribute("wildfly.listener", "default"));
52-
// AttributeMatcher datasourceAttribute = attribute("data_sourcedata_source", "ExampleDS");
55+
AttributeMatcher serverAttribute = attribute("wildfly.server", "default-server");
56+
AttributeMatcher listenerAttribute = attribute("wildfly.listener", "default");
57+
AttributeMatcherGroup serverListenerAttributes =
58+
attributeGroup(serverAttribute, listenerAttribute);
5359

5460
return MetricsVerifier.create()
5561
// session metrics
@@ -86,25 +92,46 @@ private static MetricsVerifier createMetricsVerifier() {
8692
.hasUnit("{session}")
8793
.hasDataPointsWithOneAttribute(deploymentAttribute))
8894
// request metrics
89-
.add("wildfly.request.count", metric ->
90-
metric
91-
.isCounter()
92-
.hasDescription("The number of requests received.")
93-
.hasUnit("{request}")
94-
.hasDataPointsWithAttributes(serverListenerAttributes))
95-
.add("wildfly.request.duration.sum", metric ->
96-
metric
97-
.isCounter()
98-
.hasDescription("The total amount of time spent processing requests.")
99-
.hasUnit("s")
100-
.hasDataPointsWithAttributes(serverListenerAttributes))
101-
.add("wildfly.error.count", metric ->
102-
metric
103-
.isCounter()
104-
.hasDescription("The number of requests that have resulted in a 5xx response.")
105-
.hasUnit("{request}")
106-
.hasDataPointsWithAttributes(serverListenerAttributes))
107-
108-
;
95+
.add(
96+
"wildfly.request.count",
97+
metric ->
98+
metric
99+
.isCounter()
100+
.hasDescription("The number of requests received.")
101+
.hasUnit("{request}")
102+
.hasDataPointsWithAttributes(serverListenerAttributes))
103+
.add(
104+
"wildfly.request.duration.sum",
105+
metric ->
106+
metric
107+
.isCounter()
108+
.hasDescription("The total amount of time spent processing requests.")
109+
.hasUnit("s")
110+
.hasDataPointsWithAttributes(serverListenerAttributes))
111+
.add(
112+
"wildfly.error.count",
113+
metric ->
114+
metric
115+
.isCounter()
116+
.hasDescription("The number of requests that have resulted in a 5xx response.")
117+
.hasUnit("{request}")
118+
.hasDataPointsWithAttributes(serverListenerAttributes))
119+
// network io metrics
120+
.add(
121+
"wildfly.network.io",
122+
metric ->
123+
metric
124+
.hasDescription("Total number of bytes transferred")
125+
.hasUnit("By")
126+
.isCounter()
127+
.hasDataPointsWithAttributes(
128+
attributeGroup(
129+
attribute("network.io.direction", "receive"),
130+
serverAttribute,
131+
listenerAttribute),
132+
attributeGroup(
133+
attribute("network.io.direction", "transmit"),
134+
serverAttribute,
135+
listenerAttribute)));
109136
}
110137
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# test-webapp
22

3-
This is a test web application used for integration tests when metrics are published only when
3+
This is a test web application used for integration tests when metrics are published only when
44
an application is deployed to the container. For example, Wildfly or Tomcat session metrics.

0 commit comments

Comments
 (0)