NewsBlur-viq/utils/munin/newsblur_users.py
2024-04-24 09:50:42 -04:00

47 lines
1.4 KiB
Python
Executable file

#!/srv/newsblur/venv/newsblur3/bin/python
import os
from utils.munin.base import MuninGraph
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 Users",
"graph_vlabel": "users",
"graph_args": "-l 0",
"all.label": "all",
"monthly.label": "monthly",
"daily.label": "daily",
"premium.label": "premium",
"queued.label": "queued",
}
def calculate_metrics(self):
import datetime
from django.contrib.auth.models import User
from apps.profile.models import Profile, RNewUserQueue
last_month = datetime.datetime.utcnow() - datetime.timedelta(days=30)
last_day = datetime.datetime.utcnow() - datetime.timedelta(minutes=60 * 24)
return {
"all": User.objects.count(),
"monthly": Profile.objects.filter(last_seen_on__gte=last_month).count(),
"daily": Profile.objects.filter(last_seen_on__gte=last_day).count(),
"premium": Profile.objects.filter(is_premium=True).count(),
"queued": RNewUserQueue.user_count(),
}
if __name__ == "__main__":
NBMuninGraph().run()