]> git.proxmox.com Git - ceph.git/blame - ceph/src/pybind/mgr/diskprediction_cloud/agent/metrics/ceph_pool.py
bump version to 15.2.11-pve1
[ceph.git] / ceph / src / pybind / mgr / diskprediction_cloud / agent / metrics / ceph_pool.py
CommitLineData
11fdf7f2
TL
1from __future__ import absolute_import\r
2\r
3import socket\r
4\r
5from . import MetricsAgent, MetricsField\r
6from ...common.clusterdata import ClusterAPI\r
7\r
8\r
9class 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
28class 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