mirror of
https://github.com/viq/NewsBlur.git
synced 2025-04-13 09:38:09 +00:00
47 lines
1.4 KiB
Python
Executable file
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()
|