1. A method for collecting data from heterogeneous devices by a centralized service, the method comprising: (a) receiving, via a first network by a centralized service from each of a first plurality of agents resident on a first plurality of heterogeneous devices of a first user, a first set of data about one of operation or performance of a first combination of software and hardware installed on the first plurality of heterogeneous devices; (b) receiving, via a second network by the centralized service from each of a second plurality of agents resident on a second plurality of heterogeneous devices of a second user, a second set of data about one of operation or performance of a second combination of software and hardware installed on the second plurality of heterogeneous devices; (c) correlating, by the centralized service, the first set of data of the first user to the second set of data of the second user; and (d) storing, by the centralized service, the correlated data to one or more cross-device databases.