When things go wrong in (production) deployments of OpenStack collecting debug data is a key first step in the process of triaging & ultimately resolving the problem. Projects like Nova has extensively used logging capabilities which produce a vast amount of data. This does not, however, enable an admin to obtain an accurate view on the current live state of the system. For example, what threads are running, what config parameters are in effect, and more.
The project oslo.reports hosts a general purpose error report generation framework, known as the "guru meditation report" (cf http://en.wikipedia.org/wiki/Guru_Meditation) to address the issues described above.
Models: These classes define structured data for a variety of interesting pieces of state. For example, stack traces, threads, config parameters, package version info, etc. They are capable of being serialized to XML / JSON or a plain text representation
Generators: These classes are used to populate the model classes with the current runtime state of the system
Views: views serialize models into say JSON, text or xml. There is also a predefined view that utilizes Jinja templating system.
There will be a number of standard models / generators available for all OpenStack services
StackTraceModel: a base class for any model which includes a stack trace ThreadModel: a class for information about a thread ExceptionModel: a class for information about a caught exception ConfigModel: a class for information about configuration file settings PackageModel: a class for information about vendor/product/version/package information
Each OpenStack project will have the ability to register further generator classes to provide custom project specific data.