diff options
Diffstat (limited to 'glances/exports/glances_kafka.py')
-rw-r--r-- | glances/exports/glances_kafka.py | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/glances/exports/glances_kafka.py b/glances/exports/glances_kafka.py index c328d7f6..f5a6127e 100644 --- a/glances/exports/glances_kafka.py +++ b/glances/exports/glances_kafka.py @@ -27,6 +27,7 @@ from glances.exports.glances_export import GlancesExport from kafka import KafkaProducer import json +import codecs class Export(GlancesExport): @@ -42,11 +43,14 @@ class Export(GlancesExport): # Optionals configuration keys self.compression = None + self.tags = None # Load the Kafka configuration file section self.export_enable = self.load_conf('kafka', - mandatories=['host', 'port', 'topic'], - options=['compression']) + mandatories=['host', 'port', + 'topic'], + options=['compression', + 'tags']) if not self.export_enable: sys.exit(2) @@ -79,13 +83,16 @@ class Export(GlancesExport): # Create DB input data = dict(zip(columns, points)) + if self.tags is not None: + data.update(self.parse_tags(self.tags)) # Send stats to the kafka topic # key=<plugin name> # value=JSON dict try: self.client.send(self.topic, - key=name, + # Kafka key name needs to be bytes #1593 + key=name.encode('utf-8'), value=data) except Exception as e: logger.error("Cannot export {} stats to Kafka ({})".format(name, e)) |