Wiki Spaces
Documentation
Projects
Resources
Get Help from Others
Q&A: Ask OpenMRS
Discussion: OpenMRS Talk
Real-Time: IRC Chat | Slack
In many settings, a single organization or entity may support a network of OpenMRS server installations across a wide geography. Supporting these installations can be a tremendous challenge, particularly when connectivity is limited, and it is often unclear which installations are functioning properly, in use, and deployed consistently. This module aims to provide a mechanism for such a support team to have greater visibility into the actual systems in use, in order to be better able to make data driven decisions.
Additional overview information may be found in the README on github.
This module can be downloaded from the module repository.
Developers may build this module from source directly, or may leverage it's artifacts as found in the OpenMRS maven repository.
NOTE: It is likely that this documentation will not keep up with dependency versioning. For the latest versions requirements, please consult the module repository, or the root pom.
Connection with a Parent instance
There are two ways to configure a server to connect to a parent server to send it reports.
Once a child server is configured with valid credentials to the parent server, everything else is handled automatically. No manual registration of servers is required.
By default, the module will record one Report per day for the current Server, or as close as possible to that as it can. This is the recommended setting. You can configure this to be more frequent or less frequent with the setting named emrmonitor.minutesBetweenReports
Within a Report, the module will record multiple Metrics. Metrics are generated and recorded by constructs called Metric Producers. The supplied Metric Producers can be viewed here. You can disable one or more of these Metric Producers by supplying a comma-separated list of Metric Producer namespaces to the setting named emrmonitor.disabledMetricProducers
Additional or alternative Metric Producers can be easily added by developers by simply implementing the MetricProducer interface and exposing your class as a Spring component.
There is also a special Configurable Metric Producer that supports implementation-defined metrics added at runtime, which is designed to enable implementers who are not familiar with module development, but can author SQL or do other scripting, to customize what is produced. This works by iterating over and executing any files located in the {application_data_dir}/configuration/emrmonitor directory. The name of any file in this directory will represent the "namespace" of the metrics that it produces. The following files are supported:
SQL files: Any file with a ".sql" extension will be executed.
Shell Scripts: Any file with a ".sh" extension will be executed.