예제 #1
0
    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,
        }
예제 #3
0
    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,
        }
예제 #4
0
    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")
예제 #5
0
    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(),
        }
예제 #6
0
    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(),
        }
예제 #7
0
    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")