1. A method performed by a computing device to dynamically scale data collection and analysis associated with an application executing on the computing device, the method comprising: performing data collection to collect data regarding an activity, a performance, or a state of the application executing on the computing device; analyzing the collected data to generate a report regarding the activity, the performance, or the state of the application executing on the computing device; transmitting the generated report to a computing service hosted on a remote server via a computer network; and dynamically scaling the data collection, including: comparing one or more available resources of the computing device to one or more criteria received from the computing service for scaling the data collection; and based on the comparison, performing one or more of: allocating additional resources of the computing device to the data collection; de-allocating at least one of the one or more resources of the computing device from the data collection; enabling a feature of performing the data collection; or disabling another feature of performing the data collection.