├── .tgitconfig
├── .gitignore
├── img
├── widgets.png
├── widgets2.png
├── widgets3.jpg
├── mail_test.png
├── configurator1.png
└── configurator2.png
├── DeepSee System Monitor Dashboards.docx
├── csp-data
└── csp
│ ├── lib
│ ├── fonts
│ │ ├── glyphicons-halflings-regular.eot
│ │ ├── glyphicons-halflings-regular.ttf
│ │ ├── glyphicons-halflings-regular.woff
│ │ └── glyphicons-halflings-regular.woff2
│ ├── css
│ │ ├── style.css
│ │ └── angular-notify.min.css
│ └── js
│ │ └── angular-notify.min.js
│ ├── src
│ ├── views
│ │ ├── menu.html
│ │ └── config.html
│ ├── app.js
│ └── controllers
│ │ └── menu.js
│ └── index.html
├── package.json
├── cls
└── kutac
│ ├── monitor
│ ├── history
│ │ ├── SysDataDB.cls
│ │ ├── SysData.cls
│ │ ├── PerfDataWD.cls
│ │ └── PerfData.cls
│ ├── current
│ │ ├── SysDataDB.cls
│ │ ├── PerfData.cls
│ │ └── SysData.cls
│ ├── cubes
│ │ ├── CurrentSysDataDB.cls
│ │ ├── HistorySysDataDB.cls
│ │ └── HistoryPerfDataWD.cls
│ ├── utils
│ │ └── CashLocale.cls
│ ├── task
│ │ └── Builder.cls
│ └── kpi
│ │ └── Actions.cls
│ └── REST
│ └── ConfigBroker.cls
├── License.md
├── dfi
├── mobile-Current_System_Parameters.dashboard.dfi
├── mobile-Current_System_Parameters_2.dashboard.dfi
├── mobile-SysParamsPerf.dashboard.dfi
├── mobile-LicenseHistory.dashboard.dfi
├── mobile-JrnSizeHistoryTC.dashboard.dfi
├── dash-sys-current-Databases.dashboard.dfi
├── mobile-DBSizes.dashboard.dfi
├── mobile-ObjPerf.dashboard.dfi
├── mobile-WijPerf.dashboard.dfi
├── mobile-RoutinesPerf.dashboard.dfi
├── dash-sys-history-Database_Files.dashboard.dfi
├── mobile-Current_Performance_Indicators_2.dashboard.dfi
├── mobile-Current_Performance_Indicators.dashboard.dfi
├── dash-sys-history-System_Dashboard_3.dashboard.dfi
├── dash-sys-history-System_Dashboard_2.dashboard.dfi
├── dash-actions-State_Info.dashboard.dfi
├── dash-perf-history-ECP.dashboard.dfi
├── pivots-monitor-current-perf-KPI_Transform_WIJ.pivot.dfi
├── mobile-CPUUtilization.dashboard.dfi
├── dash-sys-history-WD_Cycle_Timers.dashboard.dfi
├── dash-perf-history-Seizes.dashboard.dfi
├── dash-sys-history-CPU_Utilization.dashboard.dfi
├── dash-perf-history-History_WIJ.dashboard.dfi
├── dash-perf-history-Performance_History_Objects.dashboard.dfi
├── mobile-GloPerf.dashboard.dfi
├── dash-sys-history-WD_Cycle_Buffers.dashboard.dfi
├── pivots-monitor-history-fortc-JrnSizeTC.pivot.dfi
├── pivots-monitor-history-fortc-GloRefMinutes.pivot.dfi
├── pivots-monitor-current-DatabaseSizes.pivot.dfi
├── pivots-monitor-history-fortc-LicenseMinutes.pivot.dfi
├── pivots-monitor-history-fortc-PerfDataWIJMinutes.pivot.dfi
├── pivots-monitor-current-perf-KPI_Transform_Rtn.pivot.dfi
├── pivots-monitor-current-sys-KPI_Transform_Lic.pivot.dfi
├── pivots-monitor-current-sys-DatabaseSize.pivot.dfi
├── pivots-monitor-history-SysJournalDay.pivot.dfi
├── pivots-monitor-history-fortc-RtnPerfMinutes.pivot.dfi
├── dash-perf-history-Performance_History_Routines.dashboard.dfi
├── pivots-monitor-history-fortc-GloReadWriteMinutes.pivot.dfi
├── pivots-monitor-current-sys-KPI_Transform_CPU.pivot.dfi
├── pivots-monitor-current-perf-KPI_Transform_Globals.pivot.dfi
├── dash-sys-history-System_Dashboard_1.dashboard.dfi
├── dash-perf-history-Dash1.dashboard.dfi
├── pivots-monitor-history-fortc-CPUUtilization.pivot.dfi
├── pivots-monitor-history-fortc-CPUUtilization_Hours.pivot.dfi
├── pivots-monitor-history-SysECP.pivot.dfi
├── pivots-monitor-history-SysJournal.pivot.dfi
├── pivots-monitor-current-perf-KPI_Transform_Obj.pivot.dfi
├── pivots-monitor-history-DatabaseFilesHistory.pivot.dfi
└── pivots-monitor-history-fortc-ObjPerfMinutes.pivot.dfi
├── sc-list.txt
└── README.md
/.tgitconfig:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | build/
2 | node_modules/
3 | package-lock.json
4 | .idea/
--------------------------------------------------------------------------------
/img/widgets.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/intersystems-community/deepsee-sysmon-dashboards/master/img/widgets.png
--------------------------------------------------------------------------------
/img/widgets2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/intersystems-community/deepsee-sysmon-dashboards/master/img/widgets2.png
--------------------------------------------------------------------------------
/img/widgets3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/intersystems-community/deepsee-sysmon-dashboards/master/img/widgets3.jpg
--------------------------------------------------------------------------------
/img/mail_test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/intersystems-community/deepsee-sysmon-dashboards/master/img/mail_test.png
--------------------------------------------------------------------------------
/img/configurator1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/intersystems-community/deepsee-sysmon-dashboards/master/img/configurator1.png
--------------------------------------------------------------------------------
/img/configurator2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/intersystems-community/deepsee-sysmon-dashboards/master/img/configurator2.png
--------------------------------------------------------------------------------
/DeepSee System Monitor Dashboards.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/intersystems-community/deepsee-sysmon-dashboards/master/DeepSee System Monitor Dashboards.docx
--------------------------------------------------------------------------------
/csp-data/csp/lib/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/intersystems-community/deepsee-sysmon-dashboards/master/csp-data/csp/lib/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/csp-data/csp/lib/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/intersystems-community/deepsee-sysmon-dashboards/master/csp-data/csp/lib/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/csp-data/csp/lib/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/intersystems-community/deepsee-sysmon-dashboards/master/csp-data/csp/lib/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/csp-data/csp/lib/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/intersystems-community/deepsee-sysmon-dashboards/master/csp-data/csp/lib/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/csp-data/csp/lib/css/style.css:
--------------------------------------------------------------------------------
1 | .btn.btn-inline { margin: 0 1px; }
2 |
3 | .recipient {
4 | border: #ccc 1px solid;
5 | border-radius: 2px;
6 | margin: 2px 0;
7 | padding-top: 5px;
8 | padding-bottom: 5px;
9 | }
10 |
11 | .animate-show-hide.ng-hide {
12 | opacity: 0;
13 | }
14 |
15 | .animate-show-hide.ng-hide-add,
16 | .animate-show-hide.ng-hide-remove {
17 | transition: all linear 0.5s;
18 | }
19 |
20 | .check-element {
21 | opacity: 1;
22 | }
--------------------------------------------------------------------------------
/csp-data/csp/src/views/menu.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "DeepSee_System_Monitor_Dashboards",
3 | "author": "Makarov S.D",
4 | "version": "2.0.1",
5 | "devDependencies": {
6 | "del": "^3.0.0",
7 | "gulp": "github:gulpjs/gulp#4.0",
8 | "gulp-angular-templatecache": "^2.0.0",
9 | "gulp-autoprefixer": "^4.0.0",
10 | "gulp-concat": "^2.6.1",
11 | "gulp-cssmin": "^0.2.0",
12 | "gulp-debug": "^3.1.0",
13 | "gulp-if": "^2.0.2",
14 | "gulp-ignore": "^2.0.2",
15 | "gulp-jshint": "^2.0.4",
16 | "gulp-minify-html-2": "^1.0.0",
17 | "gulp-replace": "^0.6.1",
18 | "gulp-traceur-compiler": "^1.1.4",
19 | "gulp-uglify": "^3.0.0",
20 | "gulp-useref": "^3.1.2",
21 | "jshint": "^2.9.5",
22 | "through2": "^2.0.3"
23 | },
24 | "license": "MIT"
25 | }
26 |
--------------------------------------------------------------------------------
/cls/kutac/monitor/history/SysDataDB.cls:
--------------------------------------------------------------------------------
1 | Class kutac.monitor.history.SysDataDB Extends %DeepSee.DataConnector
2 | {
3 |
4 | Parameter SUPPORTSIDLIST = 1;
5 |
6 | XData SourceQuery [ XMLNamespace = "http://www.intersystems.com/deepsee/connector/query" ]
7 | {
8 | SELECT db.*,d.datetime FROM SYS_History.SysData_DB db,SYS_History.SysData d WHERE db.SysData = d.id order by datetime desc
9 | }
10 |
11 | XData Output [ XMLNamespace = "http://www.intersystems.com/deepsee/connector/output" ]
12 | {
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | }
21 |
22 | }
23 |
24 |
--------------------------------------------------------------------------------
/cls/kutac/monitor/current/SysDataDB.cls:
--------------------------------------------------------------------------------
1 | Class kutac.monitor.current.SysDataDB Extends %DeepSee.DataConnector
2 | {
3 |
4 | Parameter SUPPORTSIDLIST = 1;
5 |
6 | XData SourceQuery [ XMLNamespace = "http://www.intersystems.com/deepsee/connector/query" ]
7 | {
8 | SELECT d.datetime,db.* FROM SYS_History.SysData_DB db,SYS_History.SysData d
9 | WHERE db.SysData = d.id and (d.datetime = (select top 1 datetime from SYS_History.SysData order by datetime desc ))
10 | }
11 |
12 | XData Output [ XMLNamespace = "http://www.intersystems.com/deepsee/connector/output" ]
13 | {
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | }
22 |
23 | }
24 |
25 |
--------------------------------------------------------------------------------
/License.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 InterSystems Corp.
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/csp-data/csp/lib/css/angular-notify.min.css:
--------------------------------------------------------------------------------
1 | .cg-notify-message{position:fixed;top:0;z-index:9999;max-width:400px;text-align:center;background-color:#d9edf7;color:#31708f;padding:15px;border:1px solid #bce8f1;border-radius:4px;-webkit-transition:top .5s ease-out,opacity .2s ease-out;-moz-transition:top .5s ease-out,opacity .2s ease-out;-o-transition:top .5s ease-out,opacity .2s ease-out;transition:top .5s ease-out,opacity .2s ease-out;visibility:hidden;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.cg-notify-message-center{left:50%}.cg-notify-message-left{left:15px}.cg-notify-message-right{right:15px}.cg-notify-message a{font-weight:700;color:inherit}.cg-notify-message a:hover{color:inherit}.cg-notify-close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0;font-size:21px;font-weight:700;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2;position:absolute;top:0;right:3px;line-height:15px}.cg-notify-close:focus,.cg-notify-close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}.cg-notify-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
--------------------------------------------------------------------------------
/csp-data/csp/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
7 |
8 | SYSMONConfigurator UI
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/csp-data/csp/src/app.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by Admin on 05.07.2017.
3 | */
4 | (function(){
5 | 'use strict';
6 | angular.module('templates',[]);
7 |
8 | angular.module('app',['ngRoute' ,'cgNotify' , 'ngAnimate', 'templates'])
9 | .config(['$routeProvider', function ($routeProvider) {
10 | $routeProvider
11 | .when('/',{
12 | templateUrl: 'src/views/config.html',
13 | controller: 'config'
14 | })
15 | .when('/email',{
16 | templateUrl: 'src/views/email.html',
17 | controller: 'email'
18 | })
19 | .otherwise({ redirectTo: '/' });
20 | }])
21 | .constant('CONST',{
22 | title: 'SYSMONConfigurator UI',
23 | version: '{{package.json.version}}',
24 | protocol: location.protocol,
25 | host: location.host, /*"localhost:57772",*/
26 | appname: 'sysmon'
27 | })
28 | .run(['notify', function (notify) {
29 | notify.config({
30 | duration: 5000,
31 | position: 'right',
32 | maximumOpen: 5,
33 | verticalSpacing: 20,
34 | startTop: 20
35 | });
36 | }]);
37 | })();
--------------------------------------------------------------------------------
/cls/kutac/monitor/cubes/CurrentSysDataDB.cls:
--------------------------------------------------------------------------------
1 | ///
2 | Class kutac.monitor.cubes.CurrentSysDataDB Extends %DeepSee.CubeDefinition [ DependsOn = kutac.monitor.current.SysDataDB, ProcedureBlock ]
3 | {
4 |
5 | Parameter DOMAIN = "SYSMON";
6 |
7 | /// Cube definition from Architect.
8 | XData Cube [ XMLNamespace = "http://www.intersystems.com/deepsee" ]
9 | {
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | }
21 |
22 | }
23 |
24 |
--------------------------------------------------------------------------------
/csp-data/csp/src/controllers/menu.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by Admin on 05.07.2017.
3 | */
4 | (function(){
5 | 'use strict';
6 |
7 | function MenuCtrl($scope, CONST, $location) {
8 | $scope.model = {
9 | title: CONST.title,
10 | version: CONST.version,
11 | inPage: {
12 | _class: true,
13 | _email: false
14 | }
15 | };
16 |
17 | $scope.onClassClick = onClassClick;
18 | $scope.onEmailClick = onEmailClick;
19 |
20 | checkPage();
21 |
22 | function onEmailClick() {
23 | $location.path('/email');
24 | checkPage();
25 | }
26 |
27 | function onClassClick() {
28 | $location.path('/');
29 | checkPage();
30 | }
31 |
32 | function checkPage() {
33 | for (var key in $scope.model.inPage) {
34 | $scope.model.inPage[key] = false;
35 | }
36 |
37 | var path = $location.path();
38 | switch (path) {
39 | case '/': $scope.model.inPage['_class'] = true; break;
40 | case '/email': $scope.model.inPage['_email'] = true; break;
41 | }
42 | }
43 | }
44 |
45 | angular.module('app').controller('menu',['$scope', 'CONST', '$location', MenuCtrl]);
46 |
47 | })();
--------------------------------------------------------------------------------
/csp-data/csp/src/views/config.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
Sysmon Application Classes configuration:
7 |
8 |
14 |
15 |
16 |
17 |
Control System Monitor:
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/dfi/mobile-Current_System_Parameters.dashboard.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | false
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/dfi/mobile-Current_System_Parameters_2.dashboard.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | false
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/dfi/mobile-SysParamsPerf.dashboard.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/dfi/mobile-LicenseHistory.dashboard.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/dfi/mobile-JrnSizeHistoryTC.dashboard.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/cls/kutac/monitor/utils/CashLocale.cls:
--------------------------------------------------------------------------------
1 | Class kutac.monitor.utils.CashLocale Extends %RegisteredObject
2 | {
3 |
4 | Parameter DOMAIN = "SYSMON";
5 |
6 | ClassMethod DefineL18N()
7 | {
8 | set x = $$$Text("Database Sizes")
9 | set x = $$$Text("Database Free Space")
10 | set x = $$$Text("CPU Utilization")
11 | set x = $$$Text("Hours")
12 | set x = $$$Text("Minutes")
13 | set x = $$$Text("Globals Performance")
14 | set x = $$$Text("Global Read\Write Performance")
15 | set x = $$$Text("Gloref Performance")
16 | set x = $$$Text("Journal size history")
17 | set x = $$$Text("Journal Size")
18 | set x = $$$Text("License History")
19 | set x = $$$Text("Object Performance")
20 | set x = $$$Text("Routines Performance History")
21 | set x = $$$Text("Routines Performance")
22 | set x = $$$Text("Various System Parameters Performance")
23 | set x = $$$Text("WIJ Performance")
24 | set x = $$$Text("State Info & actions")
25 | set x = $$$Text("Performance - Globals")
26 | set x = $$$Text("Global References (AVG)")
27 | set x = $$$Text("Global Physical Loads and Reads (AVG)")
28 | set x = $$$Text("Performance - Objects")
29 | set x = $$$Text("Objects Performance (AVG)")
30 | set x = $$$Text("Performance - Routines")
31 | set x = $$$Text("Routine References (AVG)")
32 | set x = $$$Text("Routine Loads (AVG)")
33 | set x = $$$Text("Seizes")
34 | set x = $$$Text("Seize Counters")
35 | set x = $$$Text("WIJ Performance (AVG)")
36 | set x = $$$Text("Databases Status")
37 | set x = $$$Text("Database size (in MB)")
38 | set x = $$$Text("Database Files")
39 | set x = $$$Text("DB File Size (in MB) in Time")
40 | set x = $$$Text("Journal Size - Daily figures")
41 | set x = $$$Text("Various System Metrics")
42 | set x = $$$Text("Licenses Used")
43 | set x = $$$Text("ECP")
44 | }
45 |
46 | ClassMethod SetLocale() [ CodeMode = objectgenerator ]
47 | {
48 | do ##class(%MessageDictionary).SetSessionLanguage("en")
49 | }
50 |
51 | }
52 |
53 |
--------------------------------------------------------------------------------
/cls/kutac/monitor/task/Builder.cls:
--------------------------------------------------------------------------------
1 | Class kutac.monitor.task.Builder Extends %SYS.Task.Definition
2 | {
3 |
4 | /// This method is responsible for executing the task.
5 | /// At the scheduled time, the Task Manager creates an instance of this object,
6 | /// sets any property values using the stored "settings" for the task, and then
7 | /// invokes this method to execute the task.
8 | /// In order to execute a real task, override this method in a subclass.
9 | Method OnTask() As %Status
10 | {
11 | s tSC=$$$OK
12 | try {
13 | set cubes("CurrentSysDataDB")=""
14 | set cubes("HistoryPerfData")=""
15 | set cubes("HistoryPerfDataWD")=""
16 | set cubes("HistorySysData")=""
17 | set cubes("HistorySysDataDB")=""
18 | s cube=""
19 | for {
20 | s cube=$o(cubes(cube)) q:cube=""
21 | $$$THROWONERROR(tSC,##class(%DeepSee.Utils).%BuildCube(cube,,0))
22 | s ^kutac("SYSMON","LastCubeBuild")=$lb(tSC,$h)
23 | }
24 | } catch (e) {
25 | set tSC=$$$ADDSC(tSC,e.AsStatus())
26 | s ^kutac("SYSMON","LastCubeBuild")=$lb(e.DisplayString(),$h)
27 | }
28 | Quit tSC
29 | }
30 |
31 | /// d ##class(kutac.monitor.task.Builder).Setup()
32 | ClassMethod Setup()
33 | {
34 | try {
35 | set tTask=##class(%SYS.Task).%New()
36 | set tTask.Name="Rebuild SYSMON Cubes"
37 | set tTask.DailyFrequency=1
38 | set tTask.DailyFrequencyTime=0
39 | set tTask.DailyIncrement=35 // run every 15 minutes
40 | set tTask.DailyStartTime=28800 // 8AM
41 | set tTask.DailyEndTime=64800 // 6PM
42 | if ($p($h,",",2) >= 64800)
43 | set tTask.StartDate=+$h+1
44 | else
45 | set tTask.StartDate=+$h
46 | set tTask.Description="Rebuild System Monitor Cubes"
47 | set tTask.NameSpace=$namespace
48 | set tTask.TaskClass="kutac.monitor.task.Builder"
49 | $$$THROWONERROR(tSC,tTask.%Save())
50 | do ##class(%SYS.Task).Resume(tTask.%Id())
51 | do ##class(%SYS.Task).RunNow(tTask.%Id())
52 | } catch (ex) {
53 | w !,ex.DisplayString()
54 | }
55 | quit
56 | }
57 |
58 | }
59 |
60 |
--------------------------------------------------------------------------------
/cls/kutac/monitor/history/SysData.cls:
--------------------------------------------------------------------------------
1 | Class kutac.monitor.history.SysData Extends %DeepSee.DataConnector
2 | {
3 |
4 | Parameter SUPPORTSIDLIST = 1;
5 |
6 | XData SourceQuery [ XMLNamespace = "http://www.intersystems.com/deepsee/connector/query" ]
7 | {
8 | SELECT * FROM SYS_History.SysData
9 | }
10 |
11 | XData Output [ XMLNamespace = "http://www.intersystems.com/deepsee/connector/output" ]
12 | {
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | }
30 |
31 | }
32 |
33 |
--------------------------------------------------------------------------------
/cls/kutac/monitor/current/PerfData.cls:
--------------------------------------------------------------------------------
1 | /// kutac.monitor.current.PerfData
2 | Class kutac.monitor.current.PerfData Extends %DeepSee.KPI
3 | {
4 |
5 | Parameter DOMAIN = "SYSMON";
6 |
7 | Parameter RESOURCE;
8 |
9 | /// This XData definition defines the KPI.
10 | XData KPI [ XMLNamespace = "http://www.intersystems.com/deepsee/kpi" ]
11 | {
12 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 | }
31 |
32 | /// Notification that this KPI is being executed.
33 | /// This is a good place to override properties, such as range and threshold.
34 | Method %OnLoadKPI() As %Status
35 | {
36 | Quit $$$OK
37 | }
38 |
39 | /// Return an SQL statement to execute.
40 | Method %OnGetSQL(ByRef pSQL As %String) As %Status
41 | {
42 | set pSQL = "SELECT top 1 ID, DateTime, Perf_GloRef, Perf_PhysReads, Perf_PhysWrites, Perf_ObjHit, Perf_ObjDel, Perf_ObjMiss, Perf_ObjNew,"_
43 | " Perf_ObjLoad, Perf_RtnLoad, Perf_RtnCallLocal, Perf_WIJWrites FROM SYS_History.PerfData order by DateTime Desc"
44 | Quit $$$OK
45 | }
46 |
47 | /// This callback is invoked from a dashboard when an action defined by this dashboard is invoked.
48 | ClassMethod %OnDashboardAction(pAction As %String, pContext As %ZEN.proxyObject) As %Status
49 | {
50 | // pAction is the name of the action (as defined in the XML list).
51 | // pContext contains information from the client
52 | // and can be used to return information.
53 | Quit $$$OK
54 | }
55 |
56 | }
57 |
58 |
--------------------------------------------------------------------------------
/dfi/dash-sys-current-Databases.dashboard.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | false
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/dfi/mobile-DBSizes.dashboard.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/dfi/mobile-ObjPerf.dashboard.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | false
7 |
8 |
9 | false
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/dfi/mobile-WijPerf.dashboard.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | false
7 |
8 |
9 | false
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/dfi/mobile-RoutinesPerf.dashboard.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | false
7 |
8 |
9 | false
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/cls/kutac/monitor/current/SysData.cls:
--------------------------------------------------------------------------------
1 | Class kutac.monitor.current.SysData Extends %DeepSee.KPI
2 | {
3 |
4 | Parameter DOMAIN = "SYSMON";
5 |
6 | Parameter RESOURCE;
7 |
8 | /// This XData definition defines the KPI.
9 | XData KPI [ XMLNamespace = "http://www.intersystems.com/deepsee/kpi" ]
10 | {
11 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | }
24 |
25 | /// Notification that this KPI is being executed.
26 | /// This is a good place to override properties, such as range and threshold.
27 | Method %OnLoadKPI() As %Status
28 | {
29 | Quit $$$OK
30 | }
31 |
32 | /// Return an SQL statement to execute.
33 | Method %OnGetSQL(ByRef pSQL As %String) As %Status
34 | {
35 | set pSQL = "SELECT top 1 ID, DateTime, Sys_CPUIdle, Sys_CPUKernel, Sys_CPUUser, Sys_LicUsedDist "_
36 | "FROM SYS_History.SysData order by DateTime Desc"
37 | Quit $$$OK
38 | }
39 |
40 | /// This callback is invoked from a dashboard when an action defined by this dashboard is invoked.
41 | ClassMethod %OnDashboardAction(pAction As %String, pContext As %ZEN.proxyObject) As %Status
42 | {
43 | // pAction is the name of the action (as defined in the XML list).
44 | // pContext contains information from the client
45 | // and can be used to return information.
46 | Quit $$$OK
47 | }
48 |
49 | /// Get data for this KPI manually.
50 | /// This is implemented by subclasses that provide manual data.
51 | Method %OnExecute() As %Status
52 | {
53 | Set tSC = $$$OK
54 | Try {
55 | &sql(SELECT top 1 ID, DateTime, Sys_CPUIdle, Sys_CPUKernel, Sys_CPUUser, Sys_LicUsedDist
56 | INTO :ID, :DateTime, :SysCPUIdle, :SysCPUKernel, :SysCPUUser, :SysLicUsedDist
57 | FROM SYS_History.SysData
58 | ORDER BY DateTime DESC)
59 | set ..%data(1,"ID") = ID
60 | set ..%data(1,"DateTime") = DateTime
61 | set ..%data(1,"SysCPUIdle") = SysCPUIdle
62 | set ..%data(1,"SysCPUKernel") = SysCPUKernel
63 | set ..%data(1,"SysCPUUser") = SysCPUUser
64 | set ..%data(1,"SysLicUsedDist") = SysLicUsedDist
65 | set ..%data(1,"SysLicUsedLocal") = $system.License.GetUserLimit()
66 | }
67 | Catch(ex) {
68 | Set tSC = ex.AsStatus()
69 | }
70 | Quit tSC
71 | }
72 |
73 | }
74 |
75 |
--------------------------------------------------------------------------------
/cls/kutac/monitor/cubes/HistorySysDataDB.cls:
--------------------------------------------------------------------------------
1 | ///
2 | Class kutac.monitor.cubes.HistorySysDataDB Extends %DeepSee.CubeDefinition [ DependsOn = kutac.monitor.current.SysDataDB, ProcedureBlock ]
3 | {
4 |
5 | Parameter DOMAIN = "SYSMON";
6 |
7 | /// Cube definition from Architect.
8 | XData Cube [ XMLNamespace = "http://www.intersystems.com/deepsee" ]
9 | {
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 | }
37 |
38 | }
39 |
40 |
--------------------------------------------------------------------------------
/cls/kutac/monitor/history/PerfDataWD.cls:
--------------------------------------------------------------------------------
1 | Class kutac.monitor.history.PerfDataWD Extends %DeepSee.DataConnector
2 | {
3 |
4 | Parameter SUPPORTSIDLIST = 1;
5 |
6 | XData SourceQuery [ XMLNamespace = "http://www.intersystems.com/deepsee/connector/query" ]
7 | {
8 | SELECT wd.*,d.datetime FROM SYS_History.PerfData_WD wd, SYS_History.PerfData d WHERE wd.PerfData = d.id
9 | }
10 |
11 | XData Output [ XMLNamespace = "http://www.intersystems.com/deepsee/connector/output" ]
12 | {
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | }
30 |
31 | }
32 |
33 |
--------------------------------------------------------------------------------
/dfi/dash-sys-history-Database_Files.dashboard.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | false
7 |
8 | bottom
9 | {legendVisible:'false',markersVisible:true,xAxis:{majorGridLines:false,_type:'axis'},yAxisList:[{_type:'axis'},{labelPosition:'right',_type:'axis'}],seriesTypes:'area,line,line',_type:'comboChart'}
10 |
11 |
12 |
--------------------------------------------------------------------------------
/dfi/mobile-Current_Performance_Indicators_2.dashboard.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | false
7 |
8 |
9 |
10 |
11 | false
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/dfi/mobile-Current_Performance_Indicators.dashboard.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | false
7 |
8 |
9 |
10 |
11 | false
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/dfi/dash-sys-history-System_Dashboard_3.dashboard.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | false
7 |
8 |
9 | false
10 |
11 |
12 | false
13 |
14 | bottom
15 |
16 |
17 |
--------------------------------------------------------------------------------
/dfi/dash-sys-history-System_Dashboard_2.dashboard.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | false
7 |
8 |
9 | false
10 |
11 |
12 | false
13 |
14 | bottom
15 |
16 |
17 |
--------------------------------------------------------------------------------
/dfi/dash-actions-State_Info.dashboard.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | false
7 |
8 |
9 | false
10 |
11 | {width:1050,cardSize:'big',columns:[{display:'label',_type:'scoreCardColumn'},{dataValue:'Monitor',display:'value',label:'Monitor status',_type:'scoreCardColumn'},{dataValue:'HealthControl',label:'Health Control',_type:'scoreCardColumn'},{dataValue:'LastCubeBuildStatus',display:'lamp',label:'Last Cubes Build Status',rangeLower:'0',rangeUpper:'1',_type:'scoreCardColumn'},{dataValue:'LastCubeBuildTime',label:'Last Cubes Build Time',_type:'scoreCardColumn'}],selectedIndex:'0',_type:'scoreCard'}
12 |
13 |
14 |
--------------------------------------------------------------------------------
/dfi/dash-perf-history-ECP.dashboard.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | false
7 |
8 |
9 | false
10 |
11 |
12 | false
13 |
14 | bottom
15 | {legendVisible:'false',xAxis:{_type:'axis'},yAxisList:[{title:'Response Time (in msec.)',_type:'axis'}],_type:'lineChart'}
16 |
17 |
18 |
--------------------------------------------------------------------------------
/dfi/pivots-monitor-current-perf-KPI_Transform_WIJ.pivot.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/dfi/mobile-CPUUtilization.dashboard.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | false
7 |
8 |
9 | false
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/dfi/dash-sys-history-WD_Cycle_Timers.dashboard.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | false
7 |
8 |
9 | false
10 |
11 |
12 | false
13 |
14 | bottom
15 | {legendVisible:'false',textSize:'small',xAxis:{_type:'axis'},yAxisList:[{_type:'axis'}],_type:'lineChart'}
16 |
17 |
18 |
--------------------------------------------------------------------------------
/dfi/dash-perf-history-Seizes.dashboard.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | false
7 |
8 |
9 | false
10 |
11 |
12 | false
13 |
14 | bottom
15 | {legendVisible:'false',textSize:'small',xAxis:{_type:'axis'},yAxisList:[{title:'Count',_type:'axis'}],_type:'lineChart'}
16 |
17 |
18 |
--------------------------------------------------------------------------------
/dfi/dash-sys-history-CPU_Utilization.dashboard.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | false
7 |
8 |
9 | false
10 |
11 |
12 | false
13 |
14 | bottom
15 | {legendVisible:'false',xAxis:{_type:'axis'},yAxisList:[{_type:'axis'}],seriesTypes:'area,area,line',_type:'comboChart'}
16 |
17 |
18 |
--------------------------------------------------------------------------------
/cls/kutac/monitor/kpi/Actions.cls:
--------------------------------------------------------------------------------
1 | /// kutac.monitor.kpi.Actions
2 | Class kutac.monitor.kpi.Actions Extends %DeepSee.KPI
3 | {
4 |
5 | Parameter DOMAIN = "SYSMON";
6 |
7 | Parameter RESOURCE;
8 |
9 | /// This XData definition defines the KPI.
10 | XData KPI [ XMLNamespace = "http://www.intersystems.com/deepsee/kpi" ]
11 | {
12 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 | }
27 |
28 | /// Notification that this KPI is being executed.
29 | /// This is a good place to override properties, such as range and threshold.
30 | Method %OnLoadKPI() As %Status
31 | {
32 | Quit $$$OK
33 | }
34 |
35 | /// Return an MDX statement to execute.
36 | Method %OnGetSQL(ByRef pSQL As %String) As %Status
37 | {
38 |
39 | Quit $$$OK
40 | }
41 |
42 | /// This callback is invoked from a dashboard when an action defined by this dashboard is invoked.
43 | ClassMethod %OnDashboardAction(pAction As %String, pContext As %ZEN.proxyObject) As %Status
44 | {
45 | // pAction is the name of the action (as defined in the XML list).
46 | // pContext contains information from the client
47 | // and can be used to return information.
48 | s tSC=$$$OK
49 | try {
50 | if pAction="SyncCubes" {
51 | set tTask=##class(kutac.monitor.task.Builder).%New()
52 | $$$THROWONERROR(tSC,tTask.OnTask())
53 | }
54 | } catch (e) {
55 | set tSC=$$$ADDSC(tSC,e.AsStatus())
56 | }
57 | Quit tSC
58 | }
59 |
60 | /// Get data for this KPI manually.
61 | /// This is implemented by subclasses that provide manual data.
62 | Method %OnExecute() As %Status
63 | {
64 | Set tSC = $$$OK
65 | #define D1 "|"
66 | #define D2 "^"
67 | Try {
68 | set ..%seriesCount=1
69 | set ..%seriesNames(1)="State Info"
70 | set tState=##class(%SYS.Monitor).State()
71 | set i=1 s ..%data(1,"Monitor")=$p($p(tState,$$$D2,i),$$$D1,2)
72 | set i=2 s ..%data(1,"Sensors")=$p($p(tState,$$$D2,i),$$$D1,2)
73 | set i=3 s ..%data(1,"AppMonSensor")=$s($p($p(tState,$$$D2,i),$$$D1,2)=" ":"none",1:$p($p(tState,$$$D2,i),$$$D1,2))
74 | set i=4 s ..%data(1,"HealthControl")=$p($p(tState,$$$D2,i),$$$D1,2)
75 | set i=5 s ..%data(1,"Subscriber")=$p($p(tState,$$$D2,i),$$$D1,2)
76 | set i=6 s ..%data(1,"LastCubeBuildTime")=$s($lg(^kutac("SYSMON","LastCubeBuild"))="":"n/a",1:$zdt($lg(^kutac("SYSMON","LastCubeBuild"),2)))
77 | set i=7 s ..%data(1,"LastCubeBuildStatus")=$lg(^kutac("SYSMON","LastCubeBuild"),1)
78 | }
79 | Catch(ex) {
80 | Set tSC = ex.AsStatus()
81 | }
82 | Quit tSC
83 | }
84 |
85 | }
86 |
87 |
--------------------------------------------------------------------------------
/dfi/dash-perf-history-History_WIJ.dashboard.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | false
7 |
8 |
9 | false
10 |
11 |
12 | false
13 |
14 | bottom
15 | {legendVisible:'false',textSize:'small',xAxis:{majorGridLines:false,_type:'axis'},yAxisList:[{_type:'axis'}],_type:'lineChart'}
16 |
17 |
18 |
--------------------------------------------------------------------------------
/dfi/dash-perf-history-Performance_History_Objects.dashboard.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | false
7 |
8 |
9 | false
10 |
11 |
12 | false
13 |
14 | bottom
15 | {legendVisible:'false',textSize:'small',xAxis:{majorGridLines:false,_type:'axis'},yAxisList:[{_type:'axis'}],_type:'lineChart'}
16 |
17 |
18 |
--------------------------------------------------------------------------------
/csp-data/csp/lib/js/angular-notify.min.js:
--------------------------------------------------------------------------------
1 | angular.module("cgNotify",[]).factory("notify",["$timeout","$http","$compile","$templateCache","$rootScope",function(a,b,c,d,e){var f=10,g=15,h=1e4,i="angular-notify.html",j="center",k=document.body,l=0,m=[],n=[],o=function(o){"object"!=typeof o&&(o={message:o}),o.duration=o.duration?o.duration:h,o.templateUrl=o.templateUrl?o.templateUrl:i,o.container=o.container?o.container:k,o.classes=o.classes?o.classes:"";var p=o.scope?o.scope.$new():e.$new();if(p.$position=o.position?o.position:j,p.$message=o.message,p.$classes=o.classes,p.$messageTemplate=o.messageTemplate,l>0)for(var q=n.length+1-l,r=0;q>r;r++)n[r].$close();b.get(o.templateUrl,{cache:d}).then(function(b){var d=c(b.data)(p);if(d.bind("webkitTransitionEnd oTransitionEnd otransitionend transitionend msTransitionEnd",function(a){("opacity"===a.propertyName||0===a.currentTarget.style.opacity||a.originalEvent&&"opacity"===a.originalEvent.propertyName)&&(d.remove(),m.splice(m.indexOf(d),1),n.splice(n.indexOf(p),1),i())}),o.messageTemplate){for(var e,h=0;h=0;c--){var d=10,e=m[c],h=e[0].offsetHeight,i=b+h+d;e.attr("data-closing")?i+=20:b+=h+g,e.css("top",i+"px").css("margin-top","-"+(h+d)+"px").css("visibility","visible"),a++}};a(function(){i()}),o.duration>0&&a(function(){p.$close()},o.duration)},function(a){throw new Error("Template specified for cgNotify ("+o.templateUrl+") could not be loaded. "+a)});var s={};return s.close=function(){p.$close&&p.$close()},Object.defineProperty(s,"message",{get:function(){return p.$message},set:function(a){p.$message=a}}),n.push(p),s};return o.config=function(a){f=angular.isUndefined(a.startTop)?f:a.startTop,g=angular.isUndefined(a.verticalSpacing)?g:a.verticalSpacing,h=angular.isUndefined(a.duration)?h:a.duration,i=a.templateUrl?a.templateUrl:i,j=angular.isUndefined(a.position)?j:a.position,k=a.container?a.container:k,l=a.maximumOpen?a.maximumOpen:l},o.closeAll=function(){for(var a=m.length-1;a>=0;a--){var b=m[a];b.css("opacity",0)}},o}]),angular.module("cgNotify").run(["$templateCache",function(a){"use strict";a.put("angular-notify.html","\n\n
\n {{$message}}\n
\n\n"+'
\n \n
\n\n
\n\n
')}]);
--------------------------------------------------------------------------------
/dfi/mobile-GloPerf.dashboard.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {legendVisible:'false',maxLabelLen:20,timeBased:true,xAxis:{_type:'axis'},yAxisList:[{_type:'axis'}],_type:'comboChart'}
6 |
7 |
8 |
9 | false
10 |
11 |
12 | false
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/dfi/dash-sys-history-WD_Cycle_Buffers.dashboard.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | false
7 |
8 |
9 | false
10 |
11 |
12 | false
13 |
14 |
15 | false
16 |
17 | bottom
18 | {legendVisible:'false',textSize:'small',xAxis:{_type:'axis'},yAxisList:[{_type:'axis'}],_type:'lineChart'}
19 |
20 |
21 |
--------------------------------------------------------------------------------
/cls/kutac/REST/ConfigBroker.cls:
--------------------------------------------------------------------------------
1 | Import kutac.REST
2 |
3 | Include %ZEN.Utils
4 |
5 | Class kutac.REST.ConfigBroker Extends %CSP.REST
6 | {
7 |
8 | XData UrlMap
9 | {
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | }
24 |
25 | ClassMethod getClasses() As %Status
26 | {
27 | quit ##class(Utils).getClasses()
28 | }
29 |
30 | ClassMethod toggleClass() As %Status
31 | {
32 | do ..ConvertRequestBody()
33 | quit ##class(Utils).toggleClass(%request.Content.classname, %request.Content.check)
34 | }
35 |
36 | ClassMethod checkMon() As %Status
37 | {
38 | quit ##class(Utils).checkMon()
39 | }
40 |
41 | ClassMethod toggleMon() As %Status
42 | {
43 | do ..ConvertRequestBody()
44 | quit ##class(Utils).toggleMon(%request.Content.toggle)
45 | }
46 |
47 | ClassMethod getEmailSettings()
48 | {
49 | quit ##class(kutac.REST.Utils).getEmailSettings()
50 | }
51 |
52 | ClassMethod setEmailSettings()
53 | {
54 | do ..ConvertRequestBody()
55 | set obj = %request.Content
56 |
57 | quit ##class(Utils).setEmailSettings(obj)
58 | }
59 |
60 | ClassMethod toggleEmail()
61 | {
62 | do ..ConvertRequestBody()
63 | quit ##class(Utils).toggleEmail(%request.Content.toggle)
64 | }
65 |
66 | ClassMethod getRecipients()
67 | {
68 | quit ##class(Utils).getRecipients()
69 | }
70 |
71 | ClassMethod addRecipient()
72 | {
73 | do ..ConvertRequestBody()
74 | quit ##class(Utils).addRecipient(%request.Content.rec)
75 | }
76 |
77 | ClassMethod deleteRecipient()
78 | {
79 | do ..ConvertRequestBody()
80 | quit ##class(Utils).deleteRecipient(%request.Content.rec)
81 | }
82 |
83 | ClassMethod testMail()
84 | {
85 | quit ##class(Utils).testMail()
86 | }
87 |
88 | ClassMethod ConvertRequestBody() As %Status
89 | {
90 | #dim %request As %CSP.Request
91 | #dim obj As %ZEN.proxyObject
92 |
93 | return:'$isobject(%request.Content) $$$OK //empty request body - nothing to do
94 |
95 | // Convert request body into UTF8 proxyObject
96 | set content = %request.Content.Read($$$MaxStringLength)
97 | set content = $ZCVT(content,"I","UTF8")
98 | set st = ##class(%ZEN.Auxiliary.jsonProvider).%ConvertJSONToObject(content,,.obj,1)
99 | return:$$$ISERR(st) st
100 | return:'$IsObject(obj) $$$ERROR($$$ArgumentIsNotAnObject,"Body")
101 |
102 | set %request.Content = obj // obj here is a valid UTF8 proxyObject with required property
103 | return $$$OK
104 | }
105 |
106 | /// Specifies the default character set for the page. This can be overriden using the
107 | /// <CSP:CONTENT CHARSET=> tag, or by setting the %response.CharSet property
108 | /// in the OnPreHTTP method. If this parameter is not specified, then
109 | /// for the default charset is utf-8.
110 | Parameter CHARSET = "UTF-8";
111 |
112 | }
113 |
114 |
--------------------------------------------------------------------------------
/dfi/pivots-monitor-history-fortc-JrnSizeTC.pivot.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/dfi/pivots-monitor-history-fortc-GloRefMinutes.pivot.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/dfi/pivots-monitor-current-DatabaseSizes.pivot.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/dfi/pivots-monitor-history-fortc-LicenseMinutes.pivot.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/dfi/pivots-monitor-history-fortc-PerfDataWIJMinutes.pivot.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/dfi/pivots-monitor-current-perf-KPI_Transform_Rtn.pivot.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/dfi/pivots-monitor-current-sys-KPI_Transform_Lic.pivot.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/dfi/pivots-monitor-current-sys-DatabaseSize.pivot.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/dfi/pivots-monitor-history-SysJournalDay.pivot.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/dfi/pivots-monitor-history-fortc-RtnPerfMinutes.pivot.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/dfi/dash-perf-history-Performance_History_Routines.dashboard.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | false
7 |
8 |
9 | false
10 |
11 |
12 | false
13 |
14 | bottom
15 | {legendVisible:'false',textSize:'small',xAxis:{majorGridLines:false,_type:'axis'},yAxisList:[{_type:'axis'}],_type:'lineChart'}
16 |
17 |
18 | bottom
19 | {legendVisible:'false',textSize:'small',xAxis:{majorGridLines:false,_type:'axis'},yAxisList:[{_type:'axis'}],_type:'lineChart'}
20 |
21 |
22 |
--------------------------------------------------------------------------------
/dfi/pivots-monitor-history-fortc-GloReadWriteMinutes.pivot.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/dfi/pivots-monitor-current-sys-KPI_Transform_CPU.pivot.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/dfi/pivots-monitor-current-perf-KPI_Transform_Globals.pivot.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/sc-list.txt:
--------------------------------------------------------------------------------
1 | /index.html
2 | /lib
3 | /src
4 | dash-actions-State Info.dashboard.dfi
5 | dash-perf-history-Dash1.dashboard.dfi
6 | dash-perf-history-ECP.dashboard.dfi
7 | dash-perf-history-History WIJ.dashboard.dfi
8 | dash-perf-history-Performance History Objects.dashboard.dfi
9 | dash-perf-history-Performance History Routines.dashboard.dfi
10 | dash-perf-history-Seizes.dashboard.dfi
11 | dash-sys-current-Databases.dashboard.dfi
12 | dash-sys-history-CPU Utilization.dashboard.dfi
13 | dash-sys-history-Database Files.dashboard.dfi
14 | dash-sys-history-System Dashboard 1.dashboard.dfi
15 | dash-sys-history-System Dashboard 2.dashboard.dfi
16 | dash-sys-history-System Dashboard 3.dashboard.dfi
17 | dash-sys-history-WD Cycle Buffers.dashboard.dfi
18 | dash-sys-history-WD Cycle Timers.dashboard.dfi
19 | kutac.REST.ConfigBroker.cls
20 | kutac.REST.Utils.cls
21 | kutac.monitor.cubes.CurrentSysDataDB.cls
22 | kutac.monitor.cubes.HistoryPerfData.cls
23 | kutac.monitor.cubes.HistoryPerfDataWD.cls
24 | kutac.monitor.cubes.HistorySysData.cls
25 | kutac.monitor.cubes.HistorySysDataDB.cls
26 | kutac.monitor.current.PerfData.cls
27 | kutac.monitor.current.SysData.cls
28 | kutac.monitor.current.SysDataDB.cls
29 | kutac.monitor.history.PerfData.cls
30 | kutac.monitor.history.PerfDataWD.cls
31 | kutac.monitor.history.SysData.cls
32 | kutac.monitor.history.SysDataDB.cls
33 | kutac.monitor.kpi.Actions.cls
34 | kutac.monitor.library.Dashboards.cls
35 | kutac.monitor.library.Mobile.cls
36 | kutac.monitor.library.Pivots.cls
37 | kutac.monitor.task.Builder.cls
38 | kutac.monitor.utils.CashLocale.cls
39 | kutac.monitor.utils.Installer.cls
40 | mobile-CPUUtilization.dashboard.dfi
41 | mobile-Current Performance Indicators.dashboard.dfi
42 | mobile-Current Performance Indicators 2.dashboard.dfi
43 | mobile-Current System Parameters.dashboard.dfi
44 | mobile-Current System Parameters 2.dashboard.dfi
45 | mobile-DBSizes.dashboard.dfi
46 | mobile-GloPerf.dashboard.dfi
47 | mobile-JrnSizeHistoryTC.dashboard.dfi
48 | mobile-LicenseHistory.dashboard.dfi
49 | mobile-ObjPerf.dashboard.dfi
50 | mobile-RoutinesPerf.dashboard.dfi
51 | mobile-SysCPUUtilizationMobile.pivot.dfi
52 | mobile-SysParamsPerf.dashboard.dfi
53 | mobile-WijPerf.dashboard.dfi
54 | pivots-monitor-current-DatabaseSizes.pivot.dfi
55 | pivots-monitor-current-perf-KPI Transform Globals.pivot.dfi
56 | pivots-monitor-current-perf-KPI Transform Obj.pivot.dfi
57 | pivots-monitor-current-perf-KPI Transform Rtn.pivot.dfi
58 | pivots-monitor-current-perf-KPI Transform WIJ.pivot.dfi
59 | pivots-monitor-current-sys-DatabaseSize.pivot.dfi
60 | pivots-monitor-current-sys-KPI Transform CPU.pivot.dfi
61 | pivots-monitor-current-sys-KPI Transform Lic.pivot.dfi
62 | pivots-monitor-history-DatabaseFilesHistory.pivot.dfi
63 | pivots-monitor-history-PerfDataGloPhysRW.pivot.dfi
64 | pivots-monitor-history-PerfDataGloRef.pivot.dfi
65 | pivots-monitor-history-PerfDataObjects.pivot.dfi
66 | pivots-monitor-history-PerfDataRoutines.pivot.dfi
67 | pivots-monitor-history-PerfDataRoutinesPhysLoads.pivot.dfi
68 | pivots-monitor-history-PerfDataSeize.pivot.dfi
69 | pivots-monitor-history-PerfDataWIJ.pivot.dfi
70 | pivots-monitor-history-SysCPUUtilization.pivot.dfi
71 | pivots-monitor-history-SysECP.pivot.dfi
72 | pivots-monitor-history-SysJournal.pivot.dfi
73 | pivots-monitor-history-SysJournalDay.pivot.dfi
74 | pivots-monitor-history-SysLicUsed.pivot.dfi
75 | pivots-monitor-history-SysVarious.pivot.dfi
76 | pivots-monitor-history-fortc-CPUUtilization.pivot.dfi
77 | pivots-monitor-history-fortc-CPUUtilization_Hours.pivot.dfi
78 | pivots-monitor-history-fortc-CPUUtilization Hours.pivot.dfi
79 | pivots-monitor-history-fortc-GloReadWriteMinutes.pivot.dfi
80 | pivots-monitor-history-fortc-GloRefMinutes.pivot.dfi
81 | pivots-monitor-history-fortc-JrnSizeTC.pivot.dfi
82 | pivots-monitor-history-fortc-LicenseMinutes.pivot.dfi
83 | pivots-monitor-history-fortc-ObjPerfMinutes.pivot.dfi
84 | pivots-monitor-history-fortc-ParamsMinutes.pivot.dfi
85 | pivots-monitor-history-fortc-PerfDataWIJMinutes.pivot.dfi
86 | pivots-monitor-history-fortc-RtnPerfMinutes.pivot.dfi
87 |
--------------------------------------------------------------------------------
/dfi/dash-sys-history-System_Dashboard_1.dashboard.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | false
7 |
8 |
9 | false
10 |
11 |
12 | false
13 |
14 | bottom
15 | {legendVisible:'false',xAxis:{_type:'axis'},yAxisList:[{title:'Journal Size (in MB)',_type:'axis'}],_type:'lineChart'}
16 |
17 |
18 | bottom
19 | {legendLabels:'SysJrnSize',legendPosition:'right',orientation:'horizontal',_type:'chartLegend'}
20 | {legendVisible:'false',xAxis:{_type:'axis'},yAxisList:[{title:'Journal Size (in MB)',_type:'axis'}],_type:'lineChart'}
21 |
22 |
23 |
--------------------------------------------------------------------------------
/cls/kutac/monitor/cubes/HistoryPerfDataWD.cls:
--------------------------------------------------------------------------------
1 | ///
2 | Class kutac.monitor.cubes.HistoryPerfDataWD Extends %DeepSee.CubeDefinition [ DependsOn = kutac.monitor.history.PerfDataWD, ProcedureBlock ]
3 | {
4 |
5 | /// Cube definition from Architect.
6 | XData Cube [ XMLNamespace = "http://www.intersystems.com/deepsee" ]
7 | {
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 | }
53 |
54 | Parameter DOMAIN = "SYSMON";
55 |
56 | }
57 |
58 |
--------------------------------------------------------------------------------
/dfi/dash-perf-history-Dash1.dashboard.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | false
7 |
8 |
9 | false
10 |
11 |
12 | false
13 |
14 | bottom
15 | {legendVisible:'false',plotToEdge:true,timeBased:true,xAxis:{majorGridLines:false,_type:'axis'},yAxisList:[{_type:'axis'}],seriesTypes:'line,line,line,line,line,line,line,line',_type:'comboChart'}
16 | {hasZoom:true,legendVisible:'false',maxLabelLen:21,textSize:'small',xAxis:{majorGridLines:false,_type:'axis'},yAxisList:[{_type:'axis'}],_type:'lineChart'}
17 |
18 |
19 | bottom
20 | {legendVisible:'false',maxLabelLen:25,textSize:'small',xAxis:{majorGridLines:false,_type:'axis'},yAxisList:[{_type:'axis'}],_type:'lineChart'}
21 |
22 |
23 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | deepsee-sysmon-dashboard
2 | ==============
3 |
4 | A small set of DeepSee dashboards for selected system monitor metrics - data collected by %SYSMONMGR utility.
5 |
6 |
7 | Installation
8 | ------------
9 |
10 |
11 | 1. Download Installer.cls.xml (from cls/kutac/monitor/utils folder in repository or releases page) into Caché manager directory.
12 | 2. Run in terminal (any namespace) under user with %All role:
13 |
14 | do ##class(%Installer.Installer).InstallFromCommandLine(##class(%File).ManagerDirectory()_"Installer.cls.xml","Namespace={Namespace}")
15 |
16 | where:
17 |
18 | {Namespace} is a namespace you want to install to. If it does not exist it would be created automatically. If it does exist only kutac package would be overwritten. If {Namespace} is not defined, then SYSMON namespace will be created.
19 | On this step installer would create (if needed) Namespace and corresponding database, download source code from GitHub and compile it, create required web application (named /cls/{Namespace}) if one does not exist (skipping web application creation process if one does exist), and map globals,packages and routines to {Namespace}.
20 |
21 |
22 | Installation without fs access to server
23 | -----------
24 | 1. Download Installer.cls.xml (from cls/kutac/monitor/utils folder in repository or releases page) into Caché Studio (any namespace)
25 | 2. Run in terminal (any namespace) under user with %All role:
26 |
27 | set pVars("Namespace")="{Namespace}"
28 | do ##class(kutac.monitor.utils.Installer).setup(.pVars)
29 |
30 | where:
31 |
32 | {Namespace} is a namespace you want to install to. If it does not exist it would be created automatically. If it does exist only kutac package would be overwritten. If {Namespace} is not defined, then SYSMON namespace will be created.
33 | On this step installer would create (if needed) Namespace and corresponding database, download source code from GitHub and compile it, create required web application (named /cls/{Namespace}) if one does not exist (skipping web application creation process if one does exist), and map globals,packages and routines to {Namespace}.
34 |
35 | Offline Installation
36 | -----------------
37 |
38 | 1. Download zip and unpack it.
39 | 2. Run in terminal (any namespace) under user with %All role:
40 |
41 | do ##class(%Installer.Installer).InstallFromCommandLine("{SourceDir}\cls\kutac\monitor\utils\Installer.cls.xml","Namespace={Namespace},SourceDir={SourceDir}")
42 |
43 | On this step installer would create (if needed) Namespace and corresponding database, import source code and compile it, create required web application (named /cls/{Namespace}) if one does not exist (skipping web application creation process if one does exist), and map and map globals,packages and routines to {Namespace}.
44 |
45 | Default Settings
46 | ----------------
47 |
48 | The installer activates in the namespace "%SYS" following monitor classes:
49 |
50 | * %Monitor.System.HistoryPerf
51 | * %Monitor.System.Diskspace
52 | * %Monitor.System.License
53 | * %Monitor.System.Processes
54 | * %Monitor.System.HistorySys
55 | * %Monitor.System.Freespace
56 | * %Monitor.System.LockTable
57 | * %Monitor.System.Routines
58 |
59 | The next step is starting monitor. Your namespace will appear in the list of accessible namespaces for DeepSee and you can see different dashboards there. However, if you open User Portal in the DeepSee immediately after installing, you will notice that all dashboards will be empty. You need to wait a little time, because the installer runs the task for rebuilding cubes in 1 minute after installing. This task will run every 1.5 hours for updating information for monitor dashboards. Also, this task is available in the Task Manager, so you can run the task whenever you want or change the task.
60 |
61 | In case of absense of new facts and notes, please, restart System Monitor using ^%SYSMONNGR utility. Run in Terminal:
62 |
63 | zn "%SYS"
64 | do ^%SYSMONMGR
65 |
66 | Restart your monitor using option "Start/Stop System Monitor".
67 |
68 | After that, check status using option "View System Monitor State". All states must be OK. In another case, please, restart Caché and start System Monitor.
69 |
70 |
71 |
72 |
73 |
74 |
--------------------------------------------------------------------------------
/dfi/pivots-monitor-history-fortc-CPUUtilization.pivot.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/dfi/pivots-monitor-history-fortc-CPUUtilization_Hours.pivot.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/cls/kutac/monitor/history/PerfData.cls:
--------------------------------------------------------------------------------
1 | Class kutac.monitor.history.PerfData Extends %DeepSee.DataConnector
2 | {
3 |
4 | Parameter SUPPORTSIDLIST = 1;
5 |
6 | XData SourceQuery [ XMLNamespace = "http://www.intersystems.com/deepsee/connector/query" ]
7 | {
8 | SELECT * FROM SYS_History.PerfData
9 | }
10 |
11 | XData Output [ XMLNamespace = "http://www.intersystems.com/deepsee/connector/output" ]
12 | {
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 | }
56 |
57 | }
58 |
59 |
--------------------------------------------------------------------------------
/dfi/pivots-monitor-history-SysECP.pivot.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/dfi/pivots-monitor-history-SysJournal.pivot.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/dfi/pivots-monitor-current-perf-KPI_Transform_Obj.pivot.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/dfi/pivots-monitor-history-DatabaseFilesHistory.pivot.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/dfi/pivots-monitor-history-fortc-ObjPerfMinutes.pivot.dfi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------