Controles de costos

En esta página, se describe cómo establecer límites diarios y supervisar el tiempo de EECU en curso para ayudar a controlar los costos de procesamiento en Earth Engine.

Limita el tiempo de uso diario de EECU

Para ayudarte a controlar los costos de Earth Engine, puedes establecer un límite en la cantidad de tiempo de EECU que tu proyecto puede consumir en un día. Para ello, actualiza la siguiente cuota de Cloud:

  • Earth Engine compute time (EECU-time) per day in seconds: Es una cuota a nivel del proyecto que limita el tiempo de EECU agregado de todos los usuarios de un proyecto.

Para obtener más información sobre las cuotas de Earth Engine que puedes establecer, consulta Cuotas de Earth Engine.

Cómo establecer un límite diario

Puedes ver y editar las cuotas en la página Cuotas y límites del sistema de la consola de Google Cloud. Cuando ajustas una cuota, el cambio se aplica en unos minutos. Para establecer o actualizar un límite diario, haz lo siguiente:

  1. Verifica que tengas los permisos para cambiar la cuota del proyecto en el proyecto seleccionado.
  2. Navega a la página Cuotas de la consola de Google Cloud.
  3. Usa el filtro Métrica en el cuadro de búsqueda Filtro para filtrar por earthengine.googleapis.com/daily_eecu_usage_time. Si no ves la cuota de Earth Engine compute time (EECU-time) per day in seconds, verifica que hayas habilitado la API de Earth Engine para el proyecto seleccionado.
  4. Haz clic en Editar cuota en el menú de tres puntos.
  5. Si la casilla de verificación Ilimitado está seleccionada, desmarca la opción.
  6. Ingresa el límite en segundos de EECU que deseas en el campo Valor nuevo. Haz clic en Enviar solicitud.

Para obtener más información sobre cómo ver y administrar las cuotas, consulta Visualiza y administra cuotas.

Mensajes de error devueltos

Después de establecer un límite diario, Earth Engine muestra el siguiente mensaje de error cuando lo superas:

Tu uso superó la cuota personalizada para "earthengine.googleapis.com/daily_eecu_usage_time", que tu administrador puede ajustar en la consola de Google Cloud: https://console.cloud.google.com/quotas/?project=_.

Una vez que se exceda la cuota, fallarán las solicitudes de Earth Engine hasta que se restablezca la cuota al día siguiente o un administrador aumente el límite.

Supervisión y alertas detalladas

Si necesitas controlar y supervisar los costos con un nivel de detalle mayor que el límite diario, las siguientes recetas requieren más configuración, pero permiten establecer alertas y cancelaciones a nivel de workload_tag y de tareas por lotes.

Estas recetas usan la supervisión del tiempo de EECU en curso que se muestra para las solicitudes en ejecución. Consulta la guía de Supervisión del uso para obtener más información sobre los informes de tiempo de EECU en curso en Cloud Monitoring.

Configura alertas

Puedes configurar alertas en Cloud Monitoring para que te avisen cuando una métrica alcance un determinado umbral. El sistema de alertas de Cloud Monitoring es muy flexible. Aquí reunimos algunas de nuestras recetas favoritas, pero no dudes en cocinar con las configuraciones personalizadas que se adapten a tus necesidades.

Receta: Notificación de chat para el uso de workload_tag

En este ejemplo, se muestra cómo conectar una notificación de chat (p.ej., un mensaje de Google Chat o un mensaje de Slack) si el uso de procesamiento de Earth Engine para un workload_tag determinado supera un umbral. Esto podría ser útil en el caso de que tengas un conjunto de tareas de exportación que creen datos para tu servicio de producción y quieras recibir una notificación si, en conjunto, consumen más de una cierta cantidad de tiempo de EECU.

  1. Visita la página Alertas en la sección Cloud Monitoring de la consola de Cloud.
  2. Elige "Crear política" para configurar una política de alertas nueva.
  3. Selecciona la métrica:
    • Segundos de CEEU en curso representa la cantidad de segundos de procesamiento pendientes (que aún no se completaron).
    • Es posible que debas anular la selección del filtro "Activo" para ver la métrica.
  4. Agrega un filtro:
    • Usa workload_tag == your_workload_tag_value para filtrar por una etiqueta de carga de trabajo en particular.
    • Usa compute_type = batch o compute_type = online para filtrar un tipo de cálculo en particular.
  5. Elige un valor adecuado para "Ventana continua". Si no tienes certeza, usa 5 min.
  6. Selecciona "Suma" en el menú "Función de ventana progresiva". Configuración de una métrica para una alerta
  7. Elige el activador de la alerta y asígnale un nombre.
  8. Selecciona los canales de notificaciones.
    • Para esta receta, elegiremos "Administrar canales de notificación" en la ventana modal y, luego, "Agregar nuevo" para pegar el ID del espacio de tu Google Chat. Este ID se puede encontrar en la URL de la página de Gmail o Chat cuando se ve el chat.
    • Si usas Google Chat, también deberás escribir @Google Cloud Monitoring y seleccionar la app para agregar la app de Alertas a tu espacio (si tu organización lo permite).
  9. Elige las etiquetas de política y gravedad pertinentes.
  10. Escribe un fragmento breve de documentación.
  11. Publica tu nueva política de alertas.

Una vez que lo configures, recibirás alertas en tu espacio de chat cada vez que se supere el umbral de tu proyecto.

Receta: Recibe alertas por correo electrónico sobre el tiempo total en curso de la EECU

Sigue la receta para las notificaciones de chat, pero realiza dos cambios:

  1. Omite el paso para agregar un filtro workload_tag, de modo que puedas ver todos los valores.
  2. Cuando selecciones un canal de notificaciones, en lugar de configurar un canal de chat, agrega tu dirección de correo electrónico.

Latencia y sincronización de las alertas

Ten en cuenta que hay un pequeño retraso en la propagación de los informes de supervisión, por lo que no debes esperar notificaciones instantáneas.

Cancela las tareas que consumen muchos recursos

Dado un límite, es posible usar la API de Earth Engine para verificar periódicamente la lista de tareas pendientes y solicitar la cancelación de cualquier tarea en ejecución que exceda el límite de segundos de EECU.

Receta: Ejecuta un fragmento de código en un notebook o en un shell local de Python

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