A monitoring method comprising: identifying a plurality of components (110, 120) of a distributed application including a first component associated with a first technology at a first computing device and a second component associated with a second technology at a second computing device, wherein the first technology is different from the second technology; identifying at a further computing device a specific software framework technology associated with a particular component of the plurality of components (110, 120); attaching a first interceptor to the particular component based on the identified technology and intercepting messages that are sent by or received by the particular component using the attached first interceptor, wherein said message relates to an invocation of a particular function at a particular component, wherein the particular function has a source operation and a target operation; in response to detecting a particular intercepted message: generating at least one potential work item based on the intercepted message and sending said at least one work item to said further computing device, wherein said work item at least includes instructions to store dependency information which indicates a dependency between the source operation and the target operation of the particular function; and determining, at said further computer device, whether to schedule the at least one potential work item for execution based on a predicted impact of the at least one potential work item on performance of the distributed application, wherein execution the at least one potential work item includes storing the dependency in a dependency cache and transferring subsequently said dependency to a storage location if said dependency has not previously been stored. identifying a plurality of components (110, 120) of a distributed application including a first component associated with a first technology at a first computing device and a second component associated with a second technology at a second computing device, wherein the first technology is different from the second technology; identifying at a further computing device a specific software framework technology associated with a particular component of the plurality of components (110, 120); attaching a first interceptor to the particular component based on the identified technology and intercepting messages that are sent by or received by the particular component using the attached first interceptor, wherein said message relates to an invocation of a particular function at a particular component, wherein the particular function has a source operation and a target operation; in response to detecting a particular intercepted message: generating at least one potential work item based on the intercepted message and sending said at least one work item to said further computing device, wherein said work item at least includes instructions to store dependency information which indicates a dependency between the source operation and the target operation of the particular function; and determining, at said further computer device, whether to schedule the at least one potential work item for execution based on a predicted impact of the at least one potential work item on performance of the distributed application, wherein execution the at least one potential work item includes storing the dependency in a dependency cache and transferring subsequently said dependency to a storage location if said dependency has not previously been stored. generating at least one potential work item based on the intercepted message and sending said at least one work item to said further computing device, wherein said work item at least includes instructions to store dependency information which indicates a dependency between the source operation and the target operation of the particular function; and determining, at said further computer device, whether to schedule the at least one potential work item for execution based on a predicted impact of the at least one potential work item on performance of the distributed application, wherein execution the at least one potential work item includes storing the dependency in a dependency cache and transferring subsequently said dependency to a storage location if said dependency has not previously been stored.