Problem Statement: User logs into citrix and does some activity and one of the applications the user has been using slows down or completely stops. User needs to know how would dcrum/NAM help in finding out where the problem occurred.
Env: Citrix URL->Netscaler (one SPAN is here)->Xenapp servers(2nd SPAN is here).
How do we isolate and find out where in the environment could have been the issue. Any specific reports to look on or configurations to be made like creation of tiers per SPAN. Kindly suggest.
Solved! Go to Solution.
First of all, you also need to monitor behind XenApp servers, to see how the app servers respond to the app client (which is the XenApp server from the app server perspective).
With those three sniffing points you will see what is the connection quality between client to NetScaler, then NS to XA, then XA to the app server. These would be the three tiers that you can define to keep your reports clean. But tier definition is just an icing on the cake.
The important entities are software services that represent NS front, XA front and app server front. For each of them, you need to watch "standard" metrics of availability, performance and usage. Unfortunately in Citrix environment there is no simple, direct way of tracing transactions from client to the app server - not in DC RUM, not in any other APM solution. Monitoring Citrix is like sewing a patchwork quilt (parallel coined by Gartner, not me:-).
Then watch whether clients have connections steady to XA - are there TCP errors? Aborts? Resets? Citrix ICA errors? session reliability handoffs occurring while one shouldn't expect them (e.g. clients don't move anywhere, but handoffs occur). if so - dig deeper into this segment: is there a firewall in between? How is it configured? At this stage - since you confirmed there is network connectivity issue - you may need to switch to analyzing packet captures, captured with Smart Packet Capture feature of the DC RUM, to provide a proof to the network team that sessions are dropped.
If this is not the case, move to the next segment and check the same for XA tier. Then move to the app server tier and check client activity with the app (client = XA server, which acts on behalf of the user). Does the application respond correctly? What app is that, in the first place? What decode would you use to monitor it?
Last missing piece is app GUI behavior on the client (i.e. XA server). For this one, DC RUM has no universal monitoring solution. If app GUI is the browser, then the app server may be instrumented with the Dynatrace RUM agent and client experience could be measured this way. If app client is a thick GUI app, then some 3rd-party approaches may be required, which depends on the app type.
Hope this helps.