Sparkplug InfluxDB Extension for HiveMQ

Monitoring of IIoT data

Purpose: Monitoring
Version: 1.0.0-beta    |   License: Apache
Provider: HiveMQ    |   Verified: yes


Purpose

The HiveMQ Sparkplug Extension can be leveraged to gather MQTT Sparkplug metrics from HiveMQ and persist them into a InfluxDB database. This database can be used as the data source for a monitoring dashboard to monitor directly the data from the devices and gateways of a Sparkplug Infrastructure.

This extension is not yet ready for production use.

If you want to use this in production, please contact HiveMQ contact@hivemq.com


Flow

Sparkplug Extension Flow

Installation

Installing the extension for HiveMQ is very easy:

  1. Unzip the downloaded zip file
  2. In the folder hivemq-sparkplug-extension, modify the sparkplug.properties file to fit your needs. Check that the mandatory properties from influxDB (host, port) are set
  3. Copy the folder hivemq-sparkplug-extension to your [HIVEMQ_HOME]/extensions folder
  4. Done

Configuration

The Sparkplug Monitoring extension uses its own configuration file sparkplug.properties. The extension won’t start if this file is missing or the required properties are not set.

Dashboards

2 InfluxDB example dashboards are provided in the deploy subfolder of this extension.

Influx dashboard Description
HiveMQInfluxDB-Dashboard.json HiveMQ dashboard with the most useful hivemq metrics
SparkplugInfluxDB-Dashboard.json Sparkplug example dashboard, that vizualizes data of 2 edge nodes and their related devices.

Sparkplug Dashboard

General Configuration

Config name Required Description Default
influxdb.mode no The mode configured for the InfluxDB sender. Possibilities are: http, tcp, udp, cloud http
influxdb.host yes The host name of the InfluxDB instance.
influxdb.port yes The port number the InfluxDB instance is listening. 8086
influxdb.protocol no The protocol the InfluxDB sender uses in http mode. http
influxdb.auth no The authorization string to be used to connect to InfluxDB, of format username:password. If mode “cloud” is used, the token must be passed here
influxdb.prefix no The measurement prefix.
influxdb.database no The database name. hivemq
influxdb.reportingInterval no The reporting interval in seconds. 1
influxdb.connectTimeout no The connect and read timeout in seconds. 5000
influxdb.tags no The tags for each metric. Listed as a semicolon ( ; ) separated list.
influxdb.organization only for mode: “cloud” The organization to push data to
influxdb.bucket only for mode: “cloud” The bucket to push data to
sparkplug.version no The sparkplug version to be used spBv1.0

Example Configuration to connect to a local influxdb 2.0

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
influxdb.mode:cloud
influxdb.host:localhost
influxdb.port:8086
influxdb.protocol:http
influxdb.auth:<your token>

influxdb.bucket:hivemq
influxdb.organization:<your company>

influxdb.reportingInterval:1
influxdb.connectTimeout:5000

influxdb.tags:host=localhost 

First Steps

Quick Start Sparkplug

InfluxDB setup

If you don’t already have an InfluxDB 2.0 instance set up, here is an instruction how to start and configure an InfluxDB instance with Docker.

Sparkplug setup

The Extensions actual supports the Sparkplug B specification for a payload. The sparkplug schema is defined with protobuf.

Usage

After the extension is installed and an InfluxDB instance exists.

Example deployment

For testing purposes a simple HiveMQ docker file with the sparkplug extension, and a compose file for influxDB setup is available in the deploy/docker subfolder. Further a Kubernetes script for deploying hivemq with sparkplug extension setup in Kuberntes is available in the deploy/k8s

Influx Dashboard

An influx dashboard example SparkplugInfluxDB-Dashboard.json is available in the deploy subfolder. The dashboard contains diagrams to monitor the Sparkplug online status of edge nodes and devices. It also gathered the sparkplug data values from the example devices.


Contributing

If you want to contribute to HiveMQ Sparkplug Extension, see the Contribution Guidelines.


License

HiveMQ Sparkplug Extension is licensed under the APACHE LICENSE, VERSION 2.0. A copy of the license can be found here.

Need help?

If you encounter any problems, we are happy to help. The best place to get in contact is our support.

Back to marketplace