Контроль затрат,Контроль затрат

На этой странице описано, как установить ежедневные лимиты и отслеживать время выполнения вычислений в Earth Engine, чтобы контролировать вычислительные затраты.

Ограничьте ежедневное время работы в EECU.

Чтобы контролировать расходы на Earth Engine, вы можете установить лимит на количество времени EECU, которое ваш проект может использовать в день, обновив следующую облачную квоту:

  • Earth Engine compute time (EECU-time) per day in seconds : квота на уровне проекта, ограничивающая суммарное время EECU всех пользователей в проекте.

Для получения дополнительной информации о квотах Earth Engine, которые вы можете установить, см. раздел «Квоты Earth Engine» .

Установите дневной лимит

Вы можете просматривать и редактировать квоты на странице «Квоты и системные ограничения» в консоли Google Cloud. После изменения квоты изменения вступают в силу в течение нескольких минут. Чтобы установить или обновить суточный лимит, выполните следующие действия:

  1. Убедитесь, что у вас есть разрешения на изменение квоты проекта для выбранного вами проекта.
  2. Перейдите на страницу «Квоты» в консоли Google Cloud.
  3. Используйте фильтр «Метрика» в поле поиска «Фильтр» , чтобы отфильтровать данные по запросу earthengine.googleapis.com/daily_eecu_usage_time . Если вы не видите квоту Earth Engine compute time (EECU-time) per day in seconds , убедитесь, что API Earth Engine включен для выбранного проекта.
  4. В меню с тремя точками выберите пункт «Изменить квоту» .
  5. Если установлен флажок «Без ограничений» , снимите его.
  6. В поле «Новое значение» введите желаемый лимит в секундах EECU. Нажмите «Отправить запрос» .

Для получения дополнительной информации о просмотре и управлении квотами см. раздел «Просмотр и управление квотами» .

Возвращены сообщения об ошибках

После установки суточного лимита Earth Engine выдает следующее сообщение об ошибке при его превышении:

Ваше использование превысило установленную квоту для 'earthengine.googleapis.com/daily_eecu_usage_time', которую можно изменить у администратора в консоли Google Cloud: https://console.cloud.google.com/quotas/?project=_.

После превышения квоты запросы Earth Engine будут завершаться с ошибкой до тех пор, пока квота не будет сброшена на следующий день или лимит не будет увеличен администратором.

Детальный мониторинг и оповещение

Если вам необходимо контролировать и отслеживать затраты с более высокой точностью, чем позволяет дневной лимит , следующие сценарии требуют дополнительной настройки, но позволяют получать оповещения и отменять операции на уровне workload_tag и пакетной задачи.

В этих рецептах используется мониторинг выполнения запросов в режиме реального времени (EECU-time), который стал доступен для запущенных запросов. Дополнительную информацию об отчётности о выполнении запросов в режиме реального времени (EECU-time) в Cloud Monitoring см. в руководстве по использованию мониторинга .

Настройка оповещений

В Cloud Monitoring можно настроить оповещения, которые будут предупреждать вас, когда показатель достигнет определенного порогового значения. Система оповещений Cloud Monitoring очень гибкая. Мы собрали здесь несколько наших любимых вариантов, но вы можете использовать собственные настройки, соответствующие вашим потребностям.

Рецепт: Уведомление в чате об использовании workload_tag

В этом примере показано, как настроить уведомление в чате (например, в Google Chat или Slack), если использование вычислительных ресурсов Earth Engine для заданного workload_tag превышает пороговое значение. Это может быть полезно, если у вас есть набор задач экспорта, которые создают данные для вашего производственного сервиса, и вы хотите получать уведомления, если они в совокупности потребляют больше определенного количества вычислительного времени EECU.

  1. Перейдите на страницу «Оповещения» в разделе «Мониторинг облака» консоли облака.
  2. Выберите «Создать политику», чтобы настроить новую политику оповещений.
  3. Выберите показатель:
    • Показатель In-progress EECU-seconds обозначает количество секунд, ожидающих завершения (еще не завершившихся).
    • Возможно, вам потребуется снять флажок с фильтра "Активные", чтобы увидеть этот показатель.
  4. Добавить фильтр:
    • Используйте workload_tag == your_workload_tag_value для фильтрации по определенному тегу рабочей нагрузки.
    • Используйте compute_type = batch или compute_type = online для фильтрации по определенному типу вычислений.
  5. Выберите подходящее значение параметра «скользящее окно». Если вы не уверены, используйте 5 min .
  6. Выберите пункт "Сумма" в меню "Функция скользящего окна". Настройка метрики для оповещения
  7. Выберите триггер оповещения и дайте ему имя.
  8. Выберите каналы уведомлений.
    • Для этого рецепта мы выберем в появившемся окне «Управление каналами уведомлений», затем «Добавить новый» и вставим идентификатор пространства вашего чата Google. Этот идентификатор можно найти в URL-адресе страницы Gmail или чата при просмотре чата.
    • При использовании Google Chat вам также потребуется ввести @Google Cloud Monitoring и выбрать приложение, чтобы добавить приложение для оповещений в ваше пространство (если это разрешено вашей организацией).
  9. Выберите соответствующие параметры политики и уровень серьезности.
  10. Напишите небольшой фрагмент документации.
  11. Опубликуйте свою новую политику оповещений!

После настройки вы будете получать уведомления в чате всякий раз, когда будет превышен пороговый уровень для вашего проекта.

Рецепт: Получайте уведомления по электронной почте о полном текущем времени EECU.

Следуйте инструкциям по настройке уведомлений в чате, но внесите два изменения:

  1. Пропустите шаг добавления фильтра workload_tag , чтобы увидеть все значения.
  2. При выборе канала уведомлений вместо настройки канала чата укажите свой адрес электронной почты.

Задержка и время оповещения

Обратите внимание, что в распространении отчетов мониторинга есть небольшая задержка, поэтому не стоит ожидать мгновенных уведомлений.

Отменить ресурсоемкие задачи

При наличии ограничения можно использовать API Earth Engine для периодической проверки списка ожидающих задач и запроса на отмену любой запущенной задачи, превышающей лимит в EECU-секундах.

Рецепт: Запустите фрагмент кода в блокноте или локальной оболочке 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