1. A method for processing data generated by instrumented software, the method comprising: receiving, from one or more external systems, information identifying a plurality of data streams, each data stream generated by an instance of instrumented software executing on the one or more external systems, each data stream comprising tuples, each tuple including values of a first set of attributes of the data stream; receiving metadata describing each of the plurality of data streams, the metadata for a data stream including a second set of attributes, each attribute of the second set distinct from the first set; receiving a specification of an expression, the expression aggregating data across the plurality of data streams, the expression based on at least an attribute of the first set and an attribute of the second set; and evaluating the expression using the data streams over a plurality of time intervals to generate an output data stream, the evaluation of the expression comprising, for each time interval: receiving one or more tuples from the plurality of data streams, each tuple comprising a data value associated with a point in time, determining the value of the expression based on the data values of the received tuples, and providing the value of the expression for the output data stream.