Service Activity Monitoring architecture diagram
On the left of the below diagram the Agent is described, on the right the Service Activity Monitoring Server. The Agent is used to collect all message data from both the service and client, and sends this data to the Service Activity Monitoring Server. This Server will receive events and store them into the database. A Web service is used as the interface between the Agent and the Server.
The FlowId Producer is a component used to generate the FlowId (a UUID) for the Message Header and pass it to subsequent messages. For each message exchange, the flow id is created if there is no flow id present. So, for the first client, the flow id is created for each service call. When you have an intermediary, this receives a service call, but also calls other services; then the flow id is carried from the incoming call to all calls that follow this call. Then, on the server side, the flow id is taken from the request and also set on the response.
Filters or handlers can be set up on both the Agent side and the Service Activity Monitoring Server side, and can subsequently be used to filter events and manipulate the event's content. There are some built-in filters and handlers (for example: StringContentFilter, PasswordHandler) and you can develop your own filters and handlers by extending the EventFilter or EventHandler Service Provider Interface (SPI).
For the structure of information on events, please see EVENTS Structure.