SlideShare a Scribd company logo
1 of 46
AppDynamics Custom
Transaction Correlation
AppDynamics Version 4.2
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 2
Notice
The information and materials included in this presentation (collectively,
the “Materials”) are the confidential and proprietary information of
AppDynamics, Inc. (the “Company”). No part of the Materials may be
reproduced, distributed, communicated or displayed in any form or by any
means, or used to make any derivative work, without prior written
permission from the Company. © 2016 AppDynamics, Inc. All rights
reserved.
All third party trademarks, including names, logos and brands, referenced
by the Company in this presentation are property of their respective
owners. All references to third party trademarks are for identification
purposes only and shall be considered nominative fair use under
trademark law.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 3
Objectives
Course Labs
Understand AppDynamics
Transaction Correlation
Facilitate discovery of missing
components in flow maps
Determining Entry and Exit Points
Configuring AppDynamics
for custom correlation
Review Transactions and Flow Maps
Finding Entry Points
Research relationship between
Entry & Exit Points
Configure Custom Correlation
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 4
Topic 1 What Is AppDynamics Transaction Correlation?
A.Transaction Correlation Basics
B. Exit Point Issues
C.Entry Point Issues
Topic 2 What Is AppDynamics Custom Correlation?
A. Custom Correlation Basics
B. Exit Point Configuration
C.Entry Point Configuration
AppDynamics Custom Transaction Correlation
Agenda
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 5
• Detected transactions rely on AppServer
Agent decorating requests with GUID
• GUID = Global Unique Identifier
• Same GUID assigned by Agenton each
tier involved in the requestchain
• GUIDs posted to Controller,which
reconciles GUID-labelled events
• Controller derives Business Transaction
flow map from comparing individual
requestchains
Transaction Correlation Basics
• Correlation relies on ability ofAgents
to decorate and read GUIDs
• Automatic correlation breaks down ifGUID
cannotbe set, or cannotbe read
What works and doesn’t work
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 6
Transaction Correlation Basics
AppServer Agent Behavior
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 7
At the pointin code where call out to other componenthappens,
Appserver Agenttries to decorate the outbound requestwith the GUID.
This is during what’s called the Exit Point – adding the GUID relies
on Agent being aware ofthe code as an Exit Point.
On any monitored component,the ability to read the GUID embedded
in a requestrelies on Agentability to understand the technology.
Entry Point is AppDynamics term for a pointin the code which
processes an incoming requestthatthe Agentsuccessfully notices.
Setting & Reading The GUID
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 8
AppDynamics Custom Transaction Correlation
Topic 1 What Is AppDynamics Transaction Correlation?
A. Transaction Correlation Basics
B.Exit Point Issues
C.Entry Point Issues
Topic 2 What Is AppDynamics Custom Correlation?
A. Custom Correlation Basics
B. Exit Point Configuration
C.Entry Point Configuration
Agenda
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 9
Exit Point Issues
Tiers missing from Flow Maps
Inability to successfully detect
an Exit Point means GUID is not set.
From AppDynamics perspective,
the Business Transaction does not
continue any further!
Looking at the flow map, this may be
why Tiers appear to be missing!
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 10
AppDynamics Custom Transaction Correlation
Topic 1 What Is AppDynamics Transaction Correlation?
A. Transaction Correlation Basics
B. Exit Point Issues
C.Entry Point Issues
Topic 2 What Is AppDynamics Custom Correlation?
A. Custom Correlation Basics
B. Exit Point Configuration
C.Entry Point Configuration
Agenda
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 11
Entry Point Issues
Tier appears as Back End
Inability to successfully detect an
Entry Point will mean GUID is not read
The Business Transaction will notinclude
this Tier in its flow map (though may show
up in the flow map as a Back End)
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 12
Is Custom Correlation Necessary?
Various factors can also prevent correlation
The absence of the expected Tier on a Transaction Flow
Map could be due to an Agentissue
Rule outAgent as the cause of the issue by checking:
• Agent installed and configured correctly?
• Agent up and running?
• Does the Tier show up in the Flow Map
of other Transactions?
Lab 1
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 13
Review Movieztream & Login.htm Transaction
URL <<your IP address>>/controller
Username admin
Password admin
Scenario
While AppDynamics managed to detectthe
/movieztream_ui/login.htm transaction withoutany
difficulty, it appears not to be aware that when users
log in to Movieztream there is a call made to the
ProfileStore Tier, as this is not showing on the flow
map.
This exercise is designed to familiarize the student
with the application,flow maps and transactions.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 14
How BTs Are Tracked
AppDynamics successfully automatically correlates transactions
where various technologies are employed
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 15
Correlation In HTTP
Adding Custom Headers to carry
transaction information is safe if
•You don’tuse any well-understood
header names like ‘Accept-Language’
•The content of the header value
is ‘HTTP-safe’
Method | URL | Version Request Line
Header Field-Name Header Value
Header Field-Name Header Value
Headers
•Extensible by definition
•Does not Contain
Application Data
Body Request Body
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 16
Correlation In HTTP
AppDynamics Byte Code Interceptor
on The HTTP transport layer – adds
a safe header which uniquely identifies
this transaction.The controller reconstructs
the flow.
AppDynamics Byte Code Interceptor
on the servlet– reads the header with
the information.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 17
Correlation In JMS
Adding Custom Message
Properties to carry transaction
information is safe if
•You don’toverwrite any existing
property names and choose
a unique name
•The content of the property
value is valid content
JMSPriority…
Property Name Property Value
Property Name Property Value
Message Properties
•Extensible by definition
Body Message Body
JMSDestination
Headers
•Not Extensible
•Predefined
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 18
Correlation In JMS
AppDynamics Byte Code Interceptor on The JMS
Message sender – adds a safe header which uniquely
identifies this transaction.
AppDynamics Byte Code Interceptor on the Message
Receiver– reads the header with the information.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 19
AppDynamics Custom Transaction Correlation
Topic 1 What Is AppDynamics Transaction Correlation?
A. Transaction Correlation Basics
B. Exit Point Issues
C.Entry Point Issues
Topic 2 What Is AppDynamics Custom Correlation?
A.Custom Correlation Basics
B. Exit Point Configuration
C.Entry Point Configuration
Agenda
Exploring Untracked Functionality
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 20
1
ConfiguringAppDynamics to reveal unmonitored running code
1. How do we ‘see’
what we can’t ‘see’?
2. Appdynamics Agents
can reveal method calls
being executed which
are outside of any tracked
Business Transactions
3. This provides us with
potential Entry Points
Activated by setting a
specific Agent’s find-
entry-points property
to true
2
3
Find Entry Points Output
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 21
Where to view unmonitored running code that AppDynamics has detected
Activity is recorded in
BusinessTransactions
log file
Retrieve either through
Controller or from logs
directory on server
As the property adds
a small overhead to Agent
performance, recommended
to disable once done with
investigations
[main] 07 Nov 2016 17:10:51,565 INFO - ############################################################
[main] 07 Nov 2016 17:10:51,565 INFO - Logging request stack for Thread main
>>com.ecetera.appdynamics.movieztream.service.util.ProfileServiceThread.<init>(ProfileReceiver.java
[main] 07 Nov 2016 17:10:51,565 INFO - 0. POJO com.ecetera.appdynamics.movieztream.service.util.Pro
com.ecetera.appdynamics.movieztream.service.util.ProfileServiceThread <init>

[main] 07 Nov 2016 17:10:51,565 INFO -END request stack for Thread main
[main] 07 Nov 2016 17:10:51,
[main] 07 Nov 2016 17:10:53,837 INFO - ############################################################
>>com.ecetera.appdynamics.movieztream.service.util.ProfileServiceThread.<init>(ProfileReceiver.java
[main] 07 Nov 2016 17:10:53,837 INFO - 0. POJO com.ecetera.appdynamics.movieztream.service.util.Pro
[main] 07 Nov 2016 17:10:53,837 INFO - 1. POJO com.ecetera.appdynamics.movieztream.service.util.Pro
[main] 07 Nov 2016 17:10:53,837 INFO - ############################################################
#################################################################

[main] 07 Nov 2016 17:10:54,102 INFO - Logging request stack for Thread main
>>com.ecetera.appdynamics.movieztream.service.util.ProfileServiceThread.<init>(ProfileReceiver.java
ain] 07 Nov 2016 17:10:54,102 INFO - 0. POJO com.ecetera.appdynamics.movieztream.service.util.Profi
[main] 07 Nov 2016 17:10:54,103 INFO - 1. POJO com.ecetera.appdynamics.movieztream.service.util.Pro
main
[main] 07 Nov 2016 17:10:54,103 INFO - ########################################################
#################################################################

[main] 07 Nov 2016 17:10:55,449 INFO - Logging request stack for Thread main
>>com.ecetera.appdynamics.movieztream.service.util.ProfileServiceThread.<init>(ProfileReceiver.java
[main] 07 Nov 2016 17:10:55,449 INFO - 0. POJO com.ecetera.appdynamics.movieztream.service.util.Pro
[main] 07 Nov 2016 17:10:55,449 INFO - 1. POJO com.ecetera.appdynamics.movieztream.service.util.Pro
Lab 2
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 22
Finding Entry Points
Scenario
While AppDynamics managed to detectthe
/movieztream_ui/login.htm transaction without
any difficulty, it appears notto be aware that when
users log in to Movieztream there is a call made
to the ProfileStore Tier, as this is not showing on
the flow map.
This exercise is designed to configure AppDynamics
to discover potential missing flow map components.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 23
Custom Correlation
Custom Correlation is Agent
level configuration
Achieved by adding specific
definitions to the file custom-
activity-correlation.xml
under Agentconf directory
No source code changes,
totally non-invasive approach
Mistakes in the XML will result
in correlation failure or simply
unexpected results in transaction
Flow Map – check agentlog file
for details
<activities>
<producer>
<!-- This instrumentation element defines a custom exit point. -->
<instrumentation>
<class-name>com.ecetera.appdynamics.movieztream.ui.reporting.ProfileFinder</class-name>
<method-name>sendProfile</method-name>
<match-type>MATCHES_CLASS</match-type>
</instrumentation>
<!-- This identifier element specifies how to name the custom exit point. This is similar to how we name custom exit points from the UI -->
<identifiers>
<identifier name="ProfileFinder">
<data-gatherer-type>INVOKED</data-gatherer-type>
<getter-chain>this</getter-chain>
<user-defined-name>ProfileFinder</user-defined-name>
<transformer-type>USER_DEFINED_NAME</transformer-type>
</identifier>
</identifiers>
<!-- The following correlation element specifies where and how to add the correlation metadata -->
<correlation>
<!-- This instrumentation element specifies how to get hold of the outgoing payload -->
<instrumentation>
<class-name>com.ecetera.appdynamics.movieztream.ui.reporting.ProfileFinder</class-name>
<method-name>sendProfile</method-name>
<match-type>MATCHES_CLASS</match-type>
</instrumentation>
<!-- This payload-pointer specifies where to grab the payload at the instrumentation point defined above -->
<payload-pointer>
<data-gatherer-type>POSITION</data-gatherer-type>
<position>0</position>
<getter-chain>this</getter-chain>
<transformer-type>GETTER_METHODS</transformer-type>
</payload-pointer>
<!-- This payload-operation defines how to add the correlation metadata to the payload -->
<payload-operation>
<access-type>method</access-type>
<access-method>put</access-method>
<param-types>java.lang.Object, java.lang.Object</param-types>
</payload-operation>
</correlation>
</producer>
<consumer identify-transaction="true">
<!-- This is where the correlation metadata is read and continuing transaction is begun -->
<instrumentation>
<class-name>com.ecetera.appdynamics.movieztream.service.util.ProfileServiceThread</class-name>
<method-name>receiveProfile</method-name>
<match-type>MATCHES_CLASS</match-type>
</instrumentation>
<correlation>
<!-- This is how we get the payload bearing our correlation metadata -->
<payload-pointer>
<data-gatherer-type>POSITION</data-gatherer-type>
<position>0</position>
<getter-chain>this</getter-chain>
<transformer-type>GETTER_METHODS</transformer-type>
</payload-pointer>
<!-- This is how we extract correlation metadata from the payload -->
<payload-operation>
<access-type>method</access-type>
<access-method>put</access-method>
<param-types>java.lang.Object</param-types>
</payload-operation>
</correlation>
</consumer>
</activities>
Topology of the XML
Root elementis <activities>
multiple <producer>
and <consumer> elements
are allowed
<producer> is the Exit Point
<consumer> is the Entry Point
<correlation> defines
where to get the GUID and how
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 24
<activities>
<producer>
<correlation>
.......
</correlation>
</producer>
<consumer>
<correlation>
.......
</correlation>
</consumer>
</activities>
What Custom Correlation Requires
Exit Point detail
Classpath,method
Exit Point payload details
The code is sending request
to other component.Can we
append the GUID somehow?
Entry Point details
Classpath,method
Entry Point payload details
The code is accepting the
request. Can we extract
the GUID from it?
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 25
Investigating details for Exit and Entry Points
<activities>
<producer>
<!-- This instrumentation element defines a custom exit point. -->
<instrumentation>
<class-name>com.ecetera.appdynamics.movieztream.ui.reporting.ProfileFinder</class-name>
<method-name>sendProfile</method-name>
<match-type>MATCHES_CLASS</match-type>
</instrumentation>
<!-- This identifier element specifies how to name the custom exit point. This is similar to how we name custom exit points from the UI -->
<identifiers>
<identifier name="ProfileFinder">
<data-gatherer-type>INVOKED</data-gatherer-type>
<getter-chain>this</getter-chain>
<user-defined-name>ProfileFinder</user-defined-name>
<transformer-type>USER_DEFINED_NAME</transformer-type>
</identifier>
</identifiers>
<!-- The following correlation element specifies where and how to add the correlation metadata -->
<correlation>
<!-- This instrumentation element specifies how to get hold of the outgoing payload -->
<instrumentation>
<class-name>com.ecetera.appdynamics.movieztream.ui.reporting.ProfileFinder</class-name>
<method-name>sendProfile</method-name>
<match-type>MATCHES_CLASS</match-type>
</instrumentation>
<!-- This payload-pointer specifies where to grab the payload at the instrumentation point defined above -->
<payload-pointer>
<data-gatherer-type>POSITION</data-gatherer-type>
<position>0</position>
<getter-chain>this</getter-chain>
<transformer-type>GETTER_METHODS</transformer-type>
</payload-pointer>
<!-- This payload-operation defines how to add the correlation metadata to the payload -->
<payload-operation>
<access-type>method</access-type>
<access-method>put</access-method>
<param-types>java.lang.Object, java.lang.Object</param-types>
</payload-operation>
</correlation>
</producer>
<consumer identify-transaction="true">
<!-- This is where the correlation metadata is read and continuing transaction is begun -->
<instrumentation>
<class-name>com.ecetera.appdynamics.movieztream.service.util.ProfileServiceThread</class-name>
<method-name>receiveProfile</method-name>
<match-type>MATCHES_CLASS</match-type>
</instrumentation>
<correlation>
<!-- This is how we get the payload bearing our correlation metadata -->
<payload-pointer>
<data-gatherer-type>POSITION</data-gatherer-type>
<position>0</position>
<getter-chain>this</getter-chain>
<transformer-type>GETTER_METHODS</transformer-type>
</payload-pointer>
<!-- This is how we extract correlation metadata from the payload -->
<payload-operation>
<access-type>method</access-type>
<access-method>put</access-method>
<param-types>java.lang.Object</param-types>
</payload-operation>
</correlation>
</consumer>
</activities>
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 26
1
What Custom Correlation Requires
Assembling the Details
A. At this stage you should try to check the source code.
B. Although in many cases it will be possible to identify
Exit and Entry Points, the payload may not be
so easy, e.g.
C. Payload on Exit Point cannot be modified (technical
limitation)
D. Payload on Exit Point cannot be modified due
to security reasons
E. Payload on Entry Point cannot be read (not in scope)
F. Payload on Entry Point cannot be read
(technical limitation)
G. Without ability to set and get the payload,
Custom Correlation will not work!
A
B
C
D
Lab 3
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 27
Research Entry and Exit Point Details
Scenario
Reviewing source code is frequently the best option
if you want to understand whatthe functionality is
actually doing,in the event that transaction correlation
does not seem to be working automatically.
This exercise is designed to show how and where to
review code for configuring custom correlation entry
and exit points.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY
2
8
Sample Exit Points
Is this acceptable Exit Point code?
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 29
Sample Exit Points
Is this acceptable Exit Point code?
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 30
<activities>
<producer>
<consumer>
<identifiers>
<correlation>
<validator-config>
<naming-config>
<excludes>, <includes>
Defining Custom Correlation XML
Key XML Tags overview
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 31
Attributes available to support various
scenarios, e.g.
• Prioritization of multiple Producers
that potentially detect same Exit Point
• If resolution to a Tier is NOT desired
for the defined Exit Point
• Ability to instrument multiple payloads
based on there being
a split at the Exit Point
• Ability to instrument threaded activities
and asynchronous queues
Must define code we want to instrument
based on knowing at least one of the
following
• Class name, interface, superclass,
class annotation
Must define method name, and
parameters of method signature
if method is overloaded
Producer
Instrumentation
<activities>
<producer>
<!--This instrumentation element defines a custom exit point.-->
<instrumentation>
<class-name>
com.ecetera.appdynamics.movieztream.ui.reporting.ProfileFinder
</class-name>
<method-name>sendProfile</method-name>
<match-type>MATCHES_CLASS</match-type>
</instrumentation>
</producer>
</activities>
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 32
Specify identification and
registration of Custom Exit Point
Naming can be user-defined
literal,or derived based on
current object,method return
object, or method parameter
Producer
Identifiers
<activities>
<producer>
<!-- This identifier element specifies how to name the custom exit
point. This is similar to how we name custom exit points from the UI -->
<identifiers>
<identifier name="ProfileFinder">
<data-gatherer-type>INVOKED</data-gatherer-type>
<getter-chain>this</getter-chain>
<user-defined-name>ProfileFinder</user-defined-name>
<transformer-type>USER_DEFINED_NAME</transformer-type>
</identifier>
</identifiers>
</producer>
</activities>
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 33
May be necessary to add GUID
to single payload objector all
objects in a collection (in split
exit scenario)
Can have GUID applied at
a differentmethod from that
of the Exit Point
Specify <payload-pointer>
to indicate precise payload object
we wantto decorate with GUID
Specify <payload-operation>
to declare how to decorate the
payload objectwith GUID
Producer
Correlation
<activities>
<producer>
<!-- The following correlation element specifies where and how to add the correlation
metadata -->
<correlation>
<!-- This instrumentation element specifies how to get hold of the outgoing payload -->
<instrumentation>
<class-
name>com.ecetera.appdynamics.movieztream.ui.reporting.ProfileFinder</class-name>
<method-name>sendProfile</method-name>
<match-type>MATCHES_CLASS</match-type>
</instrumentation>
<!-- This payload-pointer specifies where to grab the payload at the
instrumentation point defined above -->
<payload-pointer>
<data-gatherer-type>POSITION</data-gatherer-type>
<position>0</position>
<getter-chain>this</getter-chain>
<transformer-type>GETTER_METHODS</transformer-type>
</payload-pointer>
<!-- This payload-operation defines how to add the correlation metadata to the payload -->
<payload-operation>
<access-type>method</access-type>
<access-method>put</access-method>
<param-types>java.lang.Object, java.lang.Object</param-types>
</payload-operation>
</correlation>
</producer>
</activities>
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 34
Consumer has attributes to control
scenarios as follows
• Transaction should be instrumentedon
basis of the first iteration of a loop in
the code, terminating whencode hits
next iteration
• Identifiers permit the specification of
more than 1 Custom Exit Point based
on a single particular method of a class
• Demarcation of activity to differentiate
between identification of Entry Point
and separate block of codelater on
where correlation occurs
Must define code we want to
instrument based on knowing
at least one of the following
• Class name, interface, superclass,
class annotation
Must define method name, and
parameters of method signature
if method is overloaded
Consumer
Instrumentation
<activities>
<consumer identify-transaction="true">
<!-- This is where the correlation metadata is read and
continuing transaction is begun -->
<instrumentation>
<class-name>
com.ecetera.appdynamics.movieztream.service.util.ProfileServiceThread</c
lass-name>
<method-name>receiveProfile</method-name>
<match-type>MATCHES_CLASS</match-type>
</instrumentation>
</consumer>
</activities>
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 35
Can read GUID from a
downstream method different
from what specified at Consumer
Instrumentation level
Specify <payload-pointer>
to indicate precise payload object
we wantto read GUID from
Specify <payload-operation>
to declare how to read the GUID
from the payload object
Consumer
Correlation
<activities>
<consumer identify-transaction="true">
<correlation>
<!-- This is how we get the payload bearing our correlation
metadata -->
<payload-pointer>
<data-gatherer-type>POSITION</data-gatherer-type>
<position>0</position>
<getter-chain>this</getter-chain>
<transformer-type>GETTER_METHODS</transformer-type>
</payload-pointer>
<!-- This is how we extract correlation metadata from the
payload -->
<payload-operation>
<access-type>method</access-type>
<access-method>put</access-method>
<param-types>java.lang.Object</param-types>
</payload-operation>
</correlation>
</consumer>
</activities>
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 36
The Naming Config
Applicable when correlating
asynchronous activities,e.g.
Thread/Callable/Runnable
or Queue-based
Provides a means to define
re-usable instrumentation
identification criteria
<activities>
<!-- naming rules config -->
<naming-config>
<naming-rule>
<data-gatherer-config>
<name>FQCN</name>
<data-gatherer-type>INVOKED</data-gatherer-type>
<getter-chain>getClass, getName</getter-chain>
<transformer-type>GETTER_METHODS</transformer-type>
</data-gatherer-config>
</naming-rule>
</naming-config>
</activities>
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 37
The Validator Config
Ability to filter correlation based
on checking for data values
Applicable on Producer
or Consumer
Allows you to perform
custom correlation ONLY
when specific value present,
e.g. Customer Type == GOLD
<activities>
<validator-config>
<validator match
type="STARTSWITH|ENDSWITH|CONTAINS|EQUALS|REGEX|INLIST|NOTEMPTY”
class-match
type="INHERITS_FROM_CLASS|IMPLEMENTS_INTERFACE|MATCHES_CLASS|HAS_CLASS_ANNOTATI
ON" match-pattern="">
<data-match-config>
<data-gatherer-type>
<!-- INVOKED|RETURN|POSITION -->
</data-gatherer-type>
<position>
<!--POSITION NUMBER. Only used in case POSITION data-gatherer-type is chosen-->
</position>
<getter-chain>
<!-- comma separated list of method names EX: getClass, getName -->
</getter-chain>
<transformer-type>
<!-- TO_STRING|SIMPLE_CLASS_NAME|FIELD_NAME|USER_DEFINED_NAME|GETTER_METHODS -
->
</transformer-type>
</data-match-config>
</validator>
</validator-config>
</activities>
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 38
When instrumentation
configuration setup to match
multiple possible classes (e.g.
interface/superclass/annotation
based matching),you can
specifically exclude groups
or individual classes from
being matched.
Include back in any sub-groups
or specific classes which
have been lost through
the exclude rules.
Defines naming rules for
Consumer instrumentation
points to aid in distinguishing
individual processes.
Excludes & Includes
<activities>
<!-- naming rules config -->
<naming-config>
<naming-rule>
<data-gatherer-config>
<name>FQCN</name>
<data-gatherer-type>INVOKED</data-gatherer-type>
<getter-chain>getClass, getName</getter-chain>
<transformer-type>GETTER_METHODS</transformer-type>
</data-gatherer-config>
</naming-rule>
</naming-config>
<excludes filter-type="STARTSWITH" filter
value="java/,javax/,com.sun/,sun/,org/"/>
<!-- exclude weblogic and websphere -->
<excludes filter-type="STARTSWITH" filter-
value="com.bea/,com.weblogic/,weblogic/,com.ibm/"/>
<!-- thread config -->
Lab 4
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 39
Configure Custom Correlation XML
Scenario
Having now researched suitable Exitand Entry Points,
and identified whatwe think can work as the payload
that can carry the GUID, it is now time to configure the
Custom Activity Correlation XML.
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 40
We have outlined the principles oftransaction
correlation and how AppDynamics mostly succeeds
in correlating automatically.
This course has explored why correlation does not
always work and how it may appear in the Flow Map.
You have explored how to research
and set up Custom Activity Correlation for yourself.
Summary
University
Appdynamics.com/university
Community
community.appdynamics.com Tech Webinars
Additional Learning Opportunity
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 41
What are the Resources?
Fan Club
University
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 42
Multiple Track Courses and Certifications @ appdynamics.com/university
Sign Up for Multiple Tracks and Course Dates
for Live Training Sessions
Watch quick task-based tutorials
Take Self-Paced courses to learn at your own pace
Access subscriber only contents
Community
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 43
Connect With Other Users And Experts @ community.appdynamics.com
Exchange information with other
Power Users and AppDynamics experts
Get AppDynamics-supported
and author-supported extensions
Tech Webinars
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 44
Attend for free
Every other Wednesday at10:00am PT
45 Min presentation followed by a Q&A session
View the Tech Webinars Schedule to register for
upcoming webinars and watch pastpresentations.
Join The FanClub
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 45
We love our customers and partners. Let us thank you for your ongoing support.
See new features and roadmaps
Try new products and beta programs
Access custom extensions and training
MeetAppDynamics Executives
Get premium swag and invitations to events
Sign up and claim your benefits
by clicking here to submit the request!
Thank You
Please fill out the survey:
https://www.surveymonkey.com/r/AppDynamicsUniversity
Your feedback is very important to us. We use it to help us improve our content
and incorporate new features to keep our courses relevantfor our audience.
Fred Paine
fred.paine@appdynamics.com

More Related Content

What's hot

How to Monitoring the SRE Golden Signals (E-Book)
How to Monitoring the SRE Golden Signals (E-Book)How to Monitoring the SRE Golden Signals (E-Book)
How to Monitoring the SRE Golden Signals (E-Book)Siglos
 
Elastic Observability
Elastic Observability Elastic Observability
Elastic Observability FaithWestdorp
 
Microservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudMicroservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudEberhard Wolff
 
Open API Strategy, by Sensedia
Open API Strategy, by SensediaOpen API Strategy, by Sensedia
Open API Strategy, by SensediaSensedia
 
Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...
Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...
Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...Tonny Adhi Sabastian
 
Monitoring Kubernetes with Prometheus
Monitoring Kubernetes with PrometheusMonitoring Kubernetes with Prometheus
Monitoring Kubernetes with PrometheusGrafana Labs
 
Kubernetes And Istio and Azure AKS DevOps
Kubernetes And Istio and Azure AKS DevOpsKubernetes And Istio and Azure AKS DevOps
Kubernetes And Istio and Azure AKS DevOpsOfir Makmal
 
Distributed tracing using open tracing &amp; jaeger 2
Distributed tracing using open tracing &amp; jaeger 2Distributed tracing using open tracing &amp; jaeger 2
Distributed tracing using open tracing &amp; jaeger 2Chandresh Pancholi
 
APIsecure 2023 - OAuth, OIDC and protecting third-party credentials, Ed Olson...
APIsecure 2023 - OAuth, OIDC and protecting third-party credentials, Ed Olson...APIsecure 2023 - OAuth, OIDC and protecting third-party credentials, Ed Olson...
APIsecure 2023 - OAuth, OIDC and protecting third-party credentials, Ed Olson...apidays
 
A GitOps Kubernetes Native CICD Solution with Argo Events, Workflows, and CD
A GitOps Kubernetes Native CICD Solution with Argo Events, Workflows, and CDA GitOps Kubernetes Native CICD Solution with Argo Events, Workflows, and CD
A GitOps Kubernetes Native CICD Solution with Argo Events, Workflows, and CDJulian Mazzitelli
 
Prometheus Multi Tenancy
Prometheus Multi TenancyPrometheus Multi Tenancy
Prometheus Multi TenancyNatan Yellin
 
Cloud Observability mit Loki, Prometheus, Tempo und Grafana
Cloud Observability mit Loki, Prometheus, Tempo und GrafanaCloud Observability mit Loki, Prometheus, Tempo und Grafana
Cloud Observability mit Loki, Prometheus, Tempo und GrafanaQAware GmbH
 
Attribute-Based Access Control in Symfony
Attribute-Based Access Control in SymfonyAttribute-Based Access Control in Symfony
Attribute-Based Access Control in SymfonyAdam Elsodaney
 
AppDynamics VS New Relic – The Complete Guide
AppDynamics VS New Relic – The Complete GuideAppDynamics VS New Relic – The Complete Guide
AppDynamics VS New Relic – The Complete GuideTakipi
 
Terraform: Infrastructure as Code
Terraform: Infrastructure as CodeTerraform: Infrastructure as Code
Terraform: Infrastructure as CodePradeep Bhadani
 

What's hot (20)

How to Monitoring the SRE Golden Signals (E-Book)
How to Monitoring the SRE Golden Signals (E-Book)How to Monitoring the SRE Golden Signals (E-Book)
How to Monitoring the SRE Golden Signals (E-Book)
 
Elastic Observability
Elastic Observability Elastic Observability
Elastic Observability
 
Microservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudMicroservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring Cloud
 
Monitoring with Prometheus
Monitoring with PrometheusMonitoring with Prometheus
Monitoring with Prometheus
 
Open API Strategy, by Sensedia
Open API Strategy, by SensediaOpen API Strategy, by Sensedia
Open API Strategy, by Sensedia
 
Event storming
Event storming Event storming
Event storming
 
App Dynamics
App DynamicsApp Dynamics
App Dynamics
 
Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...
Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...
Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...
 
Kong
KongKong
Kong
 
Monitoring Kubernetes with Prometheus
Monitoring Kubernetes with PrometheusMonitoring Kubernetes with Prometheus
Monitoring Kubernetes with Prometheus
 
Kubernetes And Istio and Azure AKS DevOps
Kubernetes And Istio and Azure AKS DevOpsKubernetes And Istio and Azure AKS DevOps
Kubernetes And Istio and Azure AKS DevOps
 
Distributed tracing using open tracing &amp; jaeger 2
Distributed tracing using open tracing &amp; jaeger 2Distributed tracing using open tracing &amp; jaeger 2
Distributed tracing using open tracing &amp; jaeger 2
 
APIsecure 2023 - OAuth, OIDC and protecting third-party credentials, Ed Olson...
APIsecure 2023 - OAuth, OIDC and protecting third-party credentials, Ed Olson...APIsecure 2023 - OAuth, OIDC and protecting third-party credentials, Ed Olson...
APIsecure 2023 - OAuth, OIDC and protecting third-party credentials, Ed Olson...
 
A GitOps Kubernetes Native CICD Solution with Argo Events, Workflows, and CD
A GitOps Kubernetes Native CICD Solution with Argo Events, Workflows, and CDA GitOps Kubernetes Native CICD Solution with Argo Events, Workflows, and CD
A GitOps Kubernetes Native CICD Solution with Argo Events, Workflows, and CD
 
Prometheus Multi Tenancy
Prometheus Multi TenancyPrometheus Multi Tenancy
Prometheus Multi Tenancy
 
Cloud Observability mit Loki, Prometheus, Tempo und Grafana
Cloud Observability mit Loki, Prometheus, Tempo und GrafanaCloud Observability mit Loki, Prometheus, Tempo und Grafana
Cloud Observability mit Loki, Prometheus, Tempo und Grafana
 
Attribute-Based Access Control in Symfony
Attribute-Based Access Control in SymfonyAttribute-Based Access Control in Symfony
Attribute-Based Access Control in Symfony
 
AppDynamics VS New Relic – The Complete Guide
AppDynamics VS New Relic – The Complete GuideAppDynamics VS New Relic – The Complete Guide
AppDynamics VS New Relic – The Complete Guide
 
Terraform: Infrastructure as Code
Terraform: Infrastructure as CodeTerraform: Infrastructure as Code
Terraform: Infrastructure as Code
 
Prometheus + Grafana = Awesome Monitoring
Prometheus + Grafana = Awesome MonitoringPrometheus + Grafana = Awesome Monitoring
Prometheus + Grafana = Awesome Monitoring
 

Viewers also liked

Is Your Infrastructure Affecting Critical Business Transactions? - AppSphere16
Is Your Infrastructure Affecting Critical Business Transactions? - AppSphere16Is Your Infrastructure Affecting Critical Business Transactions? - AppSphere16
Is Your Infrastructure Affecting Critical Business Transactions? - AppSphere16AppDynamics
 
AppDynamics the Missing Link to DevOps - AppSphere16
AppDynamics the Missing Link to DevOps - AppSphere16AppDynamics the Missing Link to DevOps - AppSphere16
AppDynamics the Missing Link to DevOps - AppSphere16AppDynamics
 
Memory Heap Analysis with AppDynamics - AppSphere16
Memory Heap Analysis with AppDynamics - AppSphere16Memory Heap Analysis with AppDynamics - AppSphere16
Memory Heap Analysis with AppDynamics - AppSphere16AppDynamics
 
End User Monitoring with AppDynamics - AppSphere16
End User Monitoring with AppDynamics - AppSphere16End User Monitoring with AppDynamics - AppSphere16
End User Monitoring with AppDynamics - AppSphere16AppDynamics
 
Digital Lumberjacking: Chipping Away at Complex Technology and Culture Change...
Digital Lumberjacking: Chipping Away at Complex Technology and Culture Change...Digital Lumberjacking: Chipping Away at Complex Technology and Culture Change...
Digital Lumberjacking: Chipping Away at Complex Technology and Culture Change...AppDynamics
 
Thousands of JVMs, Hundreds of Applications, and Two People: How Cerner Learn...
Thousands of JVMs, Hundreds of Applications, and Two People: How Cerner Learn...Thousands of JVMs, Hundreds of Applications, and Two People: How Cerner Learn...
Thousands of JVMs, Hundreds of Applications, and Two People: How Cerner Learn...AppDynamics
 
How the World Bank Standardized on AppDynamics as its Enterprise-Wide APM Sol...
How the World Bank Standardized on AppDynamics as its Enterprise-Wide APM Sol...How the World Bank Standardized on AppDynamics as its Enterprise-Wide APM Sol...
How the World Bank Standardized on AppDynamics as its Enterprise-Wide APM Sol...AppDynamics
 
Microservices and the Modern IT Stack: Trends of Tomorrow - AppSphere16
Microservices and the Modern IT Stack: Trends of Tomorrow - AppSphere16Microservices and the Modern IT Stack: Trends of Tomorrow - AppSphere16
Microservices and the Modern IT Stack: Trends of Tomorrow - AppSphere16AppDynamics
 
How Financial Engines Drives Business Outcomes Using AppDynamics Analytics - ...
How Financial Engines Drives Business Outcomes Using AppDynamics Analytics - ...How Financial Engines Drives Business Outcomes Using AppDynamics Analytics - ...
How Financial Engines Drives Business Outcomes Using AppDynamics Analytics - ...AppDynamics
 
AppDynamics Administration - AppSphere16
AppDynamics Administration - AppSphere16AppDynamics Administration - AppSphere16
AppDynamics Administration - AppSphere16AppDynamics
 
Lessons Learned at a US Government Agency Monitoring a Large, Highly Regulate...
Lessons Learned at a US Government Agency Monitoring a Large, Highly Regulate...Lessons Learned at a US Government Agency Monitoring a Large, Highly Regulate...
Lessons Learned at a US Government Agency Monitoring a Large, Highly Regulate...AppDynamics
 
Synthetic Monitoring Deep Dive - AppSphere16
Synthetic Monitoring Deep Dive - AppSphere16Synthetic Monitoring Deep Dive - AppSphere16
Synthetic Monitoring Deep Dive - AppSphere16AppDynamics
 
How SAS Institute Drove Digital Transformation Through DevOps - AppSphere16
How SAS Institute Drove Digital Transformation Through DevOps - AppSphere16How SAS Institute Drove Digital Transformation Through DevOps - AppSphere16
How SAS Institute Drove Digital Transformation Through DevOps - AppSphere16AppDynamics
 
Getting Additional Value from Logs and APM Data with AppDynamics Unified Anal...
Getting Additional Value from Logs and APM Data with AppDynamics Unified Anal...Getting Additional Value from Logs and APM Data with AppDynamics Unified Anal...
Getting Additional Value from Logs and APM Data with AppDynamics Unified Anal...AppDynamics
 
Monitoring and Instrumentation Strategies: Tips and Best Practices - AppSphere16
Monitoring and Instrumentation Strategies: Tips and Best Practices - AppSphere16Monitoring and Instrumentation Strategies: Tips and Best Practices - AppSphere16
Monitoring and Instrumentation Strategies: Tips and Best Practices - AppSphere16AppDynamics
 
Better Together: The Winning Strategy of Unified Ownership - AppSphere16
Better Together: The Winning Strategy of Unified Ownership - AppSphere16Better Together: The Winning Strategy of Unified Ownership - AppSphere16
Better Together: The Winning Strategy of Unified Ownership - AppSphere16AppDynamics
 
How AppDynamics Saved Garmin's Christmas! - AppSphere16
How AppDynamics Saved Garmin's Christmas! - AppSphere16How AppDynamics Saved Garmin's Christmas! - AppSphere16
How AppDynamics Saved Garmin's Christmas! - AppSphere16AppDynamics
 
How CapitalOne Transformed DevTest or Continuous Delivery - AppSphere16
How CapitalOne Transformed DevTest or Continuous Delivery - AppSphere16How CapitalOne Transformed DevTest or Continuous Delivery - AppSphere16
How CapitalOne Transformed DevTest or Continuous Delivery - AppSphere16AppDynamics
 
Accelerating Your Mastery of APM Through Skills Self-Analysis - AppSphere16
Accelerating Your Mastery of APM Through Skills Self-Analysis - AppSphere16Accelerating Your Mastery of APM Through Skills Self-Analysis - AppSphere16
Accelerating Your Mastery of APM Through Skills Self-Analysis - AppSphere16AppDynamics
 
Guerilla Marketing: How United Airlines Achieved Enterprise-wide Adoption of ...
Guerilla Marketing: How United Airlines Achieved Enterprise-wide Adoption of ...Guerilla Marketing: How United Airlines Achieved Enterprise-wide Adoption of ...
Guerilla Marketing: How United Airlines Achieved Enterprise-wide Adoption of ...AppDynamics
 

Viewers also liked (20)

Is Your Infrastructure Affecting Critical Business Transactions? - AppSphere16
Is Your Infrastructure Affecting Critical Business Transactions? - AppSphere16Is Your Infrastructure Affecting Critical Business Transactions? - AppSphere16
Is Your Infrastructure Affecting Critical Business Transactions? - AppSphere16
 
AppDynamics the Missing Link to DevOps - AppSphere16
AppDynamics the Missing Link to DevOps - AppSphere16AppDynamics the Missing Link to DevOps - AppSphere16
AppDynamics the Missing Link to DevOps - AppSphere16
 
Memory Heap Analysis with AppDynamics - AppSphere16
Memory Heap Analysis with AppDynamics - AppSphere16Memory Heap Analysis with AppDynamics - AppSphere16
Memory Heap Analysis with AppDynamics - AppSphere16
 
End User Monitoring with AppDynamics - AppSphere16
End User Monitoring with AppDynamics - AppSphere16End User Monitoring with AppDynamics - AppSphere16
End User Monitoring with AppDynamics - AppSphere16
 
Digital Lumberjacking: Chipping Away at Complex Technology and Culture Change...
Digital Lumberjacking: Chipping Away at Complex Technology and Culture Change...Digital Lumberjacking: Chipping Away at Complex Technology and Culture Change...
Digital Lumberjacking: Chipping Away at Complex Technology and Culture Change...
 
Thousands of JVMs, Hundreds of Applications, and Two People: How Cerner Learn...
Thousands of JVMs, Hundreds of Applications, and Two People: How Cerner Learn...Thousands of JVMs, Hundreds of Applications, and Two People: How Cerner Learn...
Thousands of JVMs, Hundreds of Applications, and Two People: How Cerner Learn...
 
How the World Bank Standardized on AppDynamics as its Enterprise-Wide APM Sol...
How the World Bank Standardized on AppDynamics as its Enterprise-Wide APM Sol...How the World Bank Standardized on AppDynamics as its Enterprise-Wide APM Sol...
How the World Bank Standardized on AppDynamics as its Enterprise-Wide APM Sol...
 
Microservices and the Modern IT Stack: Trends of Tomorrow - AppSphere16
Microservices and the Modern IT Stack: Trends of Tomorrow - AppSphere16Microservices and the Modern IT Stack: Trends of Tomorrow - AppSphere16
Microservices and the Modern IT Stack: Trends of Tomorrow - AppSphere16
 
How Financial Engines Drives Business Outcomes Using AppDynamics Analytics - ...
How Financial Engines Drives Business Outcomes Using AppDynamics Analytics - ...How Financial Engines Drives Business Outcomes Using AppDynamics Analytics - ...
How Financial Engines Drives Business Outcomes Using AppDynamics Analytics - ...
 
AppDynamics Administration - AppSphere16
AppDynamics Administration - AppSphere16AppDynamics Administration - AppSphere16
AppDynamics Administration - AppSphere16
 
Lessons Learned at a US Government Agency Monitoring a Large, Highly Regulate...
Lessons Learned at a US Government Agency Monitoring a Large, Highly Regulate...Lessons Learned at a US Government Agency Monitoring a Large, Highly Regulate...
Lessons Learned at a US Government Agency Monitoring a Large, Highly Regulate...
 
Synthetic Monitoring Deep Dive - AppSphere16
Synthetic Monitoring Deep Dive - AppSphere16Synthetic Monitoring Deep Dive - AppSphere16
Synthetic Monitoring Deep Dive - AppSphere16
 
How SAS Institute Drove Digital Transformation Through DevOps - AppSphere16
How SAS Institute Drove Digital Transformation Through DevOps - AppSphere16How SAS Institute Drove Digital Transformation Through DevOps - AppSphere16
How SAS Institute Drove Digital Transformation Through DevOps - AppSphere16
 
Getting Additional Value from Logs and APM Data with AppDynamics Unified Anal...
Getting Additional Value from Logs and APM Data with AppDynamics Unified Anal...Getting Additional Value from Logs and APM Data with AppDynamics Unified Anal...
Getting Additional Value from Logs and APM Data with AppDynamics Unified Anal...
 
Monitoring and Instrumentation Strategies: Tips and Best Practices - AppSphere16
Monitoring and Instrumentation Strategies: Tips and Best Practices - AppSphere16Monitoring and Instrumentation Strategies: Tips and Best Practices - AppSphere16
Monitoring and Instrumentation Strategies: Tips and Best Practices - AppSphere16
 
Better Together: The Winning Strategy of Unified Ownership - AppSphere16
Better Together: The Winning Strategy of Unified Ownership - AppSphere16Better Together: The Winning Strategy of Unified Ownership - AppSphere16
Better Together: The Winning Strategy of Unified Ownership - AppSphere16
 
How AppDynamics Saved Garmin's Christmas! - AppSphere16
How AppDynamics Saved Garmin's Christmas! - AppSphere16How AppDynamics Saved Garmin's Christmas! - AppSphere16
How AppDynamics Saved Garmin's Christmas! - AppSphere16
 
How CapitalOne Transformed DevTest or Continuous Delivery - AppSphere16
How CapitalOne Transformed DevTest or Continuous Delivery - AppSphere16How CapitalOne Transformed DevTest or Continuous Delivery - AppSphere16
How CapitalOne Transformed DevTest or Continuous Delivery - AppSphere16
 
Accelerating Your Mastery of APM Through Skills Self-Analysis - AppSphere16
Accelerating Your Mastery of APM Through Skills Self-Analysis - AppSphere16Accelerating Your Mastery of APM Through Skills Self-Analysis - AppSphere16
Accelerating Your Mastery of APM Through Skills Self-Analysis - AppSphere16
 
Guerilla Marketing: How United Airlines Achieved Enterprise-wide Adoption of ...
Guerilla Marketing: How United Airlines Achieved Enterprise-wide Adoption of ...Guerilla Marketing: How United Airlines Achieved Enterprise-wide Adoption of ...
Guerilla Marketing: How United Airlines Achieved Enterprise-wide Adoption of ...
 

Similar to AppDynamics Custom Transaction Correlation

Improved Interaction with Mobile User Interaction: Tips and Tricks - AppSphere16
Improved Interaction with Mobile User Interaction: Tips and Tricks - AppSphere16Improved Interaction with Mobile User Interaction: Tips and Tricks - AppSphere16
Improved Interaction with Mobile User Interaction: Tips and Tricks - AppSphere16AppDynamics
 
Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...
Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...
Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...AppDynamics
 
Cisco and AppDynamics: Redefining Application Intelligence - AppD Summit Europe
Cisco and AppDynamics: Redefining Application Intelligence - AppD Summit EuropeCisco and AppDynamics: Redefining Application Intelligence - AppD Summit Europe
Cisco and AppDynamics: Redefining Application Intelligence - AppD Summit EuropeAppDynamics
 
Business iQ: What It Is and How to Start - AppD Summit Europe
Business iQ: What It Is and How to Start - AppD Summit EuropeBusiness iQ: What It Is and How to Start - AppD Summit Europe
Business iQ: What It Is and How to Start - AppD Summit EuropeAppDynamics
 
API Program Lessons learned
API Program Lessons learnedAPI Program Lessons learned
API Program Lessons learnedSmartWave
 
IoT in the Enterprise: Why Your Monitoring Strategy Should Include Connected ...
IoT in the Enterprise: Why Your Monitoring Strategy Should Include Connected ...IoT in the Enterprise: Why Your Monitoring Strategy Should Include Connected ...
IoT in the Enterprise: Why Your Monitoring Strategy Should Include Connected ...AppDynamics
 
Evolve 2014 experience driven commerce
Evolve 2014 experience driven commerceEvolve 2014 experience driven commerce
Evolve 2014 experience driven commerceElastic Path
 
Cloud-Native Insights: How Platform & App Visibility Drive Business Outcomes
Cloud-Native Insights: How Platform & App Visibility Drive Business OutcomesCloud-Native Insights: How Platform & App Visibility Drive Business Outcomes
Cloud-Native Insights: How Platform & App Visibility Drive Business OutcomesVMware Tanzu
 
What is API Product Management by PayPal Director of Product
What is API Product Management by PayPal Director of ProductWhat is API Product Management by PayPal Director of Product
What is API Product Management by PayPal Director of ProductProduct School
 
Hands-On Lab: Mobile Integration
Hands-On Lab: Mobile IntegrationHands-On Lab: Mobile Integration
Hands-On Lab: Mobile IntegrationCA Technologies
 
Indonesian e-Commerce requires Scalability, Reliability and Security to Achi...
Indonesian e-Commerce requires Scalability,  Reliability and Security to Achi...Indonesian e-Commerce requires Scalability,  Reliability and Security to Achi...
Indonesian e-Commerce requires Scalability, Reliability and Security to Achi...Sutedjo Tjahjadi
 
WSO2- OSC Korea - Accelerating Digital Businesses with APIs
WSO2- OSC Korea - Accelerating Digital Businesses with APIsWSO2- OSC Korea - Accelerating Digital Businesses with APIs
WSO2- OSC Korea - Accelerating Digital Businesses with APIsWSO2
 
DevOps_ Monitoring Mule Application via Dynatrace.pdf
DevOps_ Monitoring Mule Application via Dynatrace.pdfDevOps_ Monitoring Mule Application via Dynatrace.pdf
DevOps_ Monitoring Mule Application via Dynatrace.pdfamitbind11
 
API Security Best Practices and Guidelines
API Security Best Practices and GuidelinesAPI Security Best Practices and Guidelines
API Security Best Practices and GuidelinesWSO2
 
[WSO2 Integration Summit Bern 2019] API-led Integration
[WSO2 Integration Summit Bern 2019] API-led Integration[WSO2 Integration Summit Bern 2019] API-led Integration
[WSO2 Integration Summit Bern 2019] API-led IntegrationWSO2
 
MuleSoft Surat Meetup#39 - Pragmatic API Led Connectivity
MuleSoft Surat Meetup#39 - Pragmatic API Led ConnectivityMuleSoft Surat Meetup#39 - Pragmatic API Led Connectivity
MuleSoft Surat Meetup#39 - Pragmatic API Led ConnectivityJitendra Bafna
 
Mastering APM With End User Monitoring - AppD Summit Europe
Mastering APM With End User Monitoring - AppD Summit EuropeMastering APM With End User Monitoring - AppD Summit Europe
Mastering APM With End User Monitoring - AppD Summit EuropeAppDynamics
 
Takeaways from API Security Breaches Webinar
Takeaways from API Security Breaches WebinarTakeaways from API Security Breaches Webinar
Takeaways from API Security Breaches WebinarCA API Management
 

Similar to AppDynamics Custom Transaction Correlation (20)

Improved Interaction with Mobile User Interaction: Tips and Tricks - AppSphere16
Improved Interaction with Mobile User Interaction: Tips and Tricks - AppSphere16Improved Interaction with Mobile User Interaction: Tips and Tricks - AppSphere16
Improved Interaction with Mobile User Interaction: Tips and Tricks - AppSphere16
 
Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...
Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...
Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...
 
Cisco and AppDynamics: Redefining Application Intelligence - AppD Summit Europe
Cisco and AppDynamics: Redefining Application Intelligence - AppD Summit EuropeCisco and AppDynamics: Redefining Application Intelligence - AppD Summit Europe
Cisco and AppDynamics: Redefining Application Intelligence - AppD Summit Europe
 
Business iQ: What It Is and How to Start - AppD Summit Europe
Business iQ: What It Is and How to Start - AppD Summit EuropeBusiness iQ: What It Is and How to Start - AppD Summit Europe
Business iQ: What It Is and How to Start - AppD Summit Europe
 
API Program Lessons learned
API Program Lessons learnedAPI Program Lessons learned
API Program Lessons learned
 
IoT in the Enterprise
IoT in the EnterpriseIoT in the Enterprise
IoT in the Enterprise
 
IoT in the Enterprise: Why Your Monitoring Strategy Should Include Connected ...
IoT in the Enterprise: Why Your Monitoring Strategy Should Include Connected ...IoT in the Enterprise: Why Your Monitoring Strategy Should Include Connected ...
IoT in the Enterprise: Why Your Monitoring Strategy Should Include Connected ...
 
Evolve 2014 experience driven commerce
Evolve 2014 experience driven commerceEvolve 2014 experience driven commerce
Evolve 2014 experience driven commerce
 
Cloud-Native Insights: How Platform & App Visibility Drive Business Outcomes
Cloud-Native Insights: How Platform & App Visibility Drive Business OutcomesCloud-Native Insights: How Platform & App Visibility Drive Business Outcomes
Cloud-Native Insights: How Platform & App Visibility Drive Business Outcomes
 
What is API Product Management by PayPal Director of Product
What is API Product Management by PayPal Director of ProductWhat is API Product Management by PayPal Director of Product
What is API Product Management by PayPal Director of Product
 
How To Fix The Most Critical API Security Risks.pdf
How To Fix The Most Critical API Security Risks.pdfHow To Fix The Most Critical API Security Risks.pdf
How To Fix The Most Critical API Security Risks.pdf
 
Hands-On Lab: Mobile Integration
Hands-On Lab: Mobile IntegrationHands-On Lab: Mobile Integration
Hands-On Lab: Mobile Integration
 
Indonesian e-Commerce requires Scalability, Reliability and Security to Achi...
Indonesian e-Commerce requires Scalability,  Reliability and Security to Achi...Indonesian e-Commerce requires Scalability,  Reliability and Security to Achi...
Indonesian e-Commerce requires Scalability, Reliability and Security to Achi...
 
WSO2- OSC Korea - Accelerating Digital Businesses with APIs
WSO2- OSC Korea - Accelerating Digital Businesses with APIsWSO2- OSC Korea - Accelerating Digital Businesses with APIs
WSO2- OSC Korea - Accelerating Digital Businesses with APIs
 
DevOps_ Monitoring Mule Application via Dynatrace.pdf
DevOps_ Monitoring Mule Application via Dynatrace.pdfDevOps_ Monitoring Mule Application via Dynatrace.pdf
DevOps_ Monitoring Mule Application via Dynatrace.pdf
 
API Security Best Practices and Guidelines
API Security Best Practices and GuidelinesAPI Security Best Practices and Guidelines
API Security Best Practices and Guidelines
 
[WSO2 Integration Summit Bern 2019] API-led Integration
[WSO2 Integration Summit Bern 2019] API-led Integration[WSO2 Integration Summit Bern 2019] API-led Integration
[WSO2 Integration Summit Bern 2019] API-led Integration
 
MuleSoft Surat Meetup#39 - Pragmatic API Led Connectivity
MuleSoft Surat Meetup#39 - Pragmatic API Led ConnectivityMuleSoft Surat Meetup#39 - Pragmatic API Led Connectivity
MuleSoft Surat Meetup#39 - Pragmatic API Led Connectivity
 
Mastering APM With End User Monitoring - AppD Summit Europe
Mastering APM With End User Monitoring - AppD Summit EuropeMastering APM With End User Monitoring - AppD Summit Europe
Mastering APM With End User Monitoring - AppD Summit Europe
 
Takeaways from API Security Breaches Webinar
Takeaways from API Security Breaches WebinarTakeaways from API Security Breaches Webinar
Takeaways from API Security Breaches Webinar
 

More from AppDynamics

Good Migrations: APM Essentials For Cloud Success at AppD Global Tour London
Good Migrations: APM Essentials For Cloud Success at AppD Global Tour LondonGood Migrations: APM Essentials For Cloud Success at AppD Global Tour London
Good Migrations: APM Essentials For Cloud Success at AppD Global Tour LondonAppDynamics
 
Top Tips For AppD Adoption Success at AppD Global Tour London
Top Tips For AppD Adoption Success at AppD Global Tour LondonTop Tips For AppD Adoption Success at AppD Global Tour London
Top Tips For AppD Adoption Success at AppD Global Tour LondonAppDynamics
 
How To Create An AppD Centre of Excellence at AppD Global Tour London
How To Create An AppD Centre of Excellence at AppD Global Tour LondonHow To Create An AppD Centre of Excellence at AppD Global Tour London
How To Create An AppD Centre of Excellence at AppD Global Tour LondonAppDynamics
 
Ensure Every Customer Matters With End User Monitoring at AppD Global Tour Lo...
Ensure Every Customer Matters With End User Monitoring at AppD Global Tour Lo...Ensure Every Customer Matters With End User Monitoring at AppD Global Tour Lo...
Ensure Every Customer Matters With End User Monitoring at AppD Global Tour Lo...AppDynamics
 
Just Eat: DevOps at Scale at AppD Global Tour London
Just Eat: DevOps at Scale at AppD Global Tour LondonJust Eat: DevOps at Scale at AppD Global Tour London
Just Eat: DevOps at Scale at AppD Global Tour LondonAppDynamics
 
What’s Next For AppDynamics and Cisco? AppD Global Tour London
What’s Next For AppDynamics and Cisco? AppD Global Tour LondonWhat’s Next For AppDynamics and Cisco? AppD Global Tour London
What’s Next For AppDynamics and Cisco? AppD Global Tour LondonAppDynamics
 
Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...
Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...
Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...AppDynamics
 
Overcoming Transformational Barriers with Ensono - AppD Global Tour London
Overcoming Transformational Barriers with Ensono - AppD Global Tour LondonOvercoming Transformational Barriers with Ensono - AppD Global Tour London
Overcoming Transformational Barriers with Ensono - AppD Global Tour LondonAppDynamics
 
Equinor: What does normal look like?
Equinor: What does normal look like? Equinor: What does normal look like?
Equinor: What does normal look like? AppDynamics
 
Top Tips For AppD Adoption Success - AppD Global Tour Stockholm
Top Tips For AppD Adoption Success - AppD Global Tour StockholmTop Tips For AppD Adoption Success - AppD Global Tour Stockholm
Top Tips For AppD Adoption Success - AppD Global Tour StockholmAppDynamics
 
What's next for AppD and Cisco? - AppD Global Tour
What's next for AppD and Cisco? - AppD Global TourWhat's next for AppD and Cisco? - AppD Global Tour
What's next for AppD and Cisco? - AppD Global TourAppDynamics
 
British Medical Journal: Refine Your Metrics For Digital Success - AppD Summi...
British Medical Journal: Refine Your Metrics For Digital Success - AppD Summi...British Medical Journal: Refine Your Metrics For Digital Success - AppD Summi...
British Medical Journal: Refine Your Metrics For Digital Success - AppD Summi...AppDynamics
 
Forrester Research: How To Organise Your Business For Digital Success - AppD ...
Forrester Research: How To Organise Your Business For Digital Success - AppD ...Forrester Research: How To Organise Your Business For Digital Success - AppD ...
Forrester Research: How To Organise Your Business For Digital Success - AppD ...AppDynamics
 
Become an AppDynamics Dashboard Rockstar - AppD Summit Europe
Become an AppDynamics Dashboard Rockstar - AppD Summit EuropeBecome an AppDynamics Dashboard Rockstar - AppD Summit Europe
Become an AppDynamics Dashboard Rockstar - AppD Summit EuropeAppDynamics
 
Containers: Give Me The Facts, Not The Hype - AppD Summit Europe
Containers: Give Me The Facts, Not The Hype - AppD Summit EuropeContainers: Give Me The Facts, Not The Hype - AppD Summit Europe
Containers: Give Me The Facts, Not The Hype - AppD Summit EuropeAppDynamics
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAppDynamics
 
Standard Bank: How APM Supports DevOps, Agile and Engineering Transformation ...
Standard Bank: How APM Supports DevOps, Agile and Engineering Transformation ...Standard Bank: How APM Supports DevOps, Agile and Engineering Transformation ...
Standard Bank: How APM Supports DevOps, Agile and Engineering Transformation ...AppDynamics
 

More from AppDynamics (17)

Good Migrations: APM Essentials For Cloud Success at AppD Global Tour London
Good Migrations: APM Essentials For Cloud Success at AppD Global Tour LondonGood Migrations: APM Essentials For Cloud Success at AppD Global Tour London
Good Migrations: APM Essentials For Cloud Success at AppD Global Tour London
 
Top Tips For AppD Adoption Success at AppD Global Tour London
Top Tips For AppD Adoption Success at AppD Global Tour LondonTop Tips For AppD Adoption Success at AppD Global Tour London
Top Tips For AppD Adoption Success at AppD Global Tour London
 
How To Create An AppD Centre of Excellence at AppD Global Tour London
How To Create An AppD Centre of Excellence at AppD Global Tour LondonHow To Create An AppD Centre of Excellence at AppD Global Tour London
How To Create An AppD Centre of Excellence at AppD Global Tour London
 
Ensure Every Customer Matters With End User Monitoring at AppD Global Tour Lo...
Ensure Every Customer Matters With End User Monitoring at AppD Global Tour Lo...Ensure Every Customer Matters With End User Monitoring at AppD Global Tour Lo...
Ensure Every Customer Matters With End User Monitoring at AppD Global Tour Lo...
 
Just Eat: DevOps at Scale at AppD Global Tour London
Just Eat: DevOps at Scale at AppD Global Tour LondonJust Eat: DevOps at Scale at AppD Global Tour London
Just Eat: DevOps at Scale at AppD Global Tour London
 
What’s Next For AppDynamics and Cisco? AppD Global Tour London
What’s Next For AppDynamics and Cisco? AppD Global Tour LondonWhat’s Next For AppDynamics and Cisco? AppD Global Tour London
What’s Next For AppDynamics and Cisco? AppD Global Tour London
 
Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...
Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...
Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...
 
Overcoming Transformational Barriers with Ensono - AppD Global Tour London
Overcoming Transformational Barriers with Ensono - AppD Global Tour LondonOvercoming Transformational Barriers with Ensono - AppD Global Tour London
Overcoming Transformational Barriers with Ensono - AppD Global Tour London
 
Equinor: What does normal look like?
Equinor: What does normal look like? Equinor: What does normal look like?
Equinor: What does normal look like?
 
Top Tips For AppD Adoption Success - AppD Global Tour Stockholm
Top Tips For AppD Adoption Success - AppD Global Tour StockholmTop Tips For AppD Adoption Success - AppD Global Tour Stockholm
Top Tips For AppD Adoption Success - AppD Global Tour Stockholm
 
What's next for AppD and Cisco? - AppD Global Tour
What's next for AppD and Cisco? - AppD Global TourWhat's next for AppD and Cisco? - AppD Global Tour
What's next for AppD and Cisco? - AppD Global Tour
 
British Medical Journal: Refine Your Metrics For Digital Success - AppD Summi...
British Medical Journal: Refine Your Metrics For Digital Success - AppD Summi...British Medical Journal: Refine Your Metrics For Digital Success - AppD Summi...
British Medical Journal: Refine Your Metrics For Digital Success - AppD Summi...
 
Forrester Research: How To Organise Your Business For Digital Success - AppD ...
Forrester Research: How To Organise Your Business For Digital Success - AppD ...Forrester Research: How To Organise Your Business For Digital Success - AppD ...
Forrester Research: How To Organise Your Business For Digital Success - AppD ...
 
Become an AppDynamics Dashboard Rockstar - AppD Summit Europe
Become an AppDynamics Dashboard Rockstar - AppD Summit EuropeBecome an AppDynamics Dashboard Rockstar - AppD Summit Europe
Become an AppDynamics Dashboard Rockstar - AppD Summit Europe
 
Containers: Give Me The Facts, Not The Hype - AppD Summit Europe
Containers: Give Me The Facts, Not The Hype - AppD Summit EuropeContainers: Give Me The Facts, Not The Hype - AppD Summit Europe
Containers: Give Me The Facts, Not The Hype - AppD Summit Europe
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
 
Standard Bank: How APM Supports DevOps, Agile and Engineering Transformation ...
Standard Bank: How APM Supports DevOps, Agile and Engineering Transformation ...Standard Bank: How APM Supports DevOps, Agile and Engineering Transformation ...
Standard Bank: How APM Supports DevOps, Agile and Engineering Transformation ...
 

Recently uploaded

Cybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and BadCybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and BadIvo Andreev
 
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...OnePlan Solutions
 
Kawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in TrivandrumKawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in TrivandrumKawika Technologies
 
Growing Oxen: channel operators and retries
Growing Oxen: channel operators and retriesGrowing Oxen: channel operators and retries
Growing Oxen: channel operators and retriesSoftwareMill
 
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine HarmonyLeveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmonyelliciumsolutionspun
 
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLBig Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLAlluxio, Inc.
 
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Jaydeep Chhasatia
 
Enterprise Document Management System - Qualityze Inc
Enterprise Document Management System - Qualityze IncEnterprise Document Management System - Qualityze Inc
Enterprise Document Management System - Qualityze Incrobinwilliams8624
 
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.Sharon Liu
 
Watermarking in Source Code: Applications and Security Challenges
Watermarking in Source Code: Applications and Security ChallengesWatermarking in Source Code: Applications and Security Challenges
Watermarking in Source Code: Applications and Security ChallengesShyamsundar Das
 
Top Software Development Trends in 2024
Top Software Development Trends in  2024Top Software Development Trends in  2024
Top Software Development Trends in 2024Mind IT Systems
 
online pdf editor software solutions.pdf
online pdf editor software solutions.pdfonline pdf editor software solutions.pdf
online pdf editor software solutions.pdfMeon Technology
 
Streamlining Your Application Builds with Cloud Native Buildpacks
Streamlining Your Application Builds  with Cloud Native BuildpacksStreamlining Your Application Builds  with Cloud Native Buildpacks
Streamlining Your Application Builds with Cloud Native BuildpacksVish Abrams
 
Deep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampDeep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampVICTOR MAESTRE RAMIREZ
 
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfTobias Schneck
 
Fields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptxFields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptxJoão Esperancinha
 
JS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AIJS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AIIvo Andreev
 
OpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS CalculatorOpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS CalculatorShane Coughlan
 
eAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspectionseAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspectionsNirav Modi
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeNeo4j
 

Recently uploaded (20)

Cybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and BadCybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and Bad
 
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
 
Kawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in TrivandrumKawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in Trivandrum
 
Growing Oxen: channel operators and retries
Growing Oxen: channel operators and retriesGrowing Oxen: channel operators and retries
Growing Oxen: channel operators and retries
 
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine HarmonyLeveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
 
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLBig Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
 
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
 
Enterprise Document Management System - Qualityze Inc
Enterprise Document Management System - Qualityze IncEnterprise Document Management System - Qualityze Inc
Enterprise Document Management System - Qualityze Inc
 
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
 
Watermarking in Source Code: Applications and Security Challenges
Watermarking in Source Code: Applications and Security ChallengesWatermarking in Source Code: Applications and Security Challenges
Watermarking in Source Code: Applications and Security Challenges
 
Top Software Development Trends in 2024
Top Software Development Trends in  2024Top Software Development Trends in  2024
Top Software Development Trends in 2024
 
online pdf editor software solutions.pdf
online pdf editor software solutions.pdfonline pdf editor software solutions.pdf
online pdf editor software solutions.pdf
 
Streamlining Your Application Builds with Cloud Native Buildpacks
Streamlining Your Application Builds  with Cloud Native BuildpacksStreamlining Your Application Builds  with Cloud Native Buildpacks
Streamlining Your Application Builds with Cloud Native Buildpacks
 
Deep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampDeep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - Datacamp
 
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
 
Fields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptxFields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptx
 
JS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AIJS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AI
 
OpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS CalculatorOpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS Calculator
 
eAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspectionseAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspections
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG time
 

AppDynamics Custom Transaction Correlation

  • 2. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 2 Notice The information and materials included in this presentation (collectively, the “Materials”) are the confidential and proprietary information of AppDynamics, Inc. (the “Company”). No part of the Materials may be reproduced, distributed, communicated or displayed in any form or by any means, or used to make any derivative work, without prior written permission from the Company. © 2016 AppDynamics, Inc. All rights reserved. All third party trademarks, including names, logos and brands, referenced by the Company in this presentation are property of their respective owners. All references to third party trademarks are for identification purposes only and shall be considered nominative fair use under trademark law.
  • 3. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 3 Objectives Course Labs Understand AppDynamics Transaction Correlation Facilitate discovery of missing components in flow maps Determining Entry and Exit Points Configuring AppDynamics for custom correlation Review Transactions and Flow Maps Finding Entry Points Research relationship between Entry & Exit Points Configure Custom Correlation
  • 4. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 4 Topic 1 What Is AppDynamics Transaction Correlation? A.Transaction Correlation Basics B. Exit Point Issues C.Entry Point Issues Topic 2 What Is AppDynamics Custom Correlation? A. Custom Correlation Basics B. Exit Point Configuration C.Entry Point Configuration AppDynamics Custom Transaction Correlation Agenda
  • 5. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 5 • Detected transactions rely on AppServer Agent decorating requests with GUID • GUID = Global Unique Identifier • Same GUID assigned by Agenton each tier involved in the requestchain • GUIDs posted to Controller,which reconciles GUID-labelled events • Controller derives Business Transaction flow map from comparing individual requestchains Transaction Correlation Basics • Correlation relies on ability ofAgents to decorate and read GUIDs • Automatic correlation breaks down ifGUID cannotbe set, or cannotbe read What works and doesn’t work
  • 6. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 6 Transaction Correlation Basics AppServer Agent Behavior
  • 7. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 7 At the pointin code where call out to other componenthappens, Appserver Agenttries to decorate the outbound requestwith the GUID. This is during what’s called the Exit Point – adding the GUID relies on Agent being aware ofthe code as an Exit Point. On any monitored component,the ability to read the GUID embedded in a requestrelies on Agentability to understand the technology. Entry Point is AppDynamics term for a pointin the code which processes an incoming requestthatthe Agentsuccessfully notices. Setting & Reading The GUID
  • 8. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 8 AppDynamics Custom Transaction Correlation Topic 1 What Is AppDynamics Transaction Correlation? A. Transaction Correlation Basics B.Exit Point Issues C.Entry Point Issues Topic 2 What Is AppDynamics Custom Correlation? A. Custom Correlation Basics B. Exit Point Configuration C.Entry Point Configuration Agenda
  • 9. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 9 Exit Point Issues Tiers missing from Flow Maps Inability to successfully detect an Exit Point means GUID is not set. From AppDynamics perspective, the Business Transaction does not continue any further! Looking at the flow map, this may be why Tiers appear to be missing!
  • 10. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 10 AppDynamics Custom Transaction Correlation Topic 1 What Is AppDynamics Transaction Correlation? A. Transaction Correlation Basics B. Exit Point Issues C.Entry Point Issues Topic 2 What Is AppDynamics Custom Correlation? A. Custom Correlation Basics B. Exit Point Configuration C.Entry Point Configuration Agenda
  • 11. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 11 Entry Point Issues Tier appears as Back End Inability to successfully detect an Entry Point will mean GUID is not read The Business Transaction will notinclude this Tier in its flow map (though may show up in the flow map as a Back End)
  • 12. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 12 Is Custom Correlation Necessary? Various factors can also prevent correlation The absence of the expected Tier on a Transaction Flow Map could be due to an Agentissue Rule outAgent as the cause of the issue by checking: • Agent installed and configured correctly? • Agent up and running? • Does the Tier show up in the Flow Map of other Transactions?
  • 13. Lab 1 APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 13 Review Movieztream & Login.htm Transaction URL <<your IP address>>/controller Username admin Password admin Scenario While AppDynamics managed to detectthe /movieztream_ui/login.htm transaction withoutany difficulty, it appears not to be aware that when users log in to Movieztream there is a call made to the ProfileStore Tier, as this is not showing on the flow map. This exercise is designed to familiarize the student with the application,flow maps and transactions.
  • 14. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 14 How BTs Are Tracked AppDynamics successfully automatically correlates transactions where various technologies are employed
  • 15. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 15 Correlation In HTTP Adding Custom Headers to carry transaction information is safe if •You don’tuse any well-understood header names like ‘Accept-Language’ •The content of the header value is ‘HTTP-safe’ Method | URL | Version Request Line Header Field-Name Header Value Header Field-Name Header Value Headers •Extensible by definition •Does not Contain Application Data Body Request Body
  • 16. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 16 Correlation In HTTP AppDynamics Byte Code Interceptor on The HTTP transport layer – adds a safe header which uniquely identifies this transaction.The controller reconstructs the flow. AppDynamics Byte Code Interceptor on the servlet– reads the header with the information.
  • 17. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 17 Correlation In JMS Adding Custom Message Properties to carry transaction information is safe if •You don’toverwrite any existing property names and choose a unique name •The content of the property value is valid content JMSPriority… Property Name Property Value Property Name Property Value Message Properties •Extensible by definition Body Message Body JMSDestination Headers •Not Extensible •Predefined
  • 18. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 18 Correlation In JMS AppDynamics Byte Code Interceptor on The JMS Message sender – adds a safe header which uniquely identifies this transaction. AppDynamics Byte Code Interceptor on the Message Receiver– reads the header with the information.
  • 19. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 19 AppDynamics Custom Transaction Correlation Topic 1 What Is AppDynamics Transaction Correlation? A. Transaction Correlation Basics B. Exit Point Issues C.Entry Point Issues Topic 2 What Is AppDynamics Custom Correlation? A.Custom Correlation Basics B. Exit Point Configuration C.Entry Point Configuration Agenda
  • 20. Exploring Untracked Functionality APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 20 1 ConfiguringAppDynamics to reveal unmonitored running code 1. How do we ‘see’ what we can’t ‘see’? 2. Appdynamics Agents can reveal method calls being executed which are outside of any tracked Business Transactions 3. This provides us with potential Entry Points Activated by setting a specific Agent’s find- entry-points property to true 2 3
  • 21. Find Entry Points Output APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 21 Where to view unmonitored running code that AppDynamics has detected Activity is recorded in BusinessTransactions log file Retrieve either through Controller or from logs directory on server As the property adds a small overhead to Agent performance, recommended to disable once done with investigations [main] 07 Nov 2016 17:10:51,565 INFO - ############################################################ [main] 07 Nov 2016 17:10:51,565 INFO - Logging request stack for Thread main >>com.ecetera.appdynamics.movieztream.service.util.ProfileServiceThread.<init>(ProfileReceiver.java [main] 07 Nov 2016 17:10:51,565 INFO - 0. POJO com.ecetera.appdynamics.movieztream.service.util.Pro com.ecetera.appdynamics.movieztream.service.util.ProfileServiceThread <init> 
[main] 07 Nov 2016 17:10:51,565 INFO -END request stack for Thread main
[main] 07 Nov 2016 17:10:51, [main] 07 Nov 2016 17:10:53,837 INFO - ############################################################ >>com.ecetera.appdynamics.movieztream.service.util.ProfileServiceThread.<init>(ProfileReceiver.java [main] 07 Nov 2016 17:10:53,837 INFO - 0. POJO com.ecetera.appdynamics.movieztream.service.util.Pro [main] 07 Nov 2016 17:10:53,837 INFO - 1. POJO com.ecetera.appdynamics.movieztream.service.util.Pro [main] 07 Nov 2016 17:10:53,837 INFO - ############################################################ #################################################################
 [main] 07 Nov 2016 17:10:54,102 INFO - Logging request stack for Thread main >>com.ecetera.appdynamics.movieztream.service.util.ProfileServiceThread.<init>(ProfileReceiver.java ain] 07 Nov 2016 17:10:54,102 INFO - 0. POJO com.ecetera.appdynamics.movieztream.service.util.Profi [main] 07 Nov 2016 17:10:54,103 INFO - 1. POJO com.ecetera.appdynamics.movieztream.service.util.Pro main
[main] 07 Nov 2016 17:10:54,103 INFO - ######################################################## #################################################################
 [main] 07 Nov 2016 17:10:55,449 INFO - Logging request stack for Thread main >>com.ecetera.appdynamics.movieztream.service.util.ProfileServiceThread.<init>(ProfileReceiver.java [main] 07 Nov 2016 17:10:55,449 INFO - 0. POJO com.ecetera.appdynamics.movieztream.service.util.Pro [main] 07 Nov 2016 17:10:55,449 INFO - 1. POJO com.ecetera.appdynamics.movieztream.service.util.Pro
  • 22. Lab 2 APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 22 Finding Entry Points Scenario While AppDynamics managed to detectthe /movieztream_ui/login.htm transaction without any difficulty, it appears notto be aware that when users log in to Movieztream there is a call made to the ProfileStore Tier, as this is not showing on the flow map. This exercise is designed to configure AppDynamics to discover potential missing flow map components.
  • 23. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 23 Custom Correlation Custom Correlation is Agent level configuration Achieved by adding specific definitions to the file custom- activity-correlation.xml under Agentconf directory No source code changes, totally non-invasive approach Mistakes in the XML will result in correlation failure or simply unexpected results in transaction Flow Map – check agentlog file for details <activities> <producer> <!-- This instrumentation element defines a custom exit point. --> <instrumentation> <class-name>com.ecetera.appdynamics.movieztream.ui.reporting.ProfileFinder</class-name> <method-name>sendProfile</method-name> <match-type>MATCHES_CLASS</match-type> </instrumentation> <!-- This identifier element specifies how to name the custom exit point. This is similar to how we name custom exit points from the UI --> <identifiers> <identifier name="ProfileFinder"> <data-gatherer-type>INVOKED</data-gatherer-type> <getter-chain>this</getter-chain> <user-defined-name>ProfileFinder</user-defined-name> <transformer-type>USER_DEFINED_NAME</transformer-type> </identifier> </identifiers> <!-- The following correlation element specifies where and how to add the correlation metadata --> <correlation> <!-- This instrumentation element specifies how to get hold of the outgoing payload --> <instrumentation> <class-name>com.ecetera.appdynamics.movieztream.ui.reporting.ProfileFinder</class-name> <method-name>sendProfile</method-name> <match-type>MATCHES_CLASS</match-type> </instrumentation> <!-- This payload-pointer specifies where to grab the payload at the instrumentation point defined above --> <payload-pointer> <data-gatherer-type>POSITION</data-gatherer-type> <position>0</position> <getter-chain>this</getter-chain> <transformer-type>GETTER_METHODS</transformer-type> </payload-pointer> <!-- This payload-operation defines how to add the correlation metadata to the payload --> <payload-operation> <access-type>method</access-type> <access-method>put</access-method> <param-types>java.lang.Object, java.lang.Object</param-types> </payload-operation> </correlation> </producer> <consumer identify-transaction="true"> <!-- This is where the correlation metadata is read and continuing transaction is begun --> <instrumentation> <class-name>com.ecetera.appdynamics.movieztream.service.util.ProfileServiceThread</class-name> <method-name>receiveProfile</method-name> <match-type>MATCHES_CLASS</match-type> </instrumentation> <correlation> <!-- This is how we get the payload bearing our correlation metadata --> <payload-pointer> <data-gatherer-type>POSITION</data-gatherer-type> <position>0</position> <getter-chain>this</getter-chain> <transformer-type>GETTER_METHODS</transformer-type> </payload-pointer> <!-- This is how we extract correlation metadata from the payload --> <payload-operation> <access-type>method</access-type> <access-method>put</access-method> <param-types>java.lang.Object</param-types> </payload-operation> </correlation> </consumer> </activities>
  • 24. Topology of the XML Root elementis <activities> multiple <producer> and <consumer> elements are allowed <producer> is the Exit Point <consumer> is the Entry Point <correlation> defines where to get the GUID and how APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 24 <activities> <producer> <correlation> ....... </correlation> </producer> <consumer> <correlation> ....... </correlation> </consumer> </activities>
  • 25. What Custom Correlation Requires Exit Point detail Classpath,method Exit Point payload details The code is sending request to other component.Can we append the GUID somehow? Entry Point details Classpath,method Entry Point payload details The code is accepting the request. Can we extract the GUID from it? APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 25 Investigating details for Exit and Entry Points <activities> <producer> <!-- This instrumentation element defines a custom exit point. --> <instrumentation> <class-name>com.ecetera.appdynamics.movieztream.ui.reporting.ProfileFinder</class-name> <method-name>sendProfile</method-name> <match-type>MATCHES_CLASS</match-type> </instrumentation> <!-- This identifier element specifies how to name the custom exit point. This is similar to how we name custom exit points from the UI --> <identifiers> <identifier name="ProfileFinder"> <data-gatherer-type>INVOKED</data-gatherer-type> <getter-chain>this</getter-chain> <user-defined-name>ProfileFinder</user-defined-name> <transformer-type>USER_DEFINED_NAME</transformer-type> </identifier> </identifiers> <!-- The following correlation element specifies where and how to add the correlation metadata --> <correlation> <!-- This instrumentation element specifies how to get hold of the outgoing payload --> <instrumentation> <class-name>com.ecetera.appdynamics.movieztream.ui.reporting.ProfileFinder</class-name> <method-name>sendProfile</method-name> <match-type>MATCHES_CLASS</match-type> </instrumentation> <!-- This payload-pointer specifies where to grab the payload at the instrumentation point defined above --> <payload-pointer> <data-gatherer-type>POSITION</data-gatherer-type> <position>0</position> <getter-chain>this</getter-chain> <transformer-type>GETTER_METHODS</transformer-type> </payload-pointer> <!-- This payload-operation defines how to add the correlation metadata to the payload --> <payload-operation> <access-type>method</access-type> <access-method>put</access-method> <param-types>java.lang.Object, java.lang.Object</param-types> </payload-operation> </correlation> </producer> <consumer identify-transaction="true"> <!-- This is where the correlation metadata is read and continuing transaction is begun --> <instrumentation> <class-name>com.ecetera.appdynamics.movieztream.service.util.ProfileServiceThread</class-name> <method-name>receiveProfile</method-name> <match-type>MATCHES_CLASS</match-type> </instrumentation> <correlation> <!-- This is how we get the payload bearing our correlation metadata --> <payload-pointer> <data-gatherer-type>POSITION</data-gatherer-type> <position>0</position> <getter-chain>this</getter-chain> <transformer-type>GETTER_METHODS</transformer-type> </payload-pointer> <!-- This is how we extract correlation metadata from the payload --> <payload-operation> <access-type>method</access-type> <access-method>put</access-method> <param-types>java.lang.Object</param-types> </payload-operation> </correlation> </consumer> </activities>
  • 26. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 26 1 What Custom Correlation Requires Assembling the Details A. At this stage you should try to check the source code. B. Although in many cases it will be possible to identify Exit and Entry Points, the payload may not be so easy, e.g. C. Payload on Exit Point cannot be modified (technical limitation) D. Payload on Exit Point cannot be modified due to security reasons E. Payload on Entry Point cannot be read (not in scope) F. Payload on Entry Point cannot be read (technical limitation) G. Without ability to set and get the payload, Custom Correlation will not work! A B C D
  • 27. Lab 3 APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 27 Research Entry and Exit Point Details Scenario Reviewing source code is frequently the best option if you want to understand whatthe functionality is actually doing,in the event that transaction correlation does not seem to be working automatically. This exercise is designed to show how and where to review code for configuring custom correlation entry and exit points.
  • 28. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 2 8 Sample Exit Points Is this acceptable Exit Point code?
  • 29. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 29 Sample Exit Points Is this acceptable Exit Point code?
  • 30. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 30 <activities> <producer> <consumer> <identifiers> <correlation> <validator-config> <naming-config> <excludes>, <includes> Defining Custom Correlation XML Key XML Tags overview
  • 31. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 31 Attributes available to support various scenarios, e.g. • Prioritization of multiple Producers that potentially detect same Exit Point • If resolution to a Tier is NOT desired for the defined Exit Point • Ability to instrument multiple payloads based on there being a split at the Exit Point • Ability to instrument threaded activities and asynchronous queues Must define code we want to instrument based on knowing at least one of the following • Class name, interface, superclass, class annotation Must define method name, and parameters of method signature if method is overloaded Producer Instrumentation <activities> <producer> <!--This instrumentation element defines a custom exit point.--> <instrumentation> <class-name> com.ecetera.appdynamics.movieztream.ui.reporting.ProfileFinder </class-name> <method-name>sendProfile</method-name> <match-type>MATCHES_CLASS</match-type> </instrumentation> </producer> </activities>
  • 32. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 32 Specify identification and registration of Custom Exit Point Naming can be user-defined literal,or derived based on current object,method return object, or method parameter Producer Identifiers <activities> <producer> <!-- This identifier element specifies how to name the custom exit point. This is similar to how we name custom exit points from the UI --> <identifiers> <identifier name="ProfileFinder"> <data-gatherer-type>INVOKED</data-gatherer-type> <getter-chain>this</getter-chain> <user-defined-name>ProfileFinder</user-defined-name> <transformer-type>USER_DEFINED_NAME</transformer-type> </identifier> </identifiers> </producer> </activities>
  • 33. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 33 May be necessary to add GUID to single payload objector all objects in a collection (in split exit scenario) Can have GUID applied at a differentmethod from that of the Exit Point Specify <payload-pointer> to indicate precise payload object we wantto decorate with GUID Specify <payload-operation> to declare how to decorate the payload objectwith GUID Producer Correlation <activities> <producer> <!-- The following correlation element specifies where and how to add the correlation metadata --> <correlation> <!-- This instrumentation element specifies how to get hold of the outgoing payload --> <instrumentation> <class- name>com.ecetera.appdynamics.movieztream.ui.reporting.ProfileFinder</class-name> <method-name>sendProfile</method-name> <match-type>MATCHES_CLASS</match-type> </instrumentation> <!-- This payload-pointer specifies where to grab the payload at the instrumentation point defined above --> <payload-pointer> <data-gatherer-type>POSITION</data-gatherer-type> <position>0</position> <getter-chain>this</getter-chain> <transformer-type>GETTER_METHODS</transformer-type> </payload-pointer> <!-- This payload-operation defines how to add the correlation metadata to the payload --> <payload-operation> <access-type>method</access-type> <access-method>put</access-method> <param-types>java.lang.Object, java.lang.Object</param-types> </payload-operation> </correlation> </producer> </activities>
  • 34. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 34 Consumer has attributes to control scenarios as follows • Transaction should be instrumentedon basis of the first iteration of a loop in the code, terminating whencode hits next iteration • Identifiers permit the specification of more than 1 Custom Exit Point based on a single particular method of a class • Demarcation of activity to differentiate between identification of Entry Point and separate block of codelater on where correlation occurs Must define code we want to instrument based on knowing at least one of the following • Class name, interface, superclass, class annotation Must define method name, and parameters of method signature if method is overloaded Consumer Instrumentation <activities> <consumer identify-transaction="true"> <!-- This is where the correlation metadata is read and continuing transaction is begun --> <instrumentation> <class-name> com.ecetera.appdynamics.movieztream.service.util.ProfileServiceThread</c lass-name> <method-name>receiveProfile</method-name> <match-type>MATCHES_CLASS</match-type> </instrumentation> </consumer> </activities>
  • 35. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 35 Can read GUID from a downstream method different from what specified at Consumer Instrumentation level Specify <payload-pointer> to indicate precise payload object we wantto read GUID from Specify <payload-operation> to declare how to read the GUID from the payload object Consumer Correlation <activities> <consumer identify-transaction="true"> <correlation> <!-- This is how we get the payload bearing our correlation metadata --> <payload-pointer> <data-gatherer-type>POSITION</data-gatherer-type> <position>0</position> <getter-chain>this</getter-chain> <transformer-type>GETTER_METHODS</transformer-type> </payload-pointer> <!-- This is how we extract correlation metadata from the payload --> <payload-operation> <access-type>method</access-type> <access-method>put</access-method> <param-types>java.lang.Object</param-types> </payload-operation> </correlation> </consumer> </activities>
  • 36. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 36 The Naming Config Applicable when correlating asynchronous activities,e.g. Thread/Callable/Runnable or Queue-based Provides a means to define re-usable instrumentation identification criteria <activities> <!-- naming rules config --> <naming-config> <naming-rule> <data-gatherer-config> <name>FQCN</name> <data-gatherer-type>INVOKED</data-gatherer-type> <getter-chain>getClass, getName</getter-chain> <transformer-type>GETTER_METHODS</transformer-type> </data-gatherer-config> </naming-rule> </naming-config> </activities>
  • 37. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 37 The Validator Config Ability to filter correlation based on checking for data values Applicable on Producer or Consumer Allows you to perform custom correlation ONLY when specific value present, e.g. Customer Type == GOLD <activities> <validator-config> <validator match type="STARTSWITH|ENDSWITH|CONTAINS|EQUALS|REGEX|INLIST|NOTEMPTY” class-match type="INHERITS_FROM_CLASS|IMPLEMENTS_INTERFACE|MATCHES_CLASS|HAS_CLASS_ANNOTATI ON" match-pattern=""> <data-match-config> <data-gatherer-type> <!-- INVOKED|RETURN|POSITION --> </data-gatherer-type> <position> <!--POSITION NUMBER. Only used in case POSITION data-gatherer-type is chosen--> </position> <getter-chain> <!-- comma separated list of method names EX: getClass, getName --> </getter-chain> <transformer-type> <!-- TO_STRING|SIMPLE_CLASS_NAME|FIELD_NAME|USER_DEFINED_NAME|GETTER_METHODS - -> </transformer-type> </data-match-config> </validator> </validator-config> </activities>
  • 38. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 38 When instrumentation configuration setup to match multiple possible classes (e.g. interface/superclass/annotation based matching),you can specifically exclude groups or individual classes from being matched. Include back in any sub-groups or specific classes which have been lost through the exclude rules. Defines naming rules for Consumer instrumentation points to aid in distinguishing individual processes. Excludes & Includes <activities> <!-- naming rules config --> <naming-config> <naming-rule> <data-gatherer-config> <name>FQCN</name> <data-gatherer-type>INVOKED</data-gatherer-type> <getter-chain>getClass, getName</getter-chain> <transformer-type>GETTER_METHODS</transformer-type> </data-gatherer-config> </naming-rule> </naming-config> <excludes filter-type="STARTSWITH" filter value="java/,javax/,com.sun/,sun/,org/"/> <!-- exclude weblogic and websphere --> <excludes filter-type="STARTSWITH" filter- value="com.bea/,com.weblogic/,weblogic/,com.ibm/"/> <!-- thread config -->
  • 39. Lab 4 APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 39 Configure Custom Correlation XML Scenario Having now researched suitable Exitand Entry Points, and identified whatwe think can work as the payload that can carry the GUID, it is now time to configure the Custom Activity Correlation XML.
  • 40. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 40 We have outlined the principles oftransaction correlation and how AppDynamics mostly succeeds in correlating automatically. This course has explored why correlation does not always work and how it may appear in the Flow Map. You have explored how to research and set up Custom Activity Correlation for yourself. Summary
  • 41. University Appdynamics.com/university Community community.appdynamics.com Tech Webinars Additional Learning Opportunity APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 41 What are the Resources? Fan Club
  • 42. University APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 42 Multiple Track Courses and Certifications @ appdynamics.com/university Sign Up for Multiple Tracks and Course Dates for Live Training Sessions Watch quick task-based tutorials Take Self-Paced courses to learn at your own pace Access subscriber only contents
  • 43. Community APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 43 Connect With Other Users And Experts @ community.appdynamics.com Exchange information with other Power Users and AppDynamics experts Get AppDynamics-supported and author-supported extensions
  • 44. Tech Webinars APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 44 Attend for free Every other Wednesday at10:00am PT 45 Min presentation followed by a Q&A session View the Tech Webinars Schedule to register for upcoming webinars and watch pastpresentations.
  • 45. Join The FanClub APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 45 We love our customers and partners. Let us thank you for your ongoing support. See new features and roadmaps Try new products and beta programs Access custom extensions and training MeetAppDynamics Executives Get premium swag and invitations to events Sign up and claim your benefits by clicking here to submit the request!
  • 46. Thank You Please fill out the survey: https://www.surveymonkey.com/r/AppDynamicsUniversity Your feedback is very important to us. We use it to help us improve our content and incorporate new features to keep our courses relevantfor our audience. Fred Paine fred.paine@appdynamics.com