The Synthetic Server dispatches and processes requests and depends on Synthetic Agents for executing and reporting measurements.

The Synthetic Server receives synthetic job requests from the Controller and then the jobs are fetched from the Synthetic Services by the Synthetic Agents. Once the measurement results are received from the Synthetic Agents, the Synthetic Server stores, processes, and transmits the results to the EUM Server. 

Installation Overview

To set up a complete on-premises Synthetic Server deployment, therefore, you need to:

  1. Install the Controller or prepare an in-service Controller to work with the EUM Server.
  2. Install the Events Service and configure it to work with your on-premises Controller.
  3. Install the EUM Server and configure it to work with your Events Service and Controller.
  4. Install the Synthetic Server and configure it to work with the EUM Server and the Controller.
  5. Install and configure one or both types of Synthetic Agents.

  6. Secure the Synthetic Server (recommended).

  7. Monitor the Synthetic Server (recommended).

Synthetic Server Components

The on-premises Synthetic Server consists of the following three services:

This document also discusses the Synthetic Server Feeder, which communicates with the Synthetic Client Feeder, but is only a service of the SaaS Synthetic Server.

Synthetic Scheduler

The first service is the Synthetic Scheduler, which is a cron-like service that sends job requests at configured intervals. The Synthetic Scheduler handles the CRUD operations for jobs and manages the events generated for synthetic warnings and errors that occur in the measurement results. The Synthetic Scheduler also validates the beacons, triggers warning and error events if needed, and forwards the beacons to the EUM Server.

Synthetic Shepherd

The second service is Synthetic Shepherd. This service manages and dispatches jobs to the Synthetic Agents. In addition, the Synthetic Shepherd saves the measurement results to the filesystem and sends beacons containing the data to the Synthetic Scheduler.

Synthetic Feeder Client

The third service is the Synthetic Feeder Client that communicates with the SaaS Synthetic Feeder Server to access the Synthetic Hosted Agents. (If you are only deploying Synthetic Private Agents, you do not need to use the Synthetic Feeder Client.) These services use the WebSocket protocol to coordinate data transfer to your system without having to open any ports in the firewall.

Synthetic Agents

When deploying the on-premises Synthetic Server, you can deploy one or both Synthetic Agent types:

  • Synthetic Hosted Agents - Synthetic Agents that are hosted and maintained by AppDynamics 
  • Synthetic Private Agents - Synthetic Agents that you install, configure, run, and maintain in your infrastructure

Comparison of the Synthetic Agent Types

The following table compares the two types of agents and provides the benefits and main use cases for both.

Synthetic Agent TypeKey Benefits / Use Cases
Synthetic Hosted Agent
  • Access to a fleet of geographically distributed agents
  • Reduced ownership/resource costs: no hardware or cloud computing costs
  • Ease-of-use: no need to deploy/configure/manage agents
  • Scalability: Synthetic Hosted Agents are only deployed when needed, and more agents are readily available if the workload increases
Synthetic Private Agent
  • Monitoring of internal sites and services that are not publicly accessible
  • Complete control over the agent configurations and environment

Overview of Installation and Configuration Steps

The following table provides an overview of the installation and configuration steps for each type of Synthetic Agent.

Synthetic Agent TypeRequired Steps
Synthetic Hosted Agent
  1. Acquire the license "Browser Synthetic User Monitoring - Hosted Agent - On-Premise".
  2. Verify that the license has an HMAC key.
  3. Configure SSL for the Synthetic Server (recommended).
  4. Connect the on-premises Synthetic Server to the SaaS EUM API Server and SaaS Synthetic Server.
Synthetic Private Agent
  1. Acquire one of the following licenses:
    • Browser Synthetic Monitoring - Private Agent - Per Location (on-premises)
    • Browser Synthetic Monitoring - Private Agent - Unlimited Locations (on-premises)
  2. Install Synthetic Private Agents.
  3. Connect the Synthetic Private Agent to the on-premises Synthetic Server.
  4. Configure SSL for the Synthetic Server (recommended).
  5. Start and maintain the Synthetic Private Agent.

Summary of Synthetic Server and Agents

The table below summarizes the function and ports used by each service and the Synthetic Agents:

Service/Agent
Functions
ProtocolDefault Ports
Synthetic Scheduler
  • Sends requests to execute jobs based on a configured frequency.
  • Validates the beacons containing the measurement results.
  • Handles the CRUD operations for jobs.
HTTP12101
HTTPS12102
Synthetic Shepherd
  • Registers the Synthetic Agents.
  • Creates and maintains the queue of all measurement requests.
  • Manages how the results arriving from the agents are processed, stored and forwarded.
  • Saves accompanying screenshots and generates thumbnails for each screenshot that go with the measurement.
HTTP10101
HTTPS10102
Synthetic Feeder Server (Synthetic Hosted Agents)
  • Deployed in SaaS.
  • Pushes screenshots and measurement results to the Synthetic Feeder-Client.
WebSocket (encrypted)

16001


Synthetic Feeder Client (Synthetic Hosted Agents)
  • Deployed in on-premises.
  • Establishes a WebSocket connection with the SaaS Synthetic Server.
  • Sends the screenshots and measurement results it received from the SaaS Synthetic Server to the Synthetic Shepherd.
WebSocket (encrypted)

16101

 



Synthetic Agents
  • Fetches jobs from the Synthetic Shepherd.
  • Uses WebDriver and Selenium to execute these jobs on browsers.
  • Registers with Synthetic Shepherd.
  • Uploads screenshots to Synthetic Shepherd.
  • Handles communication with Synthetic Shepherd.
N/AThe Synthetic Agents do not listen on any port. They only temporarily open internal random ports to fetch job requests from the Synthetic Shepherd and to send the measurement results of executed jobs to the Synthetic Shepherd.

Synthetic Service Data

The Synthetic Server stores data on the filesystem of the host machine and data in the EUM Server's MySQL database. The table below lists the types of data and the storage location.

Data Storage FormatDataLocation of Data Storage
MySQL
  • Information about the entire agent fleet.
  • Measurement request queues.
  • In-flight and archived measurements.
  • Schedules: a schedule is a configuration according to which the Synthetic Scheduler sends measurement requests to the Synthetic Shepherd. Those requests are queued until enough Synthetic Agents are available to process them, at which point they are dequeued and become measurements.
EUM Server's MySQL database
File System
  • Resource snapshots
  • Script output
  • Measurement results
  • Screenshots
Host machine of the Synthetic Server


Synthetic Server Deployment Architecture

The following sections describe and provide diagrams of the different on-premises Synthetic Server deployments. The diagrams show the connections and data flow between the components of the deployments. For information about the other AppDynamics platform components, see Platform Components and Platform Connections.

Synthetic Private Agents Deployment

The following diagram shows the connections and data flow between the on-premises Synthetic Server and the EUM Server and Synthetic Private Agents.

Synthetic Server Connections 

The following table lists and describes the traffic flow between the Synthetic Server and the other components.

Connection
Source
Destination
Protocol
Default Port(s)

When a user creates a synthetic job, the Controller sends a request for the job with its configured frequency to the on-premises Synthetic Server. The synthetic jobs are then placed in a queue.

on-premises Synthetic Server

HTTP(S)
  • 12101/12102
  • 10101/10102 

The Synthetic Private Agent fetches the job requests from the Synthetic Server and then executes them on a browser using Selenium.

on-premises Synthetic Server

HTTP(S)10101/10102

The Synthetic Private Agent then sends the measurement results to the Synthetic Server.

on-premises Synthetic Server

HTTP(S)10101/10102

The on-premises Synthetic Server stores some data on file, and then processes and converts the data into a beacon, which is then transmitted to the EUM Server through the EUM API. The Synthetic Server also writes data to the EUM Server's MySQL database.

on-premises EUM Server

HTTP(S)

7001/7002

JDBC3388

The Controller polls the EUM Server for the measurement results and displays them in the Synthetic Sessions.

on-premises EUM Server

HTTP(S)7001/7002

Synthetic Hosted Agents Deployment 

The following diagram shows the connections and data flow between the on-premises Synthetic Server, the SaaS EUM Server, the SaaS Synthetic Server, the Synthetic Hosted Agents, and the on-premises EUM Server.

Synthetic Server Connections

The following table lists and describes the traffic flow between the Synthetic Server and the other components.

Connection
Source
Destination
Protocol
Default Port(s)

When a user creates a synthetic job, the Controller sends a request for the job with its configured frequency to the on-premises Synthetic Server. The job requests are then placed in a queue.

on-premises Synthetic Server

HTTP(S)12101/12102

The on-premises Synthetic Server sends the job requests to the SaaS EUM Server.

SaaS EUM Server

HTTP(S)7001/7002

The SaaS EUM Server forwards the requests to the SaaS Synthetic Server.

SaaS Synthetic Server

HTTP(S)10001/10002

The Synthetic Hosted Agents fetch the job requests from the SaaS Synthetic Server and then executes them on a browser using Selenium.

SaaS Synthetic Server

WebSocket (encrypted)16001 

The Synthetic Hosted Agents send the measurement results to the SaaS Synthetic Server.

SaaS Synthetic Server

HTTP(S)

10001/10002

The SaaS Synthetic Server Feeder sends the measurement results to the on-premises Synthetic Client Feeder.

on-prem Synthetic Server

WebSocket (encrypted)16101

The on-premises Synthetic Server stores some data on file, and then processes and converts the data into a beacon, which is then transmitted to the on-premises EUM Server through the EUM API. The on-prem Synthetic Server also writes data to the EUM Server's MySQL database.

on-premises EUM Server

HTTP(S)7001/7002
JDBC3388

The Controller polls the on-premises EUM Server for the measurement results and displays them in the Synthetic Sessions.

on-premises EUM Server

HTTP(S)7001/7002