krylovsk / Mqtt Benchmark
Licence: apache-2.0
Simple MQTT (broker) benchmarking tool
Stars: ✭ 146
Programming Languages
go
31211 projects - #10 most used programming language
Labels
Projects that are alternatives of or similar to Mqtt Benchmark
Rtb
Benchmarking tool to stress real-time protocols
Stars: ✭ 35 (-76.03%)
Mutual labels: mqtt, benchmarking
Tsung
Tsung is a high-performance benchmark framework for various protocols including HTTP, XMPP, LDAP, etc.
Stars: ✭ 2,185 (+1396.58%)
Mutual labels: mqtt, benchmarking
Sltbench
C++ benchmark tool. Practical, stable and fast performance testing framework.
Stars: ✭ 137 (-6.16%)
Mutual labels: benchmarking
Mqtt Client Framework
iOS, macOS, tvOS native ObjectiveC MQTT Client Framework
Stars: ✭ 1,722 (+1079.45%)
Mutual labels: mqtt
Shadowreader
Serverless load testing for replaying website traffic. Powered by AWS Lambda.
Stars: ✭ 138 (-5.48%)
Mutual labels: benchmarking
Mqtt Ir Transceiver
ESP8266 based bidirectional bridge between MQTT and IR (change MQTT message to IR signal and change received IR signal to MQTT message)
Stars: ✭ 130 (-10.96%)
Mutual labels: mqtt
Msgflo
Distributed Flow-Based Programming via message queues
Stars: ✭ 136 (-6.85%)
Mutual labels: mqtt
Esp32 Rhasspy Satellite
The repo has implementing an esp32 standalone MQTT audio streamer. Is is desinged to work as a satellite for Rhasspy (https://rhasspy.readthedocs.io/en/latest/). It supports multiple devices
Stars: ✭ 138 (-5.48%)
Mutual labels: mqtt
System sensors
Logging of system sensor specific for the RPI and sending them to a MQTT broker
Stars: ✭ 134 (-8.22%)
Mutual labels: mqtt
Weewx Belchertown
A clean and modern weewx skin with real time streaming updates, forecast data and interactive charts. View it in action at BelchertownWeather.com
Stars: ✭ 131 (-10.27%)
Mutual labels: mqtt
Ct Smart Home
A ready-to-use Node-RED setup for home automation
Stars: ✭ 132 (-9.59%)
Mutual labels: mqtt
Graphql Mqtt Subscriptions
graphql-subscriptions implementation for MQTT protocol
Stars: ✭ 133 (-8.9%)
Mutual labels: mqtt
MQTT benchmarking tool
A simple MQTT (broker) benchmarking tool.
Installation:
go get github.com/krylovsk/mqtt-benchmark
The tool supports multiple concurrent clients, configurable message size, etc:
$ ./mqtt-benchmark -h
Usage of ./mqtt-benchmark:
-broker string
MQTT broker endpoint as scheme://host:port (default "tcp://localhost:1883")
-client-cert string
Path to client certificate in PEM format
-client-key string
Path to private clientKey in PEM format
-client-prefix string
MQTT client id prefix (suffixed with '-<client-num>' (default "mqtt-benchmark")
-clients int
Number of clients to start (default 10)
-count int
Number of messages to send per client (default 100)
-format string
Output format: text|json (default "text")
-password string
MQTT client password (empty if auth disabled)
-qos int
QoS for published messages (default 1)
-quiet
Suppress logs while running
-size int
Size of the messages payload (bytes) (default 100)
-topic string
MQTT topic for outgoing messages (default "/test")
-username string
MQTT client username (empty if auth disabled)
-wait int
QoS 1 wait timeout in milliseconds (default 60000)
NOTE: if
count=1
orclients=1
, the sample standard deviation will be returned as0
(convention due to the lack of NaN support in JSON)
Two output formats supported: human-readable plain text and JSON.
Example use and output:
> mqtt-benchmark --broker tcp://broker.local:1883 --count 100 --size 100 --clients 100 --qos 2 --format text
....
======= CLIENT 27 =======
Ratio: 1 (100/100)
Runtime (s): 16.396
Msg time min (ms): 9.466
Msg time max (ms): 1880.769
Msg time mean (ms): 150.193
Msg time std (ms): 201.884
Bandwidth (msg/sec): 6.099
========= TOTAL (100) =========
Total Ratio: 1 (10000/10000)
Total Runime (sec): 16.398
Average Runtime (sec): 15.514
Msg time min (ms): 7.766
Msg time max (ms): 2034.076
Msg time mean mean (ms): 140.751
Msg time mean std (ms): 13.695
Average Bandwidth (msg/sec): 6.761
Total Bandwidth (msg/sec): 676.112
Similarly, in JSON:
> mqtt-benchmark --broker tcp://broker.local:1883 --count 100 --size 100 --clients 100 --qos 2 --format json --quiet
{
runs: [
...
{
"id": 61,
"successes": 100,
"failures": 0,
"run_time": 16.142762197,
"msg_tim_min": 12.798859,
"msg_time_max": 1273.9553740000001,
"msg_time_mean": 147.66799521,
"msg_time_std": 152.08244221156286,
"msgs_per_sec": 6.194726700402251
}
],
"totals": {
"successes": 10000,
"failures": 0,
"total_run_time": 16.153741746,
"avg_run_time": 15.14702422494,
"msg_time_min": 7.852086000000001,
"msg_time_max": 1285.241845,
"msg_time_mean_avg": 136.4360292677,
"msg_time_mean_std": 12.816965054355633,
"total_msgs_per_sec": 681.0374046459865,
"avg_msgs_per_sec": 6.810374046459865
}
}
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].