Kubernetes での .NET トレースの設定

Kubernetes で .NET のトレースを設定するには、 Instana AutoTrace の Webhook を使用するか、環境変数を手動で設定します。 Instana ( AutoTrace )のWebhookは、 Kubernetes クラスタ全体にわたる.NET アプリケーションの監視に必要なすべての設定を自動的に行います。

.NET の監視機能の詳細については、 「.NET の監視機能の仕組み」を参照してください。

準備

Kubernetes で「.NET Core 」のトレースを設定するには、以下の前提条件を満たしてください:

.NET のトレース機能を有効にする

以下のいずれかの方法を使用して、 Kubernetes で.NET のトレースを有効にします

方法 1: AutoTrace Webhook を使用して自動トレースを有効にする

Instana ( AutoTrace )のWebhookは、 Kubernetes のMutating Webhook Admission Controllerを実装したものです。 これにより、 Kubernetes クラスタ全体において、 Instana を使用して.NET アプリケーションを監視するために必要なすべての設定が自動的に行われます。

Kubernetes クラスタに Instana の AutoTrace Webhookがインストールされている場合、そのクラスタで実行される.NET アプリケーションに対して、トレーシングが自動的に有効になります。

Instana の AutoTrace ウェブフックを有効にするには、以下の手順を実行してください:

  1. Kubernetes に Instana エージェントをインストールします。 「 Kubernetes への Instana エージェントのインストール 」を参照してください。
  2. Helm を使用して、 Kubernetes クラスターに Instana AutoTrace の Webhook をインストールします。 インストール中に、.NET Core のトレース機能が有効になっていることを確認してください:

    --set autotrace.instrumentation.manual.netcore=true

    詳細については、 「 AutoTrace Webhook のインストール」 を参照してください。

    注:.NET Core のトレースが有効になっている場合、他のトレーサー( Python、 Node.js、および Ruby )を無効にしないでください。 これらのトレーサーを無効にすると、.NET Core のトレース機能に影響が出る可能性があります。
  3. 特定のアプリケーションに対してのみトレースを有効にしたい場合は、オプトインモードを使用できます:

    1. AutoTrace のWebhookインストール時にオプトインモードを有効にする:

      --set autotrace.opt_in=true
    2. 計測対象とするリソースにラベルを追加します instana-autotrace: "true" 。 このラベルは、必要なPod、レプリカセット、ステートフルセット、デーモンセット、およびデプロイメントに追加できます。 instana-autotrace: "false"計測対象から除外したい場合は、. を設定してください。
  4. アプリケーションをデプロイして実行します。

AutoTrace のWebhookは、.NET アプリケーションのPodに、必要な環境変数と計測情報を自動的に設定します。

注:Instana ( AutoTrace )のWebhookでは、計測設定を自動的に更新することはできません。 したがって、インスツルメンテーションの更新を行う際は、以前のインスツルメンテーションをアンインストールし、 Helm のデプロイ機能を使用してWebhookを再インストールすることで、手動で更新する必要があります。 詳細については、 「 AutoTrace のWebhookを更新する」 を参照してください。

方法 2: トレースを手動で有効にする

AutoTrace のWebhookを使用したくない場合や、設定をより細かく制御したい場合は、デプロイに環境変数を追加することで、トレースを手動で設定することができます。

Kubernetes 上の.NET Core アプリケーションで手動トレースを有効にするには、以下の手順を実行してください:

  1. アプリケーションに以下の NuGet パッケージをインストールしてください:

    パッケージが NuGet.org を通じて配布されている場合、アプリケーションを再コンパイルすることなくインストールできます。 以下の方法の 1 つを使用します。

    • nuget.exe 利用可能:計測対象のプロジェクトをコンパイルせずに、を使用して nuget.exe パッケージを復元します。
    • nuget.exe 利用不可:パッケージを直接ダウンロードし、解凍した後、次の手順に従って、解凍されたファイルが格納されている場所を指すように環境変数を設定してください。
  2. Kubernetes のデプロイメント YAML に、以下の環境変数を追加してください:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-dotnet-app
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: my-dotnet-app
      template:
        metadata:
          labels:
            app: my-dotnet-app
        spec:
          containers:
          - name: my-dotnet-app
            image: my-dotnet-app:latest
            env:
            - name: DOTNET_STARTUP_HOOKS
              value: "[path-to-your-app]/Instana.Tracing.Core.dll"
            - name: CORECLR_ENABLE_PROFILING
              value: "1"
            - name: CORECLR_PROFILER
              value: "{cf0d821e-299b-5307-a3d8-b283c03916dd}"
            - name: CORECLR_PROFILER_PATH
              value: "[Path_to_your_app]/instana_tracing/CoreProfiler.so"
            - name: INSTANA_AGENT_HOST
              valueFrom:
                fieldRef:
                  fieldPath: status.hostIP
            - name: INSTANA_AGENT_PORT
              value: "42699"

    を、アプリケーションディレクトリへの実際のパスに置き換えて [path-to-your-app] ください。

  3. アプリケーションをデプロイして実行します。