1. A method of configurably profiling data comprising the steps of: receiving data from an input data stream; pre-processing the received data by performing configurable first calculations thereon to create data relating to profiling features; summarising the profiling features data over a length of time by performing configurable second calculations thereon to create summarised data relating to profiled features; and post processing the profiled features data by performing configurable third calculations thereon to create a profiled output data stream for further processing.