UNPKG

ng-jhipster

Version:

A Jhipster util library for Angular

117 lines (113 loc) 13.6 kB
/* 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'; import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; import { JhiThreadModalComponent } from './jhi-metrics-modal-threads.component'; export class JhiJvmThreadsComponent { constructor(modalService) { this.modalService = modalService; } ngOnInit() { this.threadStats = { threadDumpRunnable: 0, threadDumpWaiting: 0, threadDumpTimedWaiting: 0, threadDumpBlocked: 0, threadDumpAll: 0 }; this.threadData.forEach(value => { if (value.threadState === 'RUNNABLE') { this.threadStats.threadDumpRunnable += 1; } else if (value.threadState === 'WAITING') { this.threadStats.threadDumpWaiting += 1; } else if (value.threadState === 'TIMED_WAITING') { this.threadStats.threadDumpTimedWaiting += 1; } else if (value.threadState === 'BLOCKED') { this.threadStats.threadDumpBlocked += 1; } }); this.threadStats.threadDumpAll = this.threadStats.threadDumpRunnable + this.threadStats.threadDumpWaiting + this.threadStats.threadDumpTimedWaiting + this.threadStats.threadDumpBlocked; } open() { const modalRef = this.modalService.open(JhiThreadModalComponent); modalRef.componentInstance.threadDump = this.threadData; } } JhiJvmThreadsComponent.decorators = [ { type: Component, args: [{ selector: 'jhi-jvm-threads', template: ` <h4 jhiTranslate="metrics.jvm.threads.title">Threads</h4> <span><span jhiTranslate="metrics.jvm.threads.runnable">Runnable</span> {{ threadStats.threadDumpRunnable }}</span> <ngb-progressbar [value]="threadStats.threadDumpRunnable" [max]="threadStats.threadDumpAll" [striped]="true" [animated]="false" type="success" > <span>{{ (threadStats.threadDumpRunnable * 100) / threadStats.threadDumpAll | number: '1.0-0' }}%</span> </ngb-progressbar> <span><span jhiTranslate="metrics.jvm.threads.timedwaiting">Timed Waiting</span> ({{ threadStats.threadDumpTimedWaiting }})</span> <ngb-progressbar [value]="threadStats.threadDumpTimedWaiting" [max]="threadStats.threadDumpAll" [striped]="true" [animated]="false" type="warning" > <span>{{ (threadStats.threadDumpTimedWaiting * 100) / threadStats.threadDumpAll | number: '1.0-0' }}%</span> </ngb-progressbar> <span><span jhiTranslate="metrics.jvm.threads.waiting">Waiting</span> ({{ threadStats.threadDumpWaiting }})</span> <ngb-progressbar [value]="threadStats.threadDumpWaiting" [max]="threadStats.threadDumpAll" [striped]="true" [animated]="false" type="warning" > <span>{{ (threadStats.threadDumpWaiting * 100) / threadStats.threadDumpAll | number: '1.0-0' }}%</span> </ngb-progressbar> <span><span jhiTranslate="metrics.jvm.threads.blocked">Blocked</span> ({{ threadStats.threadDumpBlocked }})</span> <ngb-progressbar [value]="threadStats.threadDumpBlocked" [max]="threadStats.threadDumpAll" [striped]="true" [animated]="false" type="success" > <span>{{ (threadStats.threadDumpBlocked * 100) / threadStats.threadDumpAll | number: '1.0-0' }}%</span> </ngb-progressbar> <div>Total: {{ threadStats.threadDumpAll }}</div> <button class="hand btn btn-primary btn-sm" (click)="open()" data-toggle="modal" data-target="#threadDump"> <span>Expand</span> </button> ` },] } ]; JhiJvmThreadsComponent.ctorParameters = () => [ { type: NgbModal } ]; JhiJvmThreadsComponent.propDecorators = { threadData: [{ type: Input }] }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamhpLWp2bS10aHJlYWRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvbWV0cmljcy9qaGktanZtLXRocmVhZHMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQW9EaEYsTUFBTSxPQUFPLHNCQUFzQjtJQWMvQixZQUFvQixZQUFzQjtRQUF0QixpQkFBWSxHQUFaLFlBQVksQ0FBVTtJQUFHLENBQUM7SUFFOUMsUUFBUTtRQUNKLElBQUksQ0FBQyxXQUFXLEdBQUc7WUFDZixrQkFBa0IsRUFBRSxDQUFDO1lBQ3JCLGlCQUFpQixFQUFFLENBQUM7WUFDcEIsc0JBQXNCLEVBQUUsQ0FBQztZQUN6QixpQkFBaUIsRUFBRSxDQUFDO1lBQ3BCLGFBQWEsRUFBRSxDQUFDO1NBQ25CLENBQUM7UUFFRixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM1QixJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssVUFBVSxFQUFFO2dCQUNsQyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixJQUFJLENBQUMsQ0FBQzthQUM1QztpQkFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFFO2dCQUN4QyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixJQUFJLENBQUMsQ0FBQzthQUMzQztpQkFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssZUFBZSxFQUFFO2dCQUM5QyxJQUFJLENBQUMsV0FBVyxDQUFDLHNCQUFzQixJQUFJLENBQUMsQ0FBQzthQUNoRDtpQkFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFFO2dCQUN4QyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixJQUFJLENBQUMsQ0FBQzthQUMzQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhO1lBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCO2dCQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQjtnQkFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0I7Z0JBQ3ZDLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUk7UUFDQSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ2pFLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUM1RCxDQUFDOzs7WUFqR0osU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQThDVDthQUNKOzs7WUFyRFEsUUFBUTs7O3lCQWtFWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiBDb3B5cmlnaHQgMjAxMy0yMDIwIHRoZSBvcmlnaW5hbCBhdXRob3Igb3IgYXV0aG9ycyBmcm9tIHRoZSBKSGlwc3RlciBwcm9qZWN0LlxuXG4gVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEpIaXBzdGVyIHByb2plY3QsIHNlZSBodHRwczovL3d3dy5qaGlwc3Rlci50ZWNoL1xuIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuXG4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5cbmltcG9ydCB7IEpoaVRocmVhZE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9qaGktbWV0cmljcy1tb2RhbC10aHJlYWRzLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnamhpLWp2bS10aHJlYWRzJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8aDQgamhpVHJhbnNsYXRlPVwibWV0cmljcy5qdm0udGhyZWFkcy50aXRsZVwiPlRocmVhZHM8L2g0PlxuICAgICAgICA8c3Bhbj48c3BhbiBqaGlUcmFuc2xhdGU9XCJtZXRyaWNzLmp2bS50aHJlYWRzLnJ1bm5hYmxlXCI+UnVubmFibGU8L3NwYW4+IHt7IHRocmVhZFN0YXRzLnRocmVhZER1bXBSdW5uYWJsZSB9fTwvc3Bhbj5cbiAgICAgICAgPG5nYi1wcm9ncmVzc2JhclxuICAgICAgICAgICAgW3ZhbHVlXT1cInRocmVhZFN0YXRzLnRocmVhZER1bXBSdW5uYWJsZVwiXG4gICAgICAgICAgICBbbWF4XT1cInRocmVhZFN0YXRzLnRocmVhZER1bXBBbGxcIlxuICAgICAgICAgICAgW3N0cmlwZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbYW5pbWF0ZWRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgdHlwZT1cInN1Y2Nlc3NcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8c3Bhbj57eyAodGhyZWFkU3RhdHMudGhyZWFkRHVtcFJ1bm5hYmxlICogMTAwKSAvIHRocmVhZFN0YXRzLnRocmVhZER1bXBBbGwgfCBudW1iZXI6ICcxLjAtMCcgfX0lPC9zcGFuPlxuICAgICAgICA8L25nYi1wcm9ncmVzc2Jhcj5cbiAgICAgICAgPHNwYW4+PHNwYW4gamhpVHJhbnNsYXRlPVwibWV0cmljcy5qdm0udGhyZWFkcy50aW1lZHdhaXRpbmdcIj5UaW1lZCBXYWl0aW5nPC9zcGFuPiAoe3sgdGhyZWFkU3RhdHMudGhyZWFkRHVtcFRpbWVkV2FpdGluZyB9fSk8L3NwYW4+XG4gICAgICAgIDxuZ2ItcHJvZ3Jlc3NiYXJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJ0aHJlYWRTdGF0cy50aHJlYWREdW1wVGltZWRXYWl0aW5nXCJcbiAgICAgICAgICAgIFttYXhdPVwidGhyZWFkU3RhdHMudGhyZWFkRHVtcEFsbFwiXG4gICAgICAgICAgICBbc3RyaXBlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFthbmltYXRlZF09XCJmYWxzZVwiXG4gICAgICAgICAgICB0eXBlPVwid2FybmluZ1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuPnt7ICh0aHJlYWRTdGF0cy50aHJlYWREdW1wVGltZWRXYWl0aW5nICogMTAwKSAvIHRocmVhZFN0YXRzLnRocmVhZER1bXBBbGwgfCBudW1iZXI6ICcxLjAtMCcgfX0lPC9zcGFuPlxuICAgICAgICA8L25nYi1wcm9ncmVzc2Jhcj5cbiAgICAgICAgPHNwYW4+PHNwYW4gamhpVHJhbnNsYXRlPVwibWV0cmljcy5qdm0udGhyZWFkcy53YWl0aW5nXCI+V2FpdGluZzwvc3Bhbj4gKHt7IHRocmVhZFN0YXRzLnRocmVhZER1bXBXYWl0aW5nIH19KTwvc3Bhbj5cbiAgICAgICAgPG5nYi1wcm9ncmVzc2JhclxuICAgICAgICAgICAgW3ZhbHVlXT1cInRocmVhZFN0YXRzLnRocmVhZER1bXBXYWl0aW5nXCJcbiAgICAgICAgICAgIFttYXhdPVwidGhyZWFkU3RhdHMudGhyZWFkRHVtcEFsbFwiXG4gICAgICAgICAgICBbc3RyaXBlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFthbmltYXRlZF09XCJmYWxzZVwiXG4gICAgICAgICAgICB0eXBlPVwid2FybmluZ1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuPnt7ICh0aHJlYWRTdGF0cy50aHJlYWREdW1wV2FpdGluZyAqIDEwMCkgLyB0aHJlYWRTdGF0cy50aHJlYWREdW1wQWxsIHwgbnVtYmVyOiAnMS4wLTAnIH19JTwvc3Bhbj5cbiAgICAgICAgPC9uZ2ItcHJvZ3Jlc3NiYXI+XG4gICAgICAgIDxzcGFuPjxzcGFuIGpoaVRyYW5zbGF0ZT1cIm1ldHJpY3MuanZtLnRocmVhZHMuYmxvY2tlZFwiPkJsb2NrZWQ8L3NwYW4+ICh7eyB0aHJlYWRTdGF0cy50aHJlYWREdW1wQmxvY2tlZCB9fSk8L3NwYW4+XG4gICAgICAgIDxuZ2ItcHJvZ3Jlc3NiYXJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJ0aHJlYWRTdGF0cy50aHJlYWREdW1wQmxvY2tlZFwiXG4gICAgICAgICAgICBbbWF4XT1cInRocmVhZFN0YXRzLnRocmVhZER1bXBBbGxcIlxuICAgICAgICAgICAgW3N0cmlwZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbYW5pbWF0ZWRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgdHlwZT1cInN1Y2Nlc3NcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8c3Bhbj57eyAodGhyZWFkU3RhdHMudGhyZWFkRHVtcEJsb2NrZWQgKiAxMDApIC8gdGhyZWFkU3RhdHMudGhyZWFkRHVtcEFsbCB8IG51bWJlcjogJzEuMC0wJyB9fSU8L3NwYW4+XG4gICAgICAgIDwvbmdiLXByb2dyZXNzYmFyPlxuICAgICAgICA8ZGl2PlRvdGFsOiB7eyB0aHJlYWRTdGF0cy50aHJlYWREdW1wQWxsIH19PC9kaXY+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJoYW5kIGJ0biBidG4tcHJpbWFyeSBidG4tc21cIiAoY2xpY2spPVwib3BlbigpXCIgZGF0YS10b2dnbGU9XCJtb2RhbFwiIGRhdGEtdGFyZ2V0PVwiI3RocmVhZER1bXBcIj5cbiAgICAgICAgICAgIDxzcGFuPkV4cGFuZDwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgYFxufSlcbmV4cG9ydCBjbGFzcyBKaGlKdm1UaHJlYWRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICB0aHJlYWRTdGF0czoge1xuICAgICAgICB0aHJlYWREdW1wQWxsOiBudW1iZXI7XG4gICAgICAgIHRocmVhZER1bXBSdW5uYWJsZTogbnVtYmVyO1xuICAgICAgICB0aHJlYWREdW1wVGltZWRXYWl0aW5nOiBudW1iZXI7XG4gICAgICAgIHRocmVhZER1bXBXYWl0aW5nOiBudW1iZXI7XG4gICAgICAgIHRocmVhZER1bXBCbG9ja2VkOiBudW1iZXI7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIG9iamVjdCBjb250YWluaW5nIHRocmVhZCByZWxhdGVkIG1ldHJpY3NcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHJlYWREYXRhOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWwpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy50aHJlYWRTdGF0cyA9IHtcbiAgICAgICAgICAgIHRocmVhZER1bXBSdW5uYWJsZTogMCxcbiAgICAgICAgICAgIHRocmVhZER1bXBXYWl0aW5nOiAwLFxuICAgICAgICAgICAgdGhyZWFkRHVtcFRpbWVkV2FpdGluZzogMCxcbiAgICAgICAgICAgIHRocmVhZER1bXBCbG9ja2VkOiAwLFxuICAgICAgICAgICAgdGhyZWFkRHVtcEFsbDogMFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMudGhyZWFkRGF0YS5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgICAgICAgIGlmICh2YWx1ZS50aHJlYWRTdGF0ZSA9PT0gJ1JVTk5BQkxFJykge1xuICAgICAgICAgICAgICAgIHRoaXMudGhyZWFkU3RhdHMudGhyZWFkRHVtcFJ1bm5hYmxlICs9IDE7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlLnRocmVhZFN0YXRlID09PSAnV0FJVElORycpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRocmVhZFN0YXRzLnRocmVhZER1bXBXYWl0aW5nICs9IDE7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlLnRocmVhZFN0YXRlID09PSAnVElNRURfV0FJVElORycpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRocmVhZFN0YXRzLnRocmVhZER1bXBUaW1lZFdhaXRpbmcgKz0gMTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUudGhyZWFkU3RhdGUgPT09ICdCTE9DS0VEJykge1xuICAgICAgICAgICAgICAgIHRoaXMudGhyZWFkU3RhdHMudGhyZWFkRHVtcEJsb2NrZWQgKz0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy50aHJlYWRTdGF0cy50aHJlYWREdW1wQWxsID1cbiAgICAgICAgICAgIHRoaXMudGhyZWFkU3RhdHMudGhyZWFkRHVtcFJ1bm5hYmxlICtcbiAgICAgICAgICAgIHRoaXMudGhyZWFkU3RhdHMudGhyZWFkRHVtcFdhaXRpbmcgK1xuICAgICAgICAgICAgdGhpcy50aHJlYWRTdGF0cy50aHJlYWREdW1wVGltZWRXYWl0aW5nICtcbiAgICAgICAgICAgIHRoaXMudGhyZWFkU3RhdHMudGhyZWFkRHVtcEJsb2NrZWQ7XG4gICAgfVxuXG4gICAgb3BlbigpIHtcbiAgICAgICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKEpoaVRocmVhZE1vZGFsQ29tcG9uZW50KTtcbiAgICAgICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UudGhyZWFkRHVtcCA9IHRoaXMudGhyZWFkRGF0YTtcbiAgICB9XG59XG4iXX0=