none
Distributed Chains

    Question

  • Hi All,

    Do I need to add Transactions to see the chaining in Distributed Chains? Or is it because the event has no related event to chain to automatically?

    Dave

    Thursday, September 08, 2011 3:46 AM

Answers

  • Technically if you monitored an app and it has a call to another monitored app as a resource and both events were reported during this transaction becuase both violated the threshold - you should see it as a Single Transaction chain on the Distributed chains tab. It surely depends on the parameters in both calls to be able to chain them, but they should be ok usually. Note that chaining will work well for the predefined relations like Client->App->SQL call or App->WCF, App->Service and may not work for some custom calls.

    If your app called a resource app and sometime it (resource app) violates threshold, sometime not - you should notice this chain in Multi-Transaction chains on that tab/dashboard if the time period between those calls fits into the window for chaining (do not remember the exact interval here).

    Finally, if main app violates and event was sent but resource app does not violate and events was not send for it - chaining will only show the main call on the tab because it does not know anything about the second part if it was ok.

    So, It's possible that you had not events for both apps at the same/close time.

    P.S. I could be wrong about the interval logic but I think it worked that way in the past.


    Dmitry Matveev
    Thursday, September 08, 2011 5:35 PM

All replies

  • It should happen automatically, as new events flow in they are matched with each other.
    Thursday, September 08, 2011 4:17 PM
  • Technically if you monitored an app and it has a call to another monitored app as a resource and both events were reported during this transaction becuase both violated the threshold - you should see it as a Single Transaction chain on the Distributed chains tab. It surely depends on the parameters in both calls to be able to chain them, but they should be ok usually. Note that chaining will work well for the predefined relations like Client->App->SQL call or App->WCF, App->Service and may not work for some custom calls.

    If your app called a resource app and sometime it (resource app) violates threshold, sometime not - you should notice this chain in Multi-Transaction chains on that tab/dashboard if the time period between those calls fits into the window for chaining (do not remember the exact interval here).

    Finally, if main app violates and event was sent but resource app does not violate and events was not send for it - chaining will only show the main call on the tab because it does not know anything about the second part if it was ok.

    So, It's possible that you had not events for both apps at the same/close time.

    P.S. I could be wrong about the interval logic but I think it worked that way in the past.


    Dmitry Matveev
    Thursday, September 08, 2011 5:35 PM
  • Hi,

    Just in addition to Dmitry's post. Chaining logic is hardcoded on SEViewer side, it cannot be modified within, for example, configuration. There two different types of chaining: single and multiple.

    The single is strong one used for appropriate events and based on client and server side methods names, lists with sorted parameters, "performance"/"exception" constant, URL, time events occurred,.. - so it represents strongly defined automatic chaining for exact currently opened event. In single chaining currently viewed event is marked with blue background.

    The multiple type is less strict and concerned to request type of opened event rather than to the current event itself (as the foundation of current logic methods names and "performance"/"exception" constant are used). It represents mostly and in overall  what other requests types are recognized as related inside one  transaction with the currently opened request. The pairs of methods names on the server and client sides are hardcoded in SEViewer handlers.

    Also there are some kinds of limitations depending on application types which events we're going to chain: for example WCF REST events aren't chained (as the client side event doesn’t contain expected WCF client side call in stack), WCF events in Diagnostic mode aren't chained too by design, etc...



    Igor Savchenko, VIAcode Consulting LLC (http://www.viacode.com/solutions)

    Thursday, March 15, 2012 11:14 AM