Monitoring distributed applications
First Claim
1. At a computer system, a method for monitoring a model based distributed application, the method comprising:
- an act of accessing a declarative application model describing an application intent, the declarative application model indicating events that are to be emitted from applications deployed in accordance with the application intent;
an act of deploying an application in accordance with the declarative application model;
an act of accessing a declarative observation model, the declarative observation model describing how emitted events, received from an application deployed in accordance with the application intent, are to be aggregated and processed to produce relevant operational data for the application;
an act of compiling the declarative application model and the declarative observation model into an event flow graph for monitoring the behavior of the application, the event flow graph including connected event streams and event operators indicating how to process received events to create operational data for the deployed application;
an act of activating an application event flow based on the event flow graph, the application event flow for receiving and processing emitted events associated with the application to create operational data for the deployed application;
an act of receiving an event associated with the deployed application;
an act of processing the received event in accordance with the activated application event flow to create operational data for the deployed application; and
an act of storing the operational data for use in making subsequent decisions related to the behavior of the deployed application.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention extends to methods, systems, and computer program products for monitoring distributed applications. Declarative application models are used. Operational data for a deployed application can be compared to an application intent expressed in a corresponding declarative application to provide more effective monitoring of application behavior. Application components can subscribe to an event fabric to receive configurations that indicate what events the application is to emit (i.e., publish into the event fabric) for monitoring. Thus, applications essentially subscribe to produce information (as opposed to subscribing to receive information). Monitoring can be dynamically adjusted in response to environment changes.
218 Citations
18 Claims
-
1. At a computer system, a method for monitoring a model based distributed application, the method comprising:
-
an act of accessing a declarative application model describing an application intent, the declarative application model indicating events that are to be emitted from applications deployed in accordance with the application intent; an act of deploying an application in accordance with the declarative application model; an act of accessing a declarative observation model, the declarative observation model describing how emitted events, received from an application deployed in accordance with the application intent, are to be aggregated and processed to produce relevant operational data for the application; an act of compiling the declarative application model and the declarative observation model into an event flow graph for monitoring the behavior of the application, the event flow graph including connected event streams and event operators indicating how to process received events to create operational data for the deployed application; an act of activating an application event flow based on the event flow graph, the application event flow for receiving and processing emitted events associated with the application to create operational data for the deployed application; an act of receiving an event associated with the deployed application; an act of processing the received event in accordance with the activated application event flow to create operational data for the deployed application; and an act of storing the operational data for use in making subsequent decisions related to the behavior of the deployed application. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer program product for use at a computer system, the computer program product for implementing a method for monitoring a model based distributed application, the computer program product comprising one or more computer readable storage devices having stored thereon computer-executable instructions that, when executed at a processor, cause the computer system to perform the method, including the following:
-
access a declarative application model describing an application intent, the declarative application model indicating events that are to be emitted from applications deployed in accordance with the application intent; access a declarative observation model, the declarative observation model describing how emitted events, received from applications deployed in accordance with the application intent, are to be aggregated and processed to produce relevant operational data for applications deployed in accordance with the application intent; compile the declarative application model and the declarative observation model into an event flow graph for monitoring the behavior of applications deployed in accordance with the application intent, the event flow graph including connected event streams and event operators indicating how to process received events to create the relevant operational data; activate an application event flow based on the event flow graph, the application event flow for receiving and processing emitted events associated with applications deployed in accordance with the application intent to create the relevant operational data; receive an event associated with a deployed application, the deployed application having been deployed in accordance with the declarative application model; process the received event in accordance with the activated application event flow to create operational data for the deployed application; and store the operational data for use in making subsequent decisions related to the behavior of the deployed application. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A system, the system comprising:
-
one or more processors; system memory; and a monitoring module for monitoring deployed applications, monitoring including; accessing a declarative application model describing an application intent, the declarative application model indicating events that are to be emitted from applications deployed in accordance with the application intent; accessing a declarative observation model, the declarative observation model describing how emitted events, received from applications deployed in accordance with the application intent, are to be aggregated and processed to produce relevant operational data for applications deployed in accordance with the application intent; compiling the declarative application model and the declarative observation model into an event flow graph for monitoring the behavior of applications deployed in accordance with the application intent, the event flow graph including connected event streams and event operators indicating how to process received events to create the relevant operational data; activating an application event flow based on the event flow graph, the application event flow for receiving and processing emitted events associated with applications deployed in accordance with the application intent to create the relevant operational data; receiving an event associated with a deployed application, the deployed application having been deployed in accordance with the declarative application model; processing the received event in accordance with the activated application event flow to create operational data for the deployed application; and storing the operational data for use in making subsequent decisions related to the behavior of the deployed application. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification