Launching the system

Analyzer

The analyzer receives, stores, and aggregates measurements data. In addition, it performs anomaly detection and latency forecasting using statistical models. Last, it provides real-time data visualization.

Note: For each new version of the analyzer you must remove the downloaded and generated files of the previous analyzer before installing to avoid any potential incompatibilities. You may also consider installing each version of the analyzer in a separate directory.

Launch

Log into the analyzer's host

Download the installation script

wget https://api.latence.ca/software/install-run-analyzer.sh

Run the script. You will be guided through the installation. This will download and configure the components and launch the Docker containers once complete.

bash install-run-analyzer.sh

Check

Although no data will yet be flowing in, You can access the dashboards by pointing your browser to the ip address of the analyzer host, on the port 12021, i.e. http://YOUR_ANALYZER_HOST_IP:12021

Prediction container

To run the latency prediction container for certain agents perform the following steps:

Download the installation script inside the lti_analyzer directory

cd lti_analyzer
wget https://api.latence.ca/software/run-update-prediction.sh

Create a file called sites.txt and add the agent IDs for which you want to run prediction containers in separate lines. Don't leave blank lines or spaces.

Run the script.

bash run-update-prediction.sh

Reflector

LatenceTech Reflector is used to accept measurement requests from the QoS Agent and send back results.

First, log into the reflector's host. Then, carefully follow the steps below.

Download and edit

First, download the lti_reflector.yml file using the following command:

wget https://api.latence.ca/software/lti_reflector.yml

The lti_reflector.yml is a docker-compose file with the following contents:

version: '2.4'
services:
  reflector:
    image: registry.latence.ca/software/reflector:latest
    container_name: lti_reflector
    ports:
      - "12080:12080"
      - "12443:12443"
      - "12023:12023"
      - "12024:12024/udp"
      - "12862:12862"
      - "12501:12501/tcp"
      - "12501:12501/udp"
      - "12550:12550/tcp"
      - "12550:12550/udp"
      - "12555:12555/tcp"
      - "12555:12555/udp"
      - "12800:12800/udp"
      - "12801:12801/udp"
      - "12802:12802/udp"
      - "12803:12803/udp"
      - "12804:12804/udp"
      - "12805:12805/udp"
      - "12806:12806/udp"
      - "12807:12807/udp"
      - "12808:12808/udp"
      - "12809:12809/udp"
      - "12810:12810/udp"
      - "12811:12811/udp"
      - "12812:12812/udp"
      - "12813:12813/udp"
      - "12814:12814/udp"
      - "12815:12815/udp"
      - "12816:12816/udp"
      - "12817:12817/udp"
      - "12818:12818/udp"
      - "12819:12819/udp"
    restart: always
    logging:
      driver: json-file
    environment:
      - LTI_reflector_id=REPLACE_BY_DESIRED_ID
      - LTI_license_key=REPLACE_BY_LICENSE_KEY

Before launching the reflector, make the following modifications:

  • Replace the value for LTI_reflector_id by the desired ID. The ID must be an integer.
  • Replace the value for LTI_license_key by your LTI license key.
  • Ensure timezone, date & time is properly set for your host.
  • Optionaly: configure NTP on the Reflector host for increased accuracy on selected measurements e.g. (TWAMP, LIFBE, etc.)

Launch

Launch the reflector using docker-compose:

docker-compose -f lti_reflector.yml pull 
docker-compose -f lti_reflector.yml up -d

Check

You can check the logs using the following command:

docker-compose -f lti_reflector.yml logs

QoS Agent

LatenceTech QoS Agent coordinates QoS measurement requests and sends results to the Analyzer instance.

First, log into the qos agent's host. Then, carefully follow the steps below.

Download and Edit

First, download the lti_qos-agent.yml file using the following command:

wget https://api.latence.ca/software/lti_qos-agent.yml

The lti_qos-agent.yml is a docker-compose file with the following contents:

version: '2.4'
services:
  qos-agent:
    image: registry.latence.ca/software/qos-agent:latest
    container_name: lti_qos-agent
    network_mode: bridge
    restart: always
    cap_add:
      - NET_ADMIN
      - NET_RAW
    logging:
      driver: json-file
    extra_hosts:
      - msgbus.latence.ca:REPLACE_BY_IP_OF_ANALYZER_HOST
    environment:
      - LTI_agent_id=REPLACE_BY_DESIRED_ID
      - LTI_customer_id=REPLACE_BY_CUSTOMER_ID
      - LTI_license_key=REPLACE_BY_LICENSE_KEY
      - LTI_reflector=REPLACE_BY_IP_OF_REFLECTOR_HOST

      - LTI_agent_name=RELACE_BY_AGENT_NAME
      - LTI_agent_hardware=REPLACE_BY_HARDWARE_NAME
      - LTI_agent_net_type=REPLACE_BY_NETWORK_TYPE
      - LTI_agent_net_name=REPLACE_BY_NETWORK_NAME
      - LTI_agent_address=REPLACE_BY_AGENT_ADDRESS
      - LTI_agent_gps_pos=REPLACE_BY_AGENT_GEOLOCATION
      - LTI_agent_details=REPLACE_BY_AGENT_DETAILS
      - LTI_agent_expected_application_latency=REPLACE_BY_EXPECTED_APPLICATION_LATENCY
      - LTI_agent_expected_stability=REPLACE_BY_EXPECTED_STABILITY
      - LTI_agent_expected_packet_loss_rate=REPLACE_BY_EXPECTED_PACKET_LOSS

Before launching the agent, make the following modifications:

  • Replace the value for msgbus.latence.ca by the IP address of the host where the analyzer is running.
  • Replace the value for LTI_agent_id by the desired ID. The ID must be an integer.
  • Replace the value for LTI_customer_id by the desired ID. The ID must be an integer with a maximum of 6 digits.
  • Replace the value for LTI_license_key by your LTI license key.
  • Replace the value for LTI_reflector by the IP address of the host where the reflector docker is running.

Required metadata modifications:

  • Replace the value for LTI_agent_name by a user-friendly agent or site name that will be used in the dashboards. Use string format with a maximum size of 255 characters.
  • Replace the value for LTI_agent_expected_application_latency by the expected application latency (mean of HTTP/S, TCP, UDP), in milliseconds. It will be used as a threshold in the dashboards. Use integer format, with minimum 0. You can use a default value of 30.
  • Replace the value for LTI_agent_expected_stability by the expected network's average latency stability level in percentage. Use float format to represent percentages (from 0.0 to 99.9). You can use a default value of 95.

Optional metadata modifications:

  • Replace the value for LTI_agent_hardware by the type/model of equipment or hardware or host where the agent is installed. Use string format with a maximum size of 255 characters.
  • Replace the value for LTI_agent_net_type by the network type used (4G, 5G, WIFI, etc). Use string format with a maximum size of 255 characters.
  • Replace the value for LTI_agent_net_name by the network name. Use string format with a maximum size of 255 characters.
  • Replace the value for LTI_agent_address by the agent's physical address. Use string format with a maximum size of 255 characters.
  • Replace the value for LTI_agent_gps_pos by agent's GPS location. The following format is supported: latitude/longitude (use "null" to disable). Example: 45.508, -73.562.
  • Replace the value for LTI_agent_details by raw text field for agent-specific details. Use string format with a maximum size of 65535 characters.
  • Replace the value for LTI_agent_expected_packet_loss_rate by the network's expected packet loss in percentage. Use float format to represent percentages (from 0.0 to 99.9).

Launch

Launch the agent using docker-compose:

docker-compose -f lti_qos-agent.yml pull
docker-compose -f lti_qos-agent.yml up -d

Check

You can check the logs using the following command:

docker-compose -f lti_qos-agent.yml logs

Post launch

Once fully launched, the system will start receiving data and this latter will be displayed in the dashboards.

You can access the dashboards by pointing your browser to the ip address of the analyzer host, on the port 12021, i.e. http://YOUR_ANALYZER_HOST_IP:12021

Important: Make sure all content and advertisement blockers are disabled for this address.