NewsBlur-viq/utils/munin/newsblur_users.py

48 lines
1.4 KiB
Python
Raw Normal View History

2020-12-03 14:05:32 -05:00
#!/srv/newsblur/venv/newsblur3/bin/python
2020-12-10 12:40:12 -05:00
import os
2024-04-24 09:43:56 -04:00
2024-04-24 09:50:42 -04:00
from utils.munin.base import MuninGraph
os.environ["DJANGO_SETTINGS_MODULE"] = "newsblur_web.settings"
2020-12-10 12:42:12 -05:00
import django
2024-04-24 09:43:56 -04:00
2020-12-10 12:42:12 -05:00
django.setup()
2010-06-08 11:19:41 -04:00
2010-07-24 14:16:25 -04:00
2024-04-24 09:43:56 -04:00
class NBMuninGraph(MuninGraph):
@property
def graph_config(self):
return {
2024-04-24 09:43:56 -04:00
"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
2024-04-24 09:50:42 -04:00
from django.contrib.auth.models import User
2024-04-24 09:50:42 -04:00
2013-05-21 14:15:25 -07:00
from apps.profile.models import Profile, RNewUserQueue
last_month = datetime.datetime.utcnow() - datetime.timedelta(days=30)
2024-04-24 09:43:56 -04:00
last_day = datetime.datetime.utcnow() - datetime.timedelta(minutes=60 * 24)
return {
2024-04-24 09:43:56 -04:00
"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(),
}
2010-06-08 11:19:41 -04:00
2024-04-24 09:43:56 -04:00
if __name__ == "__main__":
NBMuninGraph().run()