server/repository.py
branchstable
changeset 4714 fccda6dd91bf
parent 4706 6035e96b64dd
child 4719 aaed3f813ef8
equal deleted inserted replaced
4713:785299dfc2c0 4714:fccda6dd91bf
   381             self.info('sql cache usage: %s/%s (%s%%)', hits+ misses, nocache,
   381             self.info('sql cache usage: %s/%s (%s%%)', hits+ misses, nocache,
   382                       ((hits + misses) * 100) / (hits + misses + nocache))
   382                       ((hits + misses) * 100) / (hits + misses + nocache))
   383         except ZeroDivisionError:
   383         except ZeroDivisionError:
   384             pass
   384             pass
   385 
   385 
   386     def stats(self):
   386     def stats(self): # XXX restrict to managers session?
       
   387         import threading
   387         results = {}
   388         results = {}
   388         for hits, misses, title in (
   389         for hits, misses, title in (
   389             (self.querier.cache_hit, self.querier.cache_miss, 'rqlt_st'),
   390             (self.querier.cache_hit, self.querier.cache_miss, 'rqlt_st'),
   390             (self.system_source.cache_hit, self.system_source.cache_miss, 'sql'),
   391             (self.system_source.cache_hit, self.system_source.cache_miss, 'sql'),
   391             ):
   392             ):
   392             results['%s_cache_hit' % title] =  hits
   393             results['%s_cache_hit' % title] =  hits
   393             results['%s_cache_miss' % title] = misses
   394             results['%s_cache_miss' % title] = misses
   394             results['%s_cache_hit_percent' % title] = (hits * 100) / (hits + misses)
   395             results['%s_cache_hit_percent' % title] = (hits * 100) / (hits + misses)
   395 
       
   396         results['sql_no_cache'] = self.system_source.no_cache
   396         results['sql_no_cache'] = self.system_source.no_cache
   397         results['nb_open_sessions'] = len(self._sessions)
   397         results['nb_open_sessions'] = len(self._sessions)
   398         results['nb_threads'] = len(self._running_threads)
   398         results['nb_active_threads'] = threading.activeCount()
       
   399         results['looping_tasks'] = ', '.join(str(t) for t in self._looping_tasks)
   399         results['available_pools'] = self._available_pools.qsize()
   400         results['available_pools'] = self._available_pools.qsize()
   400         return results
   401         return results
   401 
   402 
   402     def _login_from_email(self, login):
   403     def _login_from_email(self, login):
   403         session = self.internal_session()
   404         session = self.internal_session()