Article image
Valdemar Taborda
Valdemar Taborda30/08/2023 15:31
Compartilhe

Desafio - MonitoramentoLogsAWS -

  • #AWS
  • #Java

Boa tarde Rede!

Segue mais um desafio vencido algumas lição aprendidas muito bom o desenvolvimento e interação do código.

Bora outro Desafio para fortalecer o Conhecimento e Aprendizado.

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class MonitoramentoLogsAWS {

 
  public static void main(String[] args) {
      Scanner scanner = new Scanner(System.in);
      int totalEventos = 0;
      Map<String, Integer> eventosPorServico = new HashMap<>();
      String maiorServico = "";
      String menorServico = "";


      int quantidadeLogs = scanner.nextInt();
      scanner.nextLine(); // Limpar o buffer do scanner


     //TODO:  realize a análise dos logs e retorne os seus resultados
      // Itera sobre os logs e realiza a análise
      for (int i = 0; i < quantidadeLogs; i++) {
          String log = scanner.nextLine(); // Lê uma linha de log
          String[] logInfo = log.split(","); // Divide a linha em informações usando vírgula como separador

          if (logInfo.length != 3) {
              continue; // Ignora logs com informações incompletas
          }
          String servico = logInfo[1].trim(); // Obtém o nome do serviço a partir das informações
          eventosPorServico.put(servico, eventosPorServico.getOrDefault(servico, 0) + 1); // Atualiza a contagem de eventos para o serviço
          totalEventos++; // Incrementa o total de eventos
      }

      // Encontra o serviço com maior quantidade de registros
      int maxEventos = -1;
      for (Map.Entry<String, Integer> entry : eventosPorServico.entrySet()) {
          if (entry.getValue() >= maxEventos) {
              maxEventos = entry.getValue();
              maiorServico = entry.getKey();
          }
      }

      // Encontra o serviço com menor quantidade de registros
      int minEventos = Integer.MAX_VALUE;
      for (Map.Entry<String, Integer> entry : eventosPorServico.entrySet()) {
          if (entry.getValue() < minEventos) {
              minEventos = entry.getValue();
              menorServico = entry.getKey();
          }
      }

      // Exibe os resultados da análise
      System.out.println("Eventos por servico:");
      for (Map.Entry<String, Integer> entry : eventosPorServico.entrySet()) {
          System.out.println(entry.getKey() + ":" + entry.getValue());
      }

      System.out.println("Maior:" + maiorServico);
      System.out.println("Menor:" + menorServico);
      scanner.close();
  }
}

image

Compartilhe
Comentários (0)