Accounting injectors can verify account status, log the information required for payment, and even cause the appropriate billing transactions to begin. All this can be done independent of the original application. However, accounting injectors cannot account with respect to the interior activities of an application. That is, an accounting injector can charge for use of a database per query, by complexity of the query, by the number of records returned by the query or even by the amount of time it took to process the query. But it can't charge by the number of records accessed in the processing the query.
Failure analysis is a primary activity of programmers and a major concern of administrators.
Trace injectors can report on calls and returned values. Heartbeat injectors can verify connectivity and report its demise. These things once again are the appropriate-level tools for examining behavior between components, but not within components. Configuration injectors can check and update component configurations. Properly endowed injectors can even dynamically update components.