@@ -53,6 +53,7 @@ def __init__(self, **kwargs):
5353 self .__qh = None
5454 self .__sensorsConf = None
5555 self .__metaData = None
56+ self .__metricsDesc = {}
5657 self .logger = kwargs ['logger' ]
5758 self .server = kwargs ['server' ]
5859 self .port = kwargs ['port' ]
@@ -63,6 +64,7 @@ def __init__(self, **kwargs):
6364 self .sleepTime = kwargs .get ('sleepTime' , 60 )
6465
6566 self .__initializeTables ()
67+ self .__getSupportedMetrics ()
6668
6769 @property
6870 def qh (self ):
@@ -82,6 +84,50 @@ def SensorsConfig(self):
8284 def metaData (self ):
8385 return self .__metaData
8486
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+
85131 def __initializeTables (self ):
86132 '''Read the topology from ZIMon and (re-)construct
87133 the tables for metrics, keys, key elements (tag keys)
0 commit comments