1. A method, implemented by a computing system programmed to perform the following, comprising: receiving, by an operating system of the computing system, a first request of a first application to monitor performance of a second application, the first request identifying a type of an event to monitor during execution of the second application; determining, by the operating system of the computing system, that the event is a software event; monitoring, by the operating system, the performance of the second application with respect to the type of the software event; updating, by the operating system, a counter associated with the type of the software event based on the monitoring; receiving, by the operating system, a second request of the first application for performance data associated with the type of the software event counter; and providing, by the operating system, the value of the counter to the first application.