📌 Fluxo de Processamento e Validação de Tags
🔹 O que é o fluxo de tags?
O Fluxo de Processamento e Validação de Tags é o conjunto de processos automatizados responsáveis por:
- Receber catálogos de tags válidas de diferentes origens (CSV no S3, API Alquimia).
- Carregar e validar informações de custos multicloud (AWS e Azure) a partir do BigQuery.
- Classificar os recursos quanto à correção, ausência ou inconsistência de tags.
- Consolidar os dados em tabelas no RDS.
- Enviar alertas automáticos para squads no Slack.
Esse fluxo garante que os custos sejam corretamente associados às dimensões de negócio (VS, Squad, Produto, Environment) e que desvios sejam monitorados com recorrência.
🔹 Quais são os processos principais?
| Processo | Lambda | Frequência | Entrada | Saída |
|---|---|---|---|---|
| Carga de catálogo de contas ↔ tags | fromToAccountTagsProcess |
Upload no S3 | from-to-accounts-tags.csv |
FROM_TO_ACCOUNTS_TAGS_TABLE |
| Carga de catálogo de tags válidas (FinOps) | validTagsFinOpsProcess |
Upload no S3 | valid-tags-finops.csv |
VALID_TAGS_TABLE (origin=finops) |
| Carga de catálogo de tags válidas (Alquimia) | updateAlquimiaValidTags |
04:00 UTC (diário) | API Alquimia | VALID_TAGS_TABLE (origin=alquimia) |
| Classificação e cálculo de custos | runTagReport |
15:00 UTC (diário) | BigQuery + VALID_TAGS_TABLE |
TAG_REPORT_TABLE |
| Envio de alertas para squads | runTagAlerts |
1º e 15 às 16:00 UTC | TAG_REPORT_TABLE |
Slack (mensagens automáticas) |
🔹 Como cada processo funciona?
🟢 Lambda: fromToAccountTagsProcess

- ⏰ Trigger: Upload no S3 (
from-to-accounts-tags.csv). -
📥 Entrada: Arquivo CSV com mapeamento de contas ↔ tags.
-
⚙️ Processamento:
- Limpa a tabela
FROM_TO_ACCOUNTS_TAGS_TABLE. - Lê CSV em chunks de 10k.
-
Persiste registros no banco.
-
💾 Destino:
FROM_TO_ACCOUNTS_TAGS_TABLE(RDS). - 📤 Saída: Dados auxiliares para análises - não é dependência direta do fluxo central de validação.
🟢 Lambda: validTagsFinOpsProcess

- ⏰ Trigger: Upload no S3 (
valid-tags-finops.csv). -
📥 Entrada: Arquivo CSV com catálogo de tags válidas.
-
⚙️ Processamento:
- Limpa registros antigos em
VALID_TAGS_TABLE(origin = 'finops'). - Lê CSV em chunks de 10k.
-
Insere novos valores de referência de tags.
-
💾 Destino:
VALID_TAGS_TABLE(RDS). - 📤 Saída: Catálogo FinOps de tags válidas. Usado pelo
runTagReportpara validar registros.
🟢 Lambda: updateAlquimiaValidTags

- ⏰ Agendamento: Todos os dias às 04:00 UTC.
-
📥 Entrada: API Alquimia (via Apigee, com token).
-
⚙️ Processamento:
- Busca lista de VS ativos (
spec.enabled = true). - Limpa
VALID_TAGS_TABLE(origin = 'alquimia'). -
Insere novos registros de VS válidos.
-
💾 Destino:
VALID_TAGS_TABLE(RDS). - 📤 Saída: Catálogo Alquimia de tags válidas. Usado pelo
runTagReport.
🟢 Lambda: runTagReport

-
⏰ Agendamento: Todos os dias às 15:00 UTC.
-
📥 Entrada:
- BigQuery (custos e tags de AWS e Azure).
-
RDS (
VALID_TAGS_TABLE) como referência de validação. -
⚙️ Processamento:
-
Executa queries no BigQuery (últimos 7 dias).
-
Para cada registro:
- Verifica se aceita tags (
accept_tags). - Classifica situação: Não Tagueável / Sem Tags / Todas Corretas / Precisa Ajustes.
- Valida vs, squad, product, environment contra
VALID_TAGS_TABLE. - Calcula custos (correct_cost, incorrect_cost, no_tags_cost, no_taggeable_cost).
- Persiste em chunks de 10k.
- Verifica se aceita tags (
-
💾 Destino:
TAG_REPORT_TABLE(RDS). - 📤 Saída: Consolidação diária de tags/custos → usada por dashboards Finopping e pelo
runTagAlerts.
🟢 Lambda: runTagAlerts

- ⏰ Agendamento: Dia 1 e 15 de cada mês às 16:00 UTC.
-
📥 Entrada:
TAG_REPORT_TABLE(RDS). -
⚙️ Processamento:
- Para cada VS:
- Soma custos (correct_cost, incorrect_cost, no_tags_cost).
- Busca top 3 tags incorretas/vazias por dimensão (vs, squad, product, environment).
- Monta mensagens formatadas.
-
Publica via webhook.
-
💾 Consulta:
TAG_REPORT_TABLE. - 📤 Saída: Relatórios automáticos enviados para canais Slack das squads.
🔗 Dependências entre etapas
VALID_TAGS_TABLEé alimentada por:validTagsFinOpsProcess(S3/CSV, origem = finops).-
updateAlquimiaValidTags(API, origem = alquimia). -
runTagReportdepende deVALID_TAGS_TABLEpara validar os registros do BigQuery. runTagAlertsdepende deTAG_REPORT_TABLE, que só existe após a execução dorunTagReport.fromToAccountTagsProcessroda de forma independente (apoio, não é bloqueante).
🔹 Considerações Finais
📌 Observações sobre tabelas existentes
TAG_REPORT_ALL- Existe atualmente no RDS.
- Não foi encontrada nenhuma referência a ela nas funções (
runTagReport,runTagAlerts). -
Sugere-se revisar se a tabela ainda tem propósito ou se pode ser descontinuada para evitar confusão.
-
FROM_TO_ACCOUNTS_TAGS_TABLE - É alimentada pelo Lambda
fromToAccountTagsProcess. - Contudo, não foi encontrada utilização explícita nos fluxos principais (
runTagReportourunTagAlerts). - Pode estar sendo usada de forma indireta (consultas manuais ou relatórios adicionais).
- Sugere-se validar com as squads se há dependência real dessa tabela.
🚀 Possibilidades Futuras
- Centralização no GCP
- Hoje o fluxo combina múltiplas origens: BigQuery (custos), S3 (catálogos) e RDS (persistência final).
-
Uma evolução natural seria migrar e centralizar todas as persistências no GCP (BigQuery como camada única de dados).
-
Benefícios:
- Redução de complexidade (menos integrações S3 + RDS).
- Maior escalabilidade e performance nas queries.
- Unificação do pipeline de dados em um só provedor.
- Menor latência para os relatórios.
-
Revisão de Catálogos de Tags
- Consolidar a origem FinOps (S3/CSV) e Alquimia (API) em um pipeline único para alimentar tags válidas.
-
Garantiria menor redundância e validação unificada.
-
Governança e Observabilidade
- Incluir métricas de execução dos Lambdas (tempo, volume de dados processados, erros) em dashboards de monitoramento.
- Automatizar notificações em caso de falha na persistência (ex.:
runTagReportnão gerar dados em um dia).
✅ Conclusão
O fluxo atual atende ao propósito de validar e consolidar tags, porém:
- Existem tabelas que podem estar ociosas (TAG_REPORT_ALL, FROM_TO_ACCOUNTS_TAGS_TABLE).
- Há espaço para otimizar e simplificar a arquitetura com uma possível migração total para o GCP.
- Manter a documentação viva e revisar periodicamente os usos reais das tabelas garantirá clareza e evitará acúmulo de legados desnecessários.