What's New in HiveMQ 4.4?
Written by Magi Erber
Category: HiveMQ Release
Published: August 11, 2020
We are pleased to announce the release of HiveMQ 4.4. HiveMQ 4.4 is the result of our customers’ feedback and comes with a bunch of new features. In summary this new version enables you to automate the operation and gain finer grained observability of your HiveMQ deployment as well as easier integration into third party applications.
Here are the Highlights of our HiveMQ 4.4 release:
- A new REST API enables you to programmatically interact with your HiveMQ broker.
- The Client Event History offers you a historical view of all client events to analyze client behavioral patterns or diagnose problems at a later time.
- Two new MQTT topics to help you understand why and when messages expire or drop for easier reporting and analysis of expired or dropped messages.
- To simplify deployment and operation of HiveMQ on Kubernetes, we are including the new HiveMQ Kubernetes Operator in this release. Our new operator lets you benefit from all our knowledge on how to optimally deploy and operate HiveMQ clusters and extensions on Kubernetes.
- Significant improvements of existing Enterprise Extensions and a brand new Bridge Extension that allows HiveMQ to bridge to another MQTT broker for scalable, reliable and bi-directional exchange of MQTT message streams.
HiveMQ 4.4 is a drop-in replacement for version 4.3 and supports rolling upgrade with zero downtime. To learn more, see our HiveMQ Upgrade Guide. You can learn about all features, new products, and tools in the paragraphs below or watch the summary in this short video:
With HiveMQ 4.4, we proudly introduce our new REST API, which allows HiveMQ administrators to automate the Control Center actions they would normally perform manually. The REST API can be used to interact with HiveMQ programmatically. For example, to start a trace recording every day at the same time, get a list of connected clients for further analysis, or to initiate a backup process from a script. Included in this release is the REST API for the backup and restore functionality, clients overview and details, and trace recordings.
Client Event History
HiveMQ deployments can handle millions of clients with massive amounts of data. This level of activity can make it difficult to troubleshoot a single client. The new Client Event History adds fine-grained, per-client observability to the HiveMQ Control Center and provides a historical view of client events. The event history makes it easy for you to understand what happened with a single client and helps you to diagnose problems, even at a later time. Integration into our extension SDK allows you to trigger actions based on the events or export the historical data to analyze in a third party tool.
New MQTT Topics
HiveMQ 4.4 introduces special analytical topics that you can use to automatically collect detailed information for all expired and dropped MQTT messages on your HiveMQ system. Previously, expired and dropped message data was limited and difficult to obtain. Our new MQTT topics simplify access to all the data and metrics you need to analyze, report, or further process expired and dropped messages.
The $expired topic offers you an easy way to stay informed about any messages that expire on HiveMQ with additional data such as the client or shared subscription the message expired for. The $dropped topic gives you access to all dropped messages including the dropped reason code and the client for which the message was dropped.
The new topics use a reserved namespace that prevents conflicts with your existing workflows, applications and security mechanism. While the original message is kept, the additional information is attached in the user properties to give you 100% compatibility with the MQTT 5 specification. In addition, these special analytical topics can be used with the Enterprise Extension for Kafka to forward the expired and dropped messages to your Kafka cluster for further processing.
HiveMQ Kubernetes Operator
Last month, we announced the early access preview of our HiveMQ Kubernetes Operator. This new operator significantly simplifies the deployment and operation of HiveMQ clusters on any Kubernetes-based platform. Additionally, the operator provides lifecycle management for HiveMQ extensions, automated monitoring with Prometheus, and a convenient predefined Helm Chart that automates common deployment and management tasks.
Introducing Enterprise Bridge Extension
Especially in the industry sector, HiveMQ customers are using multiple deployments in different and restricted environments, like factories. Sharing important IoT data between these environments or stream important data to the central data center, is one main concern here. In response to a growing number of customer requests we are thrilled to introduce our Enterprise Bridge Extension.
This new Enterprise Extension is a scalable and secure solution to bridge between a HiveMQ cluster and any other MQTT broker, for example to build a federation of multiple MQTT clusters or efficiently stream important data from restricted areas to a central data center for further processing. Our bridge extension supports uni- and bidirectional communication using flexible topic mappings that allow you to define the source and destination topics with the use of wildcards, filters, and variables. It is also possible to aggregate or multicast topics. To ensure a fully transparent message flow, the Enterprise Bridge Extension also provides a detailed message log.
Expanded Observability for IoT Deployments
Shared Subscription View
Shared subscriptions are a popular way to achieve client-side load balancing. Although this feature had been available to HiveMQ customers for a long time, shared subscriptions only became an official standard in the MQTT 5 specification. Nevertheless, to see all available shared subscriptions, including the clients that are part of the shared group, has been a time-consuming work so far. The newly added Shared Subscription Overview in the HiveMQ Control Center helps HiveMQ administrators keep track of all available shared subscriptions. For your convenience, this overview table is filterable and sortable.
From the overview of all available shared subscriptions you get easy access to the clients that are part of the specific shared group. In the Shared Subscription Detail View all clients are listed that are part of this shared group. Each listed client is linked to the detail view of the client as well, so you can easily switch between the different detail views in your HiveMQ Control Center.
Session Attributes in Client Details
Session Attributes are great to add arbitrary key-value data to the session of your MQTT clients. HiveMQ 4.4 adds the Session Attributes Overview for each client in the Client Details View, so you can easily review the available session attributes and check if they are correct.
Additional sorting functionality on HiveMQ Control Center Client Overview
HiveMQ is a scalable and reliable MQTT broker that allows asynchronous communication. This means that MQTT clients don’t have to be online when a message arrives. If the MQTT client is offline, HiveMQ queues the messages for it up to a certain limit. However, reaching this limit causes HiveMQ to drop messages for the client to protect the system from overload. Identifying clients that have not been connected for some time and are likely to cause dropped messages is not only desirable but also useful.
The Client Overview in the HiveMQ Control Center has now been extended by a column that shows how many messages are queued for each client. This column can be used to sort the MQTT clients so that the clients responsible for the unexpected size of the global message queue can be identified.
More functionality for the HiveMQ Enterprise Extensions and Extension SDK
For your convenience HiveMQ 4.4 release comes with all Enterprise Extensions installed, so you do not have to download and install them manually. The Enterprise Extensions are disabled and can be enabled easily to get you started quickly.
Enterprise Extension for Kafka - Customization API
The HiveMQ Enterprise Extension for Kafka is the industry’s best way for bidirectional communication of MQTT messages with a Kafka cluster. While the Kafka to MQTT communication offered a lot more flexibility in converting Kafka records into MQTT messages, the MQTT to Kafka way has been less flexible. To solve this less flexible approach, the new release of the Kafka extension introduces the Customization API. This new API allows you to programmatically specify sophisticated and customized handling of message transformations. The MQTT to Kafka Transformer enables users to customize the transformation of MQTT messages into Kafka records by adding their own code to implement the message transformation.
Updated HiveMQ Extension SDK
One of the unique features of HiveMQ is its flexibility to integrate with other systems. With the current release, HiveMQ’s extension framework is extended to include the following new APIs:
RetainedMessageStore iterateAllRetainedMessages: Provides easy access to all retained messages currently available at HiveMQ.
PUBLISH Arrival Timestamp: The timestamp when a PUBLISH packet arrives at HiveMQ is now available over the HiveMQ Extension SDK.
Individual Client Queue Size: Allows extension developers to set an individual queue size for a client in the HiveMQ Extension SDK.
Client Export using MQTT CLI
Since its first release nearly one year ago, the MQTT CLI has proven to be a useful tool for anyone who is working with MQTT. The MQTT CLI provides an easy way to generate an MQTT test client that can test the connection to an MQTT broker, and the communication flow between broker and client.
However, HiveMQ customers required a tool that helps them to get all information about the clients that have a session with a HiveMQ broker. This prompted us to extend the functionality of the MQTT CLI to add export functionality for all clients connected to a HiveMQ broker. The brand new client export functionality of the MQTT CLI gives you all the details about the connected clients that you are already used to from the Control Center. The data from all clients is exported to a CSV file, so you can import it for example into Microsoft Excel or similar to sort, filter and search for specific characteristics.
The MQTT CLI is added to your HiveMQ 4.4 bundle as an executable file so that you can run the MQTT CLI where your HiveMQ is installed. If you are not yet familiar with the MQTT CLI, you can find the full documentation about all functionality on github.
New Product Bundling & Release Cadence
Over the last few years, the HiveMQ ecosystem has grown steadily and we have released many new products and tools into our product portfolio. The HiveMQ 4.4 release bundles HiveMQ with the HiveMQ enterprise extensions, Kubernetes Operator, and MQTT CLI. The bundled release provides several advantages:
Starting with this release, HiveMQ and the HiveMQ Enterprise Extensions will be released in a bundle, so that you will have HiveMQ and all Enterprise Extensions immediately available with just one download. The enterprise extensions are disabled and can be enabled easily by removing the DISABLED file from the corresponding extension folder.
From now on, all of the products in a release share the same release version. For example, all products in this release are 4.4. The unified product versioning gives you a clear overview of which enterprise extensions are compatible with your HiveMQ version.
To make it easier for you to plan your HiveMQ upgrades, the bundled releases of HiveMQ and the Enterprise Extensions are moving to a set release schedule: Beginning with this version, feature releases of HiveMQ, the HiveMQ enterprise extensions, the HiveMQ Kubernetes Operator, and the MQTT CLI are scheduled to take place three times a year (April, August, and December). Maintenance releases will continue to be made available on a monthly basis.