diff --git a/kafka-ui-api/src/main/java/com/provectus/kafka/ui/emitter/MessageFilters.java b/kafka-ui-api/src/main/java/com/provectus/kafka/ui/emitter/MessageFilters.java index 446f166bfe..ea0707f102 100644 --- a/kafka-ui-api/src/main/java/com/provectus/kafka/ui/emitter/MessageFilters.java +++ b/kafka-ui-api/src/main/java/com/provectus/kafka/ui/emitter/MessageFilters.java @@ -43,6 +43,7 @@ public class MessageFilters { return msg -> { var bindings = getGroovyEngine().createBindings(); bindings.put("partition", msg.getPartition()); + bindings.put("offset", msg.getOffset()); bindings.put("timestampMs", msg.getTimestamp().toInstant().toEpochMilli()); bindings.put("keyAsText", msg.getKey()); bindings.put("valueAsText", msg.getContent()); diff --git a/kafka-ui-api/src/test/java/com/provectus/kafka/ui/emitter/MessageFiltersTest.java b/kafka-ui-api/src/test/java/com/provectus/kafka/ui/emitter/MessageFiltersTest.java index 0986a292ef..426ba98020 100644 --- a/kafka-ui-api/src/test/java/com/provectus/kafka/ui/emitter/MessageFiltersTest.java +++ b/kafka-ui-api/src/test/java/com/provectus/kafka/ui/emitter/MessageFiltersTest.java @@ -73,6 +73,13 @@ class MessageFiltersTest { assertFalse(f.test(msg().partition(0))); } + @Test + void canCheckOffset() { + var f = groovyScriptFilter("offset == 100"); + assertTrue(f.test(msg().offset(100L))); + assertFalse(f.test(msg().offset(200L))); + } + @Test void canCheckTimestampMs() { var ts = OffsetDateTime.now();