You are on page 1of 129

Dynatrace Training

For Bank BRI


Comprehensive Scope
business end-to-end

life-cycle

deep all transactions


Development Test Production

Developers, CI Test Centers Production, Staging

Automated Staging 24x7 End-to-end


Performance Automated
Testing, Tests, Transaction Tracing,
Engineering Testing &
(Arch Validation, Tuning, Tuning, Monitoring,
Continuous
Profiling) Diagnostics Diagnostics Diagnostics
Integration

Integrate to Automate and Collaborate

IDE, CI, Build Integration System Management

Application Performance Management

Test Tool Integration

Pre – Production Edition Production Edition

dynaTrace – One Platform – Single Product


Last Minute Search: menu.do, user=Joe, action=lastMinute

Buy: sale.do, user=Jane, action=doBuy

100 %
List: query.do, user=Bob, action=showAll

Pay: menu.do, user=Joe, action=pay

Call
PaymentService.transferCash
Performance and Impact Analysis with PureModel
PureModel = PurePath + PureStack

PureStack
Technology ™
Execution times, CPU, Remoting,

dynaTrace Solution Architecture


Only 24x7 heterogeneous Messaging, Web Services, I/O, Wait, Sync, Method args & returns,
always-on distributed global Memory, GC, JMX, CLR, OS & PMI Metrics
Exceptions, Logs, SQLs & Bind
Mainframe,
deep transaction trace   values… business context
Native,
no after-the-fact tracing
Browser or Rich-Client Web Server / PHP Java .NET
no statistical guesswork Database

Automatic Process
and Host Monitoring 
Zero Config

Lowest overhead through externalized data


processing  Single file deployment  no
no app-side data processing config files & no source code
Agent/PurePath
Collector
changes
Monitoring
Collector
Globally scalable collector architecture,
Performance
Warehouse
secure,  dynaTrace
Client
no problems with dynamic cloud and Sessions
Store
virtualization environments
dynaTrace
Server

Synthetic Real-time transaction analysis,


business transaction mapping, Role based dashboards, single point
alerting  Exported of dynaTrace
configuration
Session Analysis across
Server for lifecycle
Memory Dumps
no averages Ease-of-use
Offline
Session Analysis
Self-learning,
Offline Analysis of root-cause Shared full-depth transaction & Auto-discovery, Large heap analysis service 
information (transactions, memory, context information Auto placement  Background processing
threads & time series)  no guesswork low maintenance
Collaboration made easy
Measures Built-In: Metrics-Driven Continuous Delivery!
Architecture Violation
Direct access to DB from frontend service

26.7s Load Time 33! Service Calls 171! Total SQL Count
5kB Payload 99kB - 3kB for each call!
LEARN MORE: http://apmblog.dynatrace.com/2016/03/02/build-optimize-test-operate-highly-scalable-applications-with-dynatrace/
Confidential, Dynatrace, LLC
All-In Agile: Use application metrics as Feedback Loop & Quality Gates

Dev&Test: Personal License Prod: Monitor Usage and Runtime


to Stop Bad Code when it Behavior per Service, User Action,
gets created! Feature ...
Tip: Dont leave your IDE! Tip: Stream to ELK, Splunk and Co ...

Automated Tests: Identify Non-Functional Continuous Integration: Auto-Stop Bad Builds based on
Problems by looking at App Metrics AppMetrics from Unit-, Integration, - Perf Tests
Tip: Feed data back into your test tool! Tip: integrate with Jenkins, Bamboo ...
I am a Developer ...

... and want to only


check-in good code!
#1: Don’t Check In Bad Code
Step #2: ... but DO IT
WITH Dynatrace!!

Step #3: Verify Code works as


Step #1: Execute intended without leaving the IDE!
your Tests just as you
always do ...
I am a Test Automation
Engineer ...

... and want to integrate


App Metrics into my
tests
#3: Integrate with your Testing Tools
Pull Your Test Tool Results Compare with
into Dynatrace Dynatrace Data

App Metrics
DB, Exceptions, CPU, ...
for each Test Step
#3: Or Stream Data to your Tools!
#4: Integration Powered by REST API
I am a (Dev/App)Ops ...

... and want to identify


good/bad features &
deployments based on
Usage and App Metrics!
#5: Monitor your Services/Users in Prod
#1: Usage #2: Load vs Response
Tip: UEM Conversion! Tip: See unusual spikes

#3: Architectural Metrics


DB, Exceptions, Web
Service Calls
I am a (Biz)Ops ...

... and want to improve


user experience &
behavior
#6: UX Analysis based on UEM Data
#1: Do my campaigns work?

#2: Who are my users?


Transactions: End-to-End per Application
1. Click on Monitoring
2. Transactions are
assigned to an 7. Access to other
Application analytics
(configurable) dashboards

6. How healthy is
3. What’s our load on 5. Do we have a
4. Do we have any the underlying
that Application? severe application performance infrastructure?
failures (HTTP 500, problem?
Exceptions, …)?
Analyze End User Performance
Diagnose Web Request Performance
Analyze Performance: Visits
Transaction: Infrastructure
• Process and Host Health involved in these transactions
Transactions and Business Transactions: Mapped
1. Performance
Overview per
Application
2. Alerts on unusual
throughput based on
baseline
3. Automatic
Failure Detection
4. Alerts on
performance
degradations
5. Is it Application or
Infrastructure related?
Correlate Process and
Host Health per
Application

6. Automatically 7. Baselines and Violations on Failure Rate, Response 8. Is the Business Transaction
Time and Throughput are calculated per Business impacted by Process or Host
identify critical Health Issues?
Transaction Splitting
Business Transactions
Memory Diagnostics & CPU
Diagnostic
Main Pains for Problem Hunters
The JVM/CLR contains a lot of objects.
How to analyze, especially in a load or
production environment?

Which collections are What keeps my objects Where do millions of


growing? alive? short living objects come from?

Component/Layer Component/Layer

Component/Layer

How can single users create so How can certain business transactions create
many objects? so many objects?
Typical Anatomy of Java Memory Space
Maximum Process Space

Old Gen/Tenured Space


(Old Objects/Potential Leak)
Native Memory
(Sockets, JNI, Native Libraries) Survivor Space
(Objects survived GC)

Eden Space
(Young Objects)
Heap

Code Area

Java Virtual Machine


Anatomy of .NET Memory Space
Maximum Process Space

Generation 2
Native Memory (Old Objects/Potential Leak)
(Native Libraries, COM Objects, ...)

Generation 1
(Objects survived GC)
Large Object Heap

Generation 0
(Young Objects)

Small Object Heap

Code Area

.NET Common Language Runtime


Basic Memory
Diagnostics
Dynatrace Memory Diagnostics Process
Use Charts and
Incidents
Monitor Memory Behavior

Analyze Trend

Analyze Memory Hotspots

Define Memory Rules

Analyze Allocations
Host and Process Health

Identified a Host
Memory Issue

Host Memory
Over Time
Process Health

Impact of GC on
App Server

App Server
Memory Usage
over Time
Memory Dashboards / Dashlets

Memory Usage Dashboard gives an


overview of ALL JVMs/CLRs instead
of Per Process as seen in Process
Health Dashboard
GC Analysis
PurePath Duration
Dynatrace recognizes the
suspension by the garbage
Garbage Collector collector…

476ms

Garbage Collector
…and knows precisely
how long the PurePath
21ms
was interrupted

455ms

Thus, we can calculate the


duration of the PurePath
without suspension
Memory Dashboards / Dashlets

Open GC Impact Dashboard


Uncover GC Run Impact on PurePath Duration
Monitor how GC runs
impact PurePath duration

View suspension
time in detail
Runtime Suspension
Methods with high suspension
Methods suspended by counter are suspected to allocate
garbage collection large objects

Suspension
counter
Response Time Hotspots

Contribution of garbage collection


to response time
Hands On: GC Analysis
• Goal
• Understand impact of GC on easyTravel
• Scenario
• Core Training – GC Analysis
• Questions
• What is the impact of GC, if any, on easyTravel?
• Which Application(s)? Which Tier?
• Steps
• Use the Infrastructure Process Health Dashboards and the Analyze Garbage Collection
Impact Dashboard from the Start Center
• Create your on GC Analysis Dashboard
• Analyze PurePaths, Response Time Hotspots, etc.
Leak Detection
Dynatrace Memory Diagnostics Process

Memory
Monitor Memory Behavior Consumption
Trending
Snapshot
Analyze Trend

Analyze Memory Hotspots Deep Memory


Leak Analysis
Snapshot

Define Memory Rules

Analyze Allocations
Trending Snapshot vs. Leak Analysis Snapshot

Deep Memory Leak Analysis Snapshot:


Memory Consumption Trending Snapshot:
All objects and string data
Number of Instances per Class
Automatic Hotspot Analysis

JVM/CLR JVM/CLR
Find Objects
increasing in number
Dynatrace Memory Diagnostics Process

Memory
Monitor Memory Behavior Consumption
Trending
Snapshot
Analyze Trend

Analyze Memory Hotspots

Define Memory Rules

Analyze Allocations
Creating Memory Consumption Trending Snapshots
• Contains Instance Count
per Class
• Schedule periodic
Snapshots
• Compare Snapshots to
find Objects that
increased in number over
time
Comparing Multiple Trending Snapshots

Select your
Memory
Snapshots…

Press Compare, to
analyze how instances
developed over time

…and view the


Memory Usage
Trend
Comparing Multiple Trending Snapshots
• Which Objects increased in numbers over time?
These are suspects for Memory Leaks
Analyze how instances
developed over time
Hands On: Memory Diagnostics - Trending
• Goal
• Understand Memory growth through Trending
• Scenario
• Core Training – Memory Diagnostics
• Steps
• Identify Tier with potential leak
• Capture a series of Memory Consumption Trending Snapshots from this Tier
• Questions
• Which classes are growing at the fastest rate?
• Which easyTravel classes are growing at the fastest rate?
Deep Memory Leak
Analysis
Dynatrace Memory Diagnostics Process

Monitor Memory Behavior

Analyze Trend

Analyze Memory Hotspots Deep Memory


Leak Analysis
Snapshot

Define Memory Rules

Analyze Allocations
Direct vs. Keep Alive References
Direct Reference Keep Alive

Keep Alive will only show


References
visualize the real object hierarchy, which
that are kept alive due to the referrer
includes the referring property
The referrer that is solely responsible for
the object not being Garbage Collected

This is the
1 REFERRER
1

For THIS
2 3 object 2 3 5

And this is
4 5 the REFEREE 4
Creating Deep Memory Leak Analysis Snapshots
• Contains full Heap Data
• Analyze Snapshot:
• Hotspots
• Keep-Alive Sets
• Collections
• Sessions
• Duplicate Strings
Automatic Memory Hotspots
• Biggest Memory Hotspots
• Biggest Collections and Maps
• HTTP Sessions
• Duplicate Strings
Follow link to
show path to
root by keep alive

Analyze Hotspots
Analyze with a single Mouse click
• What keeps the Hotspot Alive?

Select “Show
Keep Alive Set” in
context menu

How big?
How big?

• What does the Hotspot keep Alive, or why is it so big?


Heap Walk for Detailed Analysis Open by double-
clicking on the
memory snapshot
Path to Root by Keep Alive

Select “Show Shortest


Root Paths”/“By Keep
Alive” in context menu
References by Keep Alive
Select “Follow
References”/“By Keep
Alive” in context menu

Choose between
analyzing referrers
and referees
Shortest Paths to Root
Select “Show Shortest
Root Paths”/“Direct” in
context menu
Direct References
Select “Follow
References”/“Direct” in
context menu

Choose between
analyzing referrers
and referees
References to/from the Class

Select “Follow References”:


“By Keep Alive” or “Direct”
in context menu of a class
References by Keep Alive

Choose between
analyzing referrers
and referees
Direct References

Choose between
analyzing referrers
and referees
Additional Automatic Analysis

• Biggest Collection/Maps

• HTTP Sessions

• Duplicated Strings
Native Memory Leak Warning

Potential Native Memory Leak Information

Process Size >= 125%


of Max Heap Size
Hands On: Memory Diagnostics – Leak Analysis
• Goal
• Track down the cause of a Memory Leak
• Scenario
• Core Training – Memory Diagnostics
• Steps
• Capture at least one Leak Analysis Snapshot
• Questions
• Do we have a memory leak? If so – in which tier?
• Which classes have a problem?
• Who is responsible for the leaking classes?
CPU Sampling
Why do we need CPU Sampling?

All transactions are


covered by PurePaths

Are there any background

? threads that might impact


our transactions?

We can let the …to gain visibility


Agent do CPU beyond the PurePath
Sampling…
CPU Sampling
or

Capture Samples over a


period of time to ensure
optimal visibility.
Identify CPU
Hotspots beyond
PurePaths
Analyze Thread List

Switch to “group
by thread”

Analyze threads and find


suspects extensively
consuming CPU

Analyze that Thread to


determine methods that
are candidates for
instrumentation (new
Entry Points.)
Analyze CPU Hotspots

Switch to “All
Threads”

Identify Methods
that spend most
of their time in
CPU
Hands On: CPU Sampling
• Goals
• Use CPU Sampling to increase PurePath coverage of Transactions
• Scenario
• Core Training – CPU Sampling
• Steps
• Visit http://localhost:9010/Report/Start?minutes=1
• Use CPU Sampling on the dotNetBackend
• At the end of the Hands On visit http://localhost:9010/Report/Stop
• Questions
• Did you find any interesting Threads?
• Did you find any candidates for instrumentation?
• If so, create new Entry Point Sensors for them and verify PurePaths are being
captured.
Thread Diagnostics
Shared Resources

Thread 1 Thread 2

Ask for Resource


Use Ask for Resource
Wait
Resource
Use
Stuck Threads

Thread 1 Thread 2

Ask for R1
Use Ask for R2
Ask for R2 Use
R1 R2
Wait Ask for R1
Wait
Threads
or

…or define
scheduled tasks

Create Dumps
manually…
Overview of a Single Thread Dump
Select your just
created Thread
Dump…

…and overview
results
Analyze Thread Dump Trends
Select your just
created Thread
Dumps…

Press compare
to further dig
into analysis
…and analyze how the
number of threads and their
states evolve over time
Compare Thread DumpsEasy grouping by
thread group, thread state,
monitor usage, class, method

See how CPU


time developed
Group by
Analyze a Single Thread Dump thread state
Find deadlocks:
threads waiting for
each other

Browse through
the stack trace
What is a monitor?
Deep Dive Analysis: Drill Down to PurePaths
Hands On: Thread Diagnostics
• Scenario
• Core Training – Thread Diagnostics
• Steps
• Use easyTravel to search for trips by clicking on the pictures
• Identify if any thread related problems occur
• If so, capture the appropriate Thread Dumps
• Questions
• Which Tier is experiencing a problem?
• What is the problem?
• Which Threads? Which methods?
Dynatrace Plugin
Dynatrace AppMon & UEM FastPacks and Plugin
Confidential, Dynatrace, LLC 87
Telegram Plugin
Assumption this step already done
• Create a bot Using TheBotFather
• Start a chat and finds it’s ID
• Test it – make sure you can send “Hello World” to group.

Dowload the Plugins


1. Download – Generic Execution Plugin
2. Apply to Dynatrace Server
3. Create Incident , set threshold and setting the actions
Confidential, Dynatrace, LLC 88
Purelytic

Confidential, Dynatrace, LLC 89


PureLytics Stream Visits
Actions
Client
JSON
Errors

• Extends our analytic capabilities ElasticSearch


• Unique count aggregations
• Feature analytics
• Better suited for large amounts of data
• Still does not solve the “look at visits of the last year”
• Allows adhoc analysis
• No configuration of business transactions upfront needed
• Feed into existing data sinks (ElasticSearch, Teradata, Datadog, …)
• We should never be the reason for a customer starting to use ElasticSearch!
• Not the answer to “BTs are so complicated to set up”
Setup for PureLytics Stream

On Demand Streaming

Use RESTful analyticsstreamjob to create a job that will export data


with a POST request. Then use analyticsstreamjob with jobid as
parameter to monitor the job with a GET request.
PureLytics Stream

• JSON Output Format


• Output the following
UEM data
• Visits
• User Action
• Client Error
Install ELK Stack

dynaTrace 6.3
Setup JDK

Setup ElasticSearch

Setup Kibana
Accessible locally via port 5601
Setup Nginx as reverse proxy
Accessible from outside (port 80)
Demo VM
Setup LogStack

Setup LogStack Forwarder


Access via browser
http://hostip:5601

Environment Used: OS - CentOS 6.5, RAM – 2 GB, CPU - 2


Install ElasticSearch (from Repository)

• Install latest JDK


• Setup ElasticSearch GPG-KEY and copy elasticsearch.repo to /etc/yum.repos.d
sudo rpm --import http://packages.elasticsearch.org/GPG-KEY-elasticsearch
• Start the installation

yum install elasticsearch


chkconfig
• Update elasticsearch(enable
elasticsearch.yml on network.host: [“_eth1:ipv4_” , “_local_”]) and start the service

vi /etc/elasticsearch/elasticsearch.yml
service
• Verify theelasticsearch start
service (http://localhost:9200 ) elasticsearch.repo
[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=https://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1
Install Kibana (from Repository)

• Copy kibana.repo to /etc/yum.repos_d


• Install kibana

yum install kibana


chkconfig kibana on
• (optional) Update kibana.yml (server.host: “0.0.0.0”  server.host: “localhost”) and start kibana

vi /etc/kibana/kibana.yml
• Define
servicethe default
kibana index pattern (dt_*)
start
• Verify the service (http://localhost:5601)
kibana.repo
[kibana-4.4]
name=Kibana repository for 4.4.x packages
baseurl=http://packages.elastic.co/kibana/4.4/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1
Kibana Quick Tutorial – First Time Setup

• Uncheck “Index contains time-based events” and enter “dt_*” as index pattern, and hit Create

Make sure easyTravel data has streamed to ElasticSearch


for few minutes before you start Kibana discovery.
Kibana Quick Tutorial – Create Visualization Component

 Select “Split Slices”


 Select “Terms” in Aggregation
 Select data.location.country in Field
 Click “Green Arrow” button to apply
the changes
 Save after done
Kibana Quick Tutorial – Dashboard

 Click Add Icon


 Select the saved Visualization
 Save after done
Source Look Up

Integration With Eclipse


Source Look Up

Jumps to the source code line in your IDE if you have the Visual Studio Solution or Eclipse Project open.
Integration Step with IDE - Eclipse
Install dynaTrace Eclipse Integration Plugin
Step 1
Configuration

Create System Profile

Define Tiers (Place Agents)

Start Application

Capture Data, Analyze, Monitor


Installation plugin in Eclipse (1)
Open Eclipse , install from eclipse repository (step 1a).
(if new version not available, please user manual installation from dynatrace community plugin)

Confidential, Dynatrace, LLC 102


Installation plugin in Eclipse (2)

To do manual installation (step 1b) :


• Download latest plugin (from community)
• Unzip the archive
• In Eclipse, click on “help” / “Install new software ..”
• Add …, Local …
• Select the extracted CodeLink directory

Confidential, Dynatrace, LLC 103


Configuration
The global settings for the plugin are located under Window / Preferences

Confidential, Dynatrace, LLC 104


Integration with Jmeter
Jmeter modification (1)
Jmeter modification (2)

Confidential, Dynatrace, LLC 107


Setting Recording mode in Dynatrace

Make sure you don’t


get this msg

unchecked

Confidential, Dynatrace, LLC 108


Run your Jmeter & Open Test Automation
Dashboard

Confidential, Dynatrace, LLC 109


Load Testing
Load Testing without dynaTrace
• Load Testing Tool Reports slow pages – but why are they slow?

• Developers try to reproduce the problem and try to fix it based on log output
• Additional log refining is added to capture more information on next test run
• Another Load Test follows another „Try to Reproduce, Refine Log output and Try Fix“ Session until problem is eventually fixed

Developing

Test Run Reproduction Refine Capturing

Multiple Test Iterations


Re Run Tests Reproduction Refine Capturing
needed to analyze
Root-cause and
fix the problem
Re Run Tests Reproduction Problem Analysis

Problem Solving
Getting Insight Into the Box
• Virtual Users see your application as Black Blox
• Combining it with dynaTrace gives you Insight into the Black Box
Deployed Enterprise Application

Virtual Users

LB/FW Frontend Services Storage

Individual Transactions Not only Min/Max/Avg Includes Context Data


Load Testing with dynaTrace
• Load Testing Tool Reports slow pages – but why are they slow?

• dynaTrace follows all synthetic transactions through the Application


Developing Reducing Load Test Time
Test Run Reproduction Refine Capturing
Multiple Test Iterations
Re Run Tests Reproduction Refine Capturing needed to analyze
Root-cause and
fix the problem

Re Run Tests Reproduction Problem Analysis

Problem Solving

time

Developing

Test Run Reproduction Refine Capturing

Re Run Tests Reproduction Refine Capturing


•Eliminates Test Iterations
•Go directly to problem analysis
•Frees up resources for other projects

Re Run Tests Reproduction Problem Analysis

Problem Solving

time
Why Linking Synthetic Transactions with
• Load Testing Tools use Transaction or Test Step Names
• Visit Home Page PurePath
• Login User
• Search Flight
• Purchase
• Logout

• dynaTrace analyzes incoming web requests by URL


• http://myserver/service/journey-service
• http://myserver/booking-payment.jsf
• http://myserver/booking-review.jsf
• http://myserver/booking-finish.jsf

How can we link these two sides?


Tagging Web Requests – Link Test Step with PurePath
• Tagging every HTTP Request with a specific dynaTrace HTTP Header
• Testing Tools usually allow you to add a custom HTTP Header
Pseudo Test Script Multiple HTTP Requests for Search and Purchase Step
GET /services/journey-search.jsf?dest=New%20York HTTP/1.1
Host: mywebserver
Test Script Connection: Keep-Alive
easyTravel Accept: */*
Test Name BuyFlight User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)
- Step Login dynaTrace: VU=1;SN=easyTravel;TN=BuyFlight;ID=4;NA=Search
- Step Search
- Step Purchase
GET /booking-finish.jsf HTTP/1.1
Host: mywebserver
Connection: Keep-Alive
Accept: */*
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)
dynaTrace: VU=1;SN=easyTravel;TN==BuyFlight;ID=5;NA=Purchase

GET /booking-finish.jsf HTTP/1.1


Host: mywebserver
Connection: Keep-Alive
Accept: */*
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)
dynaTrace: VU=1;SN=easyTravel;TN=BuyFlight;ID=5;NA=Purchase
Tagged Web Requests (contd.)
• Details on dynaTrace HTTP Request Header
• Contains of several Key-Value pairs – separated via semi-colon
Key Description
NA (required) Timer Name
Should be used to define the current action of the virtual user, e.g.: Purchase
SN (optional) Script Name
Name of the Test Script. Used by Gomez SyntheticaI ntegration
TN (optional) Test Name
Name of the Test. Used by Gomez Synthetic Integration
GR (optional) Geographical Region
Geo Information of Load Generator. Used by Gomez Synthetic Integration
AN (optional) Agent Name
Name of Load Generation Agent. Used by Gomez Synthetic Integration
SI (optional) Source ID
Used by Gomez Synthetic Integration
VU (optional) Unique Virtual User ID
Can be used to uniquely identify the Virtual User, e.g.: VU25
ID (optional) Unique Request ID
Can be used to uniquely identify a single HTTP Requestse, e.g.: Req3424
PC (optional) Page Context
Can be used to provide additional contextual information. Pages with multiple frames can use this to
„group“ requests to a single page, e.g.: HomePage.Frame1
Tagged Web Requests (contd.)
• Details on dynaTrace HTTP Response Header
• Requests with an incoming dynaTrace HTTP Header will respond with a dynaTrace HTTP Header with a reference to the captured PurePath

dynaTrace: RS=session20060620091846;PT=31;PA=1;PS=76562898

Key Description

RS Identifies name of the dynaTrace Recorded Session that is currently being recorded
SP System Profile Name
PT PurePath identifier - Trace#
PA PurePath identifier - entry point Agent#

PS PurePath Server identifier - identifies the dynaTrace Server which captured this PurePath
Other Integration Options – Record a Session
• Record a dynaTrace Session for every Load Test
• Start/Stop Session Recording before/after the Test using the Load Test Name
• Manually Start/Stop or use REST Interface and trigger recording from Tool
• https://community.dynatrace.com/community/display/DOCDT40/Server+REST+Interfaces

Start Recording
POST rest/management/profiles/GoSpace/startrecording HTTP/1.1
Host: localhost:8020
Content-Length: 80
presentableName=easyTravelTestRun1&description=MyTestRun1&isTimeStampAllowed=true

Stop Recording
GET rest/management/profiles/GoSpace/stoprecording HTTP/1.1
Other Integration Options – Query Data
• Query Data from dynaTrace to integrate in your existing reports
• Define a Dashboard that contains data you want to query
• Use Server-Side REST Interfaces to query this data after the test is done
• https://community.dynatrace.com/community/display/DOCDT40/Server-+and+Clientside+XML+Reporting

Example Request
GET rest/management/dashboard/My%20Test%20Dashboard HTTP/1.1

Example Response
<?xml version="1.0" encoding="utf-8"?>
<dashboardreport name=“My Test Dashboard" version="3.1.0.1781" reportdate="2009-07-22T10:57:10.199+02:00" description="">
<source name=“easyTravel" />
<data>
<apibreakdowndashlet name="API Breakdown" description="" displaysource="Base">
<apis>
<api name="Servlet" exec_avg="157.20263700354496" exec_sum="12104.603049272962"
cpu_avg="12.975964260238069" cpu_sum="999.1492480383313"
sync_avg="8.608057804695971E-4" sync_sum="0.06628204509615898"
wait_avg="0.0" wait_sum="0.0" />
<api name="JDBC" exec_avg="187.71199448524803" exec_sum="5819.0718290426885"
cpu_avg="148.24450352138393" cpu_sum="4595.579609162902"
sync_avg="0.0" sync_sum="0.0" wait_avg="0.0" wait_sum="0.0" />
</apis>
</apibreakdowndashlet>
</data>
</dashboardreport>
Business Transactions per Tagged Values
• Out of the Box: Synthetic Web Requests per Timer Name
• Groups Transactions by Timer Name (NA) value
• Chart Response Time – either on Avg or Count

Whats the Response Time for every


How many Requests per Timer Name?
Timer Name?
Load Testing Dashboard
• Verify Load Testing Dashboard shows data
• Opened through Start Center

Select a Test Step and see all


relevant information at a glance

How does performance vary


during load test? Does load affect
performance?

Understand the Transaction Flow, find


performance hotspots, database problems and
functional errors with just a single click.
Hands-On: Analyze Load Test
• Scenario 1
• Advanced Training -> Day 4 – Increasing Load
• Goals
• Let Load Test run for 10 minutes
• Analyze results with Load Testing Dashboard – is there any problem you can
identify?
• Scenario 2
• 2 pre-recorded Load Testing sessions
• Goals
• What are the differences between these two load tests?
Comparing Sessions
Comparing Sessions
• Two Sessions can be compared with each other
• All types of Sessions (Live vs. Stored, Stored vs. Stored, etc.)
• Great for comparing the results of two load tests.

• Two Timeframes can be compared


• Helpful when Continuous Session Recording is on.
• To compare before and after a patch deployment

• Open Comparison Dashboard


• through Start Center

• Or by changing Source and Comparison Source of a new Dashboard


Resources

Confidential, Dynatrace, LLC 126


Community Dynatrace

https://www.dynatrace.com/services-support/#get-support
University

https://university.dynatrace.com/?_ga=2.132429130.519927234.1527478646-278173520.1491430282

Confidential, Dynatrace, LLC 128


Confidential, Dynatrace, LLC 129

You might also like