diff --git a/docker-compose/glances.conf b/docker-compose/glances.conf index f07ff1c0..50066773 100644 --- a/docker-compose/glances.conf +++ b/docker-compose/glances.conf @@ -600,6 +600,7 @@ user=guest password=guest topic=glances topic_structure=per-metric +callback_api_version=2 [couchdb] # Configuration for the --export couchdb option diff --git a/glances/exports/mqtt/__init__.py b/glances/exports/mqtt/__init__.py index 9055fa6f..a9a9f6dd 100644 --- a/glances/exports/mqtt/__init__.py +++ b/glances/exports/mqtt/__init__.py @@ -38,7 +38,7 @@ class Export(GlancesExport): # Load the MQTT configuration file self.export_enable = self.load_conf( - 'mqtt', mandatories=['host', 'password'], options=['port', 'user', 'topic', 'tls', 'topic_structure'] + 'mqtt', mandatories=['host', 'password'], options=['port', 'user', 'topic', 'tls', 'topic_structure', 'callback_api_version'] ) if not self.export_enable: exit('Missing MQTT config') @@ -61,11 +61,14 @@ class Export(GlancesExport): exit("MQTT client initialization failed") def init(self): + # Get the current callback api version + self.callback_api_version = int(self.callback_api_version) or 2 + """Init the connection to the MQTT server.""" if not self.export_enable: return None try: - client = paho.Client(client_id='glances_' + self.hostname, clean_session=False) + client = paho.Client(self.callback_api_version, client_id='glances_' + self.hostname, clean_session=False) client.username_pw_set(username=self.user, password=self.password) if self.tls: client.tls_set(certifi.where())