| <div class="col-md-12"> |
| <!-- |
| 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. |
| --> |
| <div class="row"> |
| <div class="col-md-6 col-sm-4"> |
| <h4> |
| <!-- todo: backend api should enforce user application has a readable name! --> |
| <span ng-bind="app.appName"></span> |
| <indicator condition="{{app.isRunning?'good':''}}" tooltip="{{app.status}}"></indicator> |
| </h4> |
| <h5 ng-bind="app.description"></h5> |
| </div> |
| <div class="col-md-2 col-sm-3 col-xs-4"> |
| <metrics |
| caption="Uptime" |
| help="Running for {{app.uptime|duration}}" remark-type="info" |
| value="{{uptimeCompact.value}}" unit="{{uptimeCompact.unit}}"></metrics> |
| </div> |
| <div class="col-md-2 col-sm-3 col-xs-8"> |
| <metrics |
| ng-if="app.clock" |
| caption="Application Clock" |
| help="{{appClockConcern||whatIsAppClock}}" |
| remark-type="{{appClockConcern ? 'warning' : 'info'}}" |
| click-help="switchToDagTab()" |
| value="{{app.clock|date:'HH:mm:ss'}}" |
| sub-text="{{app.clock|date:'yyyy/MM/dd'}}"></metrics> |
| <metrics |
| ng-if="!app.clock" |
| caption="Application Clock" |
| help="{{whatIsAppClock}}" remark-type="info" |
| value="not started"></metrics> |
| </div> |
| <div class="col-md-2 col-sm-3 col-xs-4"> |
| <metrics value="{{dag.getProcessorCount()}}" unit="processor" |
| unit-plural="processors"></metrics> |
| <metrics value="{{size(app.executors)}}" unit="executor" unit-plural="executors"></metrics> |
| </div> |
| </div> |
| </div> |
| |
| <!-- the in-app navigation tabs --> |
| <div class="col-md-12"> |
| <ul class="nav nav-tabs nav-tabs-underlined" bs-navbar> |
| <li data-match-route="/apps/streamingapp/\d+(/overview)?$"> |
| <a href="#/apps/streamingapp/{{app.appId}}">Overview</a> |
| </li> |
| <li data-match-route="/apps/streamingapp/\d+/metrics$"> |
| <a href="#/apps/streamingapp/{{app.appId}}/metrics">Metrics</a> |
| </li> |
| <li data-match-route="/apps/streamingapp/\d+/dag$"> |
| <a href="#/apps/streamingapp/{{app.appId}}/dag">DAG</a> |
| </li> |
| <!-- following tabs are hidden by default --> |
| <li ng-if="$state.current.name === 'streamingapp.processor'" |
| class="active"> |
| <a href="javascript:">Processor</a> |
| </li> |
| <li ng-if="$state.current.name === 'streamingapp.executor'" |
| class="active"> |
| <a href="javascript:">Executor</a> |
| </li> |
| </ul> |
| </div> |
| <!-- end of tabs --> |
| |
| <div ui-view></div> |