mirror of https://github.com/zulip/zulip.git
active_user_stats: Track user reading.
(imported from commit 3e8ff76c1f355686af74b1dc4081a7c130deb2e9)
This commit is contained in:
parent
1960c8e8f1
commit
f79ebeb92d
|
@ -3,7 +3,7 @@ from __future__ import absolute_import
|
||||||
from django.core.management.base import BaseCommand
|
from django.core.management.base import BaseCommand
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
|
||||||
from zephyr.models import UserProfile, UserPresence
|
from zephyr.models import UserProfile, UserPresence, UserActivity
|
||||||
from zephyr.lib.utils import statsd, statsd_key
|
from zephyr.lib.utils import statsd, statsd_key
|
||||||
|
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
|
@ -43,3 +43,17 @@ class Command(BaseCommand):
|
||||||
print("\tUsers for %s: %s" % (hr, len(users)))
|
print("\tUsers for %s: %s" % (hr, len(users)))
|
||||||
statsd.gauge("users.active.%s.%shr" % (statsd_key(realm, True), statsd_key(hr, True)), len(users))
|
statsd.gauge("users.active.%s.%shr" % (statsd_key(realm, True), statsd_key(hr, True)), len(users))
|
||||||
|
|
||||||
|
# Also do stats for how many users have been reading the app.
|
||||||
|
users_reading = UserActivity.objects.select_related().filter(query="/json/update_message_flags")
|
||||||
|
user_info = {}
|
||||||
|
for activity in users_reading:
|
||||||
|
for bucket in hour_buckets:
|
||||||
|
if not bucket in user_info[activity.user_profile.realm.domain]:
|
||||||
|
user_info[activity.user_profile.realm.domain][bucket] = []
|
||||||
|
if datetime.now(activity.last_visit.tzinfo) - activity.last_visit < timedelta(hours=bucket):
|
||||||
|
user_info[activity.user_profile.realm.domain][bucket].append(activity.user_profile.email)
|
||||||
|
for realm, buckets in user_info.items():
|
||||||
|
print("Realm %s" % realm)
|
||||||
|
for hr, users in sorted(buckets.items()):
|
||||||
|
print("\tUsers reading for %s: %s" % (hr, len(users)))
|
||||||
|
statsd.gauge("users.reading.%s.%shr" % (statsd_key(realm, True), statsd_key(hr, True)), len(users))
|
||||||
|
|
Loading…
Reference in New Issue