NewsBlur/apps/monitor/views/newsblur_updates.py
2024-04-24 09:50:42 -04:00

33 lines
1.2 KiB
Python
Executable file

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")