概要
Datadog版のAPMです。
Datadog APMを導入すると、APMとして機能はもちろんですが、
機械学習をベースとしたWatchdogという機能でアプリケーションレイヤとインフラレイヤのメトリクスを学習し、異常を自動検出してくれる機能も利用できるそうです。便利ですね。
ただし、GAEにDatadog APMを導入しようと思い、オフィシャルの手順を見ると情報がこれしかありません。。
これだけだと具体的に何をどう設定すれば良いか分からないため、導入した時の手順を残します。
流れ
- GCEにDatadog Agentをインストール
- datadog.yamlの設定変更
- Firewallの設定
- Trace送信先の設定
手順
1. GCEにDatadog Agentをインストール
説明にもあったようにGAE単体ではAPMの導入ができず、GCE等にDatadog Agentをインストールし、
そこのホストにトレースデータを送信するようにしないといけません。
流れとしては、GAE -> GCE(Datadog Agent) -> Datadog APM といったイメージでしょうか。
Agentのインストール方法は、Datadogのアカウントをお持ちの方であれば、
こちらの手順を参考にしてください。
OSごとにインストール方法が別れています。
2. datadog.yamlの設定変更
次に/etc/datadog/datadog.yaml
を以下のように修正し、Datadog Agentを再起動します。
コメントアウトを外すだけです。
apm_config:
enable: true
receiver_port: 8126
apm_non_local_traffic: true
他プラットホームのトレースデータを受ける場合は、apm_non_local_traffic: true
を設定します。
これは通常の構成ではローカルからtracerを受信するのに対して、
エージェントから見ると外部の環境からのtracerを受信する事になるためです。
3. Firewallの設定
さきほどの設定で8126ポートをレシーバーポートとして設定しました。
GCEの場合はFirewall設定で8126ポートへのアクセスを許可してあげる必要があります。
ネットワークタグ
を使って8126ポートを許可してあげると良いと思います。
4. Trace送信先の設定
次にTrace送信先を設定します。
Rubyを例にすると、Datadog Agentが起動しているGCEのIPアドレスとポート(8126)を設定します。
以下のサンプルコードの5行目で、環境変数から取得したホスト名をtraceの送信先として設定してます。
https://github.com/DataDog/trace-examples/blob/master/ruby/rails/config/initializers/datadog.rb#L5
詳細は、こちらのオフィシャルドキュメントを参考にしてください。
他の言語については、こちらを参照してください。
それでは良いDatadog Lifeを。