Export HiveMQ Metrics from either Prometheus or a Grafana Datasource
It is recommended to install and monitor HiveMQ broker with Prometheus and Grafana. Metrics collected in this fashion can be batch exported with the HiveMQ grafana-metrics-exporter
tool.
Prerequisite
Java 11+ running on your machine
Download the Grafana Exporter tool
Instructions
Request from the HiveMQ Support Team to provide you with the HiveMQ
grafana-metrics-exporter
tool. The tool is provided as a JAR file namedhivemq-metrics-exporter.jar
Run the exporter.
You can run the exporter with (Java 11+):
java -jar hivemq-metrics-exporter.jar <options>
You can run a quick test if the parameters are correct by adding the
--test
param, then only the first metric is exported. Debug output can be enabled with-v
Exporting from Grafana
Find the Grafana Datasource Id.
To export the metrics from a Grafana Datasource first find the Datasource Id. To find the ID for the desired Grafana Datasource, first, log in to Grafana and next go to Menu→Configuration→Data Sources* and click on the desired Datasource, then the ID is part of the URLExample URL: https://my.grafana-url.com:port/datasources/edit/1/.
In the Example URL, the ID for the Datasource is
1
.Note: If you cannot reach the Menu→Configuration→Data Sources, it indicates that you do not have necessary access rights to the Grafana. In this case, you need to contact the admin of Grafana and get the necessary access rights.
In case the ID is alphanumeric(e.g. AB123BC), please find the numerical ID via Find Grafana Datasource Id by its Name
Run the exporter. A full command should look like the following
In case you are using localhost via port-forwarding
please use
--url "http://localhost:port"
, where port is the target port of Grafana serviceusername: admin, password: prom-operator
Time is in UTC and ends with letter Z
java -jar hivemq-metrics-exporter.jar \
--url "https://my.grafana-url.com:port/grafana" \
-u "myusername" \
-p "mypassword" \
-ds 1 \
-f "tag1=\"mytagvalue1\",tag2=\"mytagvalue2\"" \
--from "2021-08-01T10:00:00Z" \
--to "2021-08-01T19:00:00Z" \
--step 15s
The result is a ZIP file that contains a JSON for each HiveMQ metric.
Exporting from Prometheus
Sometimes, Prometheus is installed but Grafana is not.
To export directly from Prometheus use the option “--direct
“.
A full command looks like this:
java -jar hivemq-metrics-exporter.jar \
--url "https://my.prometheus-url.com:port" \
-u "myusername" \
-p "mypassword" \
--direct \
-ds 1 \
-f "tag1=\"mytagvalue1\",tag2=\"mytagvalue2\"" \
--from "2021-08-01T10:00:00Z" \
--to "2021-08-01T19:00:00Z" \
--step 15s
The result is a ZIP file that contains a JSON for each HiveMQ metric.
Note, you can specify any numeric Datasource id with option --direct
, as with direct Prometheus export the Datasource id is ignored.
Params
Name | Description | Required | Example |
---|---|---|---|
| Grafana URL (Without trailing slash) | x |
|
| Grafana Datasource ID | x |
|
| Start timestamp in ISO Format. If it ends with | x |
|
| End timestamp in ISO Format. If it ends with | x |
|
| Grafana Username |
|
|
| Grafana Password. Can be passed as param directly |
|
|
| Prometheus Filter to only pull HiveMQ metrics with specific tags. Example: If you would get the HiveMQ metrics with the query |
|
|
| Step size, the distance between measured points, should be greater or equal to the Prometheus scrape interval. Default: |
|
|
| Test Mode stops after the first metric. Good for testing if the params are correct |
|
|
| Enable verbose mode, good for debugging. Very verbose! |
|
|
To get help on all available parameters of the command, run the command with the option --help
:
java -jar hivemq-metrics-exporter.jar --help
This will output the full list of available options and values.
Troubleshooting
In case the Datasource Id is unknown, but the name of the Datasource is known, follow the steps of the following article to find the Datasource id by the Datasource name:
Find Grafana Datasource Id by its Name
What are ‘tag1’ and ‘tag2’ arguments?
In Prometheus, labels are key-value pairs that are associated with metrics. When a Prometheus server scrapes a target, it collects metric data from the target and attaches labels to the collected data to provide additional information about the metric.
The labels displayed in the Prometheus UI's Targets page are the labels that have been attached to the metrics collected from the target. These labels can provide information about the source of the metric data, such as the host, application, or process that generated the metric. Labels can also be used to organize and filter metrics, allowing users to more easily query and analyze the data.
Same labels and values can be used as a ‘tag1’ and ‘tag2’ arguments of the metrics-exporter tool to refine the metrics you want to export from the metrics you do no want to export.