@esfaenza/admin-module 11.2.6 → 11.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/esfaenza-admin-module.umd.js +50 -8
- package/bundles/esfaenza-admin-module.umd.js.map +1 -1
- package/bundles/esfaenza-admin-module.umd.min.js +2 -2
- package/bundles/esfaenza-admin-module.umd.min.js.map +1 -1
- package/esfaenza-admin-module.metadata.json +1 -1
- package/esm2015/lib/components/profiler/adm_profiler.component.js +2 -2
- package/esm2015/lib/components/profiler/adm_profiler.component.loc.js +3 -1
- package/esm2015/lib/components/topact/topact_search.component.js +30 -6
- package/esm2015/lib/components/topact/topact_search.component.loc.js +7 -1
- package/esm2015/lib/models/components/NodeStats.js +3 -0
- package/esm2015/lib/models/components/ProfilerDataNode.js +9 -1
- package/esm2015/lib/models/components/ProfilerDataNode.loc.js +4 -2
- package/esm2015/lib/models/components/TopNode.js +1 -1
- package/esm2015/lib/models/externals/Repository.js +3 -2
- package/fesm2015/esfaenza-admin-module.js +50 -9
- package/fesm2015/esfaenza-admin-module.js.map +1 -1
- package/lib/components/topact/topact_search.component.d.ts +4 -0
- package/lib/models/components/NodeStats.d.ts +21 -0
- package/lib/models/components/ProfilerDataNode.d.ts +2 -0
- package/lib/models/components/ProfilerDataNode.loc.d.ts +8 -0
- package/lib/models/components/TopNode.d.ts +1 -0
- package/lib/models/externals/Repository.d.ts +1 -0
- package/package.json +1 -1
|
@@ -351,7 +351,8 @@
|
|
|
351
351
|
GET_Adm_KillProcess: "/api/Adm/KillProcess",
|
|
352
352
|
GET_Adm_SetProcessTracing: "/api/Adm/SetProcessTracing",
|
|
353
353
|
GET_Adm_StartWorker: "/api/Adm/StartWorker",
|
|
354
|
-
GET_Adm_StopWorker: "/api/Adm/StopWorker"
|
|
354
|
+
GET_Adm_StopWorker: "/api/Adm/StopWorker",
|
|
355
|
+
GET_Adm_GetNodeStats: "/api/Adm/GetNodeStats",
|
|
355
356
|
};
|
|
356
357
|
|
|
357
358
|
var ADM_LOCALE = new core.InjectionToken('ADM_LOCALE');
|
|
@@ -746,7 +747,9 @@
|
|
|
746
747
|
'Min. Time for Period': { 'en-US': "Min. Time for Period", 'it-IT': "Tempo Min Periodo" },
|
|
747
748
|
'Avg. Time for Period': { 'en-US': "Avg. Time for Period", 'it-IT': "Tempo Medio Periodo" },
|
|
748
749
|
'Specific Time for Period': { 'en-US': "Specific Time for Period", 'it-IT': "Tempo Specifico Periodo" },
|
|
749
|
-
'Percentage for Period': { 'en-US': "Percentage for Period", 'it-IT': "Percentuale Periodo" }
|
|
750
|
+
'Percentage for Period': { 'en-US': "Percentage for Period", 'it-IT': "Percentuale Periodo" },
|
|
751
|
+
'Event Type Name': { 'en-US': "Event Type Name", 'it-IT': "Nome Tipologia Evento" },
|
|
752
|
+
'Wait Class Name': { 'en-US': "Wait Class Name", 'it-IT': "Nome Classe Attesa" }
|
|
750
753
|
};
|
|
751
754
|
|
|
752
755
|
var ProfilerDataNode = /** @class */ (function () {
|
|
@@ -821,7 +824,15 @@
|
|
|
821
824
|
__decorate([
|
|
822
825
|
extensions.Export(170, ProfilerDataNode_loc["Percentage for Period"][Locale]),
|
|
823
826
|
cerialize.autoserialize
|
|
824
|
-
], ProfilerDataNode.prototype, "snappercentage", void 0);
|
|
827
|
+
], ProfilerDataNode.prototype, "snappercentage", void 0);
|
|
828
|
+
__decorate([
|
|
829
|
+
extensions.Export(180, ProfilerDataNode_loc["Event Type Name"][Locale]),
|
|
830
|
+
cerialize.autoserialize
|
|
831
|
+
], ProfilerDataNode.prototype, "eventtypename", void 0);
|
|
832
|
+
__decorate([
|
|
833
|
+
extensions.Export(190, ProfilerDataNode_loc["Wait Class Name"][Locale]),
|
|
834
|
+
cerialize.autoserialize
|
|
835
|
+
], ProfilerDataNode.prototype, "waitclassname", void 0);
|
|
825
836
|
|
|
826
837
|
var ProfilerDataNodesView = /** @class */ (function (_super) {
|
|
827
838
|
__extends(ProfilerDataNodesView, _super);
|
|
@@ -853,6 +864,8 @@
|
|
|
853
864
|
_super.prototype.set.call(_this, "en->it", "Avg. Time for Period", ["Tempo Medio Periodo"]);
|
|
854
865
|
_super.prototype.set.call(_this, "en->it", "Specific Time for Period", ["Tempo Specifico Periodo"]);
|
|
855
866
|
_super.prototype.set.call(_this, "en->it", "Percentage for Period", ["Percentuale Periodo"]);
|
|
867
|
+
_super.prototype.set.call(_this, "en->it", "Event Type Name", ["Nome Tipologia Evento"]);
|
|
868
|
+
_super.prototype.set.call(_this, "en->it", "Wait Class Name", ["Nome Classe Attesa"]);
|
|
856
869
|
return _this;
|
|
857
870
|
}
|
|
858
871
|
return AdmProfilerComponentLoc;
|
|
@@ -956,7 +969,7 @@
|
|
|
956
969
|
{ type: core.Component, args: [{
|
|
957
970
|
selector: "adm_profiler",
|
|
958
971
|
providers: [{ provide: localizations.LocalizationService, useClass: AdmProfilerComponentLoc }],
|
|
959
|
-
template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">{{'Server Profiler' | localize : lc}}</span> \r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 bottom-15\">\r\n <form role=\"form\">\r\n <div class=\"row app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterfrom\" name=\"filterfrom\" [Placeholder]=\"'From' | localize : lc\"></form-date>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterto\" name=\"filterto\" [Placeholder]=\"'To' | localize : lc\"></form-date>\r\n </div>\r\n <button [disabled]=\"searchView.searchinprogress\" class=\"input-group-addon btn app-btn-search app-margin-top-20\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Loading Data' | localize : lc}}</em></p>\r\n <div *ngIf=\"searchView\">\r\n <es-table [(ngModel)]=\"searchView\" [Hierarchy]=\"true\" [OrderByColumn]=\"false\" [ParentKey]=\"'parentid'\"\r\n [OwnKey]=\"'id'\" [StartsExpanded]=\"false\" [ExportFunction]=\"prepareExport.bind(this)\" [Export]=\"true\"\r\n [ExportFileName]=\"'Profiler Export.csv'\" [HidePaging]=\"true\" (onSearchRequest)=\"sendSearch($event);\">\r\n \r\n <span *th=\"'1'\">{{'ID' | localize : lc}}</span>\r\n <span *th=\"'2'\">{{'Description' | localize : lc}}</span>\r\n <span *th=\"'3'\">{{'Calls' | localize : lc}}</span>\r\n <span *th=\"'4'\">{{'Time' | localize : lc}}</span>\r\n <span *th=\"'5'\">{{'Peak Time' | localize : lc}}</span>\r\n <span *th=\"'6'\">{{'Min. Time' | localize : lc}}</span>\r\n <span *th=\"'7'\">{{'Avg. Time' | localize : lc}}</span>\r\n <span *th=\"'8'\">{{'Specific Time' | localize : lc}}</span>\r\n <span *th=\"'9'\">{{'Percentage' | localize : lc}}</span>\r\n <span *th=\"'10'\">{{'Calls for Period' | localize : lc}}</span>\r\n <span *th=\"'11'\">{{'Time for Period' | localize : lc}}</span>\r\n <span *th=\"'12'\">{{'Peak Time for Period' | localize : lc}}</span>\r\n <span *th=\"'13'\">{{'Min. Time for Period' | localize : lc}}</span>\r\n <span *th=\"'14'\">{{'Avg. Time for Period' | localize : lc}}</span>\r\n <span *th=\"'15'\">{{'Specific Time for Period' | localize : lc}}</span>\r\n <span *th=\"'16'\">{{'Percentage for Period' | localize : lc}}</span>\r\n\r\n <span *td=\"'1'; let item\">{{item.id}}</span>\r\n <span *td=\"'2'; let item\" title=\"{{item.description}}\">{{item.description.length <= 50 ? item.description : item.description.substr(0,50) + \"[...]\" }}</span>\r\n <span *td=\"'3'; let item\">{{item.calls}}</span>\r\n <span *td=\"'4'; let item\">{{item.time}}</span>\r\n <span *td=\"'5'; let item\">{{item.peaktime}}</span>\r\n <span *td=\"'6'; let item\">{{item.mintime}}</span>\r\n <span *td=\"'7'; let item\">{{item.avgtime}}</span>\r\n <span *td=\"'8'; let item\">{{item.timewithoutchildren}}</span>\r\n <span *td=\"'9'; let item\">{{item.percentage}}</span>\r\n <span *td=\"'10' let item\">{{item.snapdeltacalls}}</span>\r\n <span *td=\"'11' let item\">{{item.snapdeltatime}}</span>\r\n <span *td=\"'12' let item\">{{item.snappeaktime}}</span>\r\n <span *td=\"'13' let item\">{{item.snapmintime}}</span>\r\n <span *td=\"'14' let item\">{{item.snapavgtime}}</span>\r\n <span *td=\"'15' let item\">{{item.snaptimewithoutchildren}}</span>\r\n <span *td=\"'16' let item\">{{item.snappercentage}}</span>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>"
|
|
972
|
+
template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">{{'Server Profiler' | localize : lc}}</span> \r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 bottom-15\">\r\n <form role=\"form\">\r\n <div class=\"row app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterfrom\" name=\"filterfrom\" [Placeholder]=\"'From' | localize : lc\"></form-date>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterto\" name=\"filterto\" [Placeholder]=\"'To' | localize : lc\"></form-date>\r\n </div>\r\n <button [disabled]=\"searchView.searchinprogress\" class=\"input-group-addon btn app-btn-search app-margin-top-20\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Loading Data' | localize : lc}}</em></p>\r\n <div *ngIf=\"searchView\">\r\n <es-table [(ngModel)]=\"searchView\" [Hierarchy]=\"true\" [OrderByColumn]=\"false\" [ParentKey]=\"'parentid'\"\r\n [OwnKey]=\"'id'\" [StartsExpanded]=\"false\" [ExportFunction]=\"prepareExport.bind(this)\" [Export]=\"true\"\r\n [ExportFileName]=\"'Profiler Export.csv'\" [HidePaging]=\"true\" (onSearchRequest)=\"sendSearch($event);\">\r\n \r\n <span *th=\"'1'\">{{'ID' | localize : lc}}</span>\r\n <span *th=\"'2'\">{{'Description' | localize : lc}}</span>\r\n <span *th=\"'3'\">{{'Calls' | localize : lc}}</span>\r\n <span *th=\"'4'\">{{'Time' | localize : lc}}</span>\r\n <span *th=\"'5'\">{{'Peak Time' | localize : lc}}</span>\r\n <span *th=\"'6'\">{{'Min. Time' | localize : lc}}</span>\r\n <span *th=\"'7'\">{{'Avg. Time' | localize : lc}}</span>\r\n <span *th=\"'8'\">{{'Specific Time' | localize : lc}}</span>\r\n <span *th=\"'9'\">{{'Percentage' | localize : lc}}</span>\r\n <span *th=\"'10'\">{{'Calls for Period' | localize : lc}}</span>\r\n <span *th=\"'11'\">{{'Time for Period' | localize : lc}}</span>\r\n <span *th=\"'12'\">{{'Peak Time for Period' | localize : lc}}</span>\r\n <span *th=\"'13'\">{{'Min. Time for Period' | localize : lc}}</span>\r\n <span *th=\"'14'\">{{'Avg. Time for Period' | localize : lc}}</span>\r\n <span *th=\"'15'\">{{'Specific Time for Period' | localize : lc}}</span>\r\n <span *th=\"'16'\">{{'Percentage for Period' | localize : lc}}</span>\r\n <span *th=\"'15'\">{{'Event Type Name' | localize : lc}}</span>\r\n <span *th=\"'16'\">{{'Wait Class Name' | localize : lc}}</span>\r\n\r\n <span *td=\"'1'; let item\">{{item.id}}</span>\r\n <span *td=\"'2'; let item\" title=\"{{item.description}}\">{{item.description.length <= 50 ? item.description : item.description.substr(0,50) + \"[...]\" }}</span>\r\n <span *td=\"'3'; let item\">{{item.calls}}</span>\r\n <span *td=\"'4'; let item\">{{item.time}}</span>\r\n <span *td=\"'5'; let item\">{{item.peaktime}}</span>\r\n <span *td=\"'6'; let item\">{{item.mintime}}</span>\r\n <span *td=\"'7'; let item\">{{item.avgtime}}</span>\r\n <span *td=\"'8'; let item\">{{item.timewithoutchildren}}</span>\r\n <span *td=\"'9'; let item\">{{item.percentage}}</span>\r\n <span *td=\"'10' let item\">{{item.snapdeltacalls}}</span>\r\n <span *td=\"'11' let item\">{{item.snapdeltatime}}</span>\r\n <span *td=\"'12' let item\">{{item.snappeaktime}}</span>\r\n <span *td=\"'13' let item\">{{item.snapmintime}}</span>\r\n <span *td=\"'14' let item\">{{item.snapavgtime}}</span>\r\n <span *td=\"'15' let item\">{{item.snaptimewithoutchildren}}</span>\r\n <span *td=\"'16' let item\">{{item.snappercentage}}</span>\r\n <span *td=\"'15' let item\">{{item.eventtypename}}</span>\r\n <span *td=\"'16' let item\">{{item.waitclassname}}</span>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>"
|
|
960
973
|
},] }
|
|
961
974
|
];
|
|
962
975
|
AdmProfilerComponent.ctorParameters = function () { return [
|
|
@@ -1000,6 +1013,12 @@
|
|
|
1000
1013
|
_super.prototype.set.call(_this, "en->it", "second/s", ["secondo/i"]);
|
|
1001
1014
|
_super.prototype.set.call(_this, "en->it", "Maximum Threads", ["Thread Massimi"]);
|
|
1002
1015
|
_super.prototype.set.call(_this, "en->it", "CPUs", ["CPU"]);
|
|
1016
|
+
_super.prototype.set.call(_this, "en->it", "Wait Class Name", ["Nome Classe Attesa"]);
|
|
1017
|
+
_super.prototype.set.call(_this, "en->it", "Activity Node Details", ["Dettaglio Attività Nodo"]);
|
|
1018
|
+
_super.prototype.set.call(_this, "en->it", "Event Type", ["Tipo Evento"]);
|
|
1019
|
+
_super.prototype.set.call(_this, "en->it", "Elapsed (With Children)", ["Tempo Trascorso (Con Figli)"]);
|
|
1020
|
+
_super.prototype.set.call(_this, "en->it", "Wait Class", ["Classe Attesa"]);
|
|
1021
|
+
_super.prototype.set.call(_this, "en->it", "Elapsed (No Children)", ["Tempo Trascorso (Non Figli)"]);
|
|
1003
1022
|
return _this;
|
|
1004
1023
|
}
|
|
1005
1024
|
return AdmTopActivitieLoc;
|
|
@@ -1075,7 +1094,7 @@
|
|
|
1075
1094
|
AdmTopActivitiesComponent.prototype.init = function (HotPotato) {
|
|
1076
1095
|
if (HotPotato) {
|
|
1077
1096
|
this.searchView = HotPotato;
|
|
1078
|
-
this.POSTGetItems(this.backend + Repository
|
|
1097
|
+
this.POSTGetItems(this.backend + Repository.POST_Adm_GetTopActivities, this.searchView, false);
|
|
1079
1098
|
}
|
|
1080
1099
|
else {
|
|
1081
1100
|
this.searchView = new TopActivitiesDataView();
|
|
@@ -1093,7 +1112,7 @@
|
|
|
1093
1112
|
this.searchView.searchinprogress = true;
|
|
1094
1113
|
if (resetPage)
|
|
1095
1114
|
this.searchView.page = 1;
|
|
1096
|
-
this.POSTGetItems(this.backend + Repository
|
|
1115
|
+
this.POSTGetItems(this.backend + Repository.POST_Adm_GetTopActivities, searchViewOverride !== null && searchViewOverride !== void 0 ? searchViewOverride : this.searchView, update);
|
|
1097
1116
|
};
|
|
1098
1117
|
AdmTopActivitiesComponent.prototype.POSTGetItems = function (url, data, update) {
|
|
1099
1118
|
var _this = this;
|
|
@@ -1118,7 +1137,30 @@
|
|
|
1118
1137
|
}); });
|
|
1119
1138
|
};
|
|
1120
1139
|
AdmTopActivitiesComponent.prototype.getDirectorInfos = function () {
|
|
1121
|
-
return this.http.get(this.backend + Repository
|
|
1140
|
+
return this.http.get(this.backend + Repository.GET_Adm_GetInfos).pipe(operators.map(function (res) { return res; })).toPromise();
|
|
1141
|
+
};
|
|
1142
|
+
AdmTopActivitiesComponent.prototype.loadNodeDetails = function (nodeId) {
|
|
1143
|
+
var _this = this;
|
|
1144
|
+
this.NodeDetails = null;
|
|
1145
|
+
var pars = new http.HttpParams().set('nodeId', nodeId);
|
|
1146
|
+
this.http.get(this.backend + Repository.GET_Adm_GetNodeStats, pars).subscribe(function (t) {
|
|
1147
|
+
_this.NodeDetails = t;
|
|
1148
|
+
_this.reviewNodeDetailsBindings();
|
|
1149
|
+
});
|
|
1150
|
+
};
|
|
1151
|
+
AdmTopActivitiesComponent.prototype.reviewNodeDetailsBindings = function () {
|
|
1152
|
+
var serie = new esCharts.LineSerie(this.lc.loc("Active Sessions"), this.NodeDetails.activesessions);
|
|
1153
|
+
this.NodeDetails.sessionchart = new esCharts.LineChartData([serie]);
|
|
1154
|
+
this.NodeDetails.loadchart = new esCharts.PieChartData([
|
|
1155
|
+
new esCharts.KeyValueColor("CPU", this.NodeDetails.cpuperc),
|
|
1156
|
+
new esCharts.KeyValueColor("Wait", this.NodeDetails.waitperc),
|
|
1157
|
+
new esCharts.KeyValueColor("DB", this.NodeDetails.dbperc),
|
|
1158
|
+
new esCharts.KeyValueColor("Script", this.NodeDetails.scriptperc),
|
|
1159
|
+
new esCharts.KeyValueColor("Throttle", this.NodeDetails.throttleperc),
|
|
1160
|
+
new esCharts.KeyValueColor("Sleep", this.NodeDetails.sleepperc),
|
|
1161
|
+
new esCharts.KeyValueColor("Networking", this.NodeDetails.networkperc),
|
|
1162
|
+
new esCharts.KeyValueColor("IO", this.NodeDetails.ioperc)
|
|
1163
|
+
]);
|
|
1122
1164
|
};
|
|
1123
1165
|
AdmTopActivitiesComponent.prototype.reviewBindings = function (update, searchViewOverride, dirInfos) {
|
|
1124
1166
|
var _this = this;
|
|
@@ -1198,7 +1240,7 @@
|
|
|
1198
1240
|
providers: [
|
|
1199
1241
|
{ provide: localizations.LocalizationService, useClass: AdmTopActivitieLoc }
|
|
1200
1242
|
],
|
|
1201
|
-
template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">\r\n {{'Top Activities' | localize : lc}}\r\n <span *ngIf=\"DirInfos\"> - {{'' + DirInfos.cpus + ' ' + ('CPUs' | localize : lc) + (DirInfos.rssplan ? ' - ' + DirInfos.rssplan : '')}}</span> \r\n </span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 app-relative\">\r\n <form role=\"form\">\r\n <div class=\"row app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterfrom\" name=\"filterfrom\" [Placeholder]=\"'From' | localize : lc\"></form-datetime>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterto\" name=\"filterto\" [Placeholder]=\"'To' | localize : lc\"></form-datetime>\r\n </div>\r\n <button [disabled]=\"searchView.searchinprogress || autoUpdate\" class=\"input-group-addon btn app-btn-search app-margin-top-20\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n\r\n <div class=\"app-absolute app-right-25 app-top-40\">\r\n <div class=\"pull-right\">\r\n {{'Update every' | localize : lc}} <input [readonly]=\"autoUpdate\" maxlength=\"3\" class=\"form-control app-updevery-input\" type=\"text\" [(ngModel)]=\"seconds\" name=\"secs\" /> {{'second/s' | localize : lc}}\r\n </div>\r\n <div class=\"pull-right m-t-2 app-margin-right-5\">\r\n <label class=\"switch\">\r\n <input type=\"checkbox\" [(ngModel)]=\"autoUpdate\" (ngModelChange)=\"autoUpdateChanged();\" />\r\n <div class=\"slider round\"></div>\r\n </label>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 app-margin-top-5\">\r\n <p *ngIf=\"!searchView\"><em>{{'Loading Data' | localize : lc}}</em></p>\r\n <div *ngIf=\"searchView\" class=\"row\">\r\n <div class=\"col-md-12 app-no-padding\">\r\n <!--<h5 class=\"app-margin-top-5\">{{'Active Sessions' | localize : lc}}</h5>-->\r\n <div style=\"width: 100%; height: 290px\">\r\n <es-line-chart *ngIf=\"TopActiveSessions\"\r\n [MinGridDistance]=\"65\"\r\n [Timeline]=\"false\"\r\n [FinalInstants]=\"false\"\r\n [LegendPadding]=\"{top: 0, bottom: 7, right: 0, left: 10}\"\r\n [Fill]=\"true\"\r\n [MergeDatasets]=\"true\"\r\n [Data]=\"TopActiveSessions\"\r\n [Legend]=\"true\" \r\n name=\"topactsession\"\r\n [DataGroupingThreshold]=\"99999999\"\r\n (onSelectionChanged)=\"dataSelectionChanged($event)\" (chartLoaded)=\"onChartLoaded($event)\"></es-line-chart>\r\n </div>\r\n </div>\r\n <div class=\"col-md-5\">\r\n <h5>{{'Top Nodes' | localize : lc}}</h5>\r\n <es-table [(ngModel)]=\"TopNodes\" [HidePaging]=\"true\">\r\n <ng-template #header>\r\n <th class=\"app-col-min\">{{'Node' | localize : lc}}</th>\r\n <th>{{'Node Description' | localize : lc}}</th>\r\n <th class=\"app-col-min\">{{'Activity' | localize : lc}}</th>\r\n <th class=\"app-col-min app-nowrap\">{{'Node Type' | localize : lc}}</th>\r\n </ng-template>\r\n <ng-template #body let-node>\r\n <td class=\"app-col-min\"><strong>{{node.profnodeid}}</strong></td>\r\n <td><span title=\"{{node.profnodedesc}}\">{{node.profnodedesc.length > 40 ? node.profnodedesc.substr(0,40) + \"...\" : node.profnodedesc}}</span></td>\r\n <td class=\"app-nowrap\">{{node.activity | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{node.nodetypename}}</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n <div class=\"col-md-7\">\r\n <h5>{{'Top Sessions' | localize : lc}}</h5>\r\n <es-table [(ngModel)]=\"TopSessions\" [HidePaging]=\"true\">\r\n <ng-template #header>\r\n <th class=\"app-col-min\">ID</th>\r\n <th>{{'User' | localize : lc}}</th>\r\n <th>{{'Tenant' | localize : lc}}</th>\r\n <th>{{'Process' | localize : lc}}</th>\r\n <th>{{'Activity' | localize : lc}}</th>\r\n <th>Cpu</th>\r\n <th>Wait</th>\r\n <th>DB</th>\r\n <th>Script</th>\r\n <th>Throttle</th>\r\n <th>Sleep</th>\r\n <th>Networking</th>\r\n <th>IO</th>\r\n </ng-template>\r\n\r\n <ng-template #body let-session>\r\n <td><strong>{{session.sid}}</strong></td>\r\n <td>{{session.user}}</td>\r\n <td>{{session.tenant}}</td>\r\n <td>{{session.bgprocess}}</td>\r\n <td>{{session.activity | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.cpu | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.wait | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.db | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.script | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.throttle | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.sleep | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.net | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.io | number : '1.1-2' : 'it'}} %</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>"
|
|
1243
|
+
template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">\r\n {{'Top Activities' | localize : lc}}\r\n <span *ngIf=\"DirInfos\"> - {{'' + DirInfos.cpus + ' ' + ('CPUs' | localize : lc) + (DirInfos.rssplan ? ' - ' + DirInfos.rssplan : '')}}</span> \r\n </span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 app-relative\">\r\n <form role=\"form\">\r\n <div class=\"row app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterfrom\" name=\"filterfrom\" [Placeholder]=\"'From' | localize : lc\"></form-datetime>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterto\" name=\"filterto\" [Placeholder]=\"'To' | localize : lc\"></form-datetime>\r\n </div>\r\n <button [disabled]=\"searchView.searchinprogress || autoUpdate\" class=\"input-group-addon btn app-btn-search app-margin-top-20\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n\r\n <div class=\"app-absolute app-right-25 app-top-40\">\r\n <div class=\"pull-right\">\r\n {{'Update every' | localize : lc}} <input [readonly]=\"autoUpdate\" maxlength=\"3\" class=\"form-control app-updevery-input\" type=\"text\" [(ngModel)]=\"seconds\" name=\"secs\" /> {{'second/s' | localize : lc}}\r\n </div>\r\n <div class=\"pull-right m-t-2 app-margin-right-5\">\r\n <label class=\"switch\">\r\n <input type=\"checkbox\" [(ngModel)]=\"autoUpdate\" (ngModelChange)=\"autoUpdateChanged();\" />\r\n <div class=\"slider round\"></div>\r\n </label>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 app-margin-top-5\">\r\n <p *ngIf=\"!searchView\"><em>{{'Loading Data' | localize : lc}}</em></p>\r\n <div *ngIf=\"searchView\" class=\"row\">\r\n <div class=\"col-md-12 app-no-padding\">\r\n <div style=\"width: 100%; height: 290px\">\r\n <es-line-chart *ngIf=\"TopActiveSessions\"\r\n [MinGridDistance]=\"65\"\r\n [Timeline]=\"false\"\r\n [FinalInstants]=\"false\"\r\n [LegendPadding]=\"{top: 0, bottom: 7, right: 0, left: 10}\"\r\n [Fill]=\"true\"\r\n [MergeDatasets]=\"true\"\r\n [Data]=\"TopActiveSessions\"\r\n [Legend]=\"true\" \r\n name=\"topactsession\"\r\n [DataGroupingThreshold]=\"99999999\"\r\n (onSelectionChanged)=\"dataSelectionChanged($event)\" (chartLoaded)=\"onChartLoaded($event)\"></es-line-chart>\r\n </div>\r\n </div>\r\n <div class=\"col-md-5\">\r\n <h5>{{'Top Nodes' | localize : lc}}</h5>\r\n <es-table [(ngModel)]=\"TopNodes\" [HidePaging]=\"true\">\r\n <ng-template #header>\r\n <th class=\"app-col-min\">{{'Node' | localize : lc}}</th>\r\n <th>{{'Node Description' | localize : lc}}</th>\r\n <th class=\"app-col-min\">{{'Activity' | localize : lc}}</th>\r\n <th class=\"app-col-min app-nowrap\">{{'Node Type' | localize : lc}}</th>\r\n <th class=\"app-col-min app-nowrap\">{{'Wait Class Name' | localize : lc}}</th>\r\n </ng-template>\r\n <ng-template #body let-node>\r\n <td class=\"app-col-min\"><span class=\"app-lilnk\" (click)=\"loadNodeDetails(node.profnodeid); dlgNodeDetails.show();\">{{node.profnodeid}}</span></td>\r\n <td><span title=\"{{node.profnodedesc}}\">{{node.profnodedesc.length > 40 ? node.profnodedesc.substr(0,40) + \"...\" : node.profnodedesc}}</span></td>\r\n <td class=\"app-nowrap\">{{node.activity | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{node.nodetypename}}</td>\r\n <td>{{node.waitclassname}}</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n <div class=\"col-md-7\">\r\n <h5>{{'Top Sessions' | localize : lc}}</h5>\r\n <es-table [(ngModel)]=\"TopSessions\" [HidePaging]=\"true\">\r\n <ng-template #header>\r\n <th class=\"app-col-min\">ID</th>\r\n <th>{{'User' | localize : lc}}</th>\r\n <th>{{'Tenant' | localize : lc}}</th>\r\n <th>{{'Process' | localize : lc}}</th>\r\n <th>{{'Activity' | localize : lc}}</th>\r\n <th>Cpu</th>\r\n <th>Wait</th>\r\n <th>DB</th>\r\n <th>Script</th>\r\n <th>Throttle</th>\r\n <th>Sleep</th>\r\n <th>Networking</th>\r\n <th>IO</th>\r\n </ng-template>\r\n\r\n <ng-template #body let-session>\r\n <td><strong>{{session.sid}}</strong></td>\r\n <td>{{session.user}}</td>\r\n <td>{{session.tenant}}</td>\r\n <td>{{session.bgprocess}}</td>\r\n <td>{{session.activity | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.cpu | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.wait | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.db | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.script | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.throttle | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.sleep | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.net | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.io | number : '1.1-2' : 'it'}} %</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div bsModal #dlgNodeDetails=\"bs-modal\" class=\"modal fade\" role=\"dialog\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog modal-lg\" cdkDrag>\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\" cdkDragHandle>\r\n <h4 class=\"modal-title pull-left\">\r\n {{'Activity Node Details' | localize : lc}}\r\n <span *ngIf=\"NodeDetails\"> {{NodeDetails.nodeid}} - {{NodeDetails.nodedescription}}</span>\r\n </h4>\r\n <button type=\"button\" class=\"close pull-right\" (click)=\"dlgNodeDetails.hide()\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body\" *ngIf=\"NodeDetails\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <strong>{{'Event Type' | localize: lc}}</strong>: {{NodeDetails.eventtypedesc}}\r\n </div>\r\n <div class=\"col-md-6\">\r\n <strong>{{'Elapsed (With Children)' | localize: lc}}</strong>: {{NodeDetails.elapsed}}\r\n </div>\r\n <div class=\"col-md-6\">\r\n <strong>{{'Wait Class' | localize: lc}}</strong>: {{NodeDetails.waitclassname}}\r\n </div>\r\n <div class=\"col-md-6\">\r\n <strong>{{'Elapsed (No Children)' | localize: lc}}</strong>: {{NodeDetails.elapsedlesschildren}}\r\n </div>\r\n </div>\r\n <div style=\"height: 200px;\">\r\n <es-line-chart *ngIf=\"NodeDetails.sessionchart\"\r\n [MinGridDistance]=\"65\"\r\n [Timeline]=\"false\"\r\n [FinalInstants]=\"false\"\r\n [LegendPadding]=\"{top: 0, bottom: 7, right: 0, left: 10}\"\r\n [Fill]=\"true\"\r\n [MergeDatasets]=\"true\"\r\n [Data]=\"NodeDetails.sessionchart\"\r\n [Legend]=\"true\" \r\n name=\"nodeDetailSessionChart\"\r\n [DataGroupingThreshold]=\"99999999\"></es-line-chart>\r\n </div>\r\n <div style=\"height: 200px;\">\r\n <es-pie-chart *ngIf=\"NodeDetails.loadchart\" [Data]=\"NodeDetails.loadchart\" name=\"nodeDetailLoadChart\"></es-pie-chart>\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"dlgNodeDetails.hide()\">{{'Close' | localize : lc}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>"
|
|
1202
1244
|
},] }
|
|
1203
1245
|
];
|
|
1204
1246
|
AdmTopActivitiesComponent.ctorParameters = function () { return [
|