Ir para o conteúdo principal

[Gov.Doc] Análise de erro no painel do Gov.Doc

Data de elaboração 06/04/21
Responsável pelo estudo
  • Alan da Silva Souza
  • Gabriel Santi Binda
  • João Vitor Paulino Nobre
  • Raissa de Sousa Stolduski
  • Taillon Miguel Gonçalves
Equipe do estudo Tambaqui
Alvo Gov.Doc
Origem
  • Reparo: originado de algum incidente/problema/falha.
Objetivo ex: diminuir tempo de atendimento adequando o padrão para 12 horas (dois dias de expediente de trabalho). pode-se utilizar objetivos smart
Documentação correlata (opcional)
Observações
1. Introdução

O sistema Gov.Doc, sistema de edição de documentos oficiais, possui um painel para exibir alguns números referentes a criação de documentos para usuários com perfil de administrador, contudo na tentativa de acessar tais informações é apresentado o erro 504 Gateway Time-out

2. Desenvolvimento

Em avaliação ao código desenvolvido se percebeu numa consulta(imagem 1) ao banco de dados que está apresentando uma demora, devido a estar retornando todos os campos da entidade Documentos para assim gerar os quantitativos do painel. 

Imagem 1

 public async Task<IActionResult> Painel()
        {
            var documentos = await db.Documentos.ToListAsync();

            var documentosPorSistema = documentos.Select(documento => new DocumentoPorSistemaDto(documento.SistemaOrigemId)).ToList();
            foreach (var documento in documentosPorSistema)
            {
                var sistema = await apiDoSauron.BuscarSistemaDeOrigem(documento.ClientId);
                documento.NomeDoSistema = sistema.Description;
            }

            var totalDeDocumentosPorTipo = documentos.GroupBy(x => x.TipoDeDocumento).OrderBy(tipoDeDocumento => tipoDeDocumento.Key);

            var documentosGeradosPorSistema = documentosPorSistema.GroupBy(x => x.NomeDoSistema).OrderBy(nomeDoSistema => nomeDoSistema.Key);
            
            var painelViewModel = new PainelViewModel(totalDeDocumentosPorTipo, documentosGeradosPorSistema);

            ViewData["TotalDeDocumentosGerados"] = documentos.Count;
            
            return View(painelViewModel);
        }

2.1 Solução proposta

Diante da necessidade de prover um acesso mais rápido as informações do painel, o time Tambaqui propõem as seguintes mudanças:

  • Alteração da consulta para utilizar apenas os campos da entidade Documentos necessários para o processamento das informações do painel;
  • Elaboração de um SPYKE para avaliar os impactos de armazenar o conteúdo do corpo do documento no Storage Amazon da SETIC, onde com o resultado desse estudo será possível mensurar "o que fazer?" e "como fazer?".
3. Conclusão

Esse estudo teve o propósito de levantar possíveis soluções para a resolução do problema citado.