deb-murano/muranoapi/db/services/stats.py
Georgy Okrokvertskhov 26233e56c7 Add CPU info to stats
This patch adds a cpu info to api server stats.
Adds a new requirement psutils

Change-Id: I5644c74b8c22450df0d431e03acb6923d8c15873
2014-04-17 09:44:14 -07:00

62 lines
1.9 KiB
Python

# Copyright (c) 2013 Mirantis, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from muranoapi.db import models as m
from muranoapi.db import session as db_session
class Statistics(object):
@staticmethod
def get_all():
db = db_session.get_session()
stats = db.query(m.ApiStats).all()
return stats
@staticmethod
def get_stats_by_id(stats_id):
db = db_session.get_session()
stats = db.query(m.ApiStats).get(stats_id)
return stats
@staticmethod
def get_stats_by_host(host):
db = db_session.get_session()
stats = db.query(m.ApiStats).filter(m.ApiStats.host == host).first()
return stats
@staticmethod
def create(host, request_count, error_count,
average_response_time, request_per_tenant, cpu_count,
cpu_percent):
stats = m.ApiStats()
stats.host = host
stats.request_count = request_count
stats.error_count = error_count
stats.average_response_time = average_response_time
stats.request_per_tenant = request_per_tenant
stats.request_per_second = 0.0
stats.errors_per_second = 0.0
stats.cpu_count = cpu_count
stats.cpu_percent = cpu_percent
db = db_session.get_session()
stats.save(db)
@staticmethod
def update(host, stats):
db = db_session.get_session()
stats.save(db)