O desenvolvimento e as operações de software moderno dependem do monitoramento para entender como os sistemas se comportam na produção. Os dados fornecidos pelos logs de aplicativos e pelo ambiente de execução são essenciais para detectar e diagnosticar comportamentos indesejados e melhorar a confiabilidade do sistema. No entanto, apesar do rico ecossistema em torno de soluções de registo prontas para a indústria, monitorizar sistemas complexos e obter insights a partir de dados de registo continua a ser um desafio.

Pesquisadores e profissionais têm trabalhado ativamente para enfrentar vários desafios relacionados aos logs, por exemplo, como fornecer efetivamente melhor suporte de ferramentas para decisões de registro aos desenvolvedores, como processar e armazenar dados de log de maneira eficaz e como extrair insights dos dados de log. Uma visão holística do esforço de investigação sobre práticas de exploração madeireira e análise automatizada de registos é fundamental para fornecer orientações e disseminar o estado da arte para a transferência de tecnologia.

Neste artigo, estudamos 108 artigos (72 artigos de pesquisa, 24 periódicos e 12 artigos de acompanhamento da indústria) de diferentes comunidades (por exemplo, aprendizado de máquina, engenharia de software e sistemas) e estruturamos o campo de pesquisa à luz do ciclo de vida dos dados de log.

Nossa análise mostra que (1) o registro em log é um desafio não apenas em projetos de código aberto, mas também na indústria, (2) o aprendizado de máquina é uma abordagem promissora para permitir uma análise contextual do código-fonte para recomendação de log, mas são necessárias investigações adicionais para avaliar a usabilidade dessas ferramentas na prática, (3) poucos estudos abordaram a persistência eficiente de dados de log e (4) há oportunidades abertas para analisar logs de aplicativos e avaliar técnicas de análise de log de última geração em um contexto de DevOps.