Go-Metro

Supported OS Linux

概要

TCP RTT チェックは、Agent が実行されているホストと Agent の通信相手のホストの間のラウンドトリップ回数を報告します。このチェックは受動的で、チェックの外部から送信されて受信したパケットの RTT 回数のみを報告します。チェック自身はパケットを送信しません。

このチェックは、64 ビットの DEB および RPM Datadog Agent v5 パッケージにのみ付属しています。このチェックは Datadog Agent v6 では使用できません

セットアップ

ホストで実行されている Agent 用にこのチェックをインストールおよび構成する場合は、以下の手順に従ってください。コンテナ環境の場合は、オートディスカバリーのインテグレーションテンプレートのガイドを参照してこの手順を行ってください。

インストール

go-metro とも呼ばれる TCP RTT チェックは、Agent にパッケージ化されていますが、追加のシステムライブラリが必要です。このチェックは、発信パケットから対応する TCP 受信確認までの時間を計算するために、PCAP ライブラリで提供されているタイムスタンプを使用します。そのため、PCAP をインストールして構成する必要があります。

Debian ベースのシステムでは、以下のいずれかを使用します。

sudo apt-get install libcap
sudo apt-get install libcap2-bin

Redhat ベースのシステムでは、以下のいずれかを使用します。

sudo yum install libcap
sudo yum install compat-libcap1

最後に、PCAP を構成します。

sudo setcap cap_net_raw+ep /opt/datadog-agent/bin/go-metro

コンフィギュレーション

Agent の conf.d ディレクトリで、go-metro.yaml ファイルを編集します。利用可能なすべてのコンフィギュレーションのオプションについては、サンプル go-metro.yaml を参照してください。 app.datadoghq.com と 192.168.0.22 について、TCP RTT 時間を示すファイルの例を以下に挙げます。

init_config:
  snaplen: 512
  idle_ttl: 300
  exp_ttl: 60
  statsd_ip: 127.0.0.1
  statsd_port: 8125
  log_to_file: true
  log_level: info
instances:
  - interface: eth0
    tags:
      - env:prod
    ips:
      - 45.33.125.153
    hosts:
      - app.datadoghq.com

: go-metro を権限のない状態で実行するには、バイナリで CAP_NET_RAW 機能を設定する必要があります。

# 必要なライブラリをインストール
$ sudo apt-get install libcap  # Debian
$ sudo apt-get install libcap2-bin  # Debian の代替alternative
$ sudo yum install libcap  # Redhat
$ sudo yum install compat-libcap1  # Redhat の代替

# 機能を設定
$ sudo setcap cap_net_raw+ep /opt/datadog-agent/bin/go-metro

ディストリビューションによってパッケージ名が異なるため、上記の手順がうまくいかない場合は、apt-cache search libcap または yum search libcap を実行して、バイナリを提供するパッケージのショートリストを入手してください。サポートが必要な場合は、Datadog サポートに連絡してください。

: go-metro は独自のファイルにログを記録することにご注意ください。ログは /var/log/datadog/go-metro.log にあります。さらに、go-metro はスタンドアロンで機能するため、Agent の情報ページには表示されません。

最後に、go-metro バイナリは、Datadog Agent の 64-ビット RPM と DEB 製品のみに同梱されているためパッケージ化されたバージョンでのみ使用できます。つまり、go-metro はソースインストールや 32-ビットパッケージでは利用できません。

検証

チェックが正しく実行されているかを検証するには、Datadog インターフェイスに表示される system.net.tcp.rtt メトリクスを確認します。また、Agent の status サブコマンドを実行すると、以下のような表示になります。

 datadog-agent.service - "Datadog Agent"
    Loaded: loaded (/lib/...datadog-agent.service; enabled; vendor preset: enabled)
    Active: active (running) since Thu 2016-03-31 20:35:27 UTC; 42min ago
  Process: 10016 ExecStop=/opt/.../supervisorctl -c /etc/dd-....conf shutdown (code=exited, status=0/SUCCESS)
  Process: 10021 ExecStart=/opt/.../start_agent.sh (code=exited, status=0/SUCCESS)
  Main PID: 10025 (supervisord)
    CGroup: /system.slice/datadog-agent.service
            |_10025 /opt/datadog-...python /opt/datadog-agent/bin/supervisord -c /etc/dd-agent/supervisor.conf
            |_10043 /opt/datadog-...python /opt/datadog-agent/agent/dogstatsd.py --use-local-forwarder
            |_10044 /opt/datadog-agent/bin/go-metro -cfg=/etc/dd-agent/conf.d/go-metro.yaml
            |_10046 /opt/datadog-.../python /opt/datadog-agent/agent/ddagent.py
            |_10047 /opt/datadog-.../python /opt/datadog-agent/agent/agent.py foreground --use-local-forwarder

TCP RTT チェックが開始している場合は、上のような go-metro 行が表示されます。

これは受動チェックなので、yaml ファイルで指定されているホストにパケットがアクティブに送信されない限り、メトリクスは報告されません。

収集データ

メトリクス

system.net.tcp.rtt
(gauge)
The TCP round trip time. Available since Agent v5.7.0.
Shown as millisecond
system.net.tcp.rtt.avg
(gauge)
The average TCP round trip time as typically computed by the TCP stack. Available since Agent v5.7.0.
Shown as millisecond
system.net.tcp.rtt.jitter
(gauge)
The TCP round trip time jitter. Available since Agent v5.7.0.
Shown as millisecond

イベント

Go-metro チェックには、イベントは含まれません。

サービスのチェック

Go-metro チェックには、サービスのチェック機能は含まれません。

トラブルシューティング

ご不明な点は、Datadog のサポートチームまでお問合せください。