EMQ v2.1-beta is now available. We improved the design of Session/Inflight and use one timer to redeliver the inflight QoS1/2 messages, and improved the GC mechanism of MQTT connection process to reduce CPU usage at the high rate of messages.
Per Client, Session Statistics
Support Per Client, Session Statistics. Enable by configuration in etc/emq.conf:
mqtt.client.enable_stats = 60s
mqtt.session.enable_stats = 60s
Add 'missed' Metrics
The 'missed' metrics will be increased when EMQ broker received PUBACK, PUBREC, PUBREL, PUBCOMP packets from clients, but missing in inflight window:
packets/puback/missed
packets/pubrec/missed
packets/pubrel/missed
packets/pubcomp/missed
Integrate Syslog
Output EMQ log to syslog::
## Syslog. Enum: on, off
log.syslog = on
## syslog level. Enum: debug, info, notice, warning, error, critical, alert, emergency
log.syslog.level = error
Upgrade QoS
Support to upgrade QoS accoding to the subscription:
mqtt.session.upgrade_qos = on
Add 'acl reload' CLI
Reload acl.conf without restarting emqttd service (#885)
etc/emq.conf Changes
- Rename mqtt.client_idle_timeout to mqtt.client.idle_timeout
- Add mqtt.client.enable_stats
- Add mqtt.session.upgrade_qos
- Delete mqtt.session.collect_interval
- Add mqtt.session.enable_stats
- Rename mqtt.session.expired_after to mqtt.session.expiry_interval
Merge modules to emq_modules
Merge the emq_mod_presence, emq_mod_subscription, emq_mod_rewrite into emq_modules
Rename emq_mod_retainer to emq_retainer project
Dashboard Plugin
Overview page: Add 'missed' metrics Client page: Add 'SendMsg', 'RecvMsg' Fields Session page: DeliverMsg、EnqueueMsg Fields
recon Plugin
Change the datatype of 'recon.gc_interval' to duration
reloader Plugin
Change the datatype of 'reloader.interval' to duration