Return-Path: X-Original-To: apmail-incubator-accumulo-commits-archive@minotaur.apache.org Delivered-To: apmail-incubator-accumulo-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id B91D89D91 for ; Tue, 28 Feb 2012 19:49:01 +0000 (UTC) Received: (qmail 95240 invoked by uid 500); 28 Feb 2012 19:49:01 -0000 Delivered-To: apmail-incubator-accumulo-commits-archive@incubator.apache.org Received: (qmail 95209 invoked by uid 500); 28 Feb 2012 19:49:01 -0000 Mailing-List: contact accumulo-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: accumulo-dev@incubator.apache.org Delivered-To: mailing list accumulo-commits@incubator.apache.org Received: (qmail 95200 invoked by uid 99); 28 Feb 2012 19:49:01 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 28 Feb 2012 19:49:01 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 28 Feb 2012 19:48:55 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 499562388AB8; Tue, 28 Feb 2012 19:48:34 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1294801 - in /incubator/accumulo/branches/1.4/src/server/src/main: java/org/apache/accumulo/server/monitor/ java/org/apache/accumulo/server/monitor/servlets/ resources/web/ Date: Tue, 28 Feb 2012 19:48:33 -0000 To: accumulo-commits@incubator.apache.org From: billie@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20120228194834.499562388AB8@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: billie Date: Tue Feb 28 19:48:33 2012 New Revision: 1294801 URL: http://svn.apache.org/viewvc?rev=1294801&view=rev Log: ACCUMULO-431 created status visualization Added: incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/monitor/servlets/VisServlet.java (with props) incubator/accumulo/branches/1.4/src/server/src/main/resources/web/vis.xml (with props) Modified: incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/monitor/Monitor.java incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/monitor/servlets/BasicServlet.java incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/monitor/servlets/XMLServlet.java incubator/accumulo/branches/1.4/src/server/src/main/resources/web/screen.css Modified: incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/monitor/Monitor.java URL: http://svn.apache.org/viewvc/incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/monitor/Monitor.java?rev=1294801&r1=1294800&r2=1294801&view=diff ============================================================================== --- incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/monitor/Monitor.java (original) +++ incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/monitor/Monitor.java Tue Feb 28 19:48:33 2012 @@ -43,9 +43,9 @@ import org.apache.accumulo.core.util.Dae import org.apache.accumulo.core.util.LoggingRunnable; import org.apache.accumulo.core.util.Pair; import org.apache.accumulo.core.util.ServerServices; +import org.apache.accumulo.core.util.ServerServices.Service; import org.apache.accumulo.core.util.ThriftUtil; import org.apache.accumulo.core.util.UtilWaitThread; -import org.apache.accumulo.core.util.ServerServices.Service; import org.apache.accumulo.core.zookeeper.ZooUtil; import org.apache.accumulo.server.Accumulo; import org.apache.accumulo.server.client.HdfsZooInstance; @@ -59,6 +59,7 @@ import org.apache.accumulo.server.monito import org.apache.accumulo.server.monitor.servlets.ProblemServlet; import org.apache.accumulo.server.monitor.servlets.TServersServlet; import org.apache.accumulo.server.monitor.servlets.TablesServlet; +import org.apache.accumulo.server.monitor.servlets.VisServlet; import org.apache.accumulo.server.monitor.servlets.XMLServlet; import org.apache.accumulo.server.monitor.servlets.trace.ListType; import org.apache.accumulo.server.monitor.servlets.trace.ShowTrace; @@ -448,6 +449,7 @@ public class Monitor { server.addServlet(GcStatusServlet.class, "/gc"); server.addServlet(LogServlet.class, "/log"); server.addServlet(XMLServlet.class, "/xml"); + server.addServlet(VisServlet.class, "/vis"); server.addServlet(Summary.class, "/trace/summary"); server.addServlet(ListType.class, "/trace/listType"); server.addServlet(ShowTrace.class, "/trace/show"); Modified: incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/monitor/servlets/BasicServlet.java URL: http://svn.apache.org/viewvc/incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/monitor/servlets/BasicServlet.java?rev=1294801&r1=1294800&r2=1294801&view=diff ============================================================================== --- incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/monitor/servlets/BasicServlet.java (original) +++ incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/monitor/servlets/BasicServlet.java Tue Feb 28 19:48:33 2012 @@ -121,7 +121,7 @@ abstract public class BasicServlet exten // BEGIN HEADER sb.append("\n"); sb.append("").append(getTitle(req)).append(" - Accumulo ").append(Constants.VERSION).append("\n"); - if ((refresh > 0) && (req.getRequestURI().startsWith("/docs") == false)) + if ((refresh > 0) && (req.getRequestURI().startsWith("/docs") == false) && (req.getRequestURI().startsWith("/vis") == false)) sb.append("\n"); sb.append("\n"); sb.append("\n"); @@ -172,6 +172,7 @@ abstract public class BasicServlet exten if (numProblems > 0) sb.append("Table Problems (" + numProblems + ")
\n"); sb.append("
\n"); + sb.append("Visualization
\n"); sb.append("XML
\n"); sb.append("
["); Added: incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/monitor/servlets/VisServlet.java URL: http://svn.apache.org/viewvc/incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/monitor/servlets/VisServlet.java?rev=1294801&view=auto ============================================================================== --- incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/monitor/servlets/VisServlet.java (added) +++ incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/monitor/servlets/VisServlet.java Tue Feb 28 19:48:33 2012 @@ -0,0 +1,128 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.accumulo.server.monitor.servlets; + +import java.io.IOException; +import java.io.InputStream; +import java.lang.management.ManagementFactory; +import java.util.ArrayList; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.accumulo.core.master.thrift.TabletServerStatus; +import org.apache.accumulo.server.monitor.Monitor; + +public class VisServlet extends BasicServlet { + private static final long serialVersionUID = 1L; + boolean useCircles; + boolean useIngest; + int spacing; + String url; + + @Override + protected String getTitle(HttpServletRequest req) { + return "Tablet Server Status Visualization"; + } + + @Override + protected void pageBody(HttpServletRequest req, HttpServletResponse response, StringBuilder sb) throws IOException { + StringBuffer urlsb = req.getRequestURL(); + urlsb.setLength(urlsb.lastIndexOf("/") + 1); + url = urlsb.toString(); + + useCircles = true; + String shape = req.getParameter("shape"); + if (shape != null && (shape.equals("square") || shape.equals("squares"))) { + useCircles = false; + } + + useIngest = true; + String motion = req.getParameter("motion"); + if (motion != null && (motion.equals("query"))) { + useIngest = false; + } + + spacing = 20; + String size = req.getParameter("size"); + if (size != null) { + if (size.equals("10")) + spacing = 10; + else if (size.equals("40")) + spacing = 40; + } + + ArrayList tservers = new ArrayList(); + if (Monitor.getMmi() != null) + tservers.addAll(Monitor.getMmi().tServerInfo); + + if (tservers.size() == 0) + return; + + int width = (int) Math.ceil(Math.sqrt(tservers.size())) * spacing; + int height = (int) Math.ceil(tservers.size() / width) * spacing; + doSettings(sb, width < 640 ? 640 : width, height < 640 ? 640 : height); + doScript(sb, tservers); + } + + private void doSettings(StringBuilder sb, int width, int height) { + sb.append("
\n"); + sb.append("
\n"); + // shape select box + sb.append("Shape: \n"); + // size select box + sb.append("  Size: \n"); + // motion select box + sb.append("  Motion: \n"); + // color select box + sb.append("  Color: \n"); + sb.append("  (hover for info, click for details)"); + sb.append("
\n\n"); + // floating info box + sb.append("
\n\n"); + // canvas + sb.append("
Browser does not support canvas.\n\n"); + sb.append("
\n\n"); + // initialization of some javascript variables + sb.append("\n"); + } + + private void doScript(StringBuilder sb, ArrayList tservers) { + InputStream data = VisServlet.class.getClassLoader().getResourceAsStream("web/vis.xml"); + if (data != null) { + byte[] buffer = new byte[1024]; + int n; + try { + while ((n = data.read(buffer)) > 0) + sb.append(new String(buffer, 0, n)); + } catch (IOException e) { + e.printStackTrace(); + return; + } + } + sb.append("\n"); + } +} Propchange: incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/monitor/servlets/VisServlet.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/monitor/servlets/XMLServlet.java URL: http://svn.apache.org/viewvc/incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/monitor/servlets/XMLServlet.java?rev=1294801&r1=1294800&r2=1294801&view=diff ============================================================================== --- incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/monitor/servlets/XMLServlet.java (original) +++ incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/monitor/servlets/XMLServlet.java Tue Feb 28 19:48:33 2012 @@ -44,7 +44,7 @@ public class XMLServlet extends BasicSer @Override protected void pageStart(HttpServletRequest req, HttpServletResponse resp, StringBuilder sb) { - resp.setContentType("text/xml"); + resp.setContentType("text/xml;charset=UTF-8"); sb.append("\n"); sb.append("\n"); } @@ -67,6 +67,7 @@ public class XMLServlet extends BasicSer sb.append("\n\n"); sb.append("").append(System.currentTimeMillis() - status.lastContact).append("\n"); + sb.append("").append(status.osLoad).append("\n"); TableInfo summary = Monitor.summarizeTableStats(status); sb.append("\n"); @@ -84,6 +85,8 @@ public class XMLServlet extends BasicSer sb.append(""); } + sb.append("").append(summary.ingestRate).append("\n"); + sb.append("").append(summary.queryRate).append("\n"); totalIngest += summary.ingestRate; totalQuery += summary.queryRate; totalEntries += summary.recs; Modified: incubator/accumulo/branches/1.4/src/server/src/main/resources/web/screen.css URL: http://svn.apache.org/viewvc/incubator/accumulo/branches/1.4/src/server/src/main/resources/web/screen.css?rev=1294801&r1=1294800&r2=1294801&view=diff ============================================================================== --- incubator/accumulo/branches/1.4/src/server/src/main/resources/web/screen.css (original) +++ incubator/accumulo/branches/1.4/src/server/src/main/resources/web/screen.css Tue Feb 28 19:48:33 2012 @@ -312,4 +312,19 @@ pre.logevent { .plotHeading { text-align: center; font-size: 1.5em; -} \ No newline at end of file +} +.nowrap { + white-space:nowrap; +} + +.viscontrol { + border: 1px solid #c4c4c4; + padding: 5px; +} + +#vishoverinfo { + visibility: hidden; + position: absolute; + border: 1px solid #c4c4c4; + background-color: #ffffff; +} Added: incubator/accumulo/branches/1.4/src/server/src/main/resources/web/vis.xml URL: http://svn.apache.org/viewvc/incubator/accumulo/branches/1.4/src/server/src/main/resources/web/vis.xml?rev=1294801&view=auto ============================================================================== --- incubator/accumulo/branches/1.4/src/server/src/main/resources/web/vis.xml (added) +++ incubator/accumulo/branches/1.4/src/server/src/main/resources/web/vis.xml Tue Feb 28 19:48:33 2012 @@ -0,0 +1,343 @@ + + + + Propchange: incubator/accumulo/branches/1.4/src/server/src/main/resources/web/vis.xml ------------------------------------------------------------------------------ svn:eol-style = native