mirror of
https://github.com/dkmstr/openuds.git
synced 2025-01-05 09:17:54 +03:00
More about stats
This commit is contained in:
parent
8552337c8d
commit
88939f9dc0
@ -25,6 +25,7 @@
|
|||||||
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
from uds.models import NEVER
|
||||||
|
|
||||||
'''
|
'''
|
||||||
@author: Adolfo Gómez, dkmaster at dkmon dot com
|
@author: Adolfo Gómez, dkmaster at dkmon dot com
|
||||||
@ -77,13 +78,14 @@ def getCounters(obj, counterType, **kwargs):
|
|||||||
to: (optional, defaults to 'Until end') En date for counter to recover
|
to: (optional, defaults to 'Until end') En date for counter to recover
|
||||||
limit: (optional, defaults to 1000) Number of counter to recover. This is an 'At most' advice. The returned number of value
|
limit: (optional, defaults to 1000) Number of counter to recover. This is an 'At most' advice. The returned number of value
|
||||||
can be lower, or even 1 more than requested due to a division for retrieving object at database
|
can be lower, or even 1 more than requested due to a division for retrieving object at database
|
||||||
|
all: (optinal), indicates that get all counters for the type of obj passed in, not only for that obj.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
A generator, that contains pairs of (stamp, value) tuples
|
A generator, that contains pairs of (stamp, value) tuples
|
||||||
'''
|
'''
|
||||||
|
|
||||||
since = kwargs.get('since', None)
|
since = kwargs.get('since', NEVER)
|
||||||
to = kwargs.get('to', None)
|
to = kwargs.get('to', datetime.datetime.now())
|
||||||
limit = kwargs.get('limit', 1000)
|
limit = kwargs.get('limit', 1000)
|
||||||
use_max = kwargs.get('use_max', False)
|
use_max = kwargs.get('use_max', False)
|
||||||
|
|
||||||
@ -100,7 +102,11 @@ def getCounters(obj, counterType, **kwargs):
|
|||||||
logger.error('Type {0} has no registerd stats of type {1}'.format(type(obj), counterType))
|
logger.error('Type {0} has no registerd stats of type {1}'.format(type(obj), counterType))
|
||||||
return
|
return
|
||||||
|
|
||||||
owner_ids = fnc(obj)
|
if kwargs.get('all', None) is not True:
|
||||||
|
owner_ids = fnc(obj)
|
||||||
|
else:
|
||||||
|
owner_ids = None
|
||||||
|
|
||||||
|
|
||||||
for i in statsManager().getCounters(__transDict[type(obj)], counterType, owner_ids, since, to, limit, use_max):
|
for i in statsManager().getCounters(__transDict[type(obj)], counterType, owner_ids, since, to, limit, use_max):
|
||||||
val = (datetime.datetime.fromtimestamp(i.stamp), i.value)
|
val = (datetime.datetime.fromtimestamp(i.stamp), i.value)
|
||||||
|
@ -1626,7 +1626,7 @@ class StatsCounters(models.Model):
|
|||||||
filt += '='+str(owner_type)
|
filt += '='+str(owner_type)
|
||||||
|
|
||||||
owner_id = None
|
owner_id = None
|
||||||
if kwargs.has_key('owner_id'):
|
if kwargs.get('owner_id', None) is not None:
|
||||||
filt += ' AND OWNER_ID'
|
filt += ' AND OWNER_ID'
|
||||||
oid = kwargs['owner_id']
|
oid = kwargs['owner_id']
|
||||||
if type(oid) in (list, tuple):
|
if type(oid) in (list, tuple):
|
||||||
|
@ -36,6 +36,7 @@ from ..auths.AdminAuth import needs_credentials
|
|||||||
from ..util.Exceptions import FindException
|
from ..util.Exceptions import FindException
|
||||||
from uds.core.util import log
|
from uds.core.util import log
|
||||||
|
|
||||||
|
from uds.models import DeployedService
|
||||||
from uds.models import UserService
|
from uds.models import UserService
|
||||||
from uds.models import User
|
from uds.models import User
|
||||||
from uds.models import Authenticator
|
from uds.models import Authenticator
|
||||||
@ -44,13 +45,23 @@ import logging
|
|||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
@needs_credentials
|
||||||
|
def getDeployedServiceLogs(credentials, id):
|
||||||
|
try:
|
||||||
|
ds = DeployedService.objects.get(pk=id)
|
||||||
|
return log.getLogs(ds)
|
||||||
|
except:
|
||||||
|
logger.exception('Exception')
|
||||||
|
raise FindException(_('Deployed service does not exists'))
|
||||||
|
|
||||||
|
|
||||||
@needs_credentials
|
@needs_credentials
|
||||||
def getUserServiceLogs(credentials, id):
|
def getUserServiceLogs(credentials, id):
|
||||||
try:
|
try:
|
||||||
us = UserService.objects.get(pk=id)
|
us = UserService.objects.get(pk=id)
|
||||||
return log.getLogs(us)
|
return log.getLogs(us)
|
||||||
except:
|
except:
|
||||||
raise FindException(_('Service does not exists'))
|
raise FindException(_('User service does not exists'))
|
||||||
|
|
||||||
@needs_credentials
|
@needs_credentials
|
||||||
def getUserLogs(credentials, id):
|
def getUserLogs(credentials, id):
|
||||||
@ -71,6 +82,7 @@ def getAuthLogs(credentials, id):
|
|||||||
|
|
||||||
# Registers XML RPC Methods
|
# Registers XML RPC Methods
|
||||||
def registerLogFunctions(dispatcher):
|
def registerLogFunctions(dispatcher):
|
||||||
|
dispatcher.register_function(getDeployedServiceLogs, 'getDeployedServiceLogs')
|
||||||
dispatcher.register_function(getUserServiceLogs, 'getUserServiceLogs')
|
dispatcher.register_function(getUserServiceLogs, 'getUserServiceLogs')
|
||||||
dispatcher.register_function(getUserLogs, 'getUserLogs')
|
dispatcher.register_function(getUserLogs, 'getUserLogs')
|
||||||
dispatcher.register_function(getAuthLogs, 'getAuthLogs')
|
dispatcher.register_function(getAuthLogs, 'getAuthLogs')
|
||||||
|
@ -53,9 +53,14 @@ def getDeployedServiceCounters(credentials, id, counter_type, since, to, points,
|
|||||||
val = cache.get(cacheKey)
|
val = cache.get(cacheKey)
|
||||||
if val is None:
|
if val is None:
|
||||||
|
|
||||||
us = DeployedService.objects.get(pk=id)
|
if id == '-1':
|
||||||
|
us = DeployedService()
|
||||||
|
all = True
|
||||||
|
else:
|
||||||
|
us = DeployedService.objects.get(pk=id)
|
||||||
|
all = False
|
||||||
val = []
|
val = []
|
||||||
for x in counters.getCounters(us, counter_type, since=since, to=to, limit=points, use_max=use_max):
|
for x in counters.getCounters(us, counter_type, since=since, to=to, limit=points, use_max=use_max, all=all):
|
||||||
val.append({ 'stamp': x[0], 'value': x[1] })
|
val.append({ 'stamp': x[0], 'value': x[1] })
|
||||||
if len(val) > 2:
|
if len(val) > 2:
|
||||||
cache.put(cacheKey, cPickle.dumps(val).encode('zip'), 3600)
|
cache.put(cacheKey, cPickle.dumps(val).encode('zip'), 3600)
|
||||||
|
Loading…
Reference in New Issue
Block a user