Posted at

GAEにDatadog APMを導入する


概要

Datadog版のAPMです。

Datadog APMを導入すると、APMとして機能はもちろんですが、

機会学習をベースとしたWatchdogという機能でアプリケーションレイヤとインフラレイヤのメトリクスを学習し、異常を自動検出してくれる機能も利用できるそうです。便利ですね。

ただし、GAEにDatadog APMを導入しようと思い、オフィシャルの手順を見ると情報がこれしかありません。。

スクリーンショット 2019-09-12 14.30.27.png

これだけだと具体的に何をどう設定すれば良いか分からないため、導入した時の手順を残します。


流れ


  • 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ごとにインストール方法が別れています。

スクリーンショット 2019-09-12 14.48.16.png


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を。