NewsBlur/utils/munin/newsblur_dbtimes.py

44 lines
1.6 KiB
Python
Executable file

#!/srv/newsblur/venv/newsblur3/bin/python
from utils.munin.base import MuninGraph
import os
os.environ["DJANGO_SETTINGS_MODULE"] = "newsblur_web.settings"
import django
django.setup()
class NBMuninGraph(MuninGraph):
@property
def graph_config(self):
return {
'graph_category' : 'NewsBlur',
'graph_title' : 'NewsBlur DB Times',
'graph_vlabel' : 'Database times (seconds)',
'graph_args' : '-l 0',
'sql_avg.label' : 'SQL avg times (5m)',
'sql_avg.draw' : 'LINE1',
'mongo_avg.label' : 'Mongo avg times (5m)',
'mongo_avg.draw' : 'LINE1',
'redis_avg.label' :'Redis avg times (5m)',
'redis_avg.draw' : 'LINE1',
'task_sql_avg.label' : 'Task SQL avg times (5m)',
'task_sql_avg.draw' : 'LINE1',
'task_mongo_avg.label' : 'Task Mongo avg times (5m)',
'task_mongo_avg.draw' : 'LINE1',
'task_redis_avg.label' :'Task Redis avg times (5m)',
'task_redis_avg.draw' : 'LINE1',
}
def calculate_metrics(self):
from apps.statistics.models import MStatistics
return {
'sql_avg': MStatistics.get('latest_sql_avg'),
'mongo_avg': MStatistics.get('latest_mongo_avg'),
'redis_avg': MStatistics.get('latest_redis_avg'),
'task_sql_avg': MStatistics.get('latest_task_sql_avg'),
'task_mongo_avg': MStatistics.get('latest_task_mongo_avg'),
'task_redis_avg': MStatistics.get('latest_task_redis_avg'),
}
if __name__ == '__main__':
NBMuninGraph().run()