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 model based application.