wiki:Projects/LoggingTools

LoggingTools

Introduction

When creating, testing, and running RTEMS appplications, many developers use the printf family of functions to log information. For large applications, viewing logs is a pain. Logs are often cluttered, making it difficult to find the information that you need. This page suggests some uses for logging information and describes open source tools that can be used to view and manage logs.

Common Uses for Logging

  • Debugging embedded applications
  • Offline tuning of PID (or arbitrary) control loops
  • Real time monitoring and/or maintenance of embedded systems
  • Optimizing applications by profiling them, analyzing performance, and identifying possible speed improvements

Open Source Logging Tools

All of these tools work out of the box with generic log files. Please note that many of them cannot run on RTEMS itself. You'll need to connect your RTEMS system to another computer for analysis.

Graphing and Visualizing Time-Series Data

Application Profiling

You can use the following tools to trace and profile your application.

  • RTEMS Trace Tool - RTEMS Trace Tool is a tool to trace your RTEMS applications and visualize an application's run process.
  • RTEMS Capture Engine - RTEMS Capture Engine is a software module for RTEMS that captures context switches.

Statistical Analysis

For complex event analysis, you may want to consider Mathematica, R, or Sage.

Other Tools

These tools may work with RTEMS, but they require a high-level of customization.

  • Octopussy - Octopussy is a web-based server for log monitoring. It supports live monitoring, events filtering, and email alerts. Octopussy is usually used to monitor Apache and the like, however it can be customized to analyze any type of log file. See here for information on setting up Octopussy - you'll have to dump RTEMS logs into /var/lib/octopussy/logs/<device_name>/Incoming/
  • Tuning and Analysis Utilities (TAU) - TAU was formerly included as an application profiling tool. I'm not sure if it's compatible with RTEMS. (It can automatically instrument code and log information to file - I'm not sure how to use TAU to instrument RTEMS applications.) TAU includes tools for viewing application profiles and traces. It may be worth modifying RTEMS' own trace tools so that their traces can be viewed with TAU.

Ideas for Future RTEMS Improvements

  • Modify RTEMS Trace Tool and Capture Engine or write a conversion tool so that they use standardized output formats. (Then we'll be able to view traces with the regular trace programs available for Windows and Linux.)
  • Write a small C logging library. Output should be compatible with RRDTool. (I'm not sure if this is in the scope of the RTEMS project.)

Notes

This page was written as part of the Google Code-In 2010 contest. Please see http://www.google-melange.com/gci/task/show/google/gci2010/rtems/t129018536044 for more information.

Last modified on Nov 23, 2010 at 2:46:47 AM Last modified on Nov 23, 2010, 2:46:47 AM