Monitoring dashboard response time and usage
Monitoring dashboard response time via JMX
- Use a JMX client such as jconsole and connect to the application
- In the MBeans tree, open the node
com.systar.nitrogen.dashboards.impl.jmx.DashboardStatsMXBean

You have then access to the following counters:
Counter |
Description |
DashboardAvgLoadingTimeMillis |
Returns the time (expressed in milliseconds) required - in average - to load a dashboard, including the rendering time on the client's side |
DashboardAvgRefreshTimeMillis |
Returns the time (expressed in milliseconds) required - in average - to refresh a dashboard, including the rendering time on the client's side |
DisplayedDashboardCount |
Returns the number of dashboards that have been displayed so far. If the same dashboard is displayed several times by the same user or by different users, it is counted several times |
You can also reset these counters using the resetCounters
operation.
To obtain these details for each dashboard, ask the deployment to write a log event each time a dashboard is loaded or refreshed in a browser.
Monitoring individual dashboard response time and usage
An event can be logged each time a user loads or refreshes a dashboard in a browser.
These events are written into the standard log file or into a dedicated csv file. The format of these log lines is:
where
Attribute |
Description |
event
|
One of the following values:
Dashboard loaded : A user has navigated onto this dashboard. time represent the time that has been required to load the dashboard including data
Dashboard refreshed : The time machine has changed and the dashboard data have been refreshed (either because the time machine is set to Live and the dashboard auto-refreshed itself or because a user has changed the time machine value)
|
title
|
Title of the dashboard |
uuid
|
UUID of the dashboard |
time
|
Time required to fully load or refresh the dashboard in milliseconds |
user
|
Username of the user that has loaded or refreshed the dashboard |
Via the standard log file
To write a line in the node.log
file when a dashboard is loaded or refreshed, simply change the log level for dashboards.dashboardStats
in conf/log4j.properties
from WARN
to INFO
:
# Dashboard statistics logs
log4j.logger.dashboards.dashboardStats=INFO
It will produce log lines similar to:
Via a dedicated csv file
To have these logs dumped in a separate dashboards-stats.csv
file, ready to be loaded into a spreadsheet such as Microsoft Excel, change the following line in conf/log4j.properties
from:
# Dashboard statistics logs
log4j.logger.dashboards.dashboardStats=WARN
to:
# Dashboard statistics logs, only in dashboards-stats.csv
log4j.appender.DashboardStatsFile=org.apache.log4j.FileAppender
log4j.appender.DashboardStatsFile.file=dashboard-stats.csv
log4j.appender.DashboardStatsFile.layout=org.apache.log4j.PatternLayout
log4j.appender.DashboardStatsFile.layout.conversionPattern=%m%n
log4j.logger.dashboards.dashboardStats=INFO,DashboardStatsFile
log4j.additivity.dashboards.dashboardStats=false
It will produce log lines similar to: