Microsoft Azure App Service 拡張機能

Microsoft Azure App Service 拡張機能

概要

Microsoft Azure App Service は、インフラストラクチャーを管理せずに Web アプリやモバイルバックエンド、イベント駆動型関数、RESTful API の構築とホスティングを行うことが可能な統合型のサーバーレスリソースです。あらゆる規模のワークロードのホスティングのほか、オートスケーリングと高可用性オプションにも対応しています。

Datadog では Azure App Service に属するすべてのリソースタイプのモニタリングが可能です。

Datadog の Azure App Service 向け拡張機能は、Azure Web Apps の追加モニタリングもサポートしています。これには以下の機能が含まれます。

  • 自動インスツルメンテーションを用いた、完全分散型の APM トレーシング。
  • スパンのカスタマイズが可能な、手動 APM インスツルメンテーション機能。
  • アプリケーションログへの Trace_ID 挿入。
  • DogStatsD を使用したカスタムメトリクス送信のサポート。

セットアップ

要件

  1. Microsoft Azure インテグレーションをまだセットアップしていない場合は、最初にセットアップします。

  2. 拡張機能では、Azure App Service Web Apps のみがサポートされます。Function Apps はサポートされません

Function Apps または追加のランタイム用の非公開ベータ版が利用可能になったときに通知を受け取るには、こちらでサインアップしてください。
  1. Datadog .NET APM 拡張機能は、Windows インスタンス上で稼働する x64 と x86 アーキテクチャの双方で以下の .NET ランタイムをサポートします (AAS は Linux での拡張機能をサポートしていません) 。自動的にインスツルメントされたライブラリの詳細については、トレーサーのドキュメントを参照してください。

    • .NET フレームワーク 4.5 以降
    • .NET Core 2.1
    • .NET Core 2.2 (Microsoft によるサポートは 2019 年 12 月 23 日に終了しました)
    • .NET Core 3.0 (Microsoft によるサポートは 2020 年 3 月 3 日に終了しました)
    • .NET Core 3.1
    • .NET 5
  2. Datadog では、機能の最適なパフォーマンス、安定性、そして可用性を確保するため、拡張機能の最新バージョンへの定期的な更新を推奨しています。初期インストールおよびその後の更新を正常に完了するには、ウェブアプリを一度完全に停止する必要があります。

: Datadog 自動インスツルメンテーションは、.NET CLR Profiling API に依存します。この API に許可されるサブスクライバーは 1 つのみです(たとえば APM)。可視性を最大限に向上するため、アプリケーション環境内で 1 つの APM ソリューションのみを実行してください。

インストール

  1. Azure インテグレーションを構成してウェブアプリを監視し、ウェブアプリケーションの名前がタグ付けされた azure.app_service.count メトリクスが表示されることで適切に構成されたことを確認します。: これは、メトリクス/トレースの相関、Datadog ポータルの機能的トレースパネルビュー、そして正確な請求に重要なステップです。

  2. Azure Portal を開き、Datadog でインスツルメントする Azure App Services インスタンスのダッシュボードに移動します。

  3. ‘Configuration’ ページで ‘Application settings’ タブを開きます。

  4. Datadog API キーをアプリケーション設定の DD_API_KEY として追加し、Datadog API キーの値を追加します。

  5. 任意のアプリケーション設定を構成します。

    • DD_SITEに設定(デフォルトは datadoghq.com)。
    • トレースとカスタム統計をグループ化するには DD_ENV を設定します。
    • DD_SERVICE を設定してサービス名を指定します(デフォルトはウェブアプリ名)。
    • ウェブアプリからのアプリケーションログと相関するよう DD_LOGS_INJECTION:true を設定します。
    • 任意のコンフィギュレーション変数の全リストをご参照ください。
  6. Save をクリック(アプリケーションが再起動します)。

  7. [必須] Stop をクリックしてアプリケーションを停止します。
  8. Azure 拡張機能ページで Datadog APM 拡張機能を選択します。

  9. 法的事項を承諾し、OK をクリックしてインストールの完了を待機します。: このステップを正常に完了するには、ウェブアプリが停止した状態である必要があります。

  10. Start をクリックして、メインアプリケーションを起動します。

Azure Web Apps からアプリケーションのログを記録

Azure App Services のアプリケーションから Datadog へログを送信するには、Serilog を使用する必要があります。このメソッドでログを送信すると、トレース ID の挿入が可能になり、Datadog でログとトレースを関連付けられるようになります。拡張機能によるトレース ID の挿入を有効にするには、アプリケーション設定 DD_LOGS_INJECTION:true を追加します。

: この動作はアプリケーション内で発生するため、診断設定で送信する Azure Platform ログはトレース ID には含まれません。

詳しい手順は、Serilog でエージェントレスロギングをセットアップするためのドキュメントを参照してください。

DogStatsD を使用したカスタムメトリクス

App Services の拡張機能には、DogStatsD (Datadogのメトリクス集計サービス) のインスタンスが含まれます。拡張機能を利用して、Azure Web Apps から Datadog へ直接カスタムメトリクス、サービスチェック、イベントを送信できます。

ウェブアプリでカスタムメトリクスおよびチェックを書き込むことは、Datadog Agent が実行されているホスト上のアプリケーションでそれを実行するプロセスと同様です。拡張機能を使用して Azure App Services から Datadog へカスタムメトリクスを送信するには、以下を実行します。

  1. DogStatsD NuGet パッケージを Visual Studio プロジェクトに追加します。
  2. アプリケーション内で DogStatdD を初期化し、カスタムメトリクスを作成します。
  3. サポートされている Azure .NET ウェブアプリにコードをデプロイします。
  4. Datadog App Service 拡張機能をインストールします。

: 標準的な DogStatsD コンフィグプロセスとは異なり、DogStatsD のコンフィギュレーションを開始するのにポートやサーバー名の設定は必要ありません。Azure App Service にはアンビエント環境変数があり、メトリクスの送信条件を決定します(DogStatsD クライアントには v6.0.0 以上が必要)。

メトリクスを送信するには、以下のコードを使用します。

try
{
// DogStatsd クライアントと、任意のタグを構成します
DogStatsd.Configure(new StatsdConfig() { ConstantTags = new[] { "app:sample.mvc.aspnetcore" } });
}
catch (Exception ex)
{
// 必要な環境変数が存在しない場合、Configure 呼び出しにより例外がスローされます。
// 以下の環境変数は Azure App Services に存在しますが、
// カスタムメトリクスをテストするために設定される必要があります: DD_API_KEY:{api_key}, DD_AGENT_HOST:localhost
// 使用環境に合わせて例外を無視またはログに記録します
Console.WriteLine(ex);
}
// メトリクスを送信します
DogStatsd.Increment("sample.startup");

カスタムメトリクスに関する詳細を参照してください。

トラブルシューティング

アプリケーションのトラブルシューティングをするには、以下のステップを試します。

  1. DD_SITE および DD_API_KEY が正しく設定されていることを確認します。
  2. アプリケーションを完全に停止してから起動します。
  3. 解決しない場合は、拡張機能をアンインストールしてから再度インストールします(これにより、最新バージョンの実行も確認できます)。
  4. さらにヘルプが必要な場合は、Datadog サポートまでお問い合わせください。

: サポートチームによるアプリケーションのエラー調査を迅速に進めるには、DD_TRACE_DEBUG:true を設定し、Datadog ログディレクトリのコンテンツ(%AzureAppServiceHomeDirectory%\LogFiles\datadog) をメールに追加します。

その他の参考資料