Azure App Service - Linux コンテナをサイドカーパターンでインスツルメントする

Azure App Service コンテナを serverless-init でインスツルメントするには、Instrument Azure App Service - Linux Container with serverless-init を参照してください。

概要

このインストルメンテーション方法では、Azure のサイドカーパターンを使用して、コンテナ化された Linux Azure App Service ワークロードを監視します。

前提条件

アプリケーションをインスツルメントする

  1. Datadog トレーサーをコンテナ化されたアプリケーションに統合する
  2. Linux Web App を作成する
  3. Datadog 環境変数をアプリケーション設定として追加する
  4. Datadog サイドカーを追加する

Datadog トレーサーを統合する

  1. メインアプリケーションの Dockerfile に以下の行を追加してください。

    RUN mkdir -p /datadog/tracer
    RUN mkdir -p /home/LogFiles/dotnet
    
    ADD https://github.com/DataDog/dd-trace-dotnet/releases/download/v2.51.0/datadog-dotnet-apm-2.49.0.tar.gz /datadog/tracer
    RUN cd /datadog/tracer && tar -zxf datadog-dotnet-apm-2.49.0.tar.gz
    

    これにより、アプリケーションコンテナ内に Datadog トレーサーがインストールおよび設定されます。

  2. イメージをビルドし、お好みのコンテナレジストリにプッシュします。

Dockerfile の完全なサンプル

# ステージ 1: アプリケーションをビルドする
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /app

# プロジェクトファイルをコピーし、依存関係を復元する
COPY *.csproj ./
RUN dotnet restore

# 残りのソースコードをコピーする
COPY . .

# アプリケーションをビルドする
RUN dotnet publish -c Release -o out

# ステージ 2: ランタイムイメージを作成する
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS runtime
WORKDIR /app

# ステージ 1 からビルド成果物をコピーする
COPY --from=build /app/out ./

# Datadog 固有の設定
RUN mkdir -p /datadog/tracer
RUN mkdir -p /home/LogFiles/dotnet

ADD https://github.com/DataDog/dd-trace-dotnet/releases/download/v2.49.0/datadog-dotnet-apm-2.49.0.tar.gz /datadog/tracer
RUN cd /datadog/tracer && tar -zxf datadog-dotnet-apm-2.49.0.tar.gz

# アプリケーションのエントリポイントを設定する
ENTRYPOINT ["dotnet", "<your dotnet app>.dll"]

Linux Web App を作成する

  1. Azure ポータルで App Services に移動し、Create を選択します。
  2. Basics タブで、必要事項を入力します。
    • Publish には Container を選択します。
    • Operating System には Linux を選択します。 続いて、Next: Container > を選択します。
  3. Container タブで、必要事項を入力します。
    • Sidecar support には Enabled を選択します。
    • Image Source には、使用するレジストリを選択します。
    • コンテナイメージの RegistryImageTag、および Port を指定します。
  4. Review + create を選択した後、Create を選択します。

Datadog 環境変数を追加する

  1. Azure ポータルで、対象のアプリを選択します。

  2. 左側のメニューで Configuration > Application settings を選択します。

  3. 以下の環境変数をアプリケーション設定として追加します。

    DD_API_KEY (必須)
    あなたの Datadog API キー
    または、API キー (およびその他の機密情報) を Azure Key Vault から取得することもできます。詳細は Azure App Service で Key Vault の参照をアプリケーション設定として使用するを参照してください。
    DD_SITE

    あなたの Datadog サイトに対応します。デフォルトは datadoghq.com です。
    DD_SERVICE
    Datadog の Software Catalog に表示するサービス名を指定します。統合サービスタグ付けを参照してください。
    DD_ENV
    stagingprod など、環境を表す名前です。統合サービスタグ付けを参照してください。
    DD_SERVERLESS_LOG_PATH
    /home/Logfile/*.log
    アプリケーションログを書き出すパスを指定します。この場所を変更した場合は、この設定にカスタムパスを指定してください。
    DD_DOTNET_TRACER_HOME (必須)
    /datadog/tracer
    DD_TRACE_LOG_DIRECTORY (必須)
    /home/Logfiles/dotnet
    CORECLR_ENABLE_PROFILING (必須)
    1
    CORECLR_PROFILER (必須)
    {846F5F1C-F9AE-4B07-969E-05C26BC060D8}
    CORECLR_PROFILER_PATH (必須)
    /datadog/tracer/Datadog.Trace.ClrProfiler.Native.so

Datadog サイドカーを追加する

  1. Azure ポータルで、対象のアプリを選択します。
  2. 左側のメニューで Deployment Center を選択します。
  3. Add を選択します。Add container の下で、以下の詳細を入力します。
    • Name: datadog
    • Image source: Docker Hub などのレジストリ
    • Image type: Public
    • Registry server URL: sitecontainerssampleacr.azurecr.io
    • Image and tag: datadog-dotnet:2.0
    • Port: 8126
  4. Apply を選択します。

次のステップ

アプリケーションのインスツルメンテーションが完了したら、Datadog の Serverless > Azure ページに移動し、可観測性データを確認してください。アプリケーションログは Log Explorer に、トレースは Trace Explorer で確認できます。