Modern systems with their millions of lines of code are beyond deep comprehension of any developer. Often developers use program tracing and profiling to extract information, which helps them to understand the system's behaviour. Often monitors are then also deployed in the final system to check the proper functioning of the system at run time. Code instrumentation is a common method for extracting information from running programs. Current instrumentation methods are inapplicable for real-time applications, because these methods' current theory and practice concentrate on preserving logical correctness only. Real-time applications, however, must also meet timing requirements and thus instrumentation and, more generally, information extraction mechanisms must also preserve such properties. This talk first introduces the general problem of using software-based mechanisms for information extraction, and then discusses two approaches applicable to real-time systems: time-aware instrumentation and time-triggered runtime verification.