The Monthly Service Report (MSR) is a combination of various scripts to obtain and mash network traffic availability and utilisation data. There is a front-end GUI based on Java Server Pages (JSP)
Every month the data is prepared on test-msr.geant.net (83.97.92.151) and stored within a MySQL database on the same machine. The databases that the MSR uses are called reports and otrs. The MySQL user that is used to access the database is reportsUser. The password is stored within KeyPass
At the end of the process, the data is exported using MySQL Workbench and copied over to the production server prod-msr.geant.net (83.97.93.7). In addition, the graphs and topology images are also copied across from the test to the production server.
The URL for the test server is http://test-msr.geant.net:8888/msr/
The URL for the production server is either http://prod-msr.geant.net:8888/msr or https://tools.geant.net/portal/links/msr/ (You will need to have tools portal access for this and be a member of the TP_MSR Active Directory Group
The JSP scripts are stored in the /var/lib/tomcat6/webapps/msr/ file on the server. This scripts includes other scripts that are stored in the /var/lib/tomcat6/webapps/msr/includes directory. Two of the important include files are getGlobal.jsp and getSession.jsp which set some Global Variables that are used within the application.
*** Talk about differences in getSession.jsp file wrt user roles
The below scripts rely on a couple of includes:
includes/getSession.jsp
includes/getGlobal.jsp
Click link in ad_roll_report.jsp
Goes to http://test-msr.geant.net:8888/msr/ad_etl_confirm_new.jsp?DATA=Roll%20Report%20Period
After confirmation the browser is redirected to ad_etl_status_new.jsp?DATA=Roll%20Report%20Period
This page retrieves the month and year of the latest published MSR provided by the getSession.jsp script, rolls the month and year values as appropriate and initialises a few other variables
Updates the only record in the msr_control table with the new month and year values
Adds new entries into the following tables:
msr_reports
msr_reports_gn3
Updates the following table
msr_control
Redirects to the root of the application
If there is an extra period/month rolled (like rolling a month ahead) you need to do the below:
- Delete the month record from "msr_reports" table
- Delete the month record from "msr_reports_gn3" table
- update the month record in "msr_contol " table
If you examine the /var/lib/tomcat6/webapps/msr/WEB-INF/web.xml file on the server, you will notice that the MSR also uses three Java Servlets:
GraphGenerator (net.dante.msr.graphs.GraphGenerator) - used by the Graph Generation page: http://test-msr.geant.net:8888/msr/ad_graphs.jsp in the Administration section
ExcelExport (net.dante.msr.CSVExport) - used by each page that has the Excel Export icon in it
TrendAnalysis (net.dante.msr.graphs.TrendAnalysis) - used by Individual graph pages: http://test-msr.geant.net:8888/msr/ms_nren_ip_util.jsp and http://test-msr.geant.net:8888/msr/ms_nren_int_util.jsp in the Trend Analysis section
*** Source Code Repository information
You need to clone 4 repositories to your local development environment:
https://gitlab.geant.net/live-projects/webapps-msr ### JSP pages that contain MSR GUI interface
https://gitlab.geant.net/msr-automation/msrgenerator
https://gitlab.geant.net/msr-automation/cacti-utilisation
Graphs: https://gitlab.geant.net/live-projects/msr/-/tree/master/src/main/java/net/dante/msr ### These are the Java files responsible for graphs. Won't be changed frequently.