+++ /dev/null
-from __future__ import absolute_import\r
-\r
-from .. import BaseAgent\r
-from ...common import DP_MGR_STAT_FAILED, DP_MGR_STAT_WARNING, DP_MGR_STAT_OK\r
-\r
-AGENT_VERSION = '1.0.0'\r
-\r
-\r
-class MetricsField(object):\r
- def __init__(self):\r
- self.tags = {}\r
- self.fields = {}\r
- self.timestamp = None\r
-\r
- def __str__(self):\r
- return str({\r
- 'tags': self.tags,\r
- 'fields': self.fields,\r
- 'timestamp': self.timestamp\r
- })\r
-\r
-\r
-class MetricsAgent(BaseAgent):\r
-\r
- def log_summary(self, status_info):\r
- try:\r
- if status_info:\r
- measurement = status_info['measurement']\r
- success_count = status_info['success_count']\r
- failure_count = status_info['failure_count']\r
- total_count = success_count + failure_count\r
- display_string = \\r
- '%s agent stats in total count: %s, success count: %s, failure count: %s.'\r
- self._logger.info(\r
- display_string % (measurement, total_count, success_count, failure_count)\r
- )\r
- except Exception as e:\r
- self._logger.error(str(e))\r
-\r
- def _run(self):\r
- collect_data = self.data\r
- result = {}\r
- if collect_data and self._client:\r
- status_info = self._client.send_info(collect_data, self.measurement)\r
- # show summary info\r
- self.log_summary(status_info)\r
- # write sub_agent buffer\r
- total_count = status_info['success_count'] + status_info['failure_count']\r
- if total_count:\r
- if status_info['success_count'] == 0:\r
- self._module_inst.status = \\r
- {'status': DP_MGR_STAT_FAILED,\r
- 'reason': 'failed to send metrics data to the server'}\r
- elif status_info['failure_count'] == 0:\r
- self._module_inst.status = \\r
- {'status': DP_MGR_STAT_OK}\r
- else:\r
- self._module_inst.status = \\r
- {'status': DP_MGR_STAT_WARNING,\r
- 'reason': 'failed to send partial metrics data to the server'}\r
- return result\r