Dotcom-Monitor’s LoadView and Dynatrace are performance-engineering platforms by heart. Both have an excellent customer base, are fully Cloud native solutions and root on a long-standing history. This showcase demonstrates how the combination of both tools will close remaining gaps in the performance engineering chain.
My major steps in this showcase were:
Trial account for Dynatrace SaaS
Trial account for dotcom-monitor LoadView SaaS
EasyTravel demo application on AWS server
LoadView scripting tool Easystep on AWS server
Firewall on AWS server
AWS server security policy
Dynatrace request attribute
Setup Load Test
Recorded EasyTravel testing script
Setup load test scenario and execute the test
Review LoadView end-to-end response times
Deep dive analysis of correlated results in Dynatrace
LoadView is a SaaS based load testing platform fully equipped with protocol, headless or full browser based user simulation techniques. It provides testing support for more than 40 devices such as IE, Chrome, Firefox and top mobile devices such as IPhone, Samsung, Nokia, Blackberry and many more.
Dynatrace is a SaaS based monitoring solution and supports a broad range of technologies. Its powerful OneAgent injects all services automatically, captures the service flow and all interactions from the end user, network, and middleware through backend tiers and provides insights to actual bottlenecks.
The picture below highlights the main integration steps between both solutions.
Setup Demo App EasyTravel on AWS Box
Installed EasyTravel on AWS box
Start Easytravel demo app
Add inbound and outbound windows firewall rule on test server for port 8079
Add outbound rule for the IPs below on AWS box to allow communication with Dynatrace SaaS backend
Link to my Easytravel demo application hosted on AWS server:
Connect demo application hosted on AWS to Dynatrace
Used this documentation for the setup:
Create key based access for amazon account
Secret access key: …
Custom Policy: watch
Connect amazon account to Dynatrace
Setup the loadtest request attribute name
Go to Settings / Server-side service monitoring
Create a new request attribute called loadtest
Click on Add new datasource
Set the Parameter name to x-dynatrace
Click on Save
Attention: use lower case characters in both the attribute and parameter name
- Record a Browser based script, which clicks through the demo application EasyTravel
- Replay the Browser based script
- Edit the load testing script and add the following code section after tab0 variable initialized: Tab.SetRequestHeader(“loadtest”,”x-dynatrace”);
Execute the EveryStep Script load test script several times (single user)
Upload the load test script to LoadView Platform
Watch how user ramp up and E-2-E response times behaves during the run
Get a list of long running requests
Details for a long running request, find problem spot
Big picture, start the performance analysis from there
Load Testing and Performance Monitoring are two rising stars. Organizations can no longer ignore not reliable applications because customers are on the driver seat and often quickly spend their money on other, more reliable sites. Due to this negative financial impact of increasing abandon rates and growing need for fast deployment cycles companies are seeking for a way out of this performance dilemma.
Load generation on early development stages gives confidence how the end-to-end response times develop under multi-user conditions. Testers often use load injection to verify non-functional requirements on pre-production stages.
Performance Monitoring provides insights how the application tiers deal with their service requests. Developer and operational staff often use it to find problem hotspots in their applications.
There are significant benefits if you combine LoadView & Dynatrace:
- Find performance issues early in the life cycle
- Find root-cause of performance issues
- Reduce re-run effort
- Check how services behaves under real production load conditions
- Understand communication pattern
- Verify hardware sizing
- Make application tuning much easier
- Cut costs and pay only the used services
- No internal infrastructure for performance engineering activities required
Successful companies integrated performance engineering in their development lifecycle. They simulate actual and future growth pattern on pre-production stages, identify and fix hotspots and deploy those tuned application into production. Even at production there is guesswork banned out. They permanently monitor user experience, capture all transaction and detect problems automatically based on actual and historic figures. LoadView & Dynatrace are great steps towards lean and reliable IT services.
Ideas How to Improve This Integration
Fetch important Dynatrace performance metrics via Dynatrace Rest API and add those metrics to the test report.
Add “loadtest” header attribute automatically
It could be difficult for a normal user to edit the script manually.
A manual script edit requires also a review by support teams prior to execution of a load test.
Recommendation: Include an “Add Dynatrace header” to Everystep context menu.
Tagging of user actions
Current LoadView – Dynatrace integration starts at the server tier.
LoadView simulates real user actions and it would be easier if a loadtest tag could be added during replay so that Dynatrace were able to use its filter technique to find the corresponding user actions.
Dynatrace support recommended reading this blog:
IP based Filter
No manual or automatic script edits required on LoadView / EveryStep side.
Simply execute the stress test scenario and use the IP addresses of the load injection machines to filter the corresponding requests captured in Dynatrace.
Define a custom region in Dynatrace for the LoadView load injection machines and use the custom region to identify all load testing requests and drill down to performance hotspots.