D.A.S.: deployment analysis system

Understanding how a sensor network system works requires running the system, extracting log files, and manually interpreting system metrics. When interpreting system metrics, we often try to correlate behavior over multiple modalities. For example, if a node is exhibiting strange behaviors, the cause may be due to weak battery, geographically bad placement, collision, interference, sensor failure, algorithmic faults, or a combination of the above. This approach of interpreting metrics is adequate for closed systems such as the ones run in simulations, with limited duration. However, for complex sensor network systems that have already been deployed for weeks or even months in the fields, this approach is difficult, laborious, and error-prone. Thus, a suite of tools to help analyze complex sensor network system is desirable. We have implemented Deployment Analysis System (DAS), a centralized data mining suite designed to better understand sensor networks. It supports visualization and deployment-related queries that allow the user to inspect historical system metrics, environmental data, geographical placements, and system status.The DAS user interface displays real-time and historical information in an easy-to-use and intuitive format. The topological map feature allows users to have both a historical and immediate view of the system status with metrics such as routing table, neighbor tables, and the number of neighbors heard, among others. The historical map helps users view and narrow down past points of failure and for refinements on future deployments. For example, it helps pinpoint bottlenecks in the network or bad connectivity due to environmental conditions, resulting in unexpected low throughput at the sink. In addition to the static map, DAS also provides historical routing replay animation. This feature allows programmers to validate and to make assessments to routing algorithms. For example, using the replay animation, a user can determine route stability, and overall efficiency of mote placements and route choices. In one instance, we used DAS to inspect one of the environmental deployments in James Reserve at San Jacinto and observed that in many cases, motes that had high elevation were frequently used as a next-hop neighbor even though many were much farther away from the final destination. We also observed unexpected routing dependencies such that when one mote became inoperative, the communication for a cluster of other motes were cut-off, even though their proximities to each other should have provided redundanc.In addition to the topological map, DAS generates different charts that include single metric multiple nodes graph, multiple metrics single node graph, and link quality graph. Using these graphs users can easily identify spatial-temporal correlations and events over system metrics and environmental data. For instance we used DAS to easily generate two graphs in two different instances (using a total of less than 4 mouse clicks) which show that the battery voltage of nodes tends to degrade simultaneously. In both cases the entire sensor network was broken within 5 days. We used this observation to apply to later deployments-- if the battery level of a few motes starts to degrade, we should change batteries quickly as a preventive measure from total system failure. Likewise, we used DAS to generate graphs which shows the temperature affects the battery level directly, and in some cases increase the frequency of route-flapping. This revelation opens up the possibility of fine tuning routing and link estimation algorithms based on past data, and even predicted trends.The back-end of DAS is completely detached from its CGI based front-end. It stores environmental data with internal system metrics in a traditional database, accessible using input extensions and output extensions. Currently DAS has a pluggable input extension to Sympathy system metrics and general sensor data from ESS2 applications, and the infrastructure allows other data types to be easily added or changed to accommodate for other sensor networks. Some of the output extensions that have been implemented include the graphical user interface, status display, and event-trigger notification facilities. Since the framework uses open tools it can be easily interfaced with other systems based on C, Java, GNU Plot, and Visual Studio tools.