
Tenha visibilidade das queries que podem precisar de otimização (de custo) e treine os usuários sobre como (não) executar queries no Google BigQuery.
BigQuery snitch em ação para identificar queries caras
De vez em quando, todo mundo escorrega e acaba rodando queries não otimizadas no Google BigQuery. O que importa mesmo é a rapidez para identificar essas queries, aprender com o erro, colocar a lição em prática e seguir em frente.
Na DoiT International, como Google Managed Service Provider, nossos clientes vivem nos perguntando como os times podem identificar essas queries assim que elas rodam. Um dos meus colegas, Moshe Ohayon, achou um jeito elegante de resolver isso e abriu o código de uma solução que agora qualquer um pode usar (e melhorar!).
Seguindo o README, dá para fazer o deploy de uma única Google Cloud Function que monitora todas as suas queries no Google BigQuery e publica no Slack aquelas que ultrapassarem `ALERT_THRESHOLD`.
O `config.json` abaixo gera alertas para toda query acima de US$ 10 e dispara uma mensagem no Slack e por e-mail.
{ "ALERT_THRESHOLD": 10
, "TB_COST": 5, "SLACK_ALERT": true, "SLACK_WEBHOOK_URL": "https://hooks.slack.com/services/.
..", "SLACK_WEB_API_TOKEN": "", "SLACK_WEB_API_DESTINATION_CHANNEL": "", "EMAIL_ALERT": true, "SENDGRID_API_KEY": "SG...", "EMAIL_SENDER": "",
"EMAIL_CC": [\
"\
```\
\
[[email protected]](mailto:[email protected])\
\
```\
"\
],
"FIELDS_TO_RETRIEVE": [\
"job_id",\
"user_email",\
"total_bytes_billed",\
"total_bytes_processed"\
]
}
Exemplo de como as notificações do bq-snitch aparecem no Slack. Confesso que não fui muito criativo com a query de exemplo ;-)
O bq-snitch também envia as notificações por e-mail. É só habilitar o Sendgrid no seu projeto do Google Cloud Platform e colocar a chave da API do Sendgrid no config.json.
A Taboola.com é uma das primeiras beta testers do bq-snitch.
"O ganho de visibilidade com essa ferramenta é nítido. O feedback rápido e direto nos ajuda a melhorar a gestão dos nossos custos de nuvem como um todo".
Se você usa Google BigQuery (e Slack/e-mail), dê uma chance ao bq-snitch. Se tiver ideias de como podemos (ou você pode) melhorá-lo, vamos adorar receber issues/pull requests no GitHub.
Se nada disso fizer sentido, o mínimo que dá para fazer é deixar uma estrela para a gente 😇
Quer mais conteúdos? Dá uma olhada no nosso blog ou siga o Vadim no Twitter.