Merge pull request 'metrics: Add ticket counters' (#110) from lagertonne/add-ticket-metrics into testing
All checks were successful
/ test (push) Successful in 2m39s
/ deploy (push) Successful in 4m32s

This commit is contained in:
lagertonne 2024-12-27 08:41:55 +00:00
commit 7208aede8d

View file

@ -2,6 +2,8 @@ from django.apps import apps
from prometheus_client.core import CounterMetricFamily, REGISTRY
from django.db.models import Case, Value, When, BooleanField, Count
from inventory.models import Item
from tickets.models import IssueThread
class ItemCountCollector(object):
@ -32,7 +34,29 @@ class ItemCountCollector(object):
yield counter
class TicketCountCollector(object):
def collect(self):
counter = CounterMetricFamily("c3lf_ticket_count", "Current number of tickets", labels=['event', 'event_id'])
yield counter
if not apps.models_ready or not apps.apps_ready:
return
queryset = (
IssueThread.objects
.values('event__slug', 'event_id')
.annotate(amount=Count('id'))
)
for e in queryset:
counter.add_metric([e["event__slug"].lower()], e["amount"])
yield counter
try:
REGISTRY.register(ItemCountCollector())
REGISTRY.register(TicketCountCollector())
except Exception as e:
print(e)