Kategorie

Kontakt

Hangfire Monitoring: Background Jobs in .NET zentral überwachen mit QueueHawk

Rechnungsversand, Datenimporte, Reports, Schnittstellen zu Drittsystemen: In vielen .NET-Anwendungen laufen geschäftskritische Prozesse als Background Jobs. Fällt ein solcher Job still aus, merkt es oft niemand – bis der Kunde anruft. Bei Substring setzen wir in mehreren eigenen Produkten auf Hangfire und kennen dieses Problem aus erster Hand. Daraus ist QueueHawk entstanden.

Was ist Hangfire?

Hangfire ist eine verbreitete Open-Source-Bibliothek für Background Jobs in .NET. Sie unterstützt Fire-and-forget-Jobs, verzögerte Jobs und wiederkehrende Jobs (Recurring Jobs), speichert ihren Zustand in SQL Server, PostgreSQL oder Redis und wiederholt fehlgeschlagene Jobs automatisch. Mitgeliefert wird ein Dashboard, das Queues, Server und Jobs einer Anwendung anzeigt.

Die Grenzen des Hangfire-Dashboards

Für eine einzelne Anwendung reicht das Dashboard oft aus. Sobald Sie mehrere Anwendungen oder Umgebungen betreiben – typisch für Agenturen und Softwarehäuser –, stossen Sie an Grenzen:

  • Keine anwendungsübergreifende Sicht: Jedes Projekt hat sein eigenes Dashboard, eigenes Login, eigenen Browser-Tab.
  • Keine dauerhafte Historie: Nach Neustarts und Deployments sind vergangene Fehler oft nicht mehr nachvollziehbar – es bleibt nichts, was Sie einem Kunden zeigen könnten.
  • Kein Alerting: Jobs können tagelang nicht laufen, ohne dass jemand benachrichtigt wird.
  • Keine Trends: Ob ein Jobtyp langsamer wird oder häufiger scheitert, ist nicht erkennbar.

Was ist QueueHawk?

QueueHawk ist ein gehosteter Monitoring-Dienst für Hangfire. Er bündelt alle Hangfire-Instanzen in einem zentralen Dashboard, speichert die Job-Historie dauerhaft und alarmiert Ihr Team, wenn etwas schiefläuft – bevor es Ihre Kunden tun.

So funktioniert QueueHawk

Auf dem Hangfire-Host wird das NuGet-Paket QueueHawk.Agent installiert und mit wenigen Zeilen Code registriert. Der Agent klinkt sich in die State-Change-Pipeline von Hangfire ein – dieselben Erweiterungspunkte, die Hangfire intern nutzt – und erfasst jeden Zustandswechsel eines Jobs inklusive Retries, Queue, Methode und bei Fehlern Exception-Typ, Meldung und Stacktrace.

  • Push-only: Der Agent sendet Ereignisse gebündelt per HTTPS. QueueHawk verbindet sich nie in Ihre Infrastruktur und greift nicht auf Ihre Datenbank zu – es müssen keine Firewall-Ports geöffnet werden.
  • Unabhängig vom Storage: Ob SQL Server, PostgreSQL oder Redis – der Agent funktioniert überall gleich, weil er den Storage nie direkt liest.
  • Heartbeat: Alle 30 Sekunden meldet jeder Server-Prozess, dass er lebt. So erkennt QueueHawk auch Server, die zwar laufen, aber keine Jobs mehr verarbeiten.
  • Robust: Interne Fehler des Agents werden geloggt, nie in die Job-Pipeline geworfen.

Alerting über Slack, Teams, Webhook und E-Mail

QueueHawk alarmiert bei erhöhter Fehlerrate und bei ausbleibendem Heartbeat. Die Meldung nennt Anwendung und Umgebung, die Anzahl fehlgeschlagener Ausführungen, die betroffenen Jobs und die letzte Exception. Sobald die Fehlerrate wieder normal ist, folgt eine Entwarnung. Cooldown und Deduplizierung verhindern Alarmfluten.

Datenschutz und Hosting in der Schweiz

Job-Argumente und Payloads werden standardmässig nicht übertragen, sondern nur, wenn Sie das ausdrücklich aktivieren. Über einen Hook lassen sich Personendaten in Exception-Texten vor dem Versand maskieren. Entwicklung, Infrastruktur, Datenbank und Anwendung befinden sich in der Schweiz; die Mandantentrennung wird bei jeder Abfrage auf Datenbankebene erzwungen.

Für wen eignet sich QueueHawk?

  • Agenturen und IT-Dienstleister, die Hangfire in vielen Kundenprojekten und Umgebungen betreiben und ihren Kunden gegenüber nachweisen wollen, dass Jobs zuverlässig laufen.
  • .NET-Teams mit geschäftskritischen Background Jobs wie Zahlungen, Reports oder Integrationen.

Abgerechnet wird pro Anwendung, nicht pro Job oder Ereignis. Zusätzliche Recurring Jobs erhöhen die Rechnung also nicht. Für eine einzelne Anwendung gibt es einen kostenlosen Plan.

Fazit

Hangfire ist eine solide Basis für Background Jobs in .NET. Für den produktiven Betrieb über mehrere Anwendungen hinweg fehlen jedoch zentrale Übersicht, dauerhafte Historie und Alerting. Ein schlankes, push-basiertes Monitoring schliesst diese Lücke, ohne die Infrastruktur zu verändern. Mehr Informationen und einen kostenlosen Einstieg finden Sie auf queuehawk.com.

‍

kontakt

Wir freuen uns, von Ihnen zu hören!