@@ -53,6 +53,7 @@ def __init__(self, **kwargs):
53
53
self .__qh = None
54
54
self .__sensorsConf = None
55
55
self .__metaData = None
56
+ self .__metricsDesc = {}
56
57
self .logger = kwargs ['logger' ]
57
58
self .server = kwargs ['server' ]
58
59
self .port = kwargs ['port' ]
@@ -63,6 +64,7 @@ def __init__(self, **kwargs):
63
64
self .sleepTime = kwargs .get ('sleepTime' , 60 )
64
65
65
66
self .__initializeTables ()
67
+ self .__getSupportedMetrics ()
66
68
67
69
@property
68
70
def qh (self ):
@@ -82,6 +84,50 @@ def SensorsConfig(self):
82
84
def metaData (self ):
83
85
return self .__metaData
84
86
87
+ @property
88
+ def metricsDesc (self ):
89
+ return self .__metricsDesc
90
+
91
+ def getSensorPeriod (self , metric ):
92
+ bucketSize = 0
93
+ sensor = self .metaData .getSensorForMetric (metric )
94
+ if not sensor :
95
+ self .logger .error (MSG ['MetricErr' ].format (metric ))
96
+ raise cherrypy .HTTPError (404 , MSG ['MetricErr' ].format (metric ))
97
+ elif sensor in ('GPFSPoolCap' , 'GPFSInodeCap' ):
98
+ sensor = 'GPFSDiskCap'
99
+ elif sensor in ('GPFSNSDFS' , 'GPFSNSDPool' ):
100
+ sensor = 'GPFSNSDDisk'
101
+ elif sensor == 'DomainStore' :
102
+ return 1
103
+
104
+ for sensorAttr in self .SensorsConfig :
105
+ if sensorAttr ['name' ] == str ('\" %s\" ' % sensor ):
106
+ bucketSize = int (sensorAttr ['period' ])
107
+ return bucketSize
108
+
109
+ def __getSupportedMetrics (self ):
110
+ """retrieve all defined (enabled and disabled) metrics list by querying topo -m"""
111
+
112
+ metricSpec = {}
113
+
114
+ outp = self .qh .getAvailableMetrics ()
115
+
116
+ if not outp or outp == "" or outp .startswith ("Error:" ):
117
+ self .logger .warning (MSG ['NoData' ])
118
+ return
119
+
120
+ for line in outp .split ("\n " ):
121
+ if len (line ) > 0 :
122
+ tokens = line .split (";" )
123
+ if tokens and len (tokens ) > 2 :
124
+ name = tokens [0 ]
125
+ desc = tokens [2 ] or "No description provided"
126
+ metricSpec [name ] = desc
127
+ else :
128
+ self .logger .warning (MSG ['DataWrongFormat' ].format (line ))
129
+ self .__metricsDesc = metricSpec
130
+
85
131
def __initializeTables (self ):
86
132
'''Read the topology from ZIMon and (re-)construct
87
133
the tables for metrics, keys, key elements (tag keys)
0 commit comments