def get(self, request): exception_feeds = MStatistics.get('munin:exception_feeds') if not exception_feeds: exception_feeds = Feed.objects.filter( has_feed_exception=True).count() MStatistics.set('munin:exception_feeds', exception_feeds, 60 * 60 * 12) exception_pages = MStatistics.get('munin:exception_pages') if not exception_pages: exception_pages = Feed.objects.filter( has_page_exception=True).count() MStatistics.set('munin:exception_pages', exception_pages, 60 * 60 * 12) duplicate_feeds = MStatistics.get('munin:duplicate_feeds') if not duplicate_feeds: duplicate_feeds = DuplicateFeed.objects.count() MStatistics.set('munin:duplicate_feeds', duplicate_feeds, 60 * 60 * 12) active_feeds = MStatistics.get('munin:active_feeds') if not active_feeds: active_feeds = Feed.objects.filter( active_subscribers__gt=0).count() MStatistics.set('munin:active_feeds', active_feeds, 60 * 60 * 12) push_feeds = MStatistics.get('munin:push_feeds') if not push_feeds: push_feeds = PushSubscription.objects.filter(verified=True).count() MStatistics.set('munin:push_feeds', push_feeds, 60 * 60 * 12) r = redis.Redis(connection_pool=settings.REDIS_FEED_UPDATE_POOL) data = { 'scheduled_feeds': r.zcard('scheduled_updates'), 'exception_feeds': exception_feeds, 'exception_pages': exception_pages, 'duplicate_feeds': duplicate_feeds, 'active_feeds': active_feeds, 'push_feeds': push_feeds, } chart_name = "feed_counts" chart_type = "counter" formatted_data = {} for k, v in data.items(): formatted_data[k] = f'{chart_name}{{category="{k}"}} {v}' context = { "data": formatted_data, "chart_name": chart_name, "chart_type": chart_type, } return render(request, 'monitor/prometheus_data.html', context, content_type="text/plain")
def calculate_metrics(self): from apps.rss_feeds.models import Feed, DuplicateFeed from apps.push.models import PushSubscription from django.conf import settings from apps.statistics.models import MStatistics exception_feeds = MStatistics.get('munin:exception_feeds') if not exception_feeds: exception_feeds = Feed.objects.filter( has_feed_exception=True).count() MStatistics.set('munin:exception_feeds', exception_feeds, 60 * 60 * 12) exception_pages = MStatistics.get('munin:exception_pages') if not exception_pages: exception_pages = Feed.objects.filter( has_page_exception=True).count() MStatistics.set('munin:exception_pages', exception_pages, 60 * 60 * 12) duplicate_feeds = MStatistics.get('munin:duplicate_feeds') if not duplicate_feeds: duplicate_feeds = DuplicateFeed.objects.count() MStatistics.set('munin:duplicate_feeds', duplicate_feeds, 60 * 60 * 12) active_feeds = MStatistics.get('munin:active_feeds') if not active_feeds: active_feeds = Feed.objects.filter( active_subscribers__gt=0).count() MStatistics.set('munin:active_feeds', active_feeds, 60 * 60 * 12) push_feeds = MStatistics.get('munin:push_feeds') if not push_feeds: push_feeds = PushSubscription.objects.filter(verified=True).count() MStatistics.set('munin:push_feeds', push_feeds, 60 * 60 * 12) r = redis.Redis(connection_pool=settings.REDIS_FEED_POOL) return { 'scheduled_feeds': r.zcard('scheduled_updates'), 'exception_feeds': exception_feeds, 'exception_pages': exception_pages, 'duplicate_feeds': duplicate_feeds, 'active_feeds': active_feeds, 'push_feeds': push_feeds, }
def calculate_metrics(self): from apps.rss_feeds.models import Feed, DuplicateFeed from apps.push.models import PushSubscription from django.conf import settings from apps.statistics.models import MStatistics exception_feeds = MStatistics.get('munin:exception_feeds') if not exception_feeds: exception_feeds = Feed.objects.filter(has_feed_exception=True).count() MStatistics.set('munin:exception_feeds', exception_feeds, 60*60*12) exception_pages = MStatistics.get('munin:exception_pages') if not exception_pages: exception_pages = Feed.objects.filter(has_page_exception=True).count() MStatistics.set('munin:exception_pages', exception_pages, 60*60*12) duplicate_feeds = MStatistics.get('munin:duplicate_feeds') if not duplicate_feeds: duplicate_feeds = DuplicateFeed.objects.count() MStatistics.set('munin:duplicate_feeds', duplicate_feeds, 60*60*12) active_feeds = MStatistics.get('munin:active_feeds') if not active_feeds: active_feeds = Feed.objects.filter(active_subscribers__gt=0).count() MStatistics.set('munin:active_feeds', active_feeds, 60*60*12) push_feeds = MStatistics.get('munin:push_feeds') if not push_feeds: push_feeds = PushSubscription.objects.filter(verified=True).count() MStatistics.set('munin:push_feeds', push_feeds, 60*60*12) r = redis.Redis(connection_pool=settings.REDIS_FEED_UPDATE_POOL) return { 'scheduled_feeds': r.zcard('scheduled_updates'), 'exception_feeds': exception_feeds, 'exception_pages': exception_pages, 'duplicate_feeds': duplicate_feeds, 'active_feeds': active_feeds, 'push_feeds': push_feeds, }
def get(self, request): feeds_count = MStatistics.get('munin:feeds_count') if not feeds_count: feeds_count = Feed.objects.all().count() MStatistics.set('munin:feeds_count', feeds_count, 60 * 60 * 12) subscriptions_count = MStatistics.get('munin:subscriptions_count') if not subscriptions_count: subscriptions_count = UserSubscription.objects.all().count() MStatistics.set('munin:subscriptions_count', subscriptions_count, 60 * 60 * 12) data = { 'feeds': feeds_count, 'subscriptions': subscriptions_count, 'profiles': MSocialProfile.objects._collection.count(), 'social_subscriptions': MSocialSubscription.objects._collection.count(), } chart_name = "feeds" chart_type = "counter" formatted_data = {} for k, v in data.items(): formatted_data[k] = f'{chart_name}{{category="{k}"}} {v}' context = { "data": formatted_data, "chart_name": chart_name, "chart_type": chart_type, } return render(request, 'monitor/prometheus_data.html', context, content_type="text/plain")
def calculate_metrics(self): from apps.rss_feeds.models import Feed from apps.reader.models import UserSubscription from apps.social.models import MSocialProfile, MSocialSubscription from apps.statistics.models import MStatistics feeds_count = MStatistics.get('munin:feeds_count') if not feeds_count: feeds_count = Feed.objects.all().count() MStatistics.set('munin:feeds_count', feeds_count, 60*60*12) subscriptions_count = MStatistics.get('munin:subscriptions_count') if not subscriptions_count: subscriptions_count = UserSubscription.objects.all().count() MStatistics.set('munin:subscriptions_count', subscriptions_count, 60*60*12) return { 'feeds': feeds_count, 'subscriptions': subscriptions_count, 'profiles': MSocialProfile.objects.count(), 'social_subscriptions': MSocialSubscription.objects.count(), }
def get(self, request): fs_size_bytes = MStatistics.get('munin:fs_size_bytes') if not fs_size_bytes: fs_size_bytes = Feed.objects.aggregate( Sum('fs_size_bytes'))['fs_size_bytes__sum'] MStatistics.set('munin:fs_size_bytes', fs_size_bytes, 60 * 60 * 12) archive_users_size_bytes = MStatistics.get( 'munin:archive_users_size_bytes') if not archive_users_size_bytes: archive_users_size_bytes = Feed.objects.filter( archive_subscribers__gte=1).aggregate( Sum('fs_size_bytes'))['fs_size_bytes__sum'] MStatistics.set('munin:archive_users_size_bytes', archive_users_size_bytes, 60 * 60 * 12) data = { 'fs_size_bytes': fs_size_bytes, 'archive_users_size_bytes': archive_users_size_bytes, } chart_name = "feed_sizes" chart_type = "counter" formatted_data = {} for k, v in data.items(): formatted_data[k] = f'{chart_name}{{category="{k}"}} {v}' context = { "data": formatted_data, "chart_name": chart_name, "chart_type": chart_type, } return render(request, 'monitor/prometheus_data.html', context, content_type="text/plain")