Como um produto se torna observável e documentado
A entrada lhe dá uma pasta e painéis
Quando a entrada do catálogo de um produto recebe o merge, a raiz do Grafana do repositório operations roda na cadeia de reconciliadores. No único stack do Grafana Cloud da organização, ela cria a pasta do produto, que a sua equipe pode editar e todos podem ver, com um painel de serviço e um painel de SLO que abrem em produção, ao lado do painel de custos da página de FinOps.
As regras de alerta vêm junto
A mesma raiz cria as regras de alerta básicas do produto, com limites tirados do campo slo da entrada: o orçamento de erros sendo consumido rápido ou devagar, erros do servidor acima de 2 por cento, latência acima do objetivo ou do dobro dele, o Cloud SQL perto dos seus limites, mensagens do Pub/Sub esperando mais de dez minutos e um tópico de mensagens mortas que não está vazio. Elas selecionam a produção pelo rótulo env e mandam um e-mail para o ponto de contato da equipe. Hoje esse ponto de contato chega às contas do próprio mantenedor, porque o Grafana Cloud só aceita endereços dos seus próprios membros e as contas do mantenedor são os seus únicos membros.
A telemetria flui sem configuração
Uma aplicação escreve logs em JSON na sua saída padrão e envia traces e métricas com OTLP para o endereço que a plataforma lhe dá; ela nunca tem uma credencial do Grafana. A plataforma tem um par de gateways por edição, produção e não produção. Os traces e as métricas vão para o gateway OTLP da edição com o token de identidade do serviço, e os logs viajam pelo Cloud Logging e por um buffer do Pub/Sub até o gateway de logs. Os gateways, Grafana Alloy no Cloud Run, conferem o rótulo env de cada sinal, carimbam nele a sua edição e o encaminham com um token só de escrita. O endereço chega na saída Ready do produto, e os módulos do golden path o passam para cada serviço.
Cada merge publica a sua parte do mapa
O pipeline de cada repositório de produto inclui o componente catalog-publish, e também o do catálogo e os de quatro repositórios da plataforma. Num merge request, o componente gera o fragmento do repositório, a sua parte do mapa, sem nenhuma credencial, e falha quando falta a visão geral ou o runbook. Depois do merge, ele publica o fragmento sob o prefixo próprio do repositório: para um produto, o seu serviço, as suas especificações de API e de eventos, os produtos que chama, o seu runbook e os seus registros de decisão.
O mapa se reconstrói sozinho
Um agregador reconstrói o mapa com os últimos fragmentos logo depois de cada publicação e a cada hora, em catalog.projectairframe.dev atrás do IAP, onde todos na organização podem lê-lo. Ele tira a lista de produtos do catálogo, pula um fragmento quebrado para que o resto continue sendo construído e guarda as três últimas versões. O mapa segue o branch main de cada repositório, não o que está implantado.