Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( WidthStep = 20 * m HightStep = 3 * m HightStepHeader = 2 * m Margin = 5 * m LineLength = 5 * m SmallMargin = 4 VerticalGap = 4 * m )
View Source
var JobStatusTpl = template.Must(template.New("job").Funcs(funcMap).Parse(`<!DOCTYPE html>
<html>
<head>
<title>Job {{ .Status.Id }}</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<div class="page-header">
<h1>
<a href="https://github.com/chrislusf/gleamold">Gleamold</a> <small>{{ .Version }}</small>
</h1>
</div>
{{ $start := .Status.Driver.StartTime }}
<div class="row">
<div class="col-sm-6">
{{ with .Status.Driver }}
<h2>Driver Program</h2>
<table class="table">
<tbody>
<tr>
<th>User</th>
<td>{{ .Username }}</td>
</tr>
<tr>
<th>Host</th>
<td>{{ .Hostname }}</td>
</tr>
<tr>
<th>Executable</th>
<td style="max-width:150px;word-wrap:break-word;">{{ .Executable }}</td>
</tr>
<tr>
<th>Start</th>
<td>{{ unix .StartTime }}</td>
</tr>
{{ with .StopTime }}
<tr>
<th>Stop</th>
<td>{{ unix . }}</td>
</tr>
{{ end}}
<tr>
<th>Duration</th>
<td>{{ duration .StopTime $start}}</td>
</tr>
</tbody>
</table>
{{ end }}
</div>
<div class="col-sm-6">
<h2>System Stats</h2>
<table class="table table-condensed table-striped">
<tr>
<th>Start Time</th>
<td>{{ .StartTime }}</td>
</tr>
<tr>
<th>Jobs Completed</th>
<td><a href="/">{{.Logs.Len}}</a></td>
</tr>
</table>
</div>
</div>
<p>{{.Svg}}
{{ with .Status.TaskGroups }}
<div class="row">
<h2>Task Group</h2>
<table class="table table-striped">
<thead>
<tr>
<th>Steps</th>
<th>Name</th>
<th>Allocation</th>
<th>Execution</th>
</tr>
</thead>
<tbody>
{{ range $tg_index, $tg := . }}
<tr>
<td>{{ $tg.StepIds }}</td>
<td>{{with $tg.Request}}{{.InstructionSet.Name}}{{end}}</td>
<td>
{{with $tg.Allocation}}
{{.Allocated.MemoryMb}}MB {{.Location.DataCenter}}-{{.Location.Rack}}-{{.Location.Server}}:{{.Location.Port}}
{{end}}
<br/>
{{with $tg.Request}}{{with .InstructionSet}}
{{ range $inst_index, $inst := .Instructions }}
{{with .InputShardLocations}}Input: <ul>{{ range . }}<li>{{.Name}}@{{.Host}}:{{.Port}}</li>{{end}}</ul>{{end}}
{{with .OutputShardLocations}}Output:<ul>{{ range . }}<li>{{.Name}}@{{.Host}}:{{.Port}}</li>{{end}}{{end}}
{{end}}
{{ end }}{{ end }}
</td>
<td><ul>{{range .Executions}}
<li>
{{with .StartTime}} start: {{ duration . $start}} {{end}}
{{with .StopTime}} stop: {{ duration . $start}} {{end}}
{{with .ExecutionStat}}
<ul>
{{range .Stats}}
<li>{{.StepId}}-{{.TaskId}}:{{.InputCounter}}=>{{.OutputCounter}}</li>
{{end}}
</ul>
{{end}}
</li>
{{end}}</ul></td>
</tr>
{{ end }}
</tbody>
</table>
</div>
{{ end }}
</div>
</body>
</html>
`))
View Source
var MasterStatusTpl = template.Must(template.New("master").Parse(`<!DOCTYPE html>
<html>
<head>
<title>Gleamold {{ .Version }}</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<div class="page-header">
<h1>
<a href="https://github.com/chrislusf/gleamold">Gleamold</a> <small>{{ .Version }}</small>
</h1>
</div>
<div class="row">
<div class="col-sm-6">
<h2>Cluster status</h2>
<table class="table">
<tbody>
<tr>
<th>Resource</th>
<td>{{ .Topology.Resource }}</td>
</tr>
<tr>
<th>Allocated</th>
<td>{{ .Topology.Allocated }}</td>
</tr>
</tbody>
</table>
</div>
<div class="col-sm-6">
<h2>System Stats</h2>
<table class="table table-condensed table-striped">
<tr>
<th>Start Time</th>
<td>{{ .StartTime }}</td>
</tr>
<tr>
<th>Jobs Completed</th>
<td><a href="/">{{.Logs.Len}}</a></td>
</tr>
{{ $logs := .Logs }}
{{ range $idx, $key := $logs.Keys }}
<tr>
<th>Job </th>
<td><a href="/job/{{$key}}">{{$key}}</a></td>
</tr>
{{ end }}
</table>
</div>
</div>
<div class="row">
<h2>Topology</h2>
<table class="table table-striped">
<thead>
<tr>
<th>Data Center</th>
<th>Rack</th>
<th>Server</th>
<th>Port</th>
<th>Last Heartbeat</th>
<th>Resource</th>
<th>Allocated</th>
</tr>
</thead>
<tbody>
{{ range $dc_index, $dc := .Topology.DataCenters }}
{{ range $rack_index, $rack := $dc.Racks }}
{{ range $agent_index, $agent := $rack.Agents }}
<tr>
<td><code>{{ $dc.Name }}</code></td>
<td>{{ $rack.Name }}</td>
<td>{{ $agent.Location.Server }}</td>
<td>{{ $agent.Location.Port }}</td>
<td>{{ $agent.LastHeartBeat }}</td>
<td>{{ $agent.Resource }}</td>
<td>{{ $agent.Allocated }}</td>
</tr>
{{ end }}
{{ end }}
{{ end }}
</tbody>
</table>
</div>
</div>
</body>
</html>
`))
Functions ¶
func GenSvg ¶
func GenSvg(status *pb.FlowExecutionStatus) string
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.