Custom configurations

Sampling and other options can be set under the environment section of the lti_qos-agent.yml. Below is an example of all possible customizations.

Note: Any modification to the configuration file of a running docker needs to be followed by a restart of the docker by invoking the following command:

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

Interval options, for each protocol

    environment:

      # Interval between bandwidth measures, in seconds -- min: 60
      - LTI_iperf3_session_interval=7200

      # Interval between traceroute measures, in seconds -- min: 60
      - LTI_traceroute_interval=300.0

      # Interval between HTTP measures, in seconds -- min: .01
      - LTI_http_interval=2.0

      # Interval between HTTPs measures, in seconds -- min: .01
      - LTI_https_interval=2.0

      # Interval between TCP measures, in seconds -- min: .01
      - LTI_tcp_interval=2.0

      # Interval between UDP measures, in seconds -- min: .01
      - LTI_udp_interval=2.0

      # Interval between ICMP measures, in seconds -- min: .01
      - LTI_icmp_interval=2.0

      # Interval between TWAMP sessions, in seconds -- min: 1
      - LTI_twamp_session_interval=1   

      # Interval between PacketLoss measures, in seconds -- min: 1
      - LTI_packetlossudp_interval = 5

Note: It is possible to disable a protocol by setting its sampling rate to -1. E.g. specifying LTI_iperf3_session_interval=-1 will disable iperf.

ICMP specific options

    environment:

      # ICMP timeout, in seconds
      - LTI_icmp_timeout=1

      # ICMP packet payload, in bytes
      # Use integer format, min: 24, default: 56
      # Ping equivalent option: -s
      - LTI_icmp_packet_payload=56

iPerf3 specific options

    environment:

      # UDP usage for bandwidth measurement
      # iperf3 equivalent option: -u
      - LTI_iperf3_udp=false

      # Duration of the iperf test (seconds) 
      # iperf3 equivalent option: -t
      - LTI_iperf3_test_duration=10

      # Length of buffer to read or write (default 128K for TCP or 1460 for UDP)
      # iperf3 equivalent option: -l
      - LTI_iperf3_buffer_length=128K

      # Target bitrate in bits/sec (0 for unlimited)
      # iperf3 equivalent option: -b
      - LTI_iperf3_bitrate=1M

      # Time interval between packets during a test (seconds)
      # ipef3 equivalent option: -i
      - LTI_iperf3_transmit_interval=1

Traceroute specific options

    environment:

      # Maximum hops
      - LTI_traceroute_max_hops=32

      # Maximum measures per hop
      - LTI_traceroute_measures_per_hop=3

TWAMP specific options

    environment:

      # Advanced padding option
      - LTI_twamp_packet_use_zero_pad=false

      # Packets per session -- min: 1
      - LTI_twamp_packet_count=15

      # Interval between packets, in milliseconds -- min: 1
      - LTI_twamp_packet_interval=100

      # Payload size, in bits -- min: 1
      - LTI_twamp_packet_payload=1024

Lifbe specific options

    environment:

      # Network Subtype ["WIFI_802_11abg", "WIFI_802_11n", "WIFI_802_11ac", 
      # "MOBILE_GPRS", "MOBILE_HSPA" ,"MOBILE_HSPAP" ,"MOBILE_HSUPA", 
      # "MOBILE_UMTS", "MOBILE_LTE", "MOBILE_5G", "ETHERNET", "ETHERNET_FAST", "ETHERNET_GE"]
      - LTI_lifbe_network_subtype=MOBILE_5G

      # Network Interface ["WIFI","MOBILE","ETH"]
      - LTI_lifbe_network_type=MOBILE

      # Interval between session measurements, in ms
      - LTI_lifbe_session_interval_ms=3600000

      # Number of measurement to send per session
      - LTI_lifbe_measure_number=5

      # Time between two measurement, in ms
      - LTI_lifbe_measure_interval_ms=800

      # Measure direction ['downlink'|'uplink'|'both']
      - LTI_lifbe_measure_direction=both

Packet Loss specific options

    environment:

      # Interval between session measurements, in seconds
      - LTI_packetlossudp_interval=5

      # Number of packets per measure session -- min: 3, max: 200
      - LTI_packetlossudp_packet_number=50

      # Measure direction ['downlink'|'uplink'|'both']
      - LTI_packetlossudp_measure_direction=both

Custom analyzer Configurations

The analyzer can be configured by going into the lti_analyzer directory and modifying the docker-compose.yml file. After the modification run the following command to apply it.

docker-compose up -d

Setting up SMTP for alerts

Modify the grafana section to add your SMTP configurations

      - GF_SMTP_ENABLED=true

      # Replace with your SMTP host
      - GF_SMTP_HOST=smtp.example.com

      # Replace with your SMTP username
      - GF_SMTP_USER=myuser

      # Replace with your SMTP password
      - GF_SMTP_PASSWORD=mysecret

After making this change and applying by running docker-compose up -d, you can update the recepient email addresses in the grafana dashboard by going to alerting > contact points and adding your email address to the addresses of the default contact point.