Nesta página, descrevemos como definir limites diários e monitorar o tempo de EECU em andamento para ajudar a controlar os custos computacionais no Earth Engine.
Limitar o tempo diário de EECU
Para controlar os custos do Earth Engine, defina um limite para a quantidade de tempo de EECU que seu projeto pode consumir por dia. Para isso, atualize a seguinte cota do Cloud:
Earth Engine compute time (EECU-time) per day in seconds
: uma cota no nível do projeto que limita o tempo agregado de EECU de todos os usuários em um projeto.
Para mais informações sobre as cotas do Earth Engine que podem ser definidas, consulte Cotas do Earth Engine.
Definir um limite diário
É possível conferir e editar cotas na página Cotas e limites do sistema do console do Google Cloud. Quando você ajusta uma cota, a mudança entra em vigor em alguns minutos. Para definir ou atualizar um limite diário, faça o seguinte:
- Verifique se você tem as Permissões para mudar a cota do projeto no projeto selecionado.
- Acesse a página Cotas do console do Google Cloud.
- Use o filtro Métrica na caixa de pesquisa Filtro para filtrar por
earthengine.googleapis.com/daily_eecu_usage_time
. Se você não encontrar a cotaEarth Engine compute time (EECU-time) per day in seconds
, verifique se ativou a API Earth Engine para o projeto selecionado. - Clique em Editar cota no menu de três pontos.
- Se a caixa de seleção Ilimitado estiver marcada, desmarque-a.
- Insira o limite em segundos de EECU que você quer no campo Novo valor. Clique em Enviar solicitação.
Para mais informações sobre como visualizar e gerenciar cotas, consulte Visualizar e gerenciar cotas.
Mensagens de erro retornadas
Depois de definir um limite diário, o Earth Engine retorna a seguinte mensagem de erro quando você o excede:
Seu uso excedeu a cota personalizada para 'earthengine.googleapis.com/daily_eecu_usage_time', que pode ser ajustada pelo administrador no console do Google Cloud: https://console.cloud.google.com/quotas/?project=_.
Quando a cota é excedida, as solicitações do Earth Engine falham até que ela seja redefinida no dia seguinte ou o limite seja aumentado por um administrador.
Monitoramento e alertas granulares
Se você precisar controlar e monitorar os custos com mais detalhes do que o limite diário, as receitas a seguir exigem mais configuração, mas permitem alertas e cancelamentos no nível da workload_tag
e da tarefa em lote.
Essas receitas usam o monitoramento de tempo de EECU em andamento que aparece para solicitações em execução. Consulte o guia Uso do Monitoring para mais informações sobre relatórios de tempo de EECU em andamento no Cloud Monitoring.
Configurar alertas
É possível configurar alertas no Cloud Monitoring para avisar quando uma métrica atingir um determinado limite. O sistema de alertas do Cloud Monitoring é muito flexível. Reunimos algumas das nossas receitas favoritas aqui, mas você pode usar configurações personalizadas que atendam às suas necessidades.
Receita: notificação de chat para uso do workload_tag
Este exemplo mostra como conectar uma notificação de chat (por exemplo, uma mensagem do Google Chat ou do Slack) se o uso de computação do Earth Engine para um determinado workload_tag
exceder um limite. Isso pode ser útil se você tiver um conjunto de tarefas de exportação
que criam dados para seu serviço de produção e quiser receber uma notificação se
elas consumirem coletivamente mais do que uma determinada quantidade de tempo de EECU.
- Acesse a página Alertas na seção Cloud Monitoring do console do Cloud.
- Escolha "Criar política" para configurar uma nova política de alertas.
- Selecione a métrica:
- Segundos de EECU em andamento representam o número de segundos de computação pendentes (ainda não concluídos).
- Talvez seja necessário desmarcar o filtro "Ativo" para ver a métrica.
- Adicionar um filtro:
- Use
workload_tag == your_workload_tag_value
para filtrar uma tag de carga de trabalho específica. - Use
compute_type = batch
oucompute_type = online
para filtrar um tipo específico de cálculo.
- Use
- Escolha um valor adequado para "Janela móvel". Se você não tiver certeza, use
5 min
. - Selecione "Soma" no menu "Função de janela contínua".
- Escolha o acionador do alerta e dê um nome a ele.
- Selecione os canais de notificação.
- Para esta receita, vamos escolher "Gerenciar canais de notificação" na janela modal e "Adicionar novo" para colar o ID do espaço do Google Chat. Esse ID pode ser encontrado no URL da página do Gmail ou do Chat ao visualizar a conversa.
- Se você estiver usando o Google Chat, digite
@Google Cloud Monitoring
e selecione o app para adicionar ao seu espaço (se a organização permitir).
- Escolha os rótulos de política e gravidade relevantes.
- Escreva um pequeno snippet de documentação.
- Publique sua nova política de alertas.
Depois de definido, você vai receber alertas no seu espaço de chat sempre que o limite for excedido no seu projeto.
Receita: receber alertas por e-mail sobre o tempo total em andamento da EECU
Siga a receita para notificações de chat, mas faça duas mudanças:
- Pule a etapa de adicionar um filtro
workload_tag
para ver todos os valores. - Ao selecionar um canal de notificação, em vez de configurar um canal de chat, adicione seu endereço de e-mail.
Latência e tempo de alerta
Há um pequeno atraso na propagação dos relatórios do Monitoring, então não espere notificações instantâneas.
Cancelar tarefas que consomem muitos recursos
Com um limite, é possível usar a API Earth Engine para verificar periodicamente a lista de tarefas pendentes e solicitar o cancelamento de qualquer tarefa em execução que exceda o limite de segundos de EECU.
Receita: executar um snippet de código em um notebook ou 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