Files
MarietjeDjango/marietje/metrics/views.py
2018-04-09 15:04:32 +02:00

19 lines
627 B
Python

from prometheus_client import generate_latest, Gauge
from django.db.models import Q
from django.http import HttpResponse
from queues.models import Queue, PlaylistSong
# Export queue length
g = Gauge('marietje_queue_length', 'Marietje queue length', ['name'])
for queue in Queue.objects.all():
def _get_queue_length():
return PlaylistSong.objects.filter(Q(playlist=queue.playlist_id),
Q(state=0) | Q(state=1)).count()
g.labels(name=queue).set_function(_get_queue_length)
def metrics(request):
return HttpResponse(generate_latest(), content_type="text/plain")