ng-jhipster
Version:
A Jhipster util library for Angular
106 lines (102 loc) • 12.1 kB
JavaScript
/*
Copyright 2013-2020 the original author or authors from the JHipster project.
This file is part of the JHipster project, see https://www.jhipster.tech/
for more information.
Licensed 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.
*/
import { Component, Input } from '@angular/core';
export class JhiMetricsSystemComponent {
convertMillisecondsToDuration(ms) {
const times = {
year: 31557600000,
month: 2629746000,
day: 86400000,
hour: 3600000,
minute: 60000,
second: 1000
};
let timeString = '';
for (const key in times) {
if (Math.floor(ms / times[key]) > 0) {
let plural = '';
if (Math.floor(ms / times[key]) > 1) {
plural = 's';
}
timeString += Math.floor(ms / times[key]).toString() + ' ' + key.toString() + plural + ' ';
ms = ms - times[key] * Math.floor(ms / times[key]);
}
}
return timeString;
}
}
JhiMetricsSystemComponent.decorators = [
{ type: Component, args: [{
selector: 'jhi-metrics-system',
template: `
<h4>System</h4>
<div class="row" *ngIf="!updating">
<div class="col-md-4">Uptime</div>
<div class="col-md-8 text-right">{{ convertMillisecondsToDuration(systemMetrics['process.uptime']) }}</div>
</div>
<div class="row" *ngIf="!updating">
<div class="col-md-4">Start time</div>
<div class="col-md-8 text-right">{{ systemMetrics['process.start.time'] | date: 'full' }}</div>
</div>
<div class="row" *ngIf="!updating">
<div class="col-md-9">Process CPU usage</div>
<div class="col-md-3 text-right">{{ 100 * systemMetrics['process.cpu.usage'] | number: '1.0-2' }} %</div>
</div>
<ngb-progressbar
[value]="100 * systemMetrics['process.cpu.usage']"
[striped]="true"
[animated]="false"
type="success"
*ngIf="!updating"
>
<span>{{ 100 * systemMetrics['process.cpu.usage'] | number: '1.0-2' }} %</span>
</ngb-progressbar>
<div class="row" *ngIf="!updating">
<div class="col-md-9">System CPU usage</div>
<div class="col-md-3 text-right">{{ 100 * systemMetrics['system.cpu.usage'] | number: '1.0-2' }} %</div>
</div>
<ngb-progressbar
[value]="100 * systemMetrics['system.cpu.usage']"
[striped]="true"
[animated]="false"
type="success"
*ngIf="!updating"
>
<span>{{ 100 * systemMetrics['system.cpu.usage'] | number: '1.0-2' }} %</span>
</ngb-progressbar>
<div class="row" *ngIf="!updating">
<div class="col-md-9">System CPU count</div>
<div class="col-md-3 text-right">{{ systemMetrics['system.cpu.count'] }}</div>
</div>
<div class="row" *ngIf="!updating">
<div class="col-md-9">System 1m Load average</div>
<div class="col-md-3 text-right">{{ systemMetrics['system.load.average.1m'] | number: '1.0-2' }}</div>
</div>
<div class="row" *ngIf="!updating">
<div class="col-md-9">Process files max</div>
<div class="col-md-3 text-right">{{ systemMetrics['process.files.max'] | number: '1.0-0' }}</div>
</div>
<div class="row" *ngIf="!updating">
<div class="col-md-9">Process files open</div>
<div class="col-md-3 text-right">{{ systemMetrics['process.files.open'] | number: '1.0-0' }}</div>
</div>
`
},] }
];
JhiMetricsSystemComponent.propDecorators = {
systemMetrics: [{ type: Input }],
updating: [{ type: Input }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamhpLW1ldHJpY3Mtc3lzdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvbWV0cmljcy9qaGktbWV0cmljcy1zeXN0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBMERqRCxNQUFNLE9BQU8seUJBQXlCO0lBV2xDLDZCQUE2QixDQUFDLEVBQUU7UUFDNUIsTUFBTSxLQUFLLEdBQUc7WUFDVixJQUFJLEVBQUUsV0FBVztZQUNqQixLQUFLLEVBQUUsVUFBVTtZQUNqQixHQUFHLEVBQUUsUUFBUTtZQUNiLElBQUksRUFBRSxPQUFPO1lBQ2IsTUFBTSxFQUFFLEtBQUs7WUFDYixNQUFNLEVBQUUsSUFBSTtTQUNmLENBQUM7UUFDRixJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDcEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxLQUFLLEVBQUU7WUFDckIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2pDLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ2pDLE1BQU0sR0FBRyxHQUFHLENBQUM7aUJBQ2hCO2dCQUNELFVBQVUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLE1BQU0sR0FBRyxHQUFHLENBQUM7Z0JBQzNGLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ3REO1NBQ0o7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUN0QixDQUFDOzs7WUF4RkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxvQkFBb0I7Z0JBQzlCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQW9EVDthQUNKOzs7NEJBS0ksS0FBSzt1QkFLTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiBDb3B5cmlnaHQgMjAxMy0yMDIwIHRoZSBvcmlnaW5hbCBhdXRob3Igb3IgYXV0aG9ycyBmcm9tIHRoZSBKSGlwc3RlciBwcm9qZWN0LlxuXG4gVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEpIaXBzdGVyIHByb2plY3QsIHNlZSBodHRwczovL3d3dy5qaGlwc3Rlci50ZWNoL1xuIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuXG4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnamhpLW1ldHJpY3Mtc3lzdGVtJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8aDQ+U3lzdGVtPC9oND5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwiIXVwZGF0aW5nXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5VcHRpbWU8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOCB0ZXh0LXJpZ2h0XCI+e3sgY29udmVydE1pbGxpc2Vjb25kc1RvRHVyYXRpb24oc3lzdGVtTWV0cmljc1sncHJvY2Vzcy51cHRpbWUnXSkgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cIiF1cGRhdGluZ1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+U3RhcnQgdGltZTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC04IHRleHQtcmlnaHRcIj57eyBzeXN0ZW1NZXRyaWNzWydwcm9jZXNzLnN0YXJ0LnRpbWUnXSB8IGRhdGU6ICdmdWxsJyB9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwiIXVwZGF0aW5nXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTlcIj5Qcm9jZXNzIENQVSB1c2FnZTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zIHRleHQtcmlnaHRcIj57eyAxMDAgKiBzeXN0ZW1NZXRyaWNzWydwcm9jZXNzLmNwdS51c2FnZSddIHwgbnVtYmVyOiAnMS4wLTInIH19ICU8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZ2ItcHJvZ3Jlc3NiYXJcbiAgICAgICAgICAgIFt2YWx1ZV09XCIxMDAgKiBzeXN0ZW1NZXRyaWNzWydwcm9jZXNzLmNwdS51c2FnZSddXCJcbiAgICAgICAgICAgIFtzdHJpcGVkXT1cInRydWVcIlxuICAgICAgICAgICAgW2FuaW1hdGVkXT1cImZhbHNlXCJcbiAgICAgICAgICAgIHR5cGU9XCJzdWNjZXNzXCJcbiAgICAgICAgICAgICpuZ0lmPVwiIXVwZGF0aW5nXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4+e3sgMTAwICogc3lzdGVtTWV0cmljc1sncHJvY2Vzcy5jcHUudXNhZ2UnXSB8IG51bWJlcjogJzEuMC0yJyB9fSAlPC9zcGFuPlxuICAgICAgICA8L25nYi1wcm9ncmVzc2Jhcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwiIXVwZGF0aW5nXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTlcIj5TeXN0ZW0gQ1BVIHVzYWdlPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTMgdGV4dC1yaWdodFwiPnt7IDEwMCAqIHN5c3RlbU1ldHJpY3NbJ3N5c3RlbS5jcHUudXNhZ2UnXSB8IG51bWJlcjogJzEuMC0yJyB9fSAlPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmdiLXByb2dyZXNzYmFyXG4gICAgICAgICAgICBbdmFsdWVdPVwiMTAwICogc3lzdGVtTWV0cmljc1snc3lzdGVtLmNwdS51c2FnZSddXCJcbiAgICAgICAgICAgIFtzdHJpcGVkXT1cInRydWVcIlxuICAgICAgICAgICAgW2FuaW1hdGVkXT1cImZhbHNlXCJcbiAgICAgICAgICAgIHR5cGU9XCJzdWNjZXNzXCJcbiAgICAgICAgICAgICpuZ0lmPVwiIXVwZGF0aW5nXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4+e3sgMTAwICogc3lzdGVtTWV0cmljc1snc3lzdGVtLmNwdS51c2FnZSddIHwgbnVtYmVyOiAnMS4wLTInIH19ICU8L3NwYW4+XG4gICAgICAgIDwvbmdiLXByb2dyZXNzYmFyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCIhdXBkYXRpbmdcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOVwiPlN5c3RlbSBDUFUgY291bnQ8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMyB0ZXh0LXJpZ2h0XCI+e3sgc3lzdGVtTWV0cmljc1snc3lzdGVtLmNwdS5jb3VudCddIH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCIhdXBkYXRpbmdcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOVwiPlN5c3RlbSAxbSBMb2FkIGF2ZXJhZ2U8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMyB0ZXh0LXJpZ2h0XCI+e3sgc3lzdGVtTWV0cmljc1snc3lzdGVtLmxvYWQuYXZlcmFnZS4xbSddIHwgbnVtYmVyOiAnMS4wLTInIH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCIhdXBkYXRpbmdcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOVwiPlByb2Nlc3MgZmlsZXMgbWF4PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTMgdGV4dC1yaWdodFwiPnt7IHN5c3RlbU1ldHJpY3NbJ3Byb2Nlc3MuZmlsZXMubWF4J10gfCBudW1iZXI6ICcxLjAtMCcgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cIiF1cGRhdGluZ1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC05XCI+UHJvY2VzcyBmaWxlcyBvcGVuPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTMgdGV4dC1yaWdodFwiPnt7IHN5c3RlbU1ldHJpY3NbJ3Byb2Nlc3MuZmlsZXMub3BlbiddIHwgbnVtYmVyOiAnMS4wLTAnIH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIGBcbn0pXG5leHBvcnQgY2xhc3MgSmhpTWV0cmljc1N5c3RlbUNvbXBvbmVudCB7XG4gICAgLyoqXG4gICAgICogb2JqZWN0IGNvbnRhaW5pbmcgdGhyZWFkIHJlbGF0ZWQgbWV0cmljc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHN5c3RlbU1ldHJpY3M6IHt9O1xuXG4gICAgLyoqXG4gICAgICogYm9vbGVhbiBmaWVsZCBzYXlpbmcgaWYgdGhlIG1ldHJpY3MgYXJlIGluIHRoZSBwcm9jZXNzIG9mIGJlaW5nIHVwZGF0ZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKSB1cGRhdGluZzogYm9vbGVhbjtcblxuICAgIGNvbnZlcnRNaWxsaXNlY29uZHNUb0R1cmF0aW9uKG1zKSB7XG4gICAgICAgIGNvbnN0IHRpbWVzID0ge1xuICAgICAgICAgICAgeWVhcjogMzE1NTc2MDAwMDAsXG4gICAgICAgICAgICBtb250aDogMjYyOTc0NjAwMCxcbiAgICAgICAgICAgIGRheTogODY0MDAwMDAsXG4gICAgICAgICAgICBob3VyOiAzNjAwMDAwLFxuICAgICAgICAgICAgbWludXRlOiA2MDAwMCxcbiAgICAgICAgICAgIHNlY29uZDogMTAwMFxuICAgICAgICB9O1xuICAgICAgICBsZXQgdGltZVN0cmluZyA9ICcnO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aW1lcykge1xuICAgICAgICAgICAgaWYgKE1hdGguZmxvb3IobXMgLyB0aW1lc1trZXldKSA+IDApIHtcbiAgICAgICAgICAgICAgICBsZXQgcGx1cmFsID0gJyc7XG4gICAgICAgICAgICAgICAgaWYgKE1hdGguZmxvb3IobXMgLyB0aW1lc1trZXldKSA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcGx1cmFsID0gJ3MnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aW1lU3RyaW5nICs9IE1hdGguZmxvb3IobXMgLyB0aW1lc1trZXldKS50b1N0cmluZygpICsgJyAnICsga2V5LnRvU3RyaW5nKCkgKyBwbHVyYWwgKyAnICc7XG4gICAgICAgICAgICAgICAgbXMgPSBtcyAtIHRpbWVzW2tleV0gKiBNYXRoLmZsb29yKG1zIC8gdGltZXNba2V5XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRpbWVTdHJpbmc7XG4gICAgfVxufVxuIl19