diff --git a/jfr-streaming/src/main/java/io/opentelemetry/contrib/jfr/metrics/internal/ThreadGrouper.java b/jfr-streaming/src/main/java/io/opentelemetry/contrib/jfr/metrics/internal/ThreadGrouper.java index 2e3f626f..e3749164 100644 --- a/jfr-streaming/src/main/java/io/opentelemetry/contrib/jfr/metrics/internal/ThreadGrouper.java +++ b/jfr-streaming/src/main/java/io/opentelemetry/contrib/jfr/metrics/internal/ThreadGrouper.java @@ -13,7 +13,8 @@ public final class ThreadGrouper { // FIXME doesn't actually do any grouping, but should be safe for now public Optional groupedName(RecordedEvent ev) { Object thisField = ev.getValue("eventThread"); - if (thisField instanceof RecordedThread thread) { + if (thisField instanceof RecordedThread) { + RecordedThread thread = (RecordedThread) thisField; return Optional.of(thread.getJavaName()); } return Optional.empty(); diff --git a/jfr-streaming/src/main/java/io/opentelemetry/contrib/jfr/metrics/internal/memory/GCHeapSummaryHandler.java b/jfr-streaming/src/main/java/io/opentelemetry/contrib/jfr/metrics/internal/memory/GCHeapSummaryHandler.java index 345da843..ac454977 100644 --- a/jfr-streaming/src/main/java/io/opentelemetry/contrib/jfr/metrics/internal/memory/GCHeapSummaryHandler.java +++ b/jfr-streaming/src/main/java/io/opentelemetry/contrib/jfr/metrics/internal/memory/GCHeapSummaryHandler.java @@ -108,7 +108,9 @@ public final class GCHeapSummaryHandler implements RecordedEventHandler { memoryHistogram.record(after.getLong(HEAP_USED), ATTR_MEMORY_USED); } if (after.hasField(HEAP_SPACE)) { - if (after.getValue(HEAP_SPACE) instanceof RecordedObject heapSpace) { + Object heapSpaceValue = after.getValue(HEAP_SPACE); + if (heapSpaceValue instanceof RecordedObject) { + RecordedObject heapSpace = (RecordedObject) heapSpaceValue; if (heapSpace.hasField(COMMITTED_SIZE)) { memoryHistogram.record(heapSpace.getLong(COMMITTED_SIZE), ATTR_MEMORY_COMMITTED); } diff --git a/jfr-streaming/src/main/java/io/opentelemetry/contrib/jfr/metrics/internal/memory/ParallelHeapSummaryHandler.java b/jfr-streaming/src/main/java/io/opentelemetry/contrib/jfr/metrics/internal/memory/ParallelHeapSummaryHandler.java index e14209dc..3130ebda 100644 --- a/jfr-streaming/src/main/java/io/opentelemetry/contrib/jfr/metrics/internal/memory/ParallelHeapSummaryHandler.java +++ b/jfr-streaming/src/main/java/io/opentelemetry/contrib/jfr/metrics/internal/memory/ParallelHeapSummaryHandler.java @@ -100,21 +100,31 @@ public final class ParallelHeapSummaryHandler implements RecordedEventHandler { } private void recordValues(RecordedEvent before, RecordedEvent after) { - if (after.hasField("edenSpace") - && after.getValue("edenSpace") instanceof RecordedObject edenSpace) { - memoryHistogram.record(edenSpace.getLong("size"), ATTR_MEMORY_EDEN_SIZE); - if (before.hasField("edenSpace") - && before.getValue("edenSpace") instanceof RecordedObject beforeSpace) { - if (edenSpace.hasField("size") && beforeSpace.hasField("size")) { - memoryHistogram.record( - edenSpace.getLong("size") - beforeSpace.getLong("size"), ATTR_MEMORY_EDEN_SIZE_DELTA); + if (after.hasField("edenSpace")) { + Object edenSpaceObj = after.getValue("edenSpace"); + if (edenSpaceObj instanceof RecordedObject) { + RecordedObject edenSpace = (RecordedObject) edenSpaceObj; + memoryHistogram.record(edenSpace.getLong("size"), ATTR_MEMORY_EDEN_SIZE); + if (before.hasField("edenSpace")) { + Object beforeSpaceObj = before.getValue("edenSpace"); + if (beforeSpaceObj instanceof RecordedObject) { + RecordedObject beforeSpace = (RecordedObject) beforeSpaceObj; + if (edenSpace.hasField("size") && beforeSpace.hasField("size")) { + memoryHistogram.record( + edenSpace.getLong("size") - beforeSpace.getLong("size"), + ATTR_MEMORY_EDEN_SIZE_DELTA); + } + } } } } - if (after.hasField("fromSpace") - && after.getValue("fromSpace") instanceof RecordedObject fromSpace) { - if (fromSpace.hasField("size")) { - memoryHistogram.record(fromSpace.getLong("size"), ATTR_MEMORY_SURVIVOR_SIZE); + if (after.hasField("fromSpace")) { + Object fromSpaceObj = after.getValue("fromSpace"); + if (after.getValue("fromSpace") instanceof RecordedObject) { + RecordedObject fromSpace = (RecordedObject) fromSpaceObj; + if (fromSpace.hasField("size")) { + memoryHistogram.record(fromSpace.getLong("size"), ATTR_MEMORY_SURVIVOR_SIZE); + } } } }