Wilson Mar bio photo

Wilson Mar

Hello!

Calendar YouTube Github

LinkedIn

A sample multi-tier Java app used by Dynatrace as the basis for measuring infrastructure

US (English)   Norsk (Norwegian)   Español (Spanish)   Français (French)   Deutsch (German)   Italiano   Português   Estonian   اَلْعَرَبِيَّةُ (Egypt Arabic)   Napali   中文 (简体) Chinese (Simplified)   日本語 Japanese   한국어 Korean

Overview

This is a step-by-step tutorial on how to install and run the Easy Travel s-+++ample stack of apps from Dynatrace so that it can to evaluate its own AppMon and UEM software.

Currently, this article needs an update about Docker and misses key steps and URLs. Thank you for your understanding.

There are other demos, such as “Hipster Shop” created using https://github.com/dynatrace-ace/microservices-demo containing a 10-tier microservices application. The application is a web-based e-commerce app called where users can browse items, add them to the cart, and purchase them.

TL;DR Summary

“Easy Travel” is NOT a real travel site like Expedia.com or easytravel.co.tz.

“EasyTravel” is a (now legacy) multi-tier system implemented in a mix of technologies on Windows and Linux machines. It provides the variety of technologies which Dynatrace can trace.

What is special about the system is it is designed to exhibit different problem patterns based on specifications in an XML file referenced by programs.

  1. View YOUTUBE: Evaluate Dynatrace with easyTravel demo app from May 14, 2015. In 1 hour Andreas Grabner (@grabnerandi) takes a whirlwind tour, half based on random questions, which can be confusing to newbies. Contents of the video have been incorporated in the steps below.

  2. VIDEO: Windows Install by Naveen at QAInsights works with installers from 7/27/2018

  3. https://university.dynatrace.com/

Source and Architecture

  1. In your internet browser, get on the EasyTravel download web page:

    http://bit.ly/dteasytravel = https://confluence.dynatrace.com/community/display/DL/easyTravel

    CAUTION: Each version of EasyTravel was tested with specific versions of Dynatrace and its AppMon.

    https://github.com/dynatrace-ace

  2. Click on easyTravel 2 source code to download file dynatrace-easytravel-src.zip to your downloads folder.

    • 2.0.0.3373 source = zip 864 MB -> 1.51 GB expanded

    • dynatrace-easytravel-windows-x86_64-latest
    • dynatrace-easytravel-linux-x86_64
  3. In the browser or Finder, double-click on dynatrace-easytravel-src.zip to expand into folder:

    dynatrace-easytravel-src

  4. Delete the zip file.
  5. Use a Finder to view the files.
  6. Open easyTravel - Architecture and Deployments.pptx (using PowerPoint)

    NOTE: “Compuware” is the name of the company which Dynatrace acquired.

    Small (Minimal) Set of Nodes

    The “Small” scenario has a single Apache PHP Web Server receiving from Desktop, Mobile, and an Administration Portal.

    easyTravel_small-1272x912

    </tr> </tr> </tbody></table> PROTIP: You can't run the whole set on your Mac In the table above, * "SWT" is pronounced "Swift", the UI framework used by Java programmers * "ADK" is the Microsoft ADK (Windows Assessment and Deployment Kit) native app. EasyTravel consists of both consumer and business portals: * "Consumer front-end" provides customer users access. The Java-based Front-end web portal enables customer user log in, search for journeys to various destinations, select promotional journeys directly that are offered and book a journey using credit card details. * Business-to-Business (B2B) users use a .Net web portal for travel agencies to manage the journeys that they offer and review reports about bookings made by consumers. ### Large for HA The "Large" configuration is for scalability and redundancy, with a cluster of machines for each node. The "Large + Microservices" is a more "modern" approach ### Build from Source These instructions are adapted from the README.md file
    SvrApplicationTechnologyMemoryNotes
    1.Launcher & Business DatabaseJava/SWT 225 MBJava Derby DB (MSSQL) plugins
    2.Load BalancerApache PHP? --
    3."Third Party" Customer Frontend Java/Tomcat <190 MBport 8079 to 8080
    4.B2B Frontend .NET/MVC 65 MBport 8099 to 9000
    5.Business Backend Java/Tomcat <190 MB-
    6.Payment Backend .NET/MVC 65 MB-
    7.Payment DatabaseMSSQL Compact ? MB-
    8.Credit Card Authorization C++/ADK <1 MB-
    9."Third Party" User emulator ? ? MBimposes load
    Overall <800 MBOptional
  7. In a Terminal:
  8. cd to the Distribution directory
  9. Run this command, which can take up to 10 minutes:

    ant -f build.xml all

    The build result is in the dist subdirectory.

    Angular frontend

    By default the angular frontend used is taken from the directory easytravel-angular\last-build that is part of the sources. If you need to change it, then:

  10. Check if you already have the sources - there should be a directory easytravel-angular with the sources. If you have them, then go to point 3.
  11. Clone the repository https://bitbucket.lab.dynatrace.org/scm/dem/easytravel-angular.git - it is best to clone it inside the directory with easyTravel sources.
  12. Make the changes you need. Build the angular project by running yarn build inside the project.
  13. Copy the changed files to the dist with the script ant -f build.xml copyAngular (run from within easyTravel/Distribution). Do remember, that the files copied are supposed to be in the directory easytravel-angular\last-build. If they are not here but in another place, please update the build.xml file accordingly.

Launcher

The Launcher starts programs in the various tiers and enables switching among demo scenarios. By default the easyTravel Launcher offers four scenario groups:

  1. UEM (User Experience Management) tracks user behavior on web pages for business analytics data like the geographic distribution of your web page visitors and average session duration.
  2. Production usage
  3. Test Center
  4. Development Team

  • Angular2
  • HBase
  • SeleniumTest
  • ThirdPartyLibraries contains JUnit, etc.
  1. View the list using Excel opening UsedThirdPartyLibraries.xlsx.

    Collect installers

  2. Identify the latest version of Dynatrace (7.2 as of June 2019, 6.5 as of March 2017).
  3. Create a folder to receive downloads.
  4. Download the assets to that folder:

    • “JMeter PERFORM 2015 Samples.zip” file JMeter PERFORM 2015 Samples.zip from https://community.dynatrace.com/community/download/attachments/243434413/JMeter%20PERFORM%202015%20Samples.zip?version=1&modificationDate=1495536503227&api=v2

    • easyTravel Database.dashboard.xml from https://community.dynatrace.com/community/download/attachments/243434413/easyTravel%20Database.dashboard.xml?version=1&modificationDate=1495536502740&api=v2

    • easyTravel.profile.xml from https://community.dynatrace.com/community/download/attachments/243434413/easyTravel.profile.xml?version=1&modificationDate=1495536502790&api=v2

    • dynatrace-easytravel-linux-x86_64.jar from http://dexya6d9gs5s.cloudfront.net/latest/dynatrace-easytravel-linux-x86_64.jar

    • dynatrace-easytravel-windows-x86_64-latest.msi from http://dexya6d9gs5s.cloudfront.net/latest/dynatrace-easytravel-windows-x86_64-latest.msi

  5. Expand “JMeter PERFORM 2015 Samples.zip”

    • runEasyTravelLoginTest.cmd runs
    • EasyTravelLogin_DTTAGGING.jmx using C:\apache-jmeter-2.13
    • registerDynatraceTestRun.cmd runs
    • registerTestRun.jmx

    • EasyTravelLogin_RAW.jmx


Install Dynatrace

  1. Get license: Click “Download easyTravel Demo License” at https://community.dynatrace.com/community/download/attachments/45383742/dynaTrace_license_201609281051.key?version=2&modificationDate=1486998983333&api=v2

    dynaTrace_license_201609281051.key is downloaded.

    CAUTION: The file name is deceptive. Each license is valid within a 3 month period. After that, a new license needs to be downloaded. The license is bound to easyTravel and the pre-configured System Profile that comes with easyTravel.

    QUESTION: How is https://community.dynatrace.com/community/display/EVAL/My+dynaTrace+Trial different than the other page? “A trial account for this ID already exists!”

See https://www.youtube.com/watch?v=B_oWkBjH-Uk

https://community.dynatrace.com/community/display/DOCDT61/Testing+an+Installation

Windows install

  1. If you’re on a Mac, install Ubuntu within VMWare Fusion.

  2. Uninstall previous version:

    ls $UserHome/.dynaTrace/easyTravel 2.0.0/easyTravel/config
     
    rm -rf $UserHome/.dynaTrace/easyTravel 2.0.0/easyTravel/config
    
  3. Click “easyTravel for AppMon x.x”

    CAUTION: Only Windows and Linux are supported. Get the Linux edition to work on a MacOSX

    dynatrace-easytravel-windows-x86_64-2.0.0.2542.msi was 416.1 MB

  4. Click OK to the folder:

    C:\Program Files\dynaTrace\easyTravel (x64)\

  5. If you get the UAC pop-up, click Yes.
  6. Click Finish.

  7. Click the Windows key.
  8. Click EasyTravel Configuration UI.
  9. If the Windows Security Alert pops up, click “Allow access”.
  10. Click OK to this pop-up:

  11. Click on the wheel icon at the upper-right of the screen.
  12. Click “Select a program from a list of installed programs”.

  13. Click on Standard.
  14. Choose “starting”.

    Clean-up

  15. Delete the installer .exe file.

    View

  16. Open a browser to localhost:8079

Install on Linux

  1. Uninstall previous version if it:

    dynatrace-easytravel-linux-x86_64 for AppMon 7 is 361 MB

Using Linux

From this:

It seems you run a 64-bit Ubuntu installation, but easyTravel does not fully support this with the 32-bit binaries that are provided on the community pages.

You can either run easyTravel on an Ubuntu 32-bit installation or use the Web-based launcher via the following commands:

cd weblauncher

./weblauncher.sh

This will provide a web-based view which should provide the same interfaces as the rich-client UI.

Please note that on 64-bit Linux, you likely need to run the following commands to install some additional 32-bit components that are needed by easyTravel:

sudo apt-get update 
sudo aptitude install gcc-multilib 
sudo apt-get install libxml2:i386 
sudo aptitude install lib32z1 
sudo apt-get install libcurl3:i386 
   

If you do not get libxml2:i386 you have to enable multilib support first:

sudo dpkg --add-architecture i386 sudo apt-get update
   
  1. Download from the EasyTravel website:

    dynatrace-easytravel-linux-x86_64-2.0.0.2542.jar, 441 MB


Install Agents

  1. Install agents on Apache servers under test

    1. Adjust dtwsagent.ini
    2. Adjust Apache HTTP config via “Edit http.conf” on Apache Procedure in easyTravel Launcher

  2. Install Dynatrace server (Apache)

  3. Configure System Profile (install resource pack) on dynatrace client

    dynatrace easytravel system profile 452x362

  4. Verify API ports

    http://localhost:8020/api-docs/index.html

  5. Configure Agent Mappings
  6. Inject agentpath-setting into the application code for instrumentation

    https://community.dynatrace.com/community/display/DL/easyTravel+Training+Mode EasyTravel Training Mode

  7. Configure EasyTravel: click on icon at upper-right

    dynatrace easytravel config icon menu 340x131

    Select Show Properties for file easyTravelConfig.properties file.

    Edit config.dtserverWebPort=8020.

  8. Launch servers under test

    The starting of the various tiers and the enabling/disabling of different problem pattern plugins is done via a separate easyTravel Launcher. The Launcher allows the user to conveniently switch between different demo scenarios. Each scenario can define load scripts and certain problem pattern plugins that are enabled. The scenarios can be modified or extended by changing an XML file. This is useful when giving demos and allows you to focus on problem areas that are particularly relevant for a specific demo.

    The default:

    https://localhost:9911

    dynatrace easytravel config ui 1542x1014

  9. Install System Profile

  10. Use by travelers

    Users log in, search for journeys to various destinations, select promotional journeys directly that are offered and book a journey using credit card details.

  11. Use by travel agents

    Login as ???

    A Business-to-Business (B2B) .NET web portal for travel agencies is provided where travel agencies can manage the journeys that they offer and can review reports about bookings made by travelers.

  12. Adjust Generated visits (built into easytravel app)

    dynatrace easytravel config 207x90

  13. Activate Problem Pattern - slow authentication

    In the easytravel Configuration UI, search for “monica”.

    Login as monica / monica.

    See trace on desktop client.

  14. Run load traffic pattern

    [18:54] Watch on Dynatrace Dashboard of specific users.

    [20:02] End user experience geolocation map and who is frustrated.

    QUESTION: What can the company do about frustrated users?

    [22:12] In Diagnostics Transaction Flow: Hotspots by Tier and API

    dynatrace hotspots by tier 805x173

    dynatrace hotspots by api 797x183

    IDE

    https://marketplace.atlassian.com/plugins/be.sofico.bamboo.plugins.bamboo-dynatrace-plugin/server/overview

  15. Configure Eclipse IDE

    https://community.dynatrace.com/community/display/DL/dynaTrace+Eclipse+Integration+Plugin

    https://github.com/Dynatrace/Dynatrace-Eclipse-Integration-Plugin

  16. Configure IntelliJ

    https://community.dynatrace.com/community/display/DL/dynaTrace+IntelliJ+IDEA+Integration+Plugin

    https://community.dynatrace.com/community/display/DL/IntelliJ+IDEA+Integration+Plugin

  17. Configure Visual Studio IDE

  18. Identify Memory Leaks

    https://www.dynatrace.com/blog/hands-tutorial-5-steps-identify-java-net-memory-leaks/

  19. Identify Garbage Collection

    http://apmblog.dynatrace.com/2014/09/16/detecting-bad-deployments-resource-impact-response-time-hotspot-garbage-collection/

    Jenkins integration

  20. Jenkins

    https://github.com/Dynatrace/Dynatrace-JenkinsPlugin

    Confluence

  21. Integrate with Confluence via cPrime

    https://marketplace.atlassian.com/vendors/1211168

    https://marketplace.atlassian.com/plugins/com.cprime.confluence.templates/server/overview

Profile

easyTravel.profile.xml from https://community.dynatrace.com/community/download/attachments/45383742/easyTravel.profile.xml?version=1&modificationDate=1389783776787&api=v2

easyTravel Database.dashboard.xml from https://community.dynatrace.com/community/download/attachments/45383742/easyTravel%20Database.dashboard.xml?version=1&modificationDate=1389783776783&api=v2

Built-in load generator

Run using Flood.io

TODO: