improve control.py
This commit is contained in:
parent
6bb4308de2
commit
dd30520c62
14
control.py
14
control.py
|
@ -73,7 +73,7 @@ class EjabberdCtl(EjabberdApi):
|
|||
return result
|
||||
return result["s2s_outgoing"]
|
||||
|
||||
def fetch_registered(self, vhost=None):
|
||||
def fetch_registered_count(self, vhost=None):
|
||||
if vhost is None:
|
||||
result = self.cmd("stats", {"name":"registeredusers"})
|
||||
if "stat" in result:
|
||||
|
@ -82,3 +82,15 @@ class EjabberdCtl(EjabberdApi):
|
|||
result = self.cmd("stats_host", {"name":"registeredusers", "host": vhost})
|
||||
if "stat" in result:
|
||||
return result["stat"]
|
||||
|
||||
def fetch_muc_count(self, vhost=None, muc_host="conference"):
|
||||
host = "global"
|
||||
if vhost is not None:
|
||||
if self.verstring.major >= 19:
|
||||
host = '.'.join([muc_host, vhost])
|
||||
else:
|
||||
host = vhost
|
||||
result = self.cmd("muc_online_rooms", {"host": host})
|
||||
if "rooms" in result:
|
||||
return len(result["rooms"])
|
||||
return len(result)
|
||||
|
|
24
metrics.py
24
metrics.py
|
@ -53,18 +53,6 @@ class EjabberdMetrics(EjabberdCtl):
|
|||
return 4
|
||||
return addr.version
|
||||
|
||||
def fetch_muc(self, vhost=None):
|
||||
host = "global"
|
||||
if vhost is not None:
|
||||
if self.verstring.major >= 19:
|
||||
host = '.'.join([self.muc_host, vhost])
|
||||
else:
|
||||
host = vhost
|
||||
result = self.cmd("muc_online_rooms", {"host": host})
|
||||
if "rooms" in result:
|
||||
return len(result["rooms"])
|
||||
return len(result)
|
||||
|
||||
def update(self):
|
||||
# nodes
|
||||
self._nodes = self.fetch_nodes()
|
||||
|
@ -75,17 +63,17 @@ class EjabberdMetrics(EjabberdCtl):
|
|||
# registered
|
||||
if not hasattr(self, "_registered"):
|
||||
self._registered = {}
|
||||
self._registered[None] = self.fetch_registered()
|
||||
self._registered[None] = self.fetch_registered_count()
|
||||
|
||||
# muc
|
||||
if not hasattr(self, "_muc"):
|
||||
self._muc = {}
|
||||
self._muc[None] = self.fetch_muc()
|
||||
self._muc[None] = self.fetch_muc_count()
|
||||
|
||||
# registered + muc
|
||||
for vhost in self._vhosts:
|
||||
self._registered[vhost] = self.fetch_registered(vhost)
|
||||
self._muc[vhost] = self.fetch_muc(vhost)
|
||||
self._registered[vhost] = self.fetch_registered_count(vhost)
|
||||
self._muc[vhost] = self.fetch_muc_count(vhost)
|
||||
|
||||
# online user
|
||||
self._onlineuser = self.fetch_onlineuser()
|
||||
|
@ -164,14 +152,14 @@ class EjabberdMetrics(EjabberdCtl):
|
|||
if not hasattr(self, "_registered"):
|
||||
self._registered = {}
|
||||
if vhost not in self._registered:
|
||||
self._registered[vhost] = self.fetch_registered(vhost)
|
||||
self._registered[vhost] = self.fetch_registered_count(vhost)
|
||||
return self._registered[vhost]
|
||||
|
||||
def get_muc(self, vhost=None):
|
||||
if not hasattr(self, "_muc"):
|
||||
self._muc = {}
|
||||
if vhost not in self._muc:
|
||||
self._muc[vhost] = self.fetch_muc(vhost)
|
||||
self._muc[vhost] = self.fetch_muc_count(vhost)
|
||||
return self._muc[vhost]
|
||||
|
||||
def get_vhosts(self):
|
||||
|
|
Loading…
Reference in New Issue