Post

Case: dashboards de SLA com Jira, Azure e GitLab

Case: dashboards de SLA com Jira, Azure e GitLab

Contexto e problema

Clientes precisavam de relatórios de SLA e dashboards operacionais, mas o Jira nativo não entregava visualizações no formato exigido. Azure DevOps e GitLab tinham dados complementares, porém dispersos. Resultado: extrações manuais demoradas, pouca previsibilidade e alertas chegando tarde.

O que foi construído

  • App Rails 8 com schemas separados (jira, gestao, gitlab) para organizar ingestão e cálculos.
  • Dashboards por cliente (acompanhamento/priorização, criados vs. resolvidos, aging/bloqueados) e painéis de iteração/velocidade do Azure.
  • Relatórios em PDF/XLSX gerados on-demand e em lote, com filtros por cliente e período.
  • Monitores de SLA e saúde de serviços com notificações (Discord/Teams) e logs de webhooks consultáveis.
  • Orquestração de jobs com Solid Queue, painel Mission Control Jobs e cron via recurring.yml.

Arquitetura (diagrama simplificado)

flowchart LR
  Jira[Jira API/Webhooks] --> IngestJira[Ingest Jira\nschema=jira]
  Azure[Azure DevOps API/Webhooks] --> IngestAzure[Ingest Azure\nschema=gestao]
  GitLab[GitLab API] --> IngestGitlab[Ingest GitLab\nschema=gitlab]

  IngestJira --> Jobs[Solid Queue Jobs\ncron + ad-hoc]
  IngestAzure --> Jobs
  IngestGitlab --> Jobs

  Jobs --> Dash[Dashboards SLA\nAging/Backlog/SLA]
  Jobs --> Reports[PDF/XLSX Reports]
  Jobs --> Alerts[Notificacoes SLA\nDiscord/Teams]

  Dash --> Users[Clientes e Operacao]
  Reports --> Users
  Alerts --> Users

Operação e rastreabilidade

  • Agendamentos via Solid Queue (cron declarada) e fallback em scheduler embutido; painel /background-jobs para troubleshooting.
  • Logs de webhooks e filtros para aging/backlog; métricas por série histórica de criados vs. resolvidos.
  • Healthchecks expostos e probes configuradas em K8s; deploy com assets pré-compilados e secrets via variáveis/credentials.
  • Geração de relatórios roda isolada em jobs, liberando o app web para navegação.

Impacto observado (anonimizado)

  • Corte de >50% no tempo gasto para gerar relatórios mensais de SLA.
  • Queda de ~40% em alertas não tratados após consolidação de monitores e dashboards.
  • Operação consegue responder mais rápido a aging/bloqueados porque Jira/Azure/GitLab estão numa visão única.

O que você pode reutilizar

  • Separar schemas por fonte de dados para manter ingestão e cálculos organizados.
  • Orquestrar jobs de coleta/cálculo com Solid Queue e painéis de jobs acessíveis.
  • Oferecer dashboards + relatórios exportáveis (PDF/XLSX) com filtros por cliente/período.
  • Enviar alertas de SLA e saúde de serviços para canais que a operação já usa (Discord/Teams).
Esta postagem está licenciada sob CC BY 4.0 pelo autor.