Skip to content

Commit 5d8b4f7

Browse files
robsundaylaurit
andauthored
Use stable semconv for Java17 (#11914)
Co-authored-by: Lauri Tulmin <[email protected]>
1 parent c9a9f57 commit 5d8b4f7

28 files changed

+169
-135
lines changed

instrumentation/runtime-telemetry/runtime-telemetry-java17/javaagent/src/test/java/io/opentelemetry/instrumentation/javaagent/runtimemetrics/java17/JfrRuntimeMetricsTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ void shouldHaveDefaultMetrics() {
3333

3434
testing.waitAndAssertMetrics(
3535
"io.opentelemetry.runtime-telemetry-java17",
36-
metric -> metric.hasName("process.runtime.jvm.cpu.longlock"),
37-
metric -> metric.hasName("process.runtime.jvm.cpu.limit"),
38-
metric -> metric.hasName("process.runtime.jvm.cpu.context_switch"));
36+
metric -> metric.hasName("jvm.cpu.longlock"),
37+
metric -> metric.hasName("jvm.cpu.limit"),
38+
metric -> metric.hasName("jvm.cpu.context_switch"));
3939
}
4040
}

instrumentation/runtime-telemetry/runtime-telemetry-java17/library/README.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,16 @@ default, and the telemetry each produces:
3535
<!-- DO NOT MANUALLY EDIT. Regenerate table following changes to instrumentation using ./gradlew generateDocs -->
3636
<!-- generateDocsStart -->
3737

38-
| JfrFeature | Default Enabled | Metrics |
39-
| ------------------------- | --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
40-
| BUFFER_METRICS | `false` | `process.runtime.jvm.buffer.count`, `process.runtime.jvm.buffer.limit`, `process.runtime.jvm.buffer.usage` |
41-
| CLASS_LOAD_METRICS | `false` | `process.runtime.jvm.classes.current_loaded`, `process.runtime.jvm.classes.loaded`, `process.runtime.jvm.classes.unloaded` |
42-
| CONTEXT_SWITCH_METRICS | `true` | `process.runtime.jvm.cpu.context_switch` |
43-
| CPU_COUNT_METRICS | `true` | `process.runtime.jvm.cpu.limit` |
44-
| CPU_UTILIZATION_METRICS | `false` | `process.runtime.jvm.cpu.utilization`, `process.runtime.jvm.system.cpu.utilization` |
45-
| GC_DURATION_METRICS | `false` | `process.runtime.jvm.gc.duration` |
46-
| LOCK_METRICS | `true` | `process.runtime.jvm.cpu.longlock` |
47-
| MEMORY_ALLOCATION_METRICS | `true` | `process.runtime.jvm.memory.allocation` |
48-
| MEMORY_POOL_METRICS | `false` | `process.runtime.jvm.memory.committed`, `process.runtime.jvm.memory.init`, `process.runtime.jvm.memory.limit`, `process.runtime.jvm.memory.usage`, `process.runtime.jvm.memory.usage_after_last_gc` |
49-
| NETWORK_IO_METRICS | `true` | `process.runtime.jvm.network.io`, `process.runtime.jvm.network.time` |
50-
| THREAD_METRICS | `false` | `process.runtime.jvm.threads.count` |
38+
| JfrFeature | Default Enabled | Metrics |
39+
|---------------------------|-----------------|-------------------------------------------------------------------------------------------------------------------|
40+
| BUFFER_METRICS | `false` | `jvm.buffer.count`, `jvm.buffer.memory.limit`, `jvm.buffer.memory.usage` |
41+
| CLASS_LOAD_METRICS | `false` | `jvm.class.count`, `jvm.class.loaded`, `jvm.class.unloaded` |
42+
| CONTEXT_SWITCH_METRICS | `true` | `jvm.cpu.context_switch` |
43+
| CPU_COUNT_METRICS | `true` | `jvm.cpu.limit` |
44+
| CPU_UTILIZATION_METRICS | `false` | `jvm.cpu.recent_utilization`, `jvm.system.cpu.utilization` |
45+
| GC_DURATION_METRICS | `false` | `jvm.gc.duration` |
46+
| LOCK_METRICS | `true` | `jvm.cpu.longlock` |
47+
| MEMORY_ALLOCATION_METRICS | `true` | `jvm.memory.allocation` |
48+
| MEMORY_POOL_METRICS | `false` | `jvm.memory.committed`, `jvm.memory.init`, `jvm.memory.limit`, `jvm.memory.used`, `jvm.memory.used_after_last_gc` |
49+
| NETWORK_IO_METRICS | `true` | `jvm.network.io`, `jvm.network.time` |
50+
| THREAD_METRICS | `false` | `jvm.thread.count` |

instrumentation/runtime-telemetry/runtime-telemetry-java17/library/src/main/java/io/opentelemetry/instrumentation/runtimemetrics/java17/internal/Constants.java

Lines changed: 40 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -26,65 +26,67 @@ private Constants() {}
2626
public static final String COMMITTED_SIZE = "committedSize";
2727
public static final String RESERVED_SIZE = "reservedSize";
2828

29-
public static final String DAEMON = "daemon";
3029
public static final String HEAP = "heap";
31-
public static final String NON_HEAP = "nonheap";
30+
public static final String NON_HEAP = "non_heap";
3231
public static final String NETWORK_MODE_READ = "read";
3332
public static final String NETWORK_MODE_WRITE = "write";
3433
public static final String DURATION = "duration";
3534
public static final String END_OF_MINOR_GC = "end of minor GC";
3635
public static final String END_OF_MAJOR_GC = "end of major GC";
3736

38-
public static final String METRIC_NAME_NETWORK_BYTES = "process.runtime.jvm.network.io";
39-
public static final String METRIC_DESCRIPTION_NETWORK_BYTES = "Network read/write bytes";
40-
public static final String METRIC_NAME_NETWORK_DURATION = "process.runtime.jvm.network.time";
41-
public static final String METRIC_DESCRIPTION_NETWORK_DURATION = "Network read/write duration";
42-
public static final String METRIC_NAME_COMMITTED = "process.runtime.jvm.memory.committed";
43-
public static final String METRIC_DESCRIPTION_COMMITTED = "Measure of memory committed";
44-
public static final String METRIC_NAME_MEMORY = "process.runtime.jvm.memory.usage";
45-
public static final String METRIC_DESCRIPTION_MEMORY = "Measure of memory used";
46-
public static final String METRIC_NAME_MEMORY_AFTER =
47-
"process.runtime.jvm.memory.usage_after_last_gc";
37+
public static final String METRIC_NAME_NETWORK_BYTES = "jvm.network.io";
38+
public static final String METRIC_DESCRIPTION_NETWORK_BYTES = "Network read/write bytes.";
39+
public static final String METRIC_NAME_NETWORK_DURATION = "jvm.network.time";
40+
public static final String METRIC_DESCRIPTION_NETWORK_DURATION = "Network read/write duration.";
41+
public static final String METRIC_NAME_COMMITTED = "jvm.memory.committed";
42+
public static final String METRIC_DESCRIPTION_COMMITTED = "Measure of memory committed.";
43+
public static final String METRIC_NAME_MEMORY = "jvm.memory.used";
44+
public static final String METRIC_DESCRIPTION_MEMORY = "Measure of memory used.";
45+
public static final String METRIC_NAME_MEMORY_AFTER = "jvm.memory.used_after_last_gc";
4846
public static final String METRIC_DESCRIPTION_MEMORY_AFTER =
49-
"Measure of memory used, as measured after the most recent garbage collection event on this pool";
50-
public static final String METRIC_NAME_MEMORY_ALLOCATION =
51-
"process.runtime.jvm.memory.allocation";
52-
public static final String METRIC_DESCRIPTION_MEMORY_ALLOCATION = "Allocation";
53-
public static final String METRIC_NAME_MEMORY_INIT = "process.runtime.jvm.memory.init";
54-
public static final String METRIC_DESCRIPTION_MEMORY_INIT = "Measure of initial memory requested";
55-
public static final String METRIC_NAME_MEMORY_LIMIT = "process.runtime.jvm.memory.limit";
56-
public static final String METRIC_DESCRIPTION_MEMORY_LIMIT = "Measure of max obtainable memory";
57-
public static final String METRIC_NAME_GC_DURATION = "process.runtime.jvm.gc.duration";
47+
"Measure of memory used, as measured after the most recent garbage collection event on this pool.";
48+
public static final String METRIC_NAME_MEMORY_ALLOCATION = "jvm.memory.allocation";
49+
public static final String METRIC_DESCRIPTION_MEMORY_ALLOCATION =
50+
"Measure of memory allocations.";
51+
public static final String METRIC_NAME_MEMORY_INIT = "jvm.memory.init";
52+
public static final String METRIC_DESCRIPTION_MEMORY_INIT =
53+
"Measure of initial memory requested.";
54+
public static final String METRIC_NAME_MEMORY_LIMIT = "jvm.memory.limit";
55+
public static final String METRIC_DESCRIPTION_MEMORY_LIMIT = "Measure of max obtainable memory.";
56+
public static final String METRIC_NAME_GC_DURATION = "jvm.gc.duration";
5857
public static final String METRIC_DESCRIPTION_GC_DURATION =
59-
"Duration of JVM garbage collection actions";
58+
"Duration of JVM garbage collection actions.";
6059

6160
public static final AttributeKey<String> ATTR_THREAD_NAME = AttributeKey.stringKey("thread.name");
6261
public static final AttributeKey<String> ATTR_ARENA_NAME = AttributeKey.stringKey("arena");
6362
public static final AttributeKey<String> ATTR_NETWORK_MODE = AttributeKey.stringKey("mode");
64-
public static final AttributeKey<String> ATTR_TYPE = AttributeKey.stringKey("type");
65-
public static final AttributeKey<String> ATTR_POOL = AttributeKey.stringKey("pool");
66-
public static final AttributeKey<String> ATTR_GC = AttributeKey.stringKey("pool");
67-
public static final AttributeKey<String> ATTR_ACTION = AttributeKey.stringKey("action");
68-
public static final AttributeKey<Boolean> ATTR_DAEMON = AttributeKey.booleanKey(DAEMON);
63+
public static final AttributeKey<String> ATTR_MEMORY_TYPE =
64+
AttributeKey.stringKey("jvm.memory.type");
65+
public static final AttributeKey<String> ATTR_MEMORY_POOL =
66+
AttributeKey.stringKey("jvm.memory.pool.name");
67+
public static final AttributeKey<String> ATTR_GC_NAME = AttributeKey.stringKey("jvm.gc.name");
68+
public static final AttributeKey<String> ATTR_GC_ACTION = AttributeKey.stringKey("jvm.gc.action");
69+
public static final AttributeKey<Boolean> ATTR_DAEMON =
70+
AttributeKey.booleanKey("jvm.thread.daemon");
6971
public static final Attributes ATTR_PS_EDEN_SPACE =
70-
Attributes.of(ATTR_TYPE, HEAP, ATTR_POOL, "PS Eden Space");
72+
Attributes.of(ATTR_MEMORY_TYPE, HEAP, ATTR_MEMORY_POOL, "PS Eden Space");
7173
public static final Attributes ATTR_PS_SURVIVOR_SPACE =
72-
Attributes.of(ATTR_TYPE, HEAP, ATTR_POOL, "PS Survivor Space");
74+
Attributes.of(ATTR_MEMORY_TYPE, HEAP, ATTR_MEMORY_POOL, "PS Survivor Space");
7375
public static final Attributes ATTR_PS_OLD_GEN =
74-
Attributes.of(ATTR_TYPE, HEAP, ATTR_POOL, "PS Old Gen");
76+
Attributes.of(ATTR_MEMORY_TYPE, HEAP, ATTR_MEMORY_POOL, "PS Old Gen");
7577
public static final Attributes ATTR_G1_SURVIVOR_SPACE =
76-
Attributes.of(ATTR_TYPE, HEAP, ATTR_POOL, "G1 Survivor Space");
78+
Attributes.of(ATTR_MEMORY_TYPE, HEAP, ATTR_MEMORY_POOL, "G1 Survivor Space");
7779
public static final Attributes ATTR_G1_EDEN_SPACE =
78-
Attributes.of(ATTR_TYPE, HEAP, ATTR_POOL, "G1 Eden Space");
80+
Attributes.of(ATTR_MEMORY_TYPE, HEAP, ATTR_MEMORY_POOL, "G1 Eden Space");
7981
public static final Attributes ATTR_METASPACE =
80-
Attributes.of(ATTR_TYPE, NON_HEAP, ATTR_POOL, "Metaspace");
82+
Attributes.of(ATTR_MEMORY_TYPE, NON_HEAP, ATTR_MEMORY_POOL, "Metaspace");
8183
public static final Attributes ATTR_COMPRESSED_CLASS_SPACE =
82-
Attributes.of(ATTR_TYPE, NON_HEAP, ATTR_POOL, "Compressed Class Space");
84+
Attributes.of(ATTR_MEMORY_TYPE, NON_HEAP, ATTR_MEMORY_POOL, "Compressed Class Space");
8385
public static final Attributes ATTR_CODE_CACHE =
84-
Attributes.of(ATTR_TYPE, NON_HEAP, ATTR_POOL, "CodeCache");
86+
Attributes.of(ATTR_MEMORY_TYPE, NON_HEAP, ATTR_MEMORY_POOL, "CodeCache");
8587

86-
public static final String UNIT_CLASSES = "{classes}";
87-
public static final String UNIT_THREADS = "{threads}";
88-
public static final String UNIT_BUFFERS = "{buffers}";
88+
public static final String UNIT_CLASSES = "{class}";
89+
public static final String UNIT_THREADS = "{thread}";
90+
public static final String UNIT_BUFFERS = "{buffer}";
8991
public static final String UNIT_UTILIZATION = "1";
9092
}

instrumentation/runtime-telemetry/runtime-telemetry-java17/library/src/main/java/io/opentelemetry/instrumentation/runtimemetrics/java17/internal/buffer/DirectBufferStatisticsHandler.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
package io.opentelemetry.instrumentation.runtimemetrics.java17.internal.buffer;
77

8+
import io.opentelemetry.api.common.AttributeKey;
89
import io.opentelemetry.api.common.Attributes;
910
import io.opentelemetry.api.metrics.Meter;
1011
import io.opentelemetry.instrumentation.runtimemetrics.java17.JfrFeature;
@@ -21,19 +22,21 @@
2122
* any time.
2223
*/
2324
public final class DirectBufferStatisticsHandler implements RecordedEventHandler {
24-
private static final String METRIC_NAME_USAGE = "process.runtime.jvm.buffer.usage";
25-
private static final String METRIC_NAME_LIMIT = "process.runtime.jvm.buffer.limit";
26-
private static final String METRIC_NAME_COUNT = "process.runtime.jvm.buffer.count";
27-
private static final String METRIC_DESCRIPTION_USAGE = "Measure of memory used by buffers";
25+
private static final String METRIC_NAME_USAGE = "jvm.buffer.memory.usage";
26+
private static final String METRIC_NAME_LIMIT = "jvm.buffer.memory.limit";
27+
private static final String METRIC_NAME_COUNT = "jvm.buffer.count";
28+
private static final String METRIC_DESCRIPTION_USAGE = "Measure of memory used by buffers.";
2829
private static final String METRIC_DESCRIPTION_LIMIT =
29-
"Measure of total memory capacity of buffers";
30-
private static final String METRIC_DESCRIPTION_COUNT = "Number of buffers in the pool";
30+
"Measure of total memory capacity of buffers.";
31+
private static final String METRIC_DESCRIPTION_COUNT = "Number of buffers in the pool.";
3132
private static final String COUNT = "count";
3233
private static final String MAX_CAPACITY = "maxCapacity";
3334
private static final String MEMORY_USED = "memoryUsed";
3435

3536
private static final String EVENT_NAME = "jdk.DirectBufferStatistics";
36-
private static final Attributes ATTR = Attributes.of(Constants.ATTR_POOL, "direct");
37+
public static final AttributeKey<String> ATTR_BUFFER_POOL =
38+
AttributeKey.stringKey("jvm.buffer.pool.name");
39+
private static final Attributes ATTR = Attributes.of(ATTR_BUFFER_POOL, "direct");
3740

3841
private final List<AutoCloseable> observables = new ArrayList<>();
3942

instrumentation/runtime-telemetry/runtime-telemetry-java17/library/src/main/java/io/opentelemetry/instrumentation/runtimemetrics/java17/internal/classes/ClassesLoadedHandler.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,25 +21,25 @@
2121
*/
2222
public final class ClassesLoadedHandler implements RecordedEventHandler {
2323
/**
24-
* process.runtime.jvm.classes.loaded is the total number of classes loaded since JVM start. See:
24+
* jvm.class.loaded is the total number of classes loaded since JVM start. See:
2525
* https://github.com/open-telemetry/semantic-conventions/blob/main/docs/runtime/jvm-metrics.md
2626
*/
27-
private static final String METRIC_NAME_LOADED = "process.runtime.jvm.classes.loaded";
27+
private static final String METRIC_NAME_LOADED = "jvm.class.loaded";
2828

29-
private static final String METRIC_NAME_UNLOADED = "process.runtime.jvm.classes.unloaded";
29+
private static final String METRIC_NAME_UNLOADED = "jvm.class.unloaded";
3030

3131
/**
32-
* process.runtime.jvm.classes.current_loaded is the number of classes loaded at the time of
33-
* jdk.ClassLoadingStatistics event emission.
32+
* jvm.class.count is the number of classes loaded at the time of jdk.ClassLoadingStatistics event
33+
* emission.
3434
*/
35-
private static final String METRIC_NAME_CURRENT = "process.runtime.jvm.classes.current_loaded";
35+
private static final String METRIC_NAME_CURRENT = "jvm.class.count";
3636

3737
private static final String EVENT_NAME = "jdk.ClassLoadingStatistics";
38-
private static final String METRIC_DESCRIPTION_CURRENT = "Number of classes currently loaded";
38+
private static final String METRIC_DESCRIPTION_CURRENT = "Number of classes currently loaded.";
3939
private static final String METRIC_DESCRIPTION_LOADED =
40-
"Number of classes loaded since JVM start";
40+
"Number of classes loaded since JVM start.";
4141
private static final String METRIC_DESCRIPTION_UNLOADED =
42-
"Number of classes unloaded since JVM start";
42+
"Number of classes unloaded since JVM start.";
4343

4444
private final List<AutoCloseable> observables = new ArrayList<>();
4545

instrumentation/runtime-telemetry/runtime-telemetry-java17/library/src/main/java/io/opentelemetry/instrumentation/runtimemetrics/java17/internal/container/ContainerConfigurationHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
* any time.
1919
*/
2020
public final class ContainerConfigurationHandler implements RecordedEventHandler {
21-
private static final String METRIC_NAME = "process.runtime.jvm.cpu.limit";
21+
private static final String METRIC_NAME = "jvm.cpu.limit";
2222
private static final String EVENT_NAME = "jdk.ContainerConfiguration";
2323
private static final String EFFECTIVE_CPU_COUNT = "effectiveCpuCount";
2424

instrumentation/runtime-telemetry/runtime-telemetry-java17/library/src/main/java/io/opentelemetry/instrumentation/runtimemetrics/java17/internal/cpu/ContextSwitchRateHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
* any time.
2121
*/
2222
public final class ContextSwitchRateHandler implements RecordedEventHandler {
23-
private static final String METRIC_NAME = "process.runtime.jvm.cpu.context_switch";
23+
private static final String METRIC_NAME = "jvm.cpu.context_switch";
2424
private static final String EVENT_NAME = "jdk.ThreadContextSwitchRate";
2525

2626
private final List<AutoCloseable> observables = new ArrayList<>();

instrumentation/runtime-telemetry/runtime-telemetry-java17/library/src/main/java/io/opentelemetry/instrumentation/runtimemetrics/java17/internal/cpu/LongLockHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
* any time.
2424
*/
2525
public final class LongLockHandler extends AbstractThreadDispatchingHandler {
26-
private static final String METRIC_NAME = "process.runtime.jvm.cpu.longlock";
26+
private static final String METRIC_NAME = "jvm.cpu.longlock";
2727
private static final String METRIC_DESCRIPTION = "Long lock times";
2828
private static final String EVENT_NAME = "jdk.JavaMonitorWait";
2929

instrumentation/runtime-telemetry/runtime-telemetry-java17/library/src/main/java/io/opentelemetry/instrumentation/runtimemetrics/java17/internal/cpu/OverallCpuLoadHandler.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,12 @@
2020
* any time.
2121
*/
2222
public final class OverallCpuLoadHandler implements RecordedEventHandler {
23-
private static final String METRIC_NAME_PROCESS = "process.runtime.jvm.cpu.utilization";
24-
private static final String METRIC_NAME_MACHINE = "process.runtime.jvm.system.cpu.utilization";
25-
private static final String METRIC_DESCRIPTION_PROCESS = "Recent CPU utilization for the process";
23+
private static final String METRIC_NAME_PROCESS = "jvm.cpu.recent_utilization";
24+
private static final String METRIC_NAME_MACHINE = "jvm.system.cpu.utilization";
25+
private static final String METRIC_DESCRIPTION_PROCESS =
26+
"Recent CPU utilization for the process as reported by the JVM.";
2627
private static final String METRIC_DESCRIPTION_MACHINE =
27-
"Recent CPU utilization for the whole system";
28+
"Recent CPU utilization for the whole system as reported by the JVM.";
2829

2930
private static final String EVENT_NAME = "jdk.CPULoad";
3031
private static final String JVM_USER = "jvmUser";

instrumentation/runtime-telemetry/runtime-telemetry-java17/library/src/main/java/io/opentelemetry/instrumentation/runtimemetrics/java17/internal/garbagecollection/G1GarbageCollectionHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ public final class G1GarbageCollectionHandler implements RecordedEventHandler {
2323
private static final String EVENT_NAME = "jdk.G1GarbageCollection";
2424
private static final Attributes ATTR =
2525
Attributes.of(
26-
Constants.ATTR_GC,
26+
Constants.ATTR_GC_NAME,
2727
"G1 Young Generation",
28-
Constants.ATTR_ACTION,
28+
Constants.ATTR_GC_ACTION,
2929
Constants.END_OF_MINOR_GC);
3030
private final LongHistogram histogram;
3131

0 commit comments

Comments
 (0)