概要

このインスツルメンテーション手法により、Linux Azure App Service ワークロードに対して、以下の追加監視機能が提供されます。

  • 自動インスツルメンテーションを用いた完全分散型 APM トレーシング。
  • カスタマイズされた APM サービスとトレースビューは、関連する Azure App Service のメトリクスとメタデータを表示します。
  • スパンのカスタマイズが可能な、手動 APM インスツルメンテーション機能。
  • アプリケーションログへの Trace_ID 挿入。
  • DogStatsD を使用したカスタムメトリクス送信のサポート。

このソリューションは、Linux Azure App Service の起動コマンド設定とアプリケーション設定を使用して、アプリケーションのインスツルメンテーションと構成の管理を行います。Java、Node、.NET、PHP、Python がサポートされています。

セットアップ

アプリケーションの設定を行う

アプリケーションをインスツルメンテーションするには、まず、Azure 構成設定の Application Settings に、以下のキーと値のペアを追加します。

Azure App Service の構成: Azure UI の Settings の Configuration セクションの下にある Application Settings です。DD_API_KEY、DD_SERVICE、DD_START_APP の 3 つの設定が記載されています。
  • DD_API_KEY は Datadog の API キーです。
  • DD_CUSTOM_METRICS_ENABLED (オプション) はカスタムメトリクスを有効にします。
  • DD_SITE は Datadog サイトパラメーターです。サイトは です。この値のデフォルトは datadoghq.com です。
  • DD_SERVICE はこのプログラムで使用するサービス名です。デフォルトは package.json の名前フィールドの値です。
  • DD_START_APP はアプリケーションの起動に使用するコマンドです。例えば、node ./bin/www です (Tomcat で動作するアプリケーションでは不要です)。
  • DD_PROFILING_ENABLED (オプション) .NET 固有の Continuous Profiler を有効にします。

起動コマンドを特定する

Linux Azure App Service の Web アプリは、組み込みランタイムのコードデプロイオプションを使用して構築され、言語によって異なる起動コマンドに依存しています。デフォルト値の概要は、Azure のドキュメントに記載されています。以下に例を示します。

これらの値を DD_START_APP 環境変数に設定します。以下の例は、関連する場合、datadog-demo という名前のアプリケーションの場合です。

ランタイムDD_START_APP 値の例説明
Node.jsnode ./bin/wwwNode PM2 構成ファイル、またはスクリプトファイルを実行します。
.NET Coredotnet datadog-demo.dllデフォルトで Web アプリ名を使用する .dll ファイルを実行します。

: コマンドの .dll ファイル名は .dll ファイルのファイル名と一致する必要があります。場合によっては、これは Web アプリとは一致しないことがあります。
PHPcp /home/site/wwwroot/default /etc/nginx/sites-available/default && service nginx reloadスクリプトを正しい場所にコピーし、アプリケーションを起動します。
Pythongunicorn --bind=0.0.0.0 --timeout 600 quickstartproject.wsgiカスタム起動スクリプト。この例では、Django アプリを起動するための Gunicorn コマンドを示します。
Javajava -jar /home/site/wwwroot/datadog-demo.jarアプリを起動するためのコマンドです。Tomcat で動作するアプリケーションでは不要です。

: 新しい設定を保存すると、アプリケーションは再起動します。

一般設定を行う

General settings で、Startup Command のフィールドに以下を追加します。

curl -s https://raw.githubusercontent.com/DataDog/datadog-aas-linux/v1.10.6/datadog_wrapper | bash
Azure App Service の構成: Azure UI の Settings の Configuration セクションにある、Stack の設定です。スタック、メジャーバージョン、マイナーバージョンのフィールドの下には、上記の curl コマンドで入力される Startup Command フィールドがあります。

リリースから datadog_wrapper ファイルをダウンロードし、Azure CLI コマンドでアプリケーションにアップロードします。

  az webapp deploy --resource-group <group-name> --name <app-name> --src-path <path-to-datadog-wrapper> --type=startup

トレースを表示する

新しい Application Settings が保存されると、Azure はアプリケーションを再起動します。ただし、起動コマンドを追加して保存した場合は、再起動が必要な場合があります。

アプリケーション再起動後、Datadog の APM サービスページでサービス名 (DD_SERVICE) を検索するとトレースを見ることができます。

カスタムメトリクス

DogStatsD でアプリケーションのカスタムメトリクスを有効にするには、Application Settings に DD_CUSTOM_METRICS_ENABLED を追加して true と設定します。

メトリクスを送信するようにアプリケーションを構成するには、ランタイムに応じた適切な手順を実行します。

デプロイ

ダウンタイムなしで Datadog インスツルメンテーションを更新するには、デプロイメントスロットを使用します。GitHub Action for Azure CLI を使用するワークフローを作成できます。

サンプルの [GitHub ワークフロー][workflow]を参照してください。

トラブルシューティング

トレースやカスタムメトリクスデータを期待通りに受信できない場合は、App Service logs を有効にしてデバッグログを受信してください。

Azure App Service の構成: Azure UI の Settings の Monitoring セクションにある App Service ログです。'Application logging' オプションが 'File System' に設定されています。

Datadog サポートLog stream の内容を共有してください。

その他の参考資料

お役に立つドキュメント、リンクや記事: