1. A computer-implemented method comprising: generating instrumentation data for software that is executing on a computer, the instrumentation data comprising all or a subset of input/output (I/O) network activity, software usage, error conditions, and processor utilization, the generating based at least in part on output from a tool that monitors the software while it is executing on the computer; writing the instrumentation data to a memory located on the computer; providing an analytics application with access to the instrumentation data, the writing and providing performed in real-time with respect to the generating; receiving a request from the analytics application for at least a subset of the instrumentation data; based on receiving the request, continuously transmitting the at least a subset of the instrumentation data to the analytics application; migrating on a periodic basis, a portion of the instrumentation data to a non-volatile memory device that is external to the computer; receiving a recommended action from the analytics application, the recommended action comprising one or both of sending a real-time alert and preventing a user from accessing at least a portion of the software; and performing the recommended action at the computer.