Für .NET-Teams mit Hangfire

Dein Hangfire-Dashboard merkt nicht, wenn ein Job lautlos aufhört zu laufen. QueueHawk schon.

Ein Dashboard für jede Hangfire-Instanz über alle Kundenprojekte und Umgebungen hinweg — mit dauerhafter Historie und echten Alerts, damit du es merkst, bevor dein Kunde anruft.

QueueHawk-Dashboard mit vier Applications, Health-Status, Umgebung und letzter Aktivität

Funktioniert mit dem Hangfire-Storage und den Alert-Kanälen, die du schon nutzt

SQL Server PostgreSQL Redis Slack Microsoft Teams Webhook E-Mail

Hangfires eingebautes Dashboard war dafür nie gedacht

Es ist gut für eine App, an einem Tag. Agenturen mit mehreren Kundenprojekten auf Hangfire stossen immer an dieselben vier Grenzen.

Keine App-übergreifende Sicht

Jedes Kundenprojekt bedeutet einen weiteren Tab, einen weiteren Login, ein weiteres Dashboard zum Nachschauen.

Keine dauerhafte Historie

Nach einem Redeploy oder Neustart sind gestrige Fehler weg — keine Spur, um einem Kunden zu zeigen, was passiert ist.

Kein Alerting

Ein Job kann tagelang leise aufhören zu verarbeiten. Meistens merkt man es, wenn der Kunde anruft.

Keine Trends über Zeit

Wird dieser Job-Typ langsamer oder fehleranfälliger? Hangfires Dashboard kann es dir nicht sagen.

So funktioniert's

Ein schlankes NuGet-Package, keine Infrastruktur-Änderungen, läuft neben dem Hangfire-Setup, das du schon hast.

1

Agent installieren

QueueHawk.Agent NuGet-Package zu deinem Hangfire-Host hinzufügen und registrieren — ein paar Zeilen, unter 10 Minuten.

2

Er sendet, per HTTPS

Job-Events und Heartbeats werden an QueueHawk gesendet. Nie baut etwas eine Verbindung zurück auf.

3

Alles sehen, Alerts erhalten

Jede Application, jede Umgebung, in einem Dashboard — mit Slack-, Teams-, Webhook- oder E-Mail-Alerts, wenn etwas nicht stimmt.

Was QueueHawk.Agent tatsächlich macht

QueueHawk.Agent hängt sich in Hangfires eigene State-Change-Pipeline ein (IElectStateFilter/IApplyStateFilter) — dieselben Erweiterungspunkte, die Hangfire intern selbst nutzt. Bei jedem Job-Übergang (Enqueued → Processing → Succeeded/Failed, inkl. Retries) erfasst er Job-ID, Methode, Queue-Name, alten/neuen State und bei einem Fehler zusätzlich Exception-Typ, -Message und Stacktrace.

Erfasste Events landen in einem In-Memory-Puffer und werden von einem Hintergrunddienst in kleinen Batches per HTTPS gesendet, standardmässig alle 5 Sekunden. Ein separater Heartbeat alle 30 Sekunden meldet, dass jeder Hangfire-Serverprozess noch lebt — der einzige zuverlässige Weg zu erkennen, dass "der Server läuft, aber lautlos aufgehört hat, irgendetwas zu verarbeiten".

Er greift nie direkt auf deinen Hangfire-Speicher zu, funktioniert also gleich, egal ob SQL Server, PostgreSQL oder Redis als Storage läuft. Job-Argumente/Payloads werden nie gesendet, ausser du aktivierst das explizit (siehe Sicherheit unten), und jeder interne Fehler wird abgefangen und geloggt — nie in deine Job-Pipeline durchgereicht.

Funktioniert auf allen aktuellen .NET Versionen

QueueHawk.Agent auf NuGet.org ansehen
Terminal
dotnet add package QueueHawk.Agent
Program.cs
builder.Services.AddHangfire(config =>
    config.UseSqlServerStorage(connectionString)); // jeder Hangfire-Storage funktioniert
builder.Services.AddHangfireServer();

// QueueHawk-Integration — eine Zeile
builder.Services.AddQueueHawk(options =>
{
    options.ApiKey = builder.Configuration["QueueHawk:ApiKey"];
    options.Environment = "Production"; // Freitext, z.B. auch der Kundenname
});
Der Agent ist nur ausgehend (push-only) — QueueHawk baut nie eine eingehende Verbindung zu deinem Hangfire-Speicher oder deinem Netzwerk auf.

Einfache Preise, pro Application

Genau so bepreist, wie Agenturen wirklich denken — pro Kundenprojekt, nicht pro Event oder Job-Durchlauf. Jede Application enthält unbegrenzt viele Job-Typen — ein weiterer Recurring Job ändert nie die Rechnung.

Free

Ausprobieren an einem Projekt, keine Kreditkarte nötig.

$0/Mt.
  • 1 Application
  • 7 Tage Historie
  • E-Mail-Alerts
  • Community-Support
Loslegen

Starter

Für ein einzelnes Projekt, das wichtig ist.

$35/Mt.
  • Bis zu 5 Applications
  • 14 Tage Historie
  • E-Mail-Alerts
Loslegen

Agency

Für jedes Kundenprojekt, das du betreust.

$299/Mt.
  • Bis zu 500 Applications
  • 1 Jahr Historie
  • Priority Support
  • White-Label (in Kürze)
Loslegen

Gebaut für Teams, denen die Daten ihrer Kunden wichtig sind

Entwickelt und gehostet in der Schweiz

Keine generische "EU-Region" eines ausländischen Cloud-Anbieters — Infrastruktur, Datenbank und Applikation laufen alle auf Servern in der Schweiz. Warum das zählt →

Strikte Mandantentrennung

Die Daten jedes Accounts sind Ende-zu-Ende isoliert, auf Datenbankebene durchgesetzt, nicht nur im UI.

Nur ausgehender Agent

Keine eingehende Verbindung zu deiner Infrastruktur, nie — nichts, das du in deiner Firewall öffnen musst.

Minimale Datenerfassung

Nur Job-Metadaten und Fehlerdetails — nie deine Job-Payloads oder Geschäftsdaten.

Häufig gestellte Fragen

Das, was Agenturen typischerweise fragen, bevor sie QueueHawk über ihre Kundenprojekte hinweg einführen.

Was zählt als "Application"?

Eine mit Hangfire verbundene Application oder Instanz — ein Kundenprojekt, ein Service, eine Umgebung. Pläne skalieren nach der Anzahl überwachter Applications, nicht nach Event-Volumen oder Job-Anzahl — so, wie Agenturen ihre Arbeit tatsächlich denken.

Warum nicht pro Job bepreisen, wie manche Monitoring-Tools?

Weil das genau die Kunden bestraft, für die wir gebaut sind. Eine Application mit 40 Job-Typen kostet dasselbe wie eine mit 3 — ein weiterer Recurring Job in einem bereits überwachten Projekt wird nie extra berechnet. Siehe die vollständige Aufschlüsselung mit Rechner dazu, wie sich das bei unterschiedlichen Grössen gegen Pro-Job-Preise schlägt.

Wie lange wird die Job-Historie aufbewahrt?

Abhängig vom Plan: 7 Tage bei Free, 14 Tage bei Starter, 180 Tage bei Team, 365 Tage bei Agency. Die Historie übersteht Redeploys und Neustarts — anders als Hangfires eigenes Dashboard.

Welche Daten sendet der Agent tatsächlich?

Job-Metadaten: Job-Typ, Queue, State-Übergänge, Timing und bei einem Fehler zusätzlich Exception-Typ, -Message und Stacktrace. Job-Argumente und Payloads werden nie gesendet, ausser du aktivierst das explizit.

Welche .NET-Versionen und Hangfire-Storage-Provider werden unterstützt?

Der Agent funktioniert auf allen aktuellen .NET-Versionen und gleich, egal ob dein Hangfire-Storage SQL Server, PostgreSQL oder Redis ist — er hängt sich in Hangfires eigene State-Change-Pipeline ein, statt direkt auf den Storage zuzugreifen.

Kann ich den Plan jederzeit wechseln oder kündigen?

Ja — Upgrade, Downgrade oder Kündigung jederzeit über die Billing-Seite im Dashboard. Keine Verträge, keine Sales-Calls.

Sind meine Daten von anderen QueueHawk-Kunden isoliert?

Ja. Mandantentrennung wird auf Datenbankebene für jede Abfrage durchgesetzt, nicht nur im UI versteckt — ein Account kann nie die Applications, Job-Daten oder Alerts eines anderen sehen.

Wir nutzen es selbst

QueueHawks eigene Background-Jobs laufen auf Hangfire — und wir überwachen sie mit QueueHawk, jeden Tag. Wenn etwas kaputtgeht, merken wir es genauso wie du.