This project has moved and is read-only. For the latest updates, please go here.

measurement pipes - connectionless?

Mar 29, 2011 at 2:24 PM
Edited Mar 29, 2011 at 2:25 PM

After spending some time with the TSF I'm not clear on how the measurements are passed around the system from one adapter to the other.

I can see how input adapters queue them, and the events that get called that pass them into Action adapters etc... But is this an "all-or-nothing" mechanism?

That is, do all input measurements queued get sent directly to all action and output adapters, and then it is the job of the receiving adapter to work out whether it should process them?


Is there a way to subscribe or connect to the output of one adapter only, so that the new measurement event will be called only when that particular adapter has passed something along.

The latter would seem to be more efficient, although I'm not sure of how to implement it


Mar 29, 2011 at 8:39 PM
Edited Mar 29, 2011 at 8:43 PM

In the ServicesHostBase.cs you will find an event handler for new received measurements called "NewMeasurementsHandler". 

This is the handler for both the InputAdapterCollection.NewMeasurements event and the ActionAdapterCollection.NewMeasurements event (i.e., this handler method gets called when new measurements are generated from any input or action adapters).

All measurements are "in-memory", so all that happens is the reference to the in-memory collection of measurements gets passed to all action adapters and all output adapters.

Effectively this means all action adapters and all output adapters have "access" to all measurements that are generated in the system.

Each adapter inherits filtering mechanisms to ignore all but the desired set of data (see filter syntax for an idea).

Output adapters have an additional high-level filter than can be used to segment measurements for archiving (for example, Statistics output adapter filters for STAT measurements).