From 60e902d7cdda4cffad9e53fa9ec50c9ceb1d8c83 Mon Sep 17 00:00:00 2001 From: zbeacon Date: Fri, 8 Nov 2019 16:28:31 +0200 Subject: [PATCH] Added statistic about received and messages sent. --- .../etc/thingsboard-gateway/configs.tar.gz | Bin 4357 -> 4359 bytes setup.cfg | 2 +- setup.py | 2 +- thingsboard-gateway-2.0.0-1.noarch.rpm | Bin 17165 -> 17169 bytes thingsboard-gateway-2.0.1.tar.gz | Bin 27093 -> 27075 bytes .../connectors/modbus/modbus_connector.py | 21 +++++++++++++++++- .../connectors/mqtt/mqtt_connector.py | 13 +++++++---- .../connectors/opcua/opcua_connector.py | 7 ++++++ .../gateway/tb_gateway_service.py | 18 +++++++++++++++ 9 files changed, 56 insertions(+), 7 deletions(-) diff --git a/for_build/etc/thingsboard-gateway/configs.tar.gz b/for_build/etc/thingsboard-gateway/configs.tar.gz index a3e9775ecbcdb6f7dab502301160f1c36fe725f2..e18ad26bda413222d2d7fa21974b5cc738d3ece1 100644 GIT binary patch delta 4334 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 literal 4357 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 diff --git a/setup.cfg b/setup.cfg index 7c55a9e0..5ea09f2f 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = thingsboard-gateway -version = 2.0.1 +version = 2.0.2 description = Thingsboard Gateway for IoT devices. long_description = The Thingsboard IoT Gateway is an open-source solution that allows you to integrate devices connected to legacy and third-party systems with Thingsboard. license = Apache Software License (Apache Software License 2.0) diff --git a/setup.py b/setup.py index 601d9546..22f5e39f 100644 --- a/setup.py +++ b/setup.py @@ -34,7 +34,7 @@ setup( 'PyYAML', 'six' ], - download_url='https://github.com/thingsboard/thingsboard-gateway/archive/2.0.1rc-python.tar.gz', + download_url='https://github.com/thingsboard/thingsboard-gateway/archive/rc2.0.2-python.tar.gz', entry_points={ 'console_scripts': [ 'thingsboard-gateway = thingsboard_gateway.tb_gateway:daemon' diff --git a/thingsboard-gateway-2.0.0-1.noarch.rpm b/thingsboard-gateway-2.0.0-1.noarch.rpm index 0d2629f7cc5e20bca68ee894cbead2b8de3395c7..3e61764418d80b0b72ffb9bf3031d976dd8ca56b 100644 GIT binary patch delta 4112 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 diff --git a/thingsboard-gateway-2.0.1.tar.gz b/thingsboard-gateway-2.0.1.tar.gz index 9961548ecc836fdb85f52fe131f742699064c296..571b54409a4c33f8a4f2d94ef1d935774b1f660b 100644 GIT binary patch delta 25308 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 delta 25308 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 self.__rpc_requests_in_progress[rpc_in_progress][1]: self.__rpc_requests_in_progress[rpc_in_progress][2](rpc_in_progress) self.cancel_rpc_request(rpc_in_progress) + + if time.time() - gateway_statistic_send >= 60000: + summary_messages = {"SummaryReceived": 0, "SummarySent": 0} + telemetry = {} + for connector in self.available_connectors: + # if self.available_connectors[connector].is_connected(): + telemetry[(connector+' MessagesReceived').replace(' ', '')] = self.available_connectors[connector].statistics['MessagesReceived'] + telemetry[(connector+' MessagesSent').replace(' ', '')] = self.available_connectors[connector].statistics['MessagesSent'] + self.tb_client.client.send_telemetry(telemetry) + summary_messages['SummaryReceived'] += telemetry[(connector+' MessagesReceived').replace(' ', '')] + summary_messages['SummarySent'] += telemetry[(connector+' MessagesSent').replace(' ', '')] + self.tb_client.client.send_telemetry(summary_messages) + gateway_statistic_send = time.time() + time.sleep(.1) except Exception as e: log.exception(e) @@ -115,6 +130,9 @@ class TBGatewayService: except Exception as e: log.exception(e) + def __send_statistic(self): + self.tb_client.client.gw_send_telemetry() + def send_to_storage(self, connector_name, data): self._send_to_storage(connector_name, data)