blob: 86db3f2fec96ea54ccffc0f4d20842da3d14c153 [file] [log] [blame]
<%
/*
* 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.
*/
%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>
<%@ page import="org.apache.tajo.webapp.StaticHttpServer" %>
<%@ page import="org.apache.tajo.worker.*" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="org.apache.tajo.master.querymaster.QueryMasterTask" %>
<%@ page import="org.apache.tajo.master.querymaster.Query" %>
<%
TajoWorker tajoWorker = (TajoWorker) StaticHttpServer.getInstance().getAttribute("tajo.info.server.object");
List<QueryMasterTask> queryMasterTasks = JSPUtil.sortQueryMasterTask(tajoWorker.getWorkerContext()
.getTajoWorkerManagerService().getQueryMaster().getQueryMasterTasks(), true);
List<QueryMasterTask> finishedQueryMasterTasks = JSPUtil.sortQueryMasterTask(tajoWorker.getWorkerContext()
.getTajoWorkerManagerService().getQueryMaster().getFinishedQueryMasterTasks(), true);
List<TaskRunner> taskRunners = new ArrayList<TaskRunner>(tajoWorker.getWorkerContext().getTaskRunnerManager().getTaskRunners());
JSPUtil.sortTaskRunner(taskRunners);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel="stylesheet" type = "text/css" href = "/static/style.css" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>tajo worker</title>
</head>
<body>
<%@ include file="header.jsp"%>
<div class='contents'>
<h2>Tajo Worker: <%=tajoWorker.getWorkerContext().getWorkerName()%></h2>
<hr/>
<table border=0>
<tr><td width='100'>MaxHeap: </td><td><%=Runtime.getRuntime().maxMemory()/1024/1024%> MB</td>
<tr><td width='100'>TotalHeap: </td><td><%=Runtime.getRuntime().totalMemory()/1024/1024%> MB</td>
<tr><td width='100'>FreeHeap: </td><td><%=Runtime.getRuntime().freeMemory()/1024/1024%> MB</td>
<tr><td width="100">Configuration:</td><td><a href='conf.jsp'>detail...</a></td></tr>
<tr><td width="100">Environment:</td><td><a href='env.jsp'>detail...</a></td></tr>
<tr><td width="100">Threads:</td><td><a href='thread.jsp'>thread dump...</a></tr>
</table>
<hr/>
<h3>Running QueryMaster</h3>
<%
if(queryMasterTasks.isEmpty()) {
out.write("No running query master");
} else {
%>
<table width="100%" border="1" class="border_table">
<tr><th>QueryId</th><th>StartTime</th><th>FinishTime</th><th>Progress</th><th>RunTime</th></tr>
<%
for(QueryMasterTask eachQueryMasterTask: queryMasterTasks) {
Query query = eachQueryMasterTask.getQuery();
%>
<tr>
<td align='center'><a href='querydetail.jsp?queryId=<%=query.getId()%>'><%=query.getId()%></a></td>
<td align='center'><%=df.format(query.getStartTime())%></td>
<td align='center'><%=query.getFinishTime() == 0 ? "-" : df.format(query.getFinishTime())%></td>
<td align='center'><%=(int)(query.getProgress()*100.0f)%>%</td>
<td align='right'><%=JSPUtil.getElapsedTime(query.getStartTime(), query.getFinishTime())%></td>
</tr>
<%
} //end of for
} //end of if
%>
</table>
<p/>
<hr/>
<h3>Finished QueryMaster</h3>
<%
if(finishedQueryMasterTasks.isEmpty()) {
out.write("No finished query master");
} else {
%>
<table width="100%" border="1" class="border_table">
<tr><th>QueryId</th><th>StartTime</th><th>FinishTime</th><th>Progress</th><th>RunTime</th></tr>
<%
for(QueryMasterTask eachQueryMasterTask: finishedQueryMasterTasks) {
Query query = eachQueryMasterTask.getQuery();
%>
<tr>
<td align='center'><a href='querydetail.jsp?queryId=<%=query.getId()%>'><%=query.getId()%></a></td>
<td align='center'><%=df.format(query.getStartTime())%></td>
<td align='center'><%=query.getFinishTime() == 0 ? "-" : df.format(query.getFinishTime())%></td>
<td align='center'><%=(int)(query.getProgress()*100.0f)%>%</td>
<td align='right'><%=JSPUtil.getElapsedTime(query.getStartTime(), query.getFinishTime())%></td>
</tr>
<%
} //end of for
} //end of if
%>
</table>
<p/>
<hr/>
<h3>Running Tasks</h3>
<a href='tasks.jsp'>[All Tasks]</a>
<table width="100%" border="1" class="border_table">
<tr><th>TaskId</th><th>StartTime</th><th>FinishTime</th><th>RunTime</th><th>Status</th></tr>
<%
for(TaskRunner eachTaskRunner: taskRunners) {
%>
<tr>
<td><%=eachTaskRunner.getId()%></td>
<td><%=df.format(eachTaskRunner.getStartTime())%></td>
<td><%=eachTaskRunner.getFinishTime() == 0 ? "-" : df.format(eachTaskRunner.getFinishTime())%></td>
<td><%=JSPUtil.getElapsedTime(eachTaskRunner.getStartTime(), eachTaskRunner.getFinishTime())%></td>
<td><%=eachTaskRunner.getServiceState()%></td>
<%
}
%>
</table>
</div>
</body>
</html>