Percepio DevAlert is a cloud-based observability solution that provides a diagnostic feedback loop between remote devices and the product teams. With DevAlert, product teams can detect crashes, errors and other software anomalies instantly, during system testing, field trials and in customer operation, and get detailed diagnostic information enabling rapid solutions. DevAlert is purpose-built for small edge processors and IoT microcontrollers running RTOS-based software, with security, privacy, transparency, and scalability in focus.
Embedded software without cloud connectivity can be supported by relaying the data using a locally connected host computer, e.g., for monitoring system testing, or by plugging in a laptop during field service. In this way, DevAlert is relevant and applicable for any embedded software. All that is required is a serial port or a debug probe.
DevAlert 2.0 provides much improved diagnostic capabilities, including core dumps for source code debugging targeting Arm Cortex-M devices. This allows for remote analysis of crashes, errors or cybersecurity anomalies in full detail, including the function call stack, parameters and variables, and with source code display.
Together with the earlier DevAlert features for collecting Tracealyzer traces on anomalies, and the recently added Tracealyzer SDK for custom trace integrations, this provides full observability for any embedded software running on a real-time operating system (RTOS) or as a bare-metal application. DevAlert has not yet been tested on Linux-based devices, but the platform is designed to enable Linux support in the near future.
The new DevAlert solution can also be used to detect stack corruption using common compiler features and an example for the GCC compiler is included. When combined with the core dumps, you can not only discover dangerous buffer overrun issues, but also capture the corrupted stack contents to inspect the data. This can reveal code injection attacks in full detail, as well as accidental buffer overruns that are critical vulnerabilities.
“Software observability is increasingly critical for digital trust due to rising cyber threats and ever-increasing software complexity causing elusive bugs and vulnerabilities,” said Dr. Johan Kraft, CTO and Founder of Percepio. “Not only in the cloud, but even more so in edge devices that are exposed to unpredictable environments and physical attacks since they have many attack surfaces. Edge devices may have CAN buses, UARTs, JTAG debug ports and various other I/O interfaces that were not designed with cybersecurity in mind.
“At Percepio we have been focusing on observability for embedded software for many years. The first version of DevAlert extended this to trace-based observability for deployed devices at scale. With DevAlert 2.0 we take the next step by allowing users to collect any kind of device data, including core dumps for source code debugging, as well as customer-defined data such as device logs, network logs, sensor data, images and audio data. This enables powerful edge device observability, which is the missing piece for achieving true full-stack observability all the way out to the very edge.”
Since its inception, DevAlert has offered a privacy-friendly “bring your own storage” solution where customers have full control over their diagnostic data storage and never have to upload any sensitive device data or IP like firmware images into the cloud service. DevAlert 2.0 improves on this focus by providing a separate desktop client that lets users configure their own private data storage for full control and privacy. The client also lets users hook in their own desktop-based diagnostic tools, such as debugging tools and custom scripts, and launches the right tool when the user clicks on a download link in the DevAlert Dashboard.
Kraft commented, “The new design required solving fundamentally conflicting requirements – providing more detailed data from the devices, without sacrificing the customer’s data control and privacy. For example, viewing core dumps in a debug tool requires access to the right firmware image, sensitive IP that should remain in the customer’s private domain at all times. With DevAlert 2.0 we have generalised our “bring your own storage” design to ensure data privacy while also adding support for any kind of device data. When clicking a download link in the DevAlert Dashboard, the right data is loaded automatically in the right desktop tool, on your local machine, without ever leaving your private domain. For example, when an anomaly is detected in your software, you can view traces in Tracealyzer, core dumps in your favorite debugger, vision system data in an image viewer, network request data in a protocol analyzer tool, or the most recent device log in your favorite text editor.”
DevAlert 2.0 has been designed in collaboration with multiple pilot customers who are aiming to integrate the new solution in their products for use in deployment.