Cette page explique comment définir des limites quotidiennes et surveiller le temps d'EECU en cours pour maîtriser les coûts de calcul dans Earth Engine.
Limiter le temps d'EECU quotidien
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 d'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 Earth Engine quotas.
Définir une limite quotidienne
Vous pouvez afficher et modifier les quotas sur la page Quotas & 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 :
- Vérifiez que vous disposez des autorisations nécessaires pour modifier le quota de projet sur le projet sélectionné.
- Accédez à la page Quotas de la console Google Cloud.
- Utilisez le filtre Métrique dans le champ de recherche Filtre pour filtrer
earthengine.googleapis.com/daily_eecu_usage_time. Si le quotaEarth Engine compute time (EECU-time) per day in secondsne s'affiche pas, vérifiez que vous avez activé l'API Earth Engine pour le projet sélectionné. - Cliquez sur Modifier le quota dans le menu à trois points.
- Si la case Illimité est cochée, décochez-la.
- Saisissez la limite en secondes d'EECU souhaitée dans le champ Nouvelle valeur. Cliquez sur Envoyer la requête.
Pour savoir comment afficher et gérer les 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 devez contrôler et 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 générer des
alertes et d'annuler des tâches au niveau de
workload_tag et des tâches par
lot.
Ces recettes utilisent la surveillance du temps d'EECU en cours qui s'affiche pour les requêtes en cours d'exécution. Pour en savoir plus sur la création de rapports sur le temps d'EECU en cours dans Cloud Monitoring, consultez le guide Surveillance de l'utilisation.
Configurer des alertes
Vous pouvez configurer des alertes dans Cloud Monitoring pour être averti lorsqu'une métrique atteint un certain seuil. Le système d'alerte Cloud Monitoring est très flexible. Nous avons rassemblé ici quelques-unes de nos recettes préférées, mais n'hésitez pas à utiliser des configurations personnalisées adaptées à vos besoins.
Recette : Notification par chat pour l'utilisation de workload_tag
Cet exemple montre comment configurer une notification par chat (par exemple, un message Google Chat
ou Slack) si l'utilisation du calcul Earth Engine pour un
workload_tag 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'EECU.
- Accédez à la page Alertes de la section Cloud Monitoring de la console Cloud.
- Sélectionnez "Créer une règle" pour configurer une nouvelle règle d'alerte.
- Sélectionnez la métrique :
- Secondes d'EECU en cours représente le 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.
- Ajoutez un filtre :
- Utilisez
workload_tag == your_workload_tag_valuepour filtrer un tag de charge de travail particulier. - Utilisez
compute_type = batchoucompute_type = onlinepour filtrer un type de calcul particulier.
- Utilisez
- Choisissez une valeur appropriée pour "Fenêtre glissante". Si vous n'êtes pas sûr, utilisez
5 min. - Sélectionnez "Somme" dans le menu "Fonction de fenêtre glissante".

- Choisissez le déclencheur de l'alerte et attribuez-lui un nom.
- Sélectionnez les canaux de notification.
- Pour cette recette, sélectionnez "Gérer les canaux de notification" dans la fenêtre modale, puis "Ajouter" pour coller l'ID d'espace de votre Google Chat. Cet ID se trouve dans l'URL de la page Gmail ou Chat lorsque vous affichez le chat.
- Si vous utilisez Google Chat, vous devez également saisir
@Google Cloud Monitoringet sélectionner l'application pour ajouter l'application Alertes à votre espace (si votre organisation l'autorise).
- Choisissez les libellés de règle et de gravité pertinents.
- Rédigez un court extrait de documentation.
- Publiez votre nouvelle règle d'alerte.
Une fois configuré, vous recevrez des alertes dans votre espace de chat chaque fois que le seuil sera dépassé pour votre projet.
Recette : Recevoir des alertes par e-mail pour le temps d'EECU total en cours
Suivez la recette pour les notifications par chat, mais apportez deux modifications :
- Ignorez l'étape d'ajout d'un filtre
workload_tagafin de pouvoir afficher toutes les valeurs. - Lorsque vous sélectionnez un canal de notification, au lieu de configurer un canal de chat, ajoutez votre adresse e-mail.
Latence et timing des alertes
Notez qu'il existe un léger délai dans la propagation des rapports Monitoring. Vous ne devez donc pas vous attendre à 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 d'exécution 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