SELECTSELECT

SELECT

Maîtriser les coûts avec les Resource Monitors Snowflake

By Ian WhitestoneMar 17, 20235 min read

Cette page est également disponible en English, Deutsch, Español, Italiano, 日本語 et Português.

Les resource monitors sont une fonctionnalité de Snowflake conçue pour aider les clients à maîtriser leurs dépenses. Dans cet article, nous passons en revue tout ce qu'il faut savoir pour les configurer et en tirer le meilleur parti dans votre compte. Pour commencer, voyons pourquoi les utiliser.

À quoi servent les resource monitors Snowflake ?

La tarification à l'usage et la facilité de mise à l'échelle de Snowflake permettent aux clients de ne payer que les ressources nécessaires, tout en montant en charge rapidement pour suivre la demande. Le revers de la médaille : sans garde-fous, les coûts Snowflake peuvent grimper de manière inattendue. Les resource monitors aident à suivre et maîtriser les coûts en envoyant des notifications dès que des seuils de dépense définis sont atteints. Ils peuvent aussi être configurés pour éviter un renouvellement anticipé du contrat en encadrant la consommation de crédits.

Que font les resource monitors Snowflake ?

Les resource monitors permettent de définir une limite de crédits Snowflake pour une ressource donnée sur une période donnée. Par exemple, on peut attribuer une limite quotidienne de 50 crédits à un warehouse ou à un groupe de warehouses. Lorsqu'un pourcentage défini de cette limite est atteint sur la période, le resource monitor peut déclencher différentes actions. Les trois actions possibles sont :

  1. Notifier l'utilisateur par e-mail
  2. Suspendre le ou les warehouses une fois toutes les requêtes terminées
  3. Suspendre immédiatement le ou les warehouses et interrompre toute requête en cours

Au-delà des warehouses, les resource monitors peuvent être configurés au niveau d'un compte entier.

La capture d'écran ci-dessous illustre un exemple de notification envoyée par e-mail par un resource monitor.

Notification e-mail d'un resource monitor Snowflake

Comment créer un resource monitor dans Snowflake ?

Les resource monitors se créent via l'interface Snowflake ou de manière programmatique en SQL. Voyons chaque approche.

Créer un resource monitor depuis l'interface

Pour créer un resource monitor dans l'interface Snowflake, rendez-vous dans Admin > Resource Monitors. Après avoir cliqué sur le bouton + Resource Monitor en haut à droite, vous serez invité à renseigner les informations suivantes :

Création d'un resource monitor Snowflake

  1. Nom : choisissez le nom qui vous convient, sachant que les espaces ne sont pas autorisés
  2. Quota de crédits : l'enveloppe de crédits souhaitée pour le monitor
  3. Type de monitor : soit Account, soit Warehouse. Avec Account, le quota s'applique à l'ensemble du compte. Avec Warehouse, il ne s'applique qu'aux warehouses que vous précisez.
  • Warehouse(s) : si vous avez choisi Warehouse comme type de monitor, vous serez invité à sélectionner un ou plusieurs warehouses à associer au monitor.
  1. Planification : permet de configurer l'heure de début et (en option) l'heure de fin de fonctionnement du resource monitor. La fréquence de réinitialisation du compteur de crédits peut également être définie. Les options prises en charge sont : quotidienne, mensuelle, annuelle et jamais.
  2. Actions : au moins une action doit être configurée pour créer le monitor.

Créer un resource monitor en SQL

Voici un exemple de commande pour créer un resource monitor en SQL :

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 ;

Pour associer le monitor au warehouse COMPUTE, exécutez la commande suivante :

alter warehouse compute set resource_monitor = compute_warehouse_monitor

La syntaxe complète de cette commande figure dans la documentation Snowflake.

Quels resource monitors envisager ?

Pensez à créer un resource monitor au niveau du compte, calibré sur le montant de votre contrat Snowflake. Vous éviterez ainsi d'épuiser votre budget contractuel plus tôt que prévu.

Par exemple, s'il vous reste 240 000 $ sur votre contrat Snowflake pour les 6 prochains mois, vous pouvez définir un resource monitor mensuel sur le compte avec un quota de 16 000 crédits (en partant d'un prix de 2,5 $ par crédit). Vous pouvez choisir de recevoir une notification par e-mail si la consommation de crédits du compte dépasse 100 % de ce quota.

Autre recommandation : créer un resource monitor pour vous alerter en cas de pic de consommation. Pour cela, configurez un monitor qui envoie une alerte dès que la dépense quotidienne dépasse 1,5 fois la moyenne journalière. Ajustez ce multiplicateur au besoin pour éviter des alertes trop fréquentes.

Aucun texte alternatif fourni

Comment consulter les resource monitors ?

Les resource monitors se consultent dans l'interface Snowflake, sous Admin -> Resource Monitors :

Aucun texte alternatif fourni

Vous pouvez aussi exécuter show resource monitors en SQL :

Aucun texte alternatif fourni

Qui peut créer un resource monitor ou y accéder ?

Seuls les administrateurs du compte peuvent créer des resource monitors. Une fois le resource monitor créé, des rôles peuvent se voir attribuer un accès en lecture ou en modification. L'accès doit être accordé individuellement à chaque resource monitor.

Tout utilisateur Snowflake peut recevoir les notifications par e-mail des resource monitors. Cela se configure en SQL via le paramètre NOTIFY USERS sur le resource monitor. Consultez la documentation Snowflake pour plus de détails.

Quelles sont les limites des resource monitors Snowflake ?

Si les resource monitors constituent un excellent point de départ pour maîtriser la consommation de crédits Snowflake et éviter les mauvaises surprises, ils présentent à ce jour quelques limites.

D'abord, ils ne peuvent être définis qu'au niveau du compte ou du warehouse. Les fonctionnalités serverless comme l'automatic clustering ou les vues matérialisées peuvent elles aussi générer des coûts soudains, mais ne sont pas couvertes par les resource monitors.

Les resource monitors ne prennent en charge que les notifications par e-mail. La plupart des équipes préfèrent recevoir leurs notifications directement dans Slack ou Teams, aux côtés du reste de leurs alertes et de leurs échanges internes.

De plus, comme le montre la capture d'écran précédente, les notifications par e-mail apportent peu d'informations sur la cause du dépassement de quota. Les utilisateurs doivent ensuite fouiller dans les données d'usage du compte pour identifier l'origine du pic.

Pour une expérience plus complète, nous recommandons SELECT, qui propose ces fonctionnalités avancées prêtes à l'emploi avec un effort de configuration minimal.

Résoudre l'absence d'e-mail d'un resource monitor

Si vous ne recevez pas d'e-mail d'un resource monitor, c'est peut-être que les notifications n'ont pas été activées pour l'administrateur Snowflake. Consultez cette page pour savoir comment procéder.

Ian Whitestone · Co-fondateur et CEO de SELECT

Ian est co-fondateur et CEO de SELECT, une plateforme SaaS de gestion et d'optimisation des coûts Snowflake. Avant de lancer SELECT, Ian a passé 6 ans à diriger des équipes full stack de data science et d'engineering chez Shopify et Capital One. Chez Shopify, il a piloté l'optimisation du data warehouse et l'amélioration de la visibilité sur les coûts.