import redis from django.conf import settings from django.shortcuts import render from django.views import View class Updates(View): def get(self, request): r = redis.Redis(connection_pool=settings.REDIS_FEED_UPDATE_POOL) data = { "update_queue": r.scard("queued_feeds"), "feeds_fetched": r.zcard("fetched_feeds_last_hour"), "tasked_feeds": r.zcard("tasked_feeds"), "error_feeds": r.zcard("error_feeds"), "celery_update_feeds": r.llen("update_feeds"), "celery_new_feeds": r.llen("new_feeds"), "celery_push_feeds": r.llen("push_feeds"), "celery_work_queue": r.llen("work_queue"), "celery_search_queue": r.llen("search_indexer"), } chart_name = "updates" 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")