]>
Commit | Line | Data |
---|---|---|
11fdf7f2 TL |
1 | from __future__ import absolute_import\r |
2 | \r | |
3 | import socket\r | |
4 | \r | |
5 | from . import MetricsAgent, MetricsField\r | |
6 | from ...common.clusterdata import ClusterAPI\r | |
7 | \r | |
8 | \r | |
9 | class CephPool(MetricsField):\r | |
10 | """ Ceph pool structure """\r | |
11 | measurement = 'ceph_pool'\r | |
12 | \r | |
13 | def __init__(self):\r | |
14 | super(CephPool, self).__init__()\r | |
15 | self.tags['cluster_id'] = None\r | |
16 | self.tags['pool_id'] = None\r | |
17 | self.fields['agenthost'] = None\r | |
18 | self.tags['agenthost_domain_id'] = None\r | |
19 | self.fields['bytes_used'] = None\r | |
20 | self.fields['max_avail'] = None\r | |
21 | self.fields['objects'] = None\r | |
22 | self.fields['wr_bytes'] = None\r | |
23 | self.fields['dirty'] = None\r | |
24 | self.fields['rd_bytes'] = None\r | |
25 | self.fields['stored_raw'] = None\r | |
26 | \r | |
27 | \r | |
28 | class CephPoolAgent(MetricsAgent):\r | |
29 | measurement = 'ceph_pool'\r | |
30 | \r | |
31 | def _collect_data(self):\r | |
32 | # process data and save to 'self.data'\r | |
33 | obj_api = ClusterAPI(self._module_inst)\r | |
34 | df_data = obj_api.module.get('df')\r | |
35 | cluster_id = obj_api.get_cluster_id()\r | |
36 | for pool in df_data.get('pools', []):\r | |
37 | d_pool = CephPool()\r | |
38 | p_id = pool.get('id')\r | |
39 | d_pool.tags['cluster_id'] = cluster_id\r | |
40 | d_pool.tags['pool_id'] = p_id\r | |
41 | d_pool.fields['agenthost'] = socket.gethostname()\r | |
42 | d_pool.tags['agenthost_domain_id'] = cluster_id\r | |
43 | d_pool.fields['bytes_used'] = \\r | |
44 | pool.get('stats', {}).get('bytes_used', 0)\r | |
45 | d_pool.fields['max_avail'] = \\r | |
46 | pool.get('stats', {}).get('max_avail', 0)\r | |
47 | d_pool.fields['objects'] = \\r | |
48 | pool.get('stats', {}).get('objects', 0)\r | |
49 | d_pool.fields['wr_bytes'] = \\r | |
50 | pool.get('stats', {}).get('wr_bytes', 0)\r | |
51 | d_pool.fields['dirty'] = \\r | |
52 | pool.get('stats', {}).get('dirty', 0)\r | |
53 | d_pool.fields['rd_bytes'] = \\r | |
54 | pool.get('stats', {}).get('rd_bytes', 0)\r | |
55 | d_pool.fields['stored_raw'] = \\r | |
56 | pool.get('stats', {}).get('stored_raw', 0)\r | |
57 | self.data.append(d_pool)\r |