Real-time Stream Monitoring with StreamLAB
Peter Faymonville, Bernd Finkbeiner, Malte Schledjewski, Maximilian Schwenger, Leander Tentrup, Hazem Torfah
The online evaluation of real-time data streams is an essential part of cyber-physical systems and plays a crucial role when monitoring those that are intrinsically safety-critical. We present StreamLAB, a specification and monitoring framework for stream-based real-time properties, which has already been applied on autonomous aerial vehicles. As a stream-based monitoring engine, StreamLAB translates input streams, for example sensor readings or other data collected at runtime, into output streams containing aggregated statistics. In practice, input data often arrives in varying, unpredictable frequencies and a monitor has to cope with limited memory and computational resources. StreamLAB tackles these problems by combining the benefits of a programming language and a formal, temporal logic. While it allows for expressing a vast variety of real-time properties, specifications are also compositional and easy to reuse by design, and StreamLAB can compute guaranteed upper bounds on the memory requirements. A monitor for a given specification will respect these bounds and thus never disrupt the normal operation of a system, notwithstanding the frequency of arriving input values. This makes StreamLAB a suitable choice for embedded devices with strictly limited memory.