AppDynamics switched from Semantic Versioning to Calendar Versioning starting in February 2020 for some agents and March 2020 for the entire product suite.


    Skip to end of metadata
    Go to start of metadata

    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 on-premises Controller or prepare an in-service Controller to work with the EUM Server.
    2. Install the on-premises Events Service and configure it to work with your on-premises Controller.
    3. Install the on-premises EUM Server and configure it to work with your Events Service and Controller.
    4. Install the on-premises 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-premisesises 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 Private Agents Deployment Architecture

    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
    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
    E
    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 Hosted Agents Deployment

    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

    1 Comment

    1. Install the on-premises Synthetic Server and configure it to work with the EUM Server and the Controller.
      For on-prem controllers, we will need to configure it to work with synthetic server as well. 
      To re-emphasize, the configuration will have to be made at both the end points since the controller has scheduler and shepherd configs too. Please see that this comes out clearly in the doc.