Package org.apache.accumulo.server.monitor.util

Examples of org.apache.accumulo.server.monitor.util.Table


    MasterMonitorInfo mmi = Monitor.getMmi();
    boolean sortingUsesMapReduce = ServerConfiguration.getSystemConfiguration().getBoolean(Property.MASTER_RECOVERY_SORT_MAPREDUCE);
    if (mmi != null) {
      List<RecoveryStatus> jobs = mmi.recovery;
      if (jobs != null && jobs.size() > 0) {
        Table recoveryTable = new Table("logRecovery", "Log&nbsp;Recovery");
        recoveryTable.setSubCaption("Some tablets were unloaded in an unsafe manner. Write-ahead logs are being recovered.");
        recoveryTable.addSortableColumn("Server", new LoggerLinkType(), null);
        recoveryTable.addSortableColumn("Log");
        recoveryTable.addSortableColumn("Time", new DurationType(), null);
        if (sortingUsesMapReduce) {
          recoveryTable.addSortableColumn("Copy", new ProgressChartType(), null);
          recoveryTable.addSortableColumn("Map", new ProgressChartType(), null);
          recoveryTable.addSortableColumn("Reduce", new ProgressChartType(), null);
        } else {
          recoveryTable.addSortableColumn("Copy/Sort", new ProgressChartType(), null);
        }
       
        for (RecoveryStatus recovery : jobs) {
          TableRow row = recoveryTable.prepareRow();
          row.add(recovery);
          row.add(recovery.name);
          row.add((long) recovery.runtime);
          row.add(recovery.copyProgress);
          if (sortingUsesMapReduce) {
            row.add(recovery.mapProgress);
            row.add(recovery.reduceProgress);
          }
          recoveryTable.addRow(row);
        }
        recoveryTable.generate(req, sb);
      }
    }
  }
View Full Code Here


 
  private void doDeadLoggerList(HttpServletRequest req, StringBuilder sb) {
    MasterMonitorInfo mmi = Monitor.getMmi();
    if (mmi != null) {
      List<DeadServer> obit = mmi.deadLoggers;
      Table deadTServerList = new Table("deadLoggers", "Dead&nbsp;Loggers", "error");
      deadTServerList.setSubCaption("The following loggers are no longer reachable.");
      TServersServlet.doDeadServerTable(req, sb, deadTServerList, obit);
    }
  }
View Full Code Here

    if (loggerAddress == null || loggerAddress.isEmpty()) {
     
      ArrayList<LoggerStatus> loggers = new ArrayList<LoggerStatus>();
      if (Monitor.getMmi() != null)
        loggers.addAll(Monitor.getMmi().loggers);
      Table loggerList = new Table("loggers", "Logger&nbsp;Servers");
     
      doLoggerServerList(req, sb, loggers, loggerList);
      return;
    }
  }
View Full Code Here

 
  @Override
  protected void pageBody(HttpServletRequest req, HttpServletResponse resp, StringBuilder sb) {
    boolean clear = true;
    SimpleDateFormat fmt = new SimpleDateFormat("dd HH:mm:ss,SSSS");
    Table logTable = new Table("logTable", "Recent&nbsp;Logs");
    logTable.addSortableColumn("Time", new DateTimeType(fmt), null);
    logTable.addSortableColumn("Application");
    logTable.addSortableColumn("Count");
    logTable.addSortableColumn("Level", new LogLevelType(), null);
    logTable.addSortableColumn("Message");
    for (DedupedLogEvent dev : LogService.getInstance().getEvents()) {
      clear = false;
      LoggingEvent ev = dev.getEvent();
      Object application = ev.getMDC("application");
      if (application == null)
        application = "";
      String msg = ev.getMessage().toString();
      StringBuilder text = new StringBuilder();
      for (int i = 0; i < msg.length(); i++) {
        char c = msg.charAt(i);
        switch (Character.getType(c)) {
          case Character.UNASSIGNED:
          case Character.LINE_SEPARATOR:
          case Character.NON_SPACING_MARK:
          case Character.PRIVATE_USE:
            c = '?';
          default:
            text.append(c);
        }
       
      }
      msg = text.toString();
      if (ev.getThrowableStrRep() != null)
        for (String line : ev.getThrowableStrRep())
          msg += "\n\t" + line;
      msg = sanitize(msg.trim());
      msg = "<pre class='logevent'>" + msg + "</pre>";
      logTable.addRow(ev.getTimeStamp(), application, dev.getCount(), ev.getLevel(), msg);
    }
    if (!clear)
      logTable.setSubCaption("<a href='/op?action=clearLog&redir=" + currentPage(req) + "'>Clear&nbsp;All&nbsp;Events</a>");
    logTable.generate(req, sb);
    if (!clear)
      sb.append("<div class='center'><a href='/op?action=clearLog&redir=").append(currentPage(req)).append("'>Clear&nbsp;All&nbsp;Events</a></div>\n");
  }
View Full Code Here

 
  private static void doProblemSummary(final HttpServletRequest req, StringBuilder sb, final Map<String,String> tidToNameMap) {
    if (Monitor.getProblemSummary().isEmpty() && Monitor.getProblemException() == null)
      return;
   
    Table problemSummary = new Table("problemSummary", "Problem&nbsp;Summary", "error");
    problemSummary.addSortableColumn("Table", new TableProblemLinkType(tidToNameMap), null);
    for (ProblemType type : ProblemType.values())
      problemSummary.addSortableColumn(type.name(), new NumberType<Integer>(), null);
    problemSummary.addUnsortableColumn("Operations", new ClearTableProblemsLinkType(req, tidToNameMap), null);
   
    if (Monitor.getProblemException() != null) {
      StringBuilder cell = new StringBuilder();
      cell.append("<b>Failed to obtain problem reports</b> : " + Monitor.getProblemException().getMessage());
      Throwable cause = Monitor.getProblemException().getCause();
      while (cause != null) {
        if (cause.getMessage() != null)
          cell.append("<br />\n caused by : " + cause.getMessage());
        cause = cause.getCause();
      }
      problemSummary.setSubCaption(cell.toString());
    } else {
      for (Entry<String,Map<ProblemType,Integer>> entry : Monitor.getProblemSummary().entrySet()) {
        TableRow row = problemSummary.prepareRow();
        row.add(entry.getKey());
        for (ProblemType pt : ProblemType.values()) {
          Integer pcount = entry.getValue().get(pt);
          row.add(pcount == null ? 0 : pcount);
        }
        row.add(entry.getKey());
        problemSummary.addRow(row);
      }
    }
    problemSummary.generate(req, sb);
  }
View Full Code Here

    ArrayList<ProblemReport> problemReports = new ArrayList<ProblemReport>();
    Iterator<ProblemReport> iter = tableId == null ? ProblemReports.getInstance().iterator() : ProblemReports.getInstance().iterator(tableId);
    while (iter.hasNext())
      problemReports.add(iter.next());
    final SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss zzz");
    Table problemTable = new Table("problemDetails", "Problem&nbsp;Details", "error");
    problemTable.setSubCaption("Problems identified with tables.");
    problemTable.addSortableColumn("Table", new TableProblemLinkType(tidToNameMap), null);
    problemTable.addSortableColumn("Problem&nbsp;Type");
    problemTable.addSortableColumn("Server");
    problemTable.addSortableColumn("Time", new DateTimeType(sdf), null);
    problemTable.addSortableColumn("Resource");
    problemTable.addSortableColumn("Exception");
    problemTable.addUnsortableColumn("Operations", new ClearProblemLinkType(req), null);
    for (ProblemReport pr : problemReports) {
     
      TableRow row = problemTable.prepareRow();
      row.add(pr.getTableName());
      row.add(pr.getProblemType().name());
      row.add(pr.getServer());
      row.add(pr.getTime());
      row.add(pr.getResource());
      row.add(pr.getException());
      row.add(pr);
      problemTable.addRow(row);
    }
    problemTable.generate(req, sb);
  }
View Full Code Here

 
  protected void pageBody(HttpServletRequest req, HttpServletResponse resp, StringBuilder sb) {
    GCStatus status = Monitor.getGcStatus();
   
    if (status != null) {
      Table gcActivity = new Table("gcActivity", "Collection&nbsp;Activity");
      gcActivity.addSortableColumn("Activity");
      gcActivity.addSortableColumn("Finished", new DateTimeType(DateFormat.MEDIUM, DateFormat.SHORT), null);
      gcActivity.addSortableColumn("Candidates", new NumberType<Long>(), null);
      gcActivity.addSortableColumn("Deleted", new NumberType<Long>(), null);
      gcActivity.addSortableColumn("In&nbsp;Use", new NumberType<Long>(), null);
      gcActivity.addSortableColumn("Errors", new NumberType<Long>(0l, 1l), null);
      gcActivity.addSortableColumn("Duration", new DurationType(), null);
     
      if (status.last.finished > 0)
        gcActivity.addRow("File&nbsp;Collection,&nbsp;Last&nbsp;Cycle", status.last.finished, status.last.candidates, status.last.deleted, status.last.inUse,
            status.last.errors, status.last.finished - status.last.started);
      if (status.current.started > 0)
        gcActivity.addRow("File&nbsp;Collection,&nbsp;Running", status.current.finished, status.current.candidates, status.current.deleted,
            status.current.inUse, status.current.errors, System.currentTimeMillis() - status.current.started);
      if (status.lastLog.finished > 0)
        gcActivity.addRow("WAL&nbsp;Collection,&nbsp;Last&nbsp;Cycle", status.lastLog.finished, status.lastLog.candidates, status.lastLog.deleted,
            status.lastLog.inUse, status.lastLog.errors, status.lastLog.finished - status.lastLog.started);
      if (status.currentLog.started > 0)
        gcActivity.addRow("WAL&nbsp;Collection,&nbsp;Running", status.currentLog.finished, status.currentLog.candidates, status.currentLog.deleted,
            status.currentLog.inUse, status.currentLog.errors, System.currentTimeMillis() - status.currentLog.started);
      gcActivity.generate(req, sb);
    } else {
      banner(sb, "error", "Collector is Unavailable");
    }
  }
View Full Code Here

      if (stats == null) {
        summary.put(span.description, stats = new Stats());
      }
      stats.addSpan(span);
    }
    Table trace = new Table("traceSummary", "All Traces");
    trace.addSortableColumn("Type", new ShowTypeLink(minutes), "Trace Type");
    trace.addSortableColumn("Total", new NumberType<Integer>(), "Number of spans of this type");
    trace.addSortableColumn("min", new DurationType(), "Shortest span duration");
    trace.addSortableColumn("max", new DurationType(), "Longest span duration");
    trace.addSortableColumn("avg", new DurationType(), "Average span duration");
    trace
        .addSortableColumn(
            "Histogram",
            new HistogramType(),
            "Counts of spans of different duration. Columns start at milliseconds, and each column is ten times longer: tens of milliseconds, seconds, tens of seconds, etc.");
   
    for (Entry<String,Stats> entry : summary.entrySet()) {
      Stats stat = entry.getValue();
      trace.addRow(entry.getKey(), stat.count, stat.min, stat.max, stat.average(), stat);
    }
    trace.generate(req, sb);
  }
View Full Code Here

    if (scanner == null) {
      return;
    }
    Range range = new Range(new Text("start:" + Long.toHexString(startTime)), new Text("start:" + Long.toHexString(endTime)));
    scanner.setRange(range);
    Table trace = new Table("trace", "Traces for " + getType(req));
    trace.addSortableColumn("Start", new ShowTraceLinkType(), "Start Time");
    trace.addSortableColumn("ms", new DurationType(), "Span time");
    trace.addUnsortableColumn("Source", new StringType<String>(), "Service and location");
    for (Entry<Key,Value> entry : scanner) {
      RemoteSpan span = TraceFormatter.getRemoteSpan(entry);
      if (span.description.equals(type)) {
        trace.addRow(span, new Long(span.stop - span.start), span.svc + ":" + span.sender);
      }
    }
    trace.generate(req, sb);
  }
View Full Code Here

      if (stats == null) {
        summary.put(span.description, stats = new Stats());
      }
      stats.addSpan(span);
    }
    Table trace = new Table("traceSummary", "All Traces");
    trace.addSortableColumn("Type", new ShowTypeLink(minutes), "Trace Type");
    trace.addSortableColumn("Total", new NumberType<Integer>(), "Number of spans of this type");
    trace.addSortableColumn("min", new DurationType(), "Shortest span duration");
    trace.addSortableColumn("max", new DurationType(), "Longest span duration");
    trace.addSortableColumn("avg", new DurationType(), "Average span duration");
    trace
        .addSortableColumn(
            "Histogram",
            new HistogramType(),
            "Counts of spans of different duration. Columns start at milliseconds, and each column is ten times longer: tens of milliseconds, seconds, tens of seconds, etc.");
   
    for (Entry<String,Stats> entry : summary.entrySet()) {
      Stats stat = entry.getValue();
      trace.addRow(entry.getKey(), stat.count, stat.min, stat.max, stat.average(), stat);
    }
    trace.generate(req, sb);
  }
View Full Code Here

TOP

Related Classes of org.apache.accumulo.server.monitor.util.Table

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.