Maîtrise des coûts

Cette page explique comment définir des limites quotidiennes et surveiller le temps d'utilisation des EECU en cours pour contrôler les coûts de calcul dans Earth Engine.

Limiter le temps d'utilisation quotidien de l'EECU

Pour maîtriser vos coûts Earth Engine, vous pouvez définir une limite sur la quantité de temps d'EECU que votre projet est autorisé à consommer par jour en modifiant le quota Cloud suivant :

  • Earth Engine compute time (EECU-time) per day in seconds : quota au niveau du projet qui limite le temps EECU agrégé de tous les utilisateurs d'un projet.

Pour en savoir plus sur les quotas Earth Engine que vous pouvez définir, consultez Quotas Earth Engine.

Définir une limite quotidienne

Vous pouvez afficher et modifier les quotas sur la page Quotas et limites du système de la console Google Cloud. Lorsque vous ajustez un quota, la modification prend effet en quelques minutes. Pour définir ou modifier une limite quotidienne, procédez comme suit :

  1. Vérifiez que vous disposez des autorisations de modifier les quotas de projets pour le projet sélectionné.
  2. Accédez à la page Quotas de la console Google Cloud.
  3. Utilisez le filtre Métriques dans le champ de recherche Filtre pour filtrer les résultats sur earthengine.googleapis.com/daily_eecu_usage_time. Si le quota Earth Engine compute time (EECU-time) per day in seconds ne s'affiche pas, vérifiez que vous avez activé l'API Earth Engine pour le projet sélectionné.
  4. Cliquez sur Modifier le quota dans le menu à trois points.
  5. Si la case Illimité est cochée, décochez-la.
  6. Saisissez la limite souhaitée en secondes EECU dans le champ Nouvelle valeur. Cliquez sur Envoyer la demande.

Pour en savoir plus sur l'affichage et la gestion des quotas, consultez Afficher et gérer les quotas.

Messages d'erreur renvoyés

Une fois que vous avez défini une limite quotidienne, Earth Engine renvoie le message d'erreur suivant lorsque vous la dépassez :

Votre utilisation a dépassé le quota personnalisé pour "earthengine.googleapis.com/daily_eecu_usage_time", qui peut être ajusté par votre administrateur dans la console Google Cloud : https://console.cloud.google.com/quotas/?project=_.

Une fois le quota dépassé, les requêtes Earth Engine échouent jusqu'à ce que le quota soit réinitialisé le lendemain ou que la limite soit augmentée par un administrateur.

Surveillance et alertes précises

Si vous avez besoin de contrôler et de surveiller les coûts de manière plus précise que la limite quotidienne, les recettes suivantes nécessitent une configuration plus poussée, mais permettent de définir des alertes et d'annuler des tâches au niveau workload_tag et des tâches par lot.

Ces recettes utilisent la surveillance de la durée EECU en cours qui s'affiche pour les requêtes en cours d'exécution. Pour en savoir plus sur les rapports en cours sur le temps EECU dans Cloud Monitoring, consultez le guide Surveillance de l'utilisation.

Configurer des alertes

Vous pouvez configurer des alertes dans Cloud Monitoring pour vous avertir lorsqu'une métrique atteint un certain seuil. Le système d'alerte Cloud Monitoring est très flexible. Nous avons rassemblé quelques-unes de nos recettes préférées ici, mais n'hésitez pas à cuisiner avec des configurations personnalisées qui répondent à vos besoins.

Recette : notification Chat pour l'utilisation de workload_tag

Cet exemple montre comment configurer une notification de chat (par exemple, un message Google Chat ou Slack) si l'utilisation du calcul Earth Engine pour un workload_tag donné dépasse un seuil. Cela peut être utile si vous disposez d'un ensemble de tâches d'exportation qui créent des données pour votre service de production et que vous souhaitez être averti si elles consomment collectivement plus d'une certaine quantité de temps d'UEEC.

  1. Accédez à la page Alertes dans la section Cloud Monitoring de la console Cloud.
  2. Choisissez "Créer une règle" pour configurer une règle d'alerte.
  3. Sélectionnez la métrique :
    • Secondes EECU en cours : nombre de secondes de calcul en attente (qui n'ont pas encore abouti).
    • Vous devrez peut-être désélectionner le filtre "Actif" pour afficher la métrique.
  4. Ajoutez un filtre :
    • Utilisez workload_tag == your_workload_tag_value pour filtrer les tags de charge de travail spécifiques.
    • Utilisez compute_type = batch ou compute_type = online pour filtrer sur un type de calcul spécifique.
  5. Choisissez une valeur "Période mobile" appropriée. En cas de doute, utilisez 5 min.
  6. Sélectionnez "Somme" dans le menu "Fonction de fenêtre glissante". Configuration d'une métrique pour une alerte
  7. Choisissez le déclencheur de l'alerte et attribuez-lui un nom.
  8. Sélectionnez les canaux de notification.
    • Pour cette recette, nous allons choisir "Gérer les canaux de notification" dans la fenêtre modale, puis "Ajouter" pour coller l'ID de l'espace de votre Google Chat. Vous trouverez cet ID dans l'URL de la page Gmail ou Chat lorsque vous consultez la discussion.
    • Si vous utilisez Google Chat, vous devrez également saisir @Google Cloud Monitoring et sélectionner l'application pour ajouter l'application Alerting à votre espace (si votre organisation l'autorise).
  9. Choisissez les libellés de règle et de gravité appropriés.
  10. Rédigez un court extrait de documentation.
  11. Publiez votre nouvelle règle d'alerte.

Une fois le seuil défini, vous recevrez des alertes dans votre espace de discussion chaque fois qu'il sera dépassé pour votre projet.

Recette : Recevoir des alertes par e-mail pour la durée totale en cours d'utilisation de l'EECU

Suivez la recette pour les notifications de chat, mais apportez deux modifications :

  1. Ignorez l'étape d'ajout d'un filtre workload_tag pour pouvoir afficher toutes les valeurs.
  2. Lorsque vous sélectionnez un canal de notification, ajoutez votre adresse e-mail au lieu de configurer un canal de chat.

Latence et timing des alertes

Notez qu'il existe un léger délai de propagation des rapports Monitoring. Vous ne devez donc pas vous attendre à recevoir des notifications instantanées.

Annuler les tâches gourmandes en ressources

Étant donné une limite, il est possible d'utiliser l'API Earth Engine pour vérifier régulièrement la liste des tâches en attente et demander l'annulation de toute tâche en cours qui dépasse la limite de secondes d'EECU.

Recette : Exécuter un extrait de code dans un notebook ou un shell Python local

eecu_seconds_limit = 50 * 60 * 60  # 50 hours
print("Watching for operations to cancel...")
while(True):
  for op in ee.data.listOperations():
    if op['metadata']['state'] == 'RUNNING':
      if op['metadata'].get('batchEecuUsageSeconds', 0) > eecu_seconds_limit:
        print(f"Cancelling operation {op['name']}")
        ee.data.cancelOperation(op['name'])
  time.sleep(10)  # 10 seconds