NDroid - 2013-06-12

Configurable Integrated MONitoring System

The CIMON project is an effort to develop a user-programmable monitoring solution for mobile devices which can be used for contextual notifications to applications, or for detailed system logging and analysis. There are two primary goals for CIMON:

  • Integrate system monitoring, user/application activity monitoring, and sensor activity monitoring. Smart phones and mobile devices provide a new and unique opportunity to integrate multiple monitoring features, which could provide context to models of system activity and performance. Integration of these monitoring features could lead to new understandings of how the operating system, applications, and users interact with each other, and what impact each has on others. Modeling these interactions could provide clues on potential optimizations that can be made to system or application design to provide a better user experience.
  • Provide a full-featured, user-programmable, real-time monitoring tool which developers can use to easily integrate contextual features into applications. This monitoring tool can provide notifications based on complex criteria which incorporates multiple monitoring metrics. This allows applications to receive notifications about “context” criteria being met, rather than needing to focus on the details implementing a monitoring solution to detect such context. By providing a universal solution for contextual monitoring, monitoring operations for all running applications can be combined to provide the most efficient set of monitoring tasks necessary to meet all application needs.

We have implemented a prototype for CIMON in Android. The CIMON monitoring service is implemented as a background service in Android, and there is a user-level administration app which allows users to see which metrics are actively being monitored, and to initiate a new monitor from within the administration app. Monitoring reports can be generated, which can be emailed per the users preferences.



Use the link above to access the complete JavaDoc documentation. The CimonInterface interface in the edu.nd.darts.cimon package is a good starting point for examining the JavaDoc. It describes the CIMON API used for registering monitors with the CIMON monitoring service, and provides pointers to other important classes.

Administration app

CIMON is an Android service which runs in the background and allows other applications to register a variety of monitors. For ease of use, CIMON is also packaged with an administration app which allows users to utilize the monitoring service without developing their own app. For now, the administration app only allows the creation of a periodic monitor, but we plan to include the ability to register complex metric and event monitors within the administration app in the future. See screenshots for preview of app.

Within Android, he administration app can be opened from the application drawer, or by selecting the CIMON status bar in the drop-down notification window. There are 3 tabs in the administration app, representing the three categories of metrics: system activity/resources, sensors, and user activity. Each tab has a list of supported metrics. These are expandable lists which are grouped based on which data can be collected through the same system calls. Select a metric group to expand that group and see which individual metrics are available. Selecting it again will compact the subgroup. Select the information button (i inside a circle) to expand the metric group description. Selecting it again will close the expanded description. To activate a monitor, select the desired metric group to expand the group and show the list of supported metrics for this group. Press the record button to the left of the desired metric, this will open a new window allowing the user to specify the monitoring preferences. You may adjust the frequency of the monitor with the slide bar and set a duration for the monitor (or choose manual, in which case you will have to press the stop button to end the recording manually). You can place a checkmark next to email to request that a notification be generated when the monitor has completed and generated a report. Through this Android notification, the user may email the generated report. Users may also access the data by querying the CIMON content provider. See the JavaDoc for more details on the CIMON database and content provider.

Last edit: NDroid 2013-06-13