Resource Monitors sind eine Snowflake-Funktion, mit der Kunden ihre Ausgaben gezielt steuern können. In diesem Beitrag erfahren Sie alles Wissenswerte darüber, wie Sie Resource Monitors in Ihrem Account konfigurieren und optimal einsetzen. Klären wir zunächst, warum sich der Einsatz überhaupt lohnt.
Wofür sind Snowflake Resource Monitors gedacht?
Das nutzungsbasierte Preismodell und die einfache Skalierbarkeit von Snowflake ermöglichen es Kunden, nur für tatsächlich benötigte Ressourcen zu zahlen und gleichzeitig flexibel auf steigende Anforderungen zu reagieren. Die Kehrseite: Ohne passende Kontrollmechanismen können die Snowflake-Kosten unerwartet aus dem Ruder laufen. Resource Monitors helfen dabei, Kosten zu überwachen und zu steuern, indem sie bei definierten Schwellenwerten Benachrichtigungen versenden. Sie lassen sich außerdem so konfigurieren, dass sie unerwarteten Credit-Verbrauch eindämmen – und damit auch eine vorzeitige Vertragsverlängerung verhindern.
Was leisten Snowflake Resource Monitors?
Mit Resource Monitors lässt sich ein Snowflake-Credit-Limit für eine bestimmte Ressource und einen bestimmten Zeitraum festlegen. So kann beispielsweise einem Warehouse oder einer Gruppe von Warehouses ein tägliches Limit von 50 Credits zugewiesen werden. Sobald ein definierter Prozentsatz dieses Limits im gewählten Zeitraum erreicht ist, kann ein Resource Monitor verschiedene Aktionen auslösen. Die drei möglichen Aktionen sind:
- Den Benutzer per E-Mail benachrichtigen
- Das oder die Warehouse(s) anhalten, sobald alle laufenden Abfragen abgeschlossen sind
- Das oder die Warehouse(s) sofort anhalten und laufende Abfragen abbrechen
Neben Warehouses lassen sich Resource Monitors auch für einen gesamten Account einrichten.
Der folgende Screenshot zeigt ein Beispiel für eine E-Mail-Benachrichtigung, die ein Resource Monitor versendet hat.

Wie legt man einen Resource Monitor in Snowflake an?
Resource Monitors lassen sich entweder über die Snowflake-Oberfläche oder programmatisch per SQL erstellen. Schauen wir uns beide Wege an.
Resource Monitor über die Oberfläche anlegen
Um einen neuen Resource Monitor in der Snowflake-Oberfläche anzulegen, navigieren Sie zum Bereich Admin > Resource Monitors. Nach einem Klick auf die Schaltfläche "+ Resource Monitor" oben rechts werden Sie aufgefordert, die folgenden Angaben zu machen:

- Name: Frei wählbar – Leerzeichen sind allerdings nicht erlaubt
- Credit Quota: Das gewünschte Credit-Kontingent für den Monitor
- Monitor Type: Entweder "Account" oder "Warehouse". Bei "Account" gilt die Credit Quota für den gesamten Account, bei "Warehouse" nur für die von Ihnen angegebenen Warehouses.
- Warehouse(s): Wenn Sie "Warehouse" als Monitor-Typ gewählt haben, werden Sie aufgefordert, ein oder mehrere Warehouses auszuwählen, die dem Monitor zugeordnet werden sollen.
- Schedule: Hier legen Sie Start- und (optional) Endzeitpunkt fest, in dem der Resource Monitor aktiv ist. Außerdem können Sie definieren, in welchem Intervall der Credit-Zähler zurückgesetzt wird. Unterstützt werden: täglich, monatlich, jährlich oder nie.
- Actions: Mindestens eine Aktion muss konfiguriert sein, damit der Monitor angelegt werden kann.
Resource Monitor per SQL anlegen
Ein Beispielbefehl zum Anlegen eines Resource Monitors per SQL sieht so aus:
1create or replace resource monitor compute_warehouse_monitor with credit_quota=5 frequency=daily start_timestamp=immediately triggers on 75 percent do notify on 100 percent do suspend on 110 percent do suspend_immediate ;
Um den Monitor dem Warehouse COMPUTE zuzuweisen, führen Sie folgendes Statement aus:
alter warehouse compute set resource_monitor = compute_warehouse_monitor
Die vollständige Syntax dieses Befehls finden Sie in der Snowflake-Dokumentation.
Welche Resource Monitors sollten Sie einrichten?
Empfehlenswert ist ein Resource Monitor auf Account-Ebene, der sich an Ihrem Snowflake-Vertragsvolumen orientiert. So stellen Sie sicher, dass Ihr Vertragsbudget nicht früher aufgebraucht ist als geplant.
Ein Beispiel: Wenn das verbleibende Snowflake-Vertragsguthaben für die nächsten 6 Monate 240.000 USD beträgt, können Sie einen monatlichen Account-Resource-Monitor mit einer Credit Quota von 16.000 Credits einrichten (bei einem angenommenen Credit-Preis von 2,50 USD). Sie könnten sich beispielsweise per E-Mail benachrichtigen lassen, sobald der Credit-Verbrauch des Accounts 100 % dieser Quota überschreitet.
Außerdem empfiehlt sich ein Resource Monitor, der Sie über plötzliche Spitzen im Credit-Verbrauch informiert. Konfigurieren Sie dazu einen Monitor so, dass er einen Alert auslöst, sobald der Tagesverbrauch das 1,5-Fache des durchschnittlichen Tageswerts übersteigt. Passen Sie diesen Faktor bei Bedarf an, damit Sie nicht zu häufig benachrichtigt werden.

Wie sieht man sich Resource Monitors an?
Resource Monitors lassen sich in der Snowflake-Oberfläche unter Admin -> Resource Monitors einsehen:

Alternativ führen Sie show resource monitors als SQL-Statement aus:

Wer darf Resource Monitors anlegen oder darauf zugreifen?
Resource Monitors können ausschließlich von Account-Administratoren angelegt werden. Sobald ein Resource Monitor existiert, lassen sich Rollen mit den nötigen Berechtigungen zum Einsehen oder Bearbeiten eines Monitors ausstatten. Die Berechtigungen müssen für jeden Resource Monitor einzeln vergeben werden.
E-Mail-Benachrichtigungen von Resource Monitors kann jeder Snowflake-Nutzer empfangen. Konfiguriert wird das per SQL über den Parameter NOTIFY USERS am Resource Monitor. Weitere Details finden Sie in der Snowflake-Dokumentation.
Wo Snowflake Resource Monitors an ihre Grenzen stoßen
Resource Monitors sind ein guter Einstieg, um den Snowflake-Credit-Verbrauch zu kontrollieren und unerwartete Kosten zu vermeiden – aktuell gibt es jedoch einige Einschränkungen.
Erstens lassen sich Resource Monitors nur auf Account- oder Warehouse-Ebene einrichten. Serverless-Funktionen wie Automatic Clustering oder Materialized Views können ebenfalls plötzliche Kosten verursachen, werden von Resource Monitors aber nicht abgedeckt.
Zweitens unterstützen Resource Monitors ausschließlich Benachrichtigungen per E-Mail. Die meisten Teams erhalten ihre Alerts und interne Kommunikation jedoch lieber direkt in Slack oder Teams.
Hinzu kommt: Wie im Screenshot weiter oben zu sehen, liefern die E-Mail-Benachrichtigungen kaum Informationen darüber, was die Überschreitung des Credit-Kontingents ausgelöst hat. Nutzer müssen dann selbst in den Account-Usage-Daten nach der Ursache suchen.
Wer mehr Tiefe und Komfort möchte, dem empfehlen wir SELECT: Die Plattform liefert diese erweiterten Funktionen out-of-the-box und mit minimalem Einrichtungsaufwand.
Troubleshooting: Keine E-Mail vom Resource Monitor
Wenn Sie keine E-Mail von einem Resource Monitor erhalten, liegt es möglicherweise daran, dass Benachrichtigungen für den Snowflake-Admin nicht aktiviert wurden. Eine Anleitung dazu finden Sie auf dieser Seite.
Ian Whitestone·Co-Founder & CEO von SELECT
Ian ist Co-Founder & CEO von SELECT, einer SaaS-Plattform für Snowflake-Kostenmanagement und -Optimierung. Vor der Gründung von SELECT leitete er sechs Jahre lang Full-Stack-Data-Science- und Engineering-Teams bei Shopify und Capital One. Bei Shopify verantwortete er die Optimierung des Data Warehouse und den Ausbau der Kostentransparenz.