wiki:Projects/LoggingTools

Version 12 (modified by Aantn, on 11/23/10 at 00:41:52) (diff)

added rrdtool

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 should be able to work out of the box with RTEMS, or can be customized to read log files from your RTEMS application. Please note that many of the tools cannot run on RTEMS itself. You'll need to connect your RTEMS system to another computer, which can run the suggested programs for log analysis.

  • Tuning and Analysis Utilities (TAU) - TAU is a set of libraries and tools for profiling and analyzing applications. Events can be logged manually or automatically with Fortran, C++, C, Java, and Python. It provides a' variety of tools for analysis, visualization, and data-mining. TAU is the recommended tool for event logging and application profiling. Former QNX users will find that TAU is a viable alternative to QNX's Application Profiler.
  • Log2Timeline - Log2Timeline is a tool for converting log files to "timeline body files," which can be viewed with tools like Simile Timeline and Simile Timeplot. Log2Timeline is the recommended tool for creating pretty visualizations of log information. (This is probably not the right tool to use if you're dealing with large amounts of information.)
  • RRDTool - RRDTool is a library for writing custom monitoring tools. It can easily parse logs in the syslog format and create custom graphs with your data. RRDTool is highly recommended if you need to graph time series data. If you don't want to write any code, there are a multitude of RRDTool-based programs which can parse and graph your logs automatically.
  • 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/

Ideas for Future Improvements to RTEMS

TODO

Notes

This page is a work-in-progress. It is being 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.