Skip to content

Commit 441606f

Browse files
authored
[GenAI] Add support for io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry:2.28.1-alpha using gpt-5.5 (#8653)
* Scaffold io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry:2.28.1-alpha * Dynamic-access coverage for io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods (3/4) * Dynamic-access coverage for io.opentelemetry.instrumentation.runtimetelemetry.internal.FileDescriptor (4/4) * Native metadata for io.opentelemetry.instrumentation.runtimetelemetry.internal.FileDescriptor__native_batch_2 * Update generated library support for io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry:2.28.1-alpha * Add support for io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry:2.28.1-alpha
1 parent 9e73705 commit 441606f

11 files changed

Lines changed: 269 additions & 0 deletions

File tree

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"reflection": [
3+
{
4+
"condition": {
5+
"typeReached": "io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods"
6+
},
7+
"type": "com.sun.management.OperatingSystemMXBean"
8+
}
9+
]
10+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
[
2+
{
3+
"latest" : true,
4+
"metadata-version" : "2.28.1-alpha",
5+
"source-code-url" : "https://repo.maven.apache.org/maven2/io/opentelemetry/instrumentation/opentelemetry-runtime-telemetry/$version$/opentelemetry-runtime-telemetry-$version$-sources.jar",
6+
"repository-url" : "https://github.com/open-telemetry/opentelemetry-java-instrumentation",
7+
"test-code-url" : "https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/v2.28.1/instrumentation/runtime-telemetry/library/src/test",
8+
"documentation-url" : "https://repo.maven.apache.org/maven2/io/opentelemetry/instrumentation/opentelemetry-runtime-telemetry/$version$/opentelemetry-runtime-telemetry-$version$-javadoc.jar",
9+
"description" : "OpenTelemetry Runtime Telemetry collects JVM runtime metrics for classes, CPU, garbage collection, memory, threads, buffers, and related process resources. It uses JMX on supported Java versions and can use Java Flight Recorder on Java 17 and later for additional runtime metrics.",
10+
"tested-versions" : [
11+
"2.28.1-alpha"
12+
],
13+
"allowed-packages" : [
14+
"io.opentelemetry.instrumentation.runtimetelemetry"
15+
]
16+
}
17+
]
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
{
2+
"add_new_library_support:2026-06-26": {
3+
"timestamp": "2026-06-26T16:44:18.021184Z",
4+
"library": "io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry:2.28.1-alpha",
5+
"starting_commit": "603a28d16c09d998d042da6f81f5b9188ba4ee19",
6+
"ending_commit": "358ebdbbfcbedf42747c74703ebbd3ea1bc1edda",
7+
"strategy_name": "dynamic_access_main_sources_pi_gpt-5.5",
8+
"agent": "pi",
9+
"model": "oca/gpt-5.5",
10+
"status": "success",
11+
"stats": {
12+
"version": "2.28.1-alpha",
13+
"dynamicAccess": {
14+
"breakdown": {
15+
"reflection": {
16+
"coverageRatio": 1.0,
17+
"coveredCalls": 4,
18+
"totalCalls": 4
19+
}
20+
},
21+
"coverageRatio": 1.0,
22+
"coveredCalls": 4,
23+
"totalCalls": 4
24+
},
25+
"libraryCoverage": {
26+
"instruction": {
27+
"covered": 120,
28+
"missed": 4359,
29+
"ratio": 0.026792,
30+
"total": 4479
31+
},
32+
"line": {
33+
"covered": 41,
34+
"missed": 1251,
35+
"ratio": 0.031734,
36+
"total": 1292
37+
},
38+
"method": {
39+
"covered": 10,
40+
"missed": 303,
41+
"ratio": 0.031949,
42+
"total": 313
43+
}
44+
}
45+
},
46+
"metrics": {
47+
"input_tokens_used": 83903,
48+
"cached_input_tokens_used": 269312,
49+
"output_tokens_used": 5564,
50+
"iterations": 2,
51+
"cost_usd": 0.3016,
52+
"generated_loc": 62,
53+
"tested_library_loc": 41,
54+
"metadata_entries": 1,
55+
"code_coverage_percent": 3.17
56+
},
57+
"artifacts": {
58+
"test_file": "tests/src/io.opentelemetry.instrumentation/opentelemetry-runtime-telemetry/2.28.1-alpha/src/test/java/io_opentelemetry_instrumentation/opentelemetry_runtime_telemetry/CpuMethodsTest.java",
59+
"metadata_file": "metadata/io.opentelemetry.instrumentation/opentelemetry-runtime-telemetry/2.28.1-alpha/reachability-metadata.json"
60+
}
61+
}
62+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{
2+
"versions" : [ {
3+
"version" : "2.28.1-alpha",
4+
"dynamicAccess" : {
5+
"breakdown" : {
6+
"reflection" : {
7+
"coverageRatio" : 1.0,
8+
"coveredCalls" : 4,
9+
"totalCalls" : 4
10+
}
11+
},
12+
"coverageRatio" : 1.0,
13+
"coveredCalls" : 4,
14+
"totalCalls" : 4
15+
},
16+
"libraryCoverage" : {
17+
"instruction" : {
18+
"covered" : 120,
19+
"missed" : 4359,
20+
"ratio" : 0.026792,
21+
"total" : 4479
22+
},
23+
"line" : {
24+
"covered" : 41,
25+
"missed" : 1251,
26+
"ratio" : 0.031734,
27+
"total" : 1292
28+
},
29+
"method" : {
30+
"covered" : 10,
31+
"missed" : 303,
32+
"ratio" : 0.031949,
33+
"total" : 313
34+
}
35+
}
36+
} ]
37+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
gradlew.bat
2+
gradlew
3+
gradle/
4+
build/
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/*
2+
* Copyright and related rights waived via CC0
3+
*
4+
* You should have received a copy of the CC0 legalcode along with this
5+
* work. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
6+
*/
7+
plugins {
8+
id "org.graalvm.internal.tck"
9+
}
10+
11+
String libraryVersion = tck.testedLibraryVersion.get()
12+
13+
dependencies {
14+
testImplementation "io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry:$libraryVersion"
15+
testImplementation 'org.assertj:assertj-core:3.22.0'
16+
}
17+
18+
graalvmNative {
19+
agent {
20+
defaultMode = "conditional"
21+
modes {
22+
conditional {
23+
userCodeFilterPath = "user-code-filter.json"
24+
}
25+
}
26+
}
27+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Optional explicit tested library coordinates (format: group:artifact:version).
2+
# If omitted, fallback resolution in org.graalvm.internal.tck.gradle still uses
3+
# environment variable GVM_TCK_LC and then this property.
4+
library.coordinates = io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry:2.28.1-alpha
5+
library.version = 2.28.1-alpha
6+
metadata.dir = io.opentelemetry.instrumentation/opentelemetry-runtime-telemetry/2.28.1-alpha/
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/*
2+
* Copyright and related rights waived via CC0
3+
*
4+
* You should have received a copy of the CC0 legalcode along with this
5+
* work. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
6+
*/
7+
pluginManagement {
8+
def tckPath = Objects.requireNonNullElse(
9+
System.getenv("GVM_TCK_TCKDIR"),
10+
"../../../../tck-build-logic"
11+
)
12+
includeBuild(tckPath)
13+
repositories { mavenLocal(); gradlePluginPortal() }
14+
}
15+
16+
plugins {
17+
id "org.graalvm.internal.tck-settings" version "1.0.0-SNAPSHOT"
18+
}
19+
20+
rootProject.name = 'io.opentelemetry.instrumentation.opentelemetry-runtime-telemetry_tests'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/*
2+
* Copyright and related rights waived via CC0
3+
*
4+
* You should have received a copy of the CC0 legalcode along with this
5+
* work. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
6+
*/
7+
package io_opentelemetry_instrumentation.opentelemetry_runtime_telemetry;
8+
9+
import static org.assertj.core.api.Assertions.assertThat;
10+
11+
import io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods;
12+
import java.util.ArrayList;
13+
import java.util.List;
14+
import java.util.function.Supplier;
15+
import org.junit.jupiter.api.Test;
16+
17+
public class CpuMethodsTest {
18+
@Test
19+
void cpuSuppliersInvokeOperatingSystemManagementBeanMethods() {
20+
List<Number> measurements = new ArrayList<>();
21+
22+
Supplier<Long> processCpuTime = CpuMethods.processCpuTime();
23+
collectMeasurement(measurements, processCpuTime);
24+
collectMeasurement(measurements, CpuMethods.processCpuUtilization());
25+
collectMeasurement(measurements, CpuMethods.systemCpuUtilization());
26+
27+
assertThat(processCpuTime)
28+
.as("the current JDK should expose process CPU time through its OS MXBean")
29+
.isNotNull();
30+
assertThat(measurements)
31+
.as("at least one CPU supplier should reflectively invoke an OS MXBean method")
32+
.isNotEmpty()
33+
.allSatisfy(measurement -> assertThat(measurement).isNotNull());
34+
}
35+
36+
private static <T extends Number> void collectMeasurement(
37+
List<Number> measurements, Supplier<T> supplier) {
38+
if (supplier != null) {
39+
measurements.add(supplier.get());
40+
}
41+
}
42+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/*
2+
* Copyright and related rights waived via CC0
3+
*
4+
* You should have received a copy of the CC0 legalcode along with this
5+
* work. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
6+
*/
7+
package io_opentelemetry_instrumentation.opentelemetry_runtime_telemetry;
8+
9+
import static org.assertj.core.api.Assertions.assertThat;
10+
11+
import io.opentelemetry.api.OpenTelemetry;
12+
import io.opentelemetry.api.metrics.Meter;
13+
import io.opentelemetry.instrumentation.runtimetelemetry.internal.FileDescriptor;
14+
import java.util.List;
15+
import org.junit.jupiter.api.Test;
16+
17+
public class FileDescriptorTest {
18+
@Test
19+
void registerObserversInitializesUnixMxBeanSupport() throws Exception {
20+
Meter meter = OpenTelemetry.noop().getMeter("file-descriptor-test");
21+
22+
List<AutoCloseable> observables = FileDescriptor.registerObservers(meter);
23+
24+
assertThat(observables)
25+
.as("file descriptor observers are optional on non-Unix operating systems")
26+
.isNotNull();
27+
for (AutoCloseable observable : observables) {
28+
observable.close();
29+
}
30+
}
31+
}

0 commit comments

Comments
 (0)