Azure App Service - Linux コード
概要
このインスツルメンテーション手法により、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 に、以下のキーと値のペアを追加します。
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.js | node ./bin/www | Node PM2 構成ファイル、またはスクリプトファイルを実行します。 |
.NET Core | dotnet datadog-demo.dll | デフォルトで Web アプリ名を使用する .dll ファイルを実行します。
注: コマンドの .dll ファイル名は .dll ファイルのファイル名と一致する必要があります。場合によっては、これは Web アプリとは一致しないことがあります。 |
PHP | cp /home/site/wwwroot/default /etc/nginx/sites-available/default && service nginx reload | スクリプトを正しい場所にコピーし、アプリケーションを起動します。 |
Python | gunicorn --bind=0.0.0.0 --timeout 600 quickstartproject.wsgi | カスタム起動スクリプト。この例では、Django アプリを起動するための Gunicorn コマンドを示します。 |
Java | java -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
リリースから 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
と設定します。
メトリクスを送信するようにアプリケーションを構成するには、ランタイムに応じた適切な手順を実行します。
デプロイ
To update your Datadog instrumentation with zero downtime, use deployment slots. You can create a workflow that uses GitHub Action for Azure CLI.
See the sample GitHub workflow.
トラブルシューティング
トレースやカスタムメトリクスデータを期待通りに受信できない場合は、App Service logs を有効にしてデバッグログを受信してください。
Datadog サポートと Log stream の内容を共有してください。
その他の参考資料