Dexter Monitor is a dashboard for monitoring the status of defects and users for all active Dexter Servers.

You need to download 'dexter-monitor' file to install dexter monitor.

And be sure to use the 'dexter-server'. You can download in "Dexter Download Page"



1.What you can do


2.How to use

  2.1 Wrtie config.json file in dexter-monitor

{
    "version":"#.#.#",
    "appName":"Dexter Monitor",
    "description":"This program will monitor and control servers",
    "serverStatusCheckInterval":5,
    "serverDetailedStatusCheckInterval":5,
  	"serverRequestTimeout":5,
    "projectStatusRefreshInterval":60,
    "snapshotDayOfWeek":2,
    "email":{               
        "type":"api",
        "apiUrl":"http://dexter_email:5003/api/v1/email",
        "defaultSenderEmail":"min.ho.kim@samsung.com",
        "defaultSenderName":"MinHo Kim"
    },
    "database":{
        "host":"Database host Name or IP",
        "port": "Database Port Number",
        "user":"Database User ID",
        "password":"Database User Password",
        "name":"Database Name"
    },
    "userInfoUrl":"User info URL"
}


  2.2 Create Dexter Monitor Database 

Enter password:                                                        // <== enter your mysql password
 
mysql> create database Dexter_Weekly_Report;                           // <== choose any database name, But you must set same name on "database":"name" in'config.json'
Query OK, 1 row affected (0.00 sec)
 
mysql> use Dexter_Weekly_Report;                                       
Database changed	
 
mysql> create user 'dexter-user' identified by 'mypassword';           // <== choose any password, If you already have mysql account, you do not need to create new user.
Query OK, 0 rows affected (0.01 sec)

mysql> grant all on Dexter_Weekly_Report.* to 'dexter-user'@'localhost' identified by 'mypassword';
Query OK, 0 rows affected (0.00 sec)
 
mysql> source %DOWNLOAD_PATH%\dexter-monitor-db.sql   //  <== example : source D:\DexterSQL\dexter-monitor-db.sql
Query OK, 0 rows affected (0.04 sec)
Query OK, 0 rows affected (0.05 sec)
Query OK, 0 rows affected (0.04 sec)
Query OK, 0 rows affected (0.05 sec)
 
CREATE TABLE `DexterUserList` (
  `listNumber` int(11) NOT NULL AUTO_INCREMENT,
  `userId` varchar(100) DEFAULT NULL,
  `userName` varchar(100) DEFAULT NULL,
  `userLab` varchar(100) DEFAULT NULL,
  `dexterYn` varchar(10) DEFAULT NULL,
  `reason` varchar(200) DEFAULT NULL,
  `ide` varchar(100) DEFAULT NULL,
  `language` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`listNumber`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `ProjectInfo` (
  `pid` int(11) NOT NULL AUTO_INCREMENT,
  `projectYear` int(11) NOT NULL,
  `projectType` varchar(100) NOT NULL,
  `projectName` varchar(100) NOT NULL,
  `requester` varchar(100) NOT NULL,
  `dbName` varchar(100) NOT NULL,
  `hostIP` varchar(100) NOT NULL,
  `portNumber` int(11) NOT NULL DEFAULT '0',
  `groupName` varchar(100) NOT NULL,
  `language` varchar(100) NOT NULL,
  `createdDateTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `administrator` varchar(100) DEFAULT NULL,
  `emailList` varchar(500) DEFAULT NULL,
  `emailingWhenServerDead` char(1) NOT NULL DEFAULT 'Y',
  PRIMARY KEY (`pid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `WeeklyStatus` (
  `wid` int(11) NOT NULL AUTO_INCREMENT,
  `pid` int(11) NOT NULL,
  `year` int(11) NOT NULL,
  `week` int(11) NOT NULL,
  `day` int(11) NOT NULL,
  `allDefectCount` int(11) NOT NULL DEFAULT '0',
  `allNew` int(11) NOT NULL DEFAULT '0',
  `allFix` int(11) NOT NULL DEFAULT '0',
  `allDis` int(11) DEFAULT NULL,
  `criNew` int(11) NOT NULL DEFAULT '0',
  `criFix` int(11) NOT NULL DEFAULT '0',
  `criDis` int(11) DEFAULT NULL,
  `majNew` int(11) NOT NULL DEFAULT '0',
  `majFix` int(11) NOT NULL DEFAULT '0',
  `majDis` int(11) DEFAULT NULL,
  `minNew` int(11) NOT NULL DEFAULT '0',
  `minFix` int(11) NOT NULL DEFAULT '0',
  `minDis` int(11) DEFAULT NULL,
  `crcNew` int(11) NOT NULL DEFAULT '0',
  `crcFix` int(11) NOT NULL DEFAULT '0',
  `crcDis` int(11) DEFAULT NULL,
  `etcNew` int(11) NOT NULL DEFAULT '0',
  `etcFix` int(11) NOT NULL DEFAULT '0',
  `etcDis` int(11) DEFAULT NULL,
  `createdDateTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `userCount` int(11) DEFAULT NULL,
  PRIMARY KEY (`wid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `WeeklyStatusSummary` (
  `year` year(4) DEFAULT NULL,
  `week` tinyint(3) unsigned DEFAULT NULL,
  `day` tinyint(3) unsigned DEFAULT NULL,
  `installationRatio` float DEFAULT NULL,
  `installedDeveloperCount` tinytext,
  `resolvedDefectRatio` float DEFAULT NULL,
  `defectCountTotal` mediumint(8) unsigned DEFAULT NULL,
  `createdDateTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

  2.3 Run Dexter-monitor

$> node app.js -p=13301

3.Verify