コンテンツにスキップ

QoS エージェント設定

サンプリングやその他のオプションは、lti_qos-agent.yml の environment セクションで設定できます。以下は、可能なすべてのカスタマイズの例です。

注意: 実行中のDockerの設定ファイルを変更した場合は、以下のコマンドを実行してDockerを再起動する必要があります:

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

各プロトコルのインターバルオプション

    environment:

      # 帯域幅測定の間隔(秒単位)-- 最小間隔:60
      - LTI_iperf3_session_interval=7200

      # traceroute測定の間隔(秒単位)-- 最小間隔:60
      - LTI_traceroute_interval=300.0

      # HTTP測定の間隔(秒単位)-- 最小間隔:.01
      - LTI_http_interval=2.0

      # HTTPS測定の間隔(秒単位)-- 最小間隔:.01
      - LTI_https_interval=2.0

      # TCP測定の間隔(秒単位)-- 最小間隔:.01
      - LTI_tcp_interval=2.0

      # UDP測定の間隔(秒単位)-- 最小間隔:.01
      - LTI_udp_interval=2.0

      # ICMP測定の間隔(秒単位)-- 最小間隔:.01
      - LTI_icmp_interval=2.0

      # TWAMPセッションの間隔(秒単位)-- 最小間隔:1
      - LTI_twamp_session_interval=1   

      # パケット損失測定の間隔(秒単位)-- 最小間隔:1
      - LTI_packetlossudp_interval=5

注意: サンプリングレートを -1 に設定することで、プロトコルを無効化することができます。 例:LTI_iperf3_session_interval=-1 を指定すると、iperfが無効になります。

ICMP固有のオプション

    environment:

      # ICMPタイムアウト(秒単位)
      - LTI_icmp_timeout=1

      # ICMPパケットペイロード(バイト単位)
      # 整数形式を使用、最小:24、デフォルト:56
      # Ping相当オプション:-s
      - LTI_icmp_packet_payload=56

iPerf3固有のオプション

    environment:

      # 帯域幅測定にUDPを使用
      # iperf3相当オプション:-u
      - LTI_iperf3_udp=false

      # iperfテストの期間(秒単位)
      # iperf3相当オプション:-t
      - LTI_iperf3_test_duration=10

      # 読み取りまたは書き込みバッファの長さ(TCPのデフォルト:128K、UDPのデフォルト:1460)
      # iperf3相当オプション:-l
      - LTI_iperf3_buffer_length=128K

      # ターゲットビットレート(ビット/秒)(0で無制限)
      # iperf3相当オプション:-b
      - LTI_iperf3_bitrate=1M

      # テスト中のパケット間の時間間隔(秒単位)
      # ipef3相当オプション:-i
      - LTI_iperf3_transmit_interval=1

      # アップロードとダウンロードの測定を同時に実行、デフォルトはfalse
      - LTI_iperf3_bidir=false

複数プロファイル

iPerf3ランナーは交互に実行される複数のテストプロファイルをサポートしています。TCPテストとUDPテストの両方を実行するには、同じ変数を使用してプレフィックスに_2を追加した2番目のプロファイルを定義します:

    environment:
      # 最初のプロファイル:デフォルトはTCP
      - LTI_iperf3_session_interval=7200

      # 2番目のプロファイル:UDP
      - LTI_iperf3_2_session_interval=7200
      - LTI_iperf3_2_udp=true

TWAMP固有のオプション

    environment:

      # 高度なパディングオプション
      - LTI_twamp_packet_use_zero_pad=false

      # セッションあたりのパケット数 -- 最小:1
      - LTI_twamp_packet_count=15

      # パケット間の間隔(ミリ秒単位)-- 最小間隔:1
      - LTI_twamp_packet_interval=100

      # ペイロードサイズ(ビット単位)-- 最小:1
      - LTI_twamp_packet_payload=1024

      # DSCPモード、デフォルトは0(ベストエフォート)
      # その他の有用な値:
      # - 46、Expedited Forwarding(音声)
      # - 53、ネットワークテストと測定
      - LTI_twamp_packet_dscp=0

      # TCPポートを変更、デフォルトは12862
      - LTI_twamp_control_port=12862

      # UDPポートを変更、デフォルトは12800
      - LTI_twamp_session_port=12800

      # 並列セッション数(使用されるUDPポートの範囲)を変更、デフォルトは20
      - LTI_twamp_max_parallel_sessions=20

Lifbe固有のオプション

    environment:

      # ネットワークサブタイプ ["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"]
      # 衛星サブタイプ:["SAT_LEO_IRIDIUM", "SAT_LEO_ONEWEB", "SAT_LEO_STARLINK", "SAT_GEO0", "SAT_GEO1", "SAT_GEO2"]
      - LTI_lifbe_network_subtype=MOBILE_5G

      # ネットワークインターフェース ["WIFI","MOBILE","ETH", "SAT"]
      - LTI_lifbe_network_type=MOBILE

      # セッション測定間の間隔(ミリ秒単位)
      - LTI_lifbe_session_interval_ms=3600000

      # セッションあたりの送信測定数
      - LTI_lifbe_measure_number=5

      # 2つの測定間の時間(ミリ秒単位)
      - LTI_lifbe_measure_interval_ms=800

      # 測定方向 ['downlink'|'uplink'|'both']
      - LTI_lifbe_measure_direction=both

パケット損失固有のオプション

    environment:

      # セッション測定間の間隔(秒単位)
      - LTI_packetlossudp_interval=5

      # 測定セッションあたりのパケット数 -- 最小:3、最大:200
      - LTI_packetlossudp_packet_number=50

      # 測定方向 ['downlink'|'uplink'|'both']
      - LTI_packetlossudp_measure_direction=both

高度なパブリッシャーオプション

    environment:

      # Kafkaメッセージポリシー(以下を参照)["FIFO", "TIMED_BURST", "RANDOM_TIMED_BURST", "CACHE_BURST"]
      - LTI_kafka_sending_policy=FIFO

      # メモリにキャッシュされるメッセージ数。キャッシュがいっぱいになった場合、メッセージには優先度システムがあります。
      - LTI_kafka_cache_size=20

      # "TIMED_BURST"および"RANDOM_TIMED_BURST"ポリシーで使用。データバースト間の遅延(秒単位)。
      - LTI_kafka_timed_burst_s=20

      # "RANDOM_TIMED_BURST"ポリシーで使用。各バーストに0からこの値までのランダムな遅延を追加。
      - LTI_kafka_randomness_var_s=10

      # Kafkaメッセージタイムアウト期間(ミリ秒単位)。失敗したパケットの再送信に使用。
      - LTI_kafka_messages_timeout_ms=5000

各ポリシーは次のように動作します:

  • "FIFO"はデフォルトの動作です。これは、情報パケットが生成されるとすぐに、またはパケットがタイムアウトしたと検出されるとすぐに、情報を送信することに対応します。複数のパケットが同時にタイムアウトしたと検出された場合にのみキャッシュが使用されるため、キャッシュのサイズは二次的な重要性を持ちます。

  • "TIMED_BURST"は、受信パケットとタイムアウトしたパケットをキャッシュし、定期的にのみ送信することに対応します(送信間の遅延はLTI_kafka_timed_burst_sに対応します)。キャッシュのサイズは、パケット数を制限できます。キャッシュがいっぱいの場合、最新のパケットが優先されますが、メタデータなどの適切な機能に必要な特定のパケットは確保されます。

  • "RANDOM_TIMED_BURST"は"TIMED_BURST"と同様に動作しますが、メッセージのバッチ送信間の遅延にランダムコンポーネントを追加します。この追加遅延は、メッセージのバッチが送信されるたびにランダムに選択される[ 0; LTI_kafka_randomness_var_s ]の範囲内の値に対応します。

  • "CACHE_BURST"は、キャッシュシステムを最大限に活用するためのポリシーです。パケットは、キャッシュがほぼいっぱいになった場合にのみバッチで送信されます。キャッシュがいっぱいになるのを待っているため、タイムアウトしたと同時に検出された多数のパケットがキャッシュの最大容量を超える可能性が非常に高くなります。この場合、最大容量を超えるパケットは(不可欠でない限り)ドロップされます。

完全なqos-agent設定ファイル

すべてのデフォルトパラメータを含むqos-agentの設定ファイルは次のようになります。 ご自身のインストールに使用および変更できます:

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

      #### プロトコルインターバル ####
      - LTI_iperf3_session_interval=7200
      - LTI_traceroute_interval=300.0
      - LTI_http_interval=2.0
      - LTI_https_interval=2.0
      - LTI_tcp_interval=2.0
      - LTI_udp_interval=2.0
      - LTI_icmp_interval=2.0
      - LTI_twamp_session_interval=1   
      - LTI_packetlossudp_interval=5

      #### ICMP ####
      - LTI_icmp_timeout=1
      - LTI_icmp_packet_payload=56

      #### IPERF ####
      - LTI_iperf3_udp=false
      - LTI_iperf3_test_duration=10
      - LTI_iperf3_buffer_length=128K
      - LTI_iperf3_bitrate=1M
      - LTI_iperf3_transmit_interval=1

      #### TWAMP ####
      - LTI_twamp_packet_use_zero_pad=false
      - LTI_twamp_packet_count=15
      - LTI_twamp_packet_interval=100
      - LTI_twamp_packet_payload=1024
      - LTI_twamp_packet_dscp=0
      - LTI_twamp_control_port=12862
      - LTI_twamp_session_port=12800
      - LTI_twamp_max_parallel_sessions=20

      #### LIFBE ####
      - LTI_lifbe_network_subtype=MOBILE_5G
      - LTI_lifbe_network_type=MOBILE
      - LTI_lifbe_session_interval_ms=3600000
      - LTI_lifbe_measure_number=5
      - LTI_lifbe_measure_interval_ms=800
      - LTI_lifbe_measure_direction=both

      #### パケット損失 ####
      - LTI_packetlossudp_interval=5
      - LTI_packetlossudp_packet_number=50
      - LTI_packetlossudp_measure_direction=both

      #### KAFKAパブリッシャー ####
      - LTI_kafka_sending_policy=FIFO
      - LTI_kafka_cache_size=20
      - LTI_kafka_timed_burst_s=20
      - LTI_kafka_randomness_var_s=10
      - LTI_kafka_messages_timeout_ms=5000

カスタムアナライザー設定

アナライザーは、lti_analyzerディレクトリに移動してdocker-compose.ymlファイルを変更することで設定できます。変更後、以下のコマンドを実行して適用します。

docker compose up -d

アラート用のSMTP設定

grafanaセクションを変更して、SMTPの設定を追加します

      - GF_SMTP_ENABLED=true

      # SMTPホストに置き換えてください
      - GF_SMTP_HOST=smtp.example.com

      # SMTPユーザー名に置き換えてください
      - GF_SMTP_USER=myuser

      # SMTPパスワードに置き換えてください
      - GF_SMTP_PASSWORD=mysecret

この変更を行い、docker compose up -dを実行して適用した後、grafanaダッシュボードでアラート > 連絡先ポイントに移動し、デフォルトの連絡先ポイントのアドレスにメールアドレスを追加することで、受信者のメールアドレスを更新できます。