CI and release improvements (#2078)
* CI and release improvements
**CI Improvements:**
* Test on the last 3 major OTP versions, following the Erlang/OTP support conventions.
* Test on Both Linux and OSX for each version
* Report test failures with JUnit, allowing to identify flaky tests
* Smoke test releases on all OSes and Erlang/OTP versions and add more extensive smoke test by publishing/subscribing to messages.
**Release Improvements:**
* Fixes release configuration problems in OSX in OTP 23 and 24
* Fixes release configuration problems when using Unix domain sockets
* Upgrade to Rebar3 1.19.x
* Releases can now build on OTP 25
* Releases can now build on ARM architectures (Tested on M1 Mac and Raspberry PI)
**Maintenance Improvements**
* Use new OTP 25 peer module to allow tests running in OTP25.
* Removes any master/slave terminologies for more inclusive language. Still the main branch is `master`, we probably should switch to `main`.
* Fixes some flaky tests, skipped some in CI, yet there are some flaky tests that are repoprted in GHA, need to aim for 0.
* Fix some unused variable warnings
* Retry failed CT tests
* Retry failed CT tests
* Latest cuttlefish test
* Install pcregrep
* Install pcregrep
* Install pcregrep
* Install pcregrep
* Attempt to retry tests
* Fix rretry spec path
* Retry on cover too
* Remove noisy ct:pal calls
* Remove noisy ct:pal calls
* Remove noisy ct:pal calls
* Prepare to rename master to main
* Update eleveldb package and point rebar3_cuttlefish to vernemq repo
* Update changelog
* Format rebar.config
* install snappy
* Fix cuttlefish schema generation
* Publish CT results from forks
* Fix retrying of coverage tests
This change will allow to set http_modules as a per-listener setting. This allows to seperate, for example, the management API from the status and health pages and enables e.g. more fine-granular firewall settings. In case there are no per-listener settings, the default values are used. (#2088)
For example, the default listener could be limited to the health and status modules by setting
listeners.https.default.http_modules = vmq_status_http, vmq_health_http
Co-authored-by: mths1 <>
Introduce new metric "active_mqtt_connections"#760 (#2076)
* Adds three new metrics total_active_connections, active_mqtt_connections, and active_mqttws_connections.
* Refactor to add active connections and all connections (max reached) to vmq-admin listener show.
* Update changelog.
---------
Co-authored-by: Thoma Matthias (@mths1)
Co-authored-by: Andre Fatton <email address hidden>