Offset Explorer supports custom plugins written in Java. Plugins allow you to view messages that are not natively understood by Offset Explorer, in a format that you see fit. For example, one can write a decorator for Thrift messages that will show the actual contents of the Thrift objects in a suitable format.

There is an example of how to write a plugin in the plugins/example folder in your Offset Explorer installation directory.


You need to create a class that implements the com.offsetexplorer.external.ICustomMessageDecorator2 interface. The interface is located in the 'src' directory of the provided example plugin and it has two methods that you need to implement

  • public String getDisplayName()

    This method should return a name that will be shown in the Offset Explorer's topic configuration screen where you can pick the content type for the selected topic.

  • public String decorate(String zookeeperHost, String brokerHost, String topic, long partitionId, long offset, byte[] msg, Map<String, byte[]> headers, Map<String, String> reserved)

    This method does the actual conversion from a byte array to a String that contains the desired output. The String may contain newlines. You should not throw any exceptions from this method, you should catch all throwables in a try/catch block in your implementation. The 'reserved' argument is currently used but may contain data in future releases.

Notice that the old ICustomMessageDecorator interface is deprecated but still supported. It does not provide support for message headers.


You must compile your source code using Java 11 compatible compiler.


You must put your own compiled classes and any dependencies you might have (e.g. Thrift libraries) into a SINGLE jar. Do not include any jars that are already in the 'lib' directory of Offset Explorer, especially any Apache Kafka jars.


Once you have compiled and packaged your jar, copy it to the 'plugins' folder in the Offset Explorer installation folder. Restart Offset Explorer and navigate to the topic that you want to use the decorator with. In the 'Content Types' drop-downs you should see the name of your decorator. Select it and click on 'Update'. After that, the messages/keys will be decorated using your custom decorator.

Offset Explorer | UI Tool for Apache Kafka