General

Example simulation – Internet availability and performance

Introduction

The setup of an End-User Performance monitoring consists of several parts that need to be aligned with each other. Here, the steps to implement an End-User Performance Simulation instance of internet availability and performance monitoring are described. The example described here is rather small and easy, compared to End-User Performance of business applications. The following aspects often increase the complexity of real-world End-User Performance implementations:

  • The use of multiple Watcher Nodes
  • An increased number of steps
  • Applications that are started in a remote session, like Citrix or RDS
  • Complex steps to simulate

Although the complexity varies from implementation to implementation. The steps to implement the End-User Performance remain the same.

Global steps

An End-User Performance implementation has the following steps:

  1. Start with collecting the monitoring requirements
  2. Installation and configuration of the EUP Collector Node and other system related actions (e.g. service accounts and ACLs)
  3. Installation and configuration of the Watcher Node(s) and other system related actions (e.g. service accounts)
  4. Development of the simulation script(s)
  5. Testing the simulation script on the Watcher Node(s)
  6. Scheduling the simulation script
  7. Creating the EUP Configuration file
  8. Adjusting monitoring thresholds

Global steps

An End-User Performance implementation has the following steps:

  1. Start with collecting the monitoring requirements
  2. Installation and configuration of the EUP Collector Node and other system related actions (e.g. service accounts and ACLs)
  3. Installation and configuration of the Watcher Node(s) and other system related actions (e.g. service accounts)
  4. Development of the simulation script(s)
  5. Testing the simulation script on the Watcher Node(s)
  6. Scheduling the simulation script
  7. Creating the EUP Configuration file
  8. Adjusting monitoring thresholds

Requirement collection

In this first step, the End-User Performance requirements are collected and documented using one or more intakes with the stakeholders. To develop an End-User Performance script, it is important that for every step, the action(s) taken, and the expected response(s) are well defined.

For this example, the End-User Performance of internet availability and performance, the following requirements are used to develop the EUP Configuration file and the script:

  1. The access time of the following websites is measured: www.google.com, www.microsoft.com and www.amazon.com
  2. The DNS resolving is taken into account during the simulation
  3. The websites are accessed via Internet Explorer
  4. Every website is displayed in a clean Internet Explorer Window
  5. Every single webpage should be displayed within 3 seconds (3000ms). The warning threshold shall be set to 3000ms. The critical threshold shall be set to 5000ms
  6. For displaying 3 websites, the total time should not exceed the 6 seconds (6000ms). The average webpage loading and displaying time should be within 2 seconds. The warning threshold shall be set to 6000ms. The critical threshold shall be set to 10000ms
    Note: The average time to display one webpage is 2 seconds. The displaying time of one single step is set one-second higher to avoid alerts when the display of one page is delayed for that moment. The purpose of the monitoring is internet availability and not website responsiveness. When all three webpages are delayed, there might be an issue with the internet connection.
  7. Exception information, which is collected during the start of an Internet Explorer Window, shall be stored
  8. The verification whether a website is loaded correctly is done based on a specific part of text on the website:
  9. The website of Google should contain the string: // Google Inc.
  10. The website of Microsoft should contain the string: Zoeken op Microsoft.com
  11. The website of Amazon should contain the string: About Amazon
  12. When the verification fails, the page body shall be stored
  13. The internet availability and performance is tested every 10 minutes
  14. The Watcher Node is a bare-metal desktop computer with the same specifications as the desktops that are used by the administrative staff
  15. The Operating System installed on the Watcher Node is the default Operating System installed on the laptops and desktops that are used by employees
  16. The Watcher Node should be an ordinary end-user system with the same specifications as the systems that are used by the end users
  17. The Watcher Node shall be located in the MER of the office building in Hengelo

Installation and configuration EUP Collector Node

One of the existing servers will receive the EUP Collector role. On this server the required directory, SBM share and users are created. The user who starts the End-User Performance Simulation script on the Watcher Node should have write-access to EUP Collector Path. Depending on the network topology, the ACLs needs an update in order to enable the SMB protocol between the Watch Node and the EUP Collector.

Installation and configuration Watcher Node

As mentioned in the requirements, the Watcher Node should be an ordinary end-user system with the same specifications as the systems that are used by the end-users. Windows 10 is rolled out on a desktop computer. The Watcher Node and Windows 10 are configured in a way that:

  • The system turns on automatically after an AC power loss
  • The standard installation procedure of the OS and standard applications is used
  • The user who starts the End-User Performance Simulation script is logged on automatically after startup
  • The screen of the user is locked immediately after logon
  • All pop-ups of standard applications are disabled
  • Microsoft Updates are installed automatically
  • If necessary, the system reboots automatically
    During the development of the End-User Performance Simulation script it can be useful to temporarily skip the auto logon and screen lock to test the simulation script directory on the Watcher Node. For the final test, the Watcher Node should be placed on a location that is agreed upon with the stakeholders. As specified in the requirements, the Watcher Node is placed in the MER of the building.

Development of the simulation script

A script is developed to simulate a user opening 3 webpages. This script uses the AutoIt UDF library for the End-User Performance, called “EndUserMonitor.au3”. The library consists of common functions to collect instance information, step information, and to write the information to an End-User Performance Simulation data file. Before starting with the development, the latest version of the UDF Library for the End-User Performance Management Pack should be downloaded from the download page. The AutoIt script mentioned below is developed to simulate a user who is opening 3 webpages:

#CS ===================================================================================
    Title .........: End-User Performance Monitor Script for webpages
    AutoIt Version : 3.3.14.2
    Language ......: English
    Description ...: Script to simulate a user monitoring the performance and content
                     of 3 webpages
    Author(s) .....: The Backbone - The Netherlands
#CE ===================================================================================

#include <IE.au3>
#include "EndUserMonitor.au3"

#CS ===================================================================================

    Variable initialization

#CE ===================================================================================

Local Enum $eStepID, $eWebPage, $eContent
Local $aWebPages[3][3]
$aWebPages[0][$eStepID] = "Google"
$aWebPages[0][$eWebPage] = "www.google.com"
$aWebPages[0][$eContent] = "// Google Inc."
$aWebPages[1][$eStepID] = "Microsoft"
$aWebPages[1][$eWebPage] = "www.microsoft.com"
$aWebPages[1][$eContent] = "Zoeken op Microsoft.com"
$aWebPages[2][$eStepID] = "Amazon"
$aWebPages[2][$eWebPage] = "www.amazon.com"
$aWebPages[2][$eContent] = "About Amazon"

Local $sFilePath = "D:\EUP\"
Local $sInstanceId = "I01"

Local $sHTML = ""
Local $oIE = Null

#CS ===================================================================================

    Flush DNS

#CE ===================================================================================

RunWait(@ComSpec & " /C IPCONFIG /FLUSHDNS", "", @SW_HIDE)

#CS ===================================================================================

    Instance initialization

#CE ===================================================================================

_EUP_Init($sFilePath)
_EUP_InstanceStart($sInstanceId)

#CS ===================================================================================

    Steps

#CE ===================================================================================

; Call the function OpenSite for each row of the $aWebPages Array. The function
; OpenSite simulates one step.

For $i = 0 to UBound($aWebPages) - 1
   OpenSite ($aWebPages[$i][$eStepID], $aWebPages[$i][$eWebPage], _
       $aWebPages[$i][$eContent])
Next

#CS ===================================================================================

    Instance stop

#CE ===================================================================================

_EUP_InstanceStop(True)

#CS ===================================================================================

    Data Write

#CE ===================================================================================

_EUP_DataWrite ()
Exit (0)

#CS ===================================================================================

   Functions

#CE ===================================================================================

#CS ===================================================================================

   OpenSite:
   Carries out one step of the simulation. Opens the website and checks the content.

#CE ===================================================================================

Func OpenSite ($sStep, $sSite, $sContent)

   Local $oIE

   _EUP_StepStart($sStep)

   $oIE = _IECreate($sSite)

   If @error Then
       _EUP_StepStop($sStep, False, "IE Error: " & ReturnIEError (@error))
   Else
       ; Reads the body of the HTML page.
       ; Checks if the body of the loaded page contains the value of $sContent.
       ; 0 means that the string is not found in the body text and that the
       ; expected page is not loaded.
       $sHTML = _IEBodyReadHTML($oIE)
       If StringInStr ($sHTML, $sContent) = 0 Then
           _EUP_StepStop($sStep, False, "Content of Webpage does not match: " & $sHTML)
       Else
           ; Webpage was loaded successfully.
           _EUP_StepStop($sStep, True)
       EndIf
   EndIf

   _IEQuit($oIE)
EndFunc

#CS ===================================================================================

   ReturnIEError:
   Returns the error messages related to the IE object Error Code.

#CE ===================================================================================

Func ReturnIEError ($ErrorCode)
   Switch $ErrorCode
       Case 1
           Return "General Error"
       Case 2
           Return "COM Error in Object reference"
       Case 3
           Return "Invalid Data Type"
       Case 4
           Return "Invalid Object Type"
       Case 6
           Return "Load Wait Timeout"
       Case 8
           Return "Access Is Denied"
       Case 9
           Return "Client Disconnected"
   EndSwitch

   ; If the error code does not match, return "Unknown error code"
   Return "Unknown IE error code: " & $ErrorCode
EndFunc

Place the EUP Configuration file in de EUP Collector Path of the EUP Collector.

Adjusting monitoring thresholds

The default thresholds don’t match the requirements. Overrides are created to change the thresholds below:

  • Steps Lower Threshold (Warning) to 3000ms
  • Steps Upper Threshold (Critical) to 5000ms
  • Simulation instance Lower Threshold (Warning) to 6000ms
  • Simulation instance Upper Threshold (Critical) to 10000ms

Meer weten?

Neem vrijblijvend contact op en vraag naar de mogelijkheden.

Copyright © TheBackbone | Part of INVINITIV