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 :
- Vérifiez que vous disposez des autorisations de modifier les quotas de projets pour le projet sélectionné.
- Accédez à la page Quotas de la console Google Cloud.
- 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 quotaEarth 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é. - Cliquez sur Modifier le quota dans le menu à trois points.
- Si la case Illimité est cochée, décochez-la.
- 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.
- Accédez à la page Alertes dans la section Cloud Monitoring de la console Cloud.
- Choisissez "Créer une règle" pour configurer une règle d'alerte.
- 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.
- Ajoutez un filtre :
- Utilisez
workload_tag == your_workload_tag_value
pour filtrer les tags de charge de travail spécifiques. - Utilisez
compute_type = batch
oucompute_type = online
pour filtrer sur un type de calcul spécifique.
- Utilisez
- Choisissez une valeur "Période mobile" appropriée. En cas de doute, 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, 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).
- Choisissez les libellés de règle et de gravité appropriés.
- Rédigez un court extrait de documentation.
- 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 :
- Ignorez l'étape d'ajout d'un filtre
workload_tag
pour pouvoir afficher toutes les valeurs. - 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