Towards a Debugging System for Sensor Networks
Due to their resource constraints and tight physical coupling, sensor networks afford limited visibility into an application's behavior. As a result it is often difficult to debug issues that arise during development and deployment. Existing techniques for fault management focus on fault tolerance or detection; before we can detect anomalous behavior in sensor networks, we need first to identify what simple metrics can be used to infer system health and correct behavior. We propose metrics and events that enable system health inferences, and present a preliminary design of Sympathy, a debugging tool for pre- and post-deployment sensor networks. Sympathy will contain mechanisms for collecting system performance metrics with minimal memory overhead; mechanisms for recognizing application-defined events based on these metrics; and a system for collecting events in their spatiotemporal context. The Sympathy system will help programmers draw correlations between seemingly unrelated, distributed events, and produce graphs that highlight those correlations. As an example, we describe how we used a preliminary version of Sympathy to help debug a complex application, Tiny Diffusion.