metrics: Do not fail when tables not migrated

This commit is contained in:
Daan Sprenkels
2018-08-18 22:48:02 +02:00
parent d1d3246ea1
commit 4dc6d9dd42

View File

@ -1,5 +1,7 @@
from django.db.models import Count, Q
from django.http import HttpResponse
from django.db.utils import OperationalError
from prometheus_client import generate_latest, Gauge
from queues.models import Queue, PlaylistSong
@ -11,8 +13,8 @@ queue_duration_gauge = Gauge('marietje_queue_duration', 'Marietje queue duration
# Export the amount of different users in the queue
queue_users_gauge = Gauge('marietje_queue_users', 'Users holding a queue at some point', ['name'])
for queue in Queue.objects.all():
try:
for queue in Queue.objects.all():
def _get_queue_length():
return (PlaylistSong.objects.filter(playlist=queue.playlist_id, state=0)
.count())
@ -35,6 +37,9 @@ for queue in Queue.objects.all():
queue_duration_gauge.labels(name=queue).set_function(_get_queue_duration)
queue_users_gauge.labels(name=queue).set_function(_get_queue_distinct_users)
except OperationalError:
pass
def metrics(request):
return HttpResponse(generate_latest(), content_type="text/plain")