Wiki Spaces
Documentation
Projects
Resources
Get Help from Others
Q&A: Ask OpenMRS
Discussion: OpenMRS Talk
Real-Time: IRC Chat | Slack
Primary mentor | Pascal Brandt |
Backup mentor | Jan Flowers |
GSoC student | Vineet Kumar |
Extend the OpenMRS module "System Performance and Utilization Module" to supply additional information on system performance and utilization in order to monitor reliability and impact of the electronic medical record system installation. This module monitors OpenMRS and transfers specific system indicators, possibly using the Performance and Utilization Monitoring Program framework developed for an OpenMRS network implementation in Kenya. The expansion of indicators could include system indicators (CPU load, etc) and application level indicators (# of opened charts, etc), as well as, the further development of the visualization of these indicators (drill-down to view details within those statistics - which users logged in, which charts were opened, etc).
The major focus of the module currently is to show indicators of following type:-
Basic Theory behind the Indicator Working, Which is require for future development and extension
1. Selecting Indicator purpose : - this could be a System or Application Level Indicator. our Aim is to consider what kind of System Usage and Application Usage we have to show.
2. Update And Syncing data from Database:- The data which have to shown on indicators is update and retrieved from database.
3. Updating Data Base:- Querying the used memory for this is done using the Java Management beans where it expose both use memory and free memory values with MemoryMXBean. The following link is explaining about the structure of the beans API.
2. Add Application Monitoring Indicators: The application monitoring is introduced to monitor what usage patterns are occurring number of opened charts during a set time period, number of modified charts during a set time period, number of active logins etc.
3. Advanced Visualization of Statistics: Ability to drill-down into the graphs for stratified views, such as, which roles/users were logged in, what kind of charts were opened, etc.
4. Export of Data: CSV file export, as well as, exchange of data into a larger framework for dashboard view across sites
During the project implementation period the student and mentors ( Pascal/Jan) will hold a weekly one hour meeting to discuss the progress of the project and decide on the tasks to be finished for each week.
Mockups
In short this module requires
1. Add System Monitoring Indicators: System monitoring is mainly focused on gathering and presenting information on low level system indicators like CPU load, memory utilization etc.
System Monitoring can include:
- CPU usage
- Memory Usage
- Disk Usage
- System Information
Following resource will be helpful for getting CPU load information:
2. Add Application Monitoring Indicators: The application monitoring is introduced to monitor what usage patterns are occurring number of opened charts during a set time period, number of modified charts during a set time period, number of active logins etc.
Application Monitoring can include:-
- Login Number
- Encounter Count
- Visit Count
- Observation Count
- Patient Count
- Report Run
- Cohort Count
- Concept Count
- Form Filled
3. Advanced Visualization of Statistics: Ability to drill-down into the graphs for stratified views, such as, which roles/users were logged in, what kind of charts were opened, etc. This can be done using Google Charts API, highcharts library. While we already have the data of CUP Load, Memory Utilization, Members Login, Application data etc. we can frame those data easily on a web page.
4. Export of Data: CSV file export, as well as, exchange of data into a larger framework for dashboard view across sites. Not only CSV we can also export it to excel sheets.
According to My collected data the timeline should look like this:-
0. Studying the complete Module and get use to it. (by May 30)
1. Add System Monitoring Indicators (by June 25) :-
- CPU Usage - CPU Usage, CPU Time, Maximum Hourly CPU Usage, Average CPU Usage
- Disk Usage
- Memory Usage
2. Add Application Monitoring Indicators (by July 15)
- Fields Count
- Improvement In Login User Indicators
3. Advanced Visualization of Statistics. (by July 30)
- Adding tabular Data Section
- All Fields Statistics
4. Export of Data (by Aug 3)
5. Testing phase and refine phase (by Aug 10)
6. Documentation and Demo (by Aug 18)
Module Repository : https://github.com/openmrs/openmrs-module-systemmetrics
Project Blog : http://milindarukshan.blogspot.com/
Mid term Presentation : https://talk.openmrs.org/t/gsoc-2014-system-performance-and-utilization-module-midterm-presentation/313
Final Presentation : https://talk.openmrs.org/t/gsoc-2014-system-performance-and-utilization-module-final-presentation/488
Latest Documentation : System Performance and Utilization Module
System Performance and Utilization Module
12 Comments
Zakaria Amine
Hi Pascal, Jan,
I am interested in this project, and I would like to discuss the requirements in more depth.
Regards,
Zakaria Amine
Jan Flowers
Hi Zakaria,
Thank you for your interest in the project. For now, the best thing to do is to review the resources from last year's GSOC student to understand where the project is currently. We'd like to expand on that project with the ideas listed under the objectives. It's up to you to propose how you might address those objectives and how you might approach them. For example, last year the GSOC student proposed creating the tool to chart users logging in...etc. Secondly, you'll want to become familiar with OpenMRS by picking a ticket from the active issues and addressing one of those.
Looking forward to your proposal,
Jan
Sashrika Waidyarathna
Hi, I would like to discuss more about this project.
I cloned the project and tried to build it , but it gives me errors.
"Failed to execute goal on project systemmetrics-api: Could not resolve dependencies for project org.openmrs.module:systemmetrics-api:jar:1.1-SNAPSHOT: The following artifacts could not be resolved: org.openmrs.api:openmrs-api:jar:1.11.0-SNAPSHOT, org.openmrs.web:openmrs-web:jar:1.11.0-SNAPSHOT, org.openmrs.api:openmrs-api:jar:tests:1.11.0-SNAPSHOT, org.openmrs.web:openmrs-web:jar:tests:1.11.0-SNAPSHOT, org.openmrs.test:openmrs-test:pom:1.11.0-SNAPSHOT: Failure to find org.openmrs.api:openmrs-api:jar:1.11.0-SNAPSHOT in http://mavenrepo.openmrs.org/nexus/content/repositories/public was cached in the local repository, resolution will not be reattempted until the update interval of openmrs-repo has elapsed or updates are forced -> [Help 1]
[ERROR]"
Do i need to add any additional things to the directory, before building the project?
Thank you!
Pascal Brandt
Hi,
OpenMRS 1.11.0 has been released since the module was last touched (see nexus repo), so you can probably remove the -SNAPSHOT from those dependencies in the POM.
Cheers,
Pascal
Sashrika Waidyarathna
Thanks Pascal,
I changed all <version>1.1-SNAPSHOT</version> to <version>1.11.0</version> and now project starts to build. But several test cases are failed. specially,
I have copied to full errror logs into http://pastebin.com/0VaXVUDw.
Do you have any idea, why this happens?
Sashrika Waidyarathna
Hi Jan, Pascal .
I went through the existing module and able to identify few improvements that we can implement in this summer.
After implementing CPU usages, i suggest to dispaly both memory usage and CPU usage in a single page, rather than displaying them on seperate pages. I think that is more convenient. We can provide the end user to filter indicaters to show on the page. Either to display CPU usage, Memory usage or both. Since we are using Google chart API, we can use google.visualization.CategoryFilter for this.
In the login chart, currently we are showing decimal values too in the y-axis. I think there is no point of showing decimal values because the number of users logged into the system is always a integer. So we can modify that chart to only show integers.
Sashrika Waidyarathna
By refering PUMP Build Instructions and Kenya Workplanning- PUMP Demo.pdf I think we can understand more application level indicators that we can support in this module. As an example,
Apart from that why we are interested in # of opened charts? What kind of important information can be monitored by that?
Sashrika Waidyarathna
Hi Jan, Pascal,
I have created an initial version of the project proposal. Can you please have to look and give some feedbacks
Thanks!
Pascal Brandt
Hi,
The proposal is looking for now. We can discuss the specifications in detail if you are accepted. To increase your chances of being accepted, the best thing you can do for now is increase your involvement in the community (participate in Talk, IRC and weekly calls) and work on some introductory tickets as explained here: Getting Started as a Developer (Archived Version).
Regards,
Pascal
Sashrika Waidyarathna
Hi Pascal,
I've been gone through the page Getting Started as a Developer. I've created three pull requests
https://github.com/openmrs/openmrs-core/pull/1379
https://github.com/openmrs/openmrs-core/pull/1381
https://github.com/openmrs/openmrs-core/pull/1382 and awaiting for any feedback.
But I will increase my involvement in the community as you suggested.
Thanks
Akshika Wijesundara
Pascal Brandt: HI I have already fixed 8 bugs on JIRA. So I understand well how the openmrs code base works. I would like to work on this project. How can I contact you for further discussions? After that I would submit the proposal to milange.
Jan Flowers
That's great Akshika. It is best to contact us through here for now with any of your questions.