この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

.NETアプリケーション

自動インストルメンテーション

NETの自動インストルメンテーションは、さまざまなhttps://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/blob/main/docs/internal/instrumentation-libraries.md[ライブラリとフレームワーク]のトレースとメトリクスを自動的にキャプチャできます。

自動インストルメンテーションは、アプリケーションの変更を必要としません。設定するには、次の手順に従ってください:

  1. opentelemetry-dotnet-instrumentationリポジトリのhttps://github.com/open-telemetry/opentelemetry-java-instrumentation/releases[Releases]から、https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/latest/download/opentelemetry-dotnet-instrumentation-linux-glibc.zip[glibc]またはhttps://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/latest/download/opentelemetry-dotnet-instrumentation-linux-musl.zip[musl]バージョンのインストルメンテーションライブラリをダウンロードします(Alpine用はmusl、他のほとんどのDockerイメージ用はglibc)。ファイルを解凍し、アプリケーションのDockerイメージ内のディレクトリに含めます。ここでは`/autoinstrumentation`を使用します。

  2. 次の環境変数を設定します。ここではKubernetesポッド仕様のコンテナの`env`を介して行います:

    env:
    - name: CORECLR_ENABLE_PROFILING
      value: "1"
    - name: CORECLR_PROFILER
      value: "{918728DD-259F-4A6A-AC2B-B85E1B658318}"
    - name: CORECLR_PROFILER_PATH
      # for glibc:
      value: "/autoinstrumentation/linux-x64/OpenTelemetry.AutoInstrumentation.Native.so"
      # For musl use instead:
      # value: "/autoinstrumentation/linux-musl-x64/OpenTelemetry.AutoInstrumentation.Native.so"
    - name: DOTNET_ADDITIONAL_DEPS
      value: "/autoinstrumentation/AdditionalDeps"
    - name: DOTNET_SHARED_STORE
      value: "/autoinstrumentation/store"
    - name: DOTNET_STARTUP_HOOKS
      value: "/autoinstrumentation/net/OpenTelemetry.AutoInstrumentation.StartupHook.dll"
    - name: OTEL_DOTNET_AUTO_HOME
      value: "/autoinstrumentation"
  3. ポッドにサービス名とエクスポーターエンドポイントを設定するための追加の環境変数を追加してください

  4. 変更を加えたアプリケーションをデプロイします。

  5. SUSE Observabilityがトレースおよび/またはメトリクスを受信していることを確認してください

詳細については、https://opentelemetry.io/docs/languages/java/automatic/[Open Telemetryのドキュメント]を参照してください。

手動インストルメンテーション

手動インストルメンテーションは、自動インストルメンテーションでサポートされていないコードの部分からメトリクス、トレース、またはログが必要な場合に使用できます。たとえば、サポートされていないライブラリ、社内コード、またはビジネスレベルのメトリクスです。

そのデータをキャプチャするには、アプリケーションを変更する必要があります。

  1. Open Telemetry SDKを依存関係として含めます。

  2. 必要な場所でメトリクス、スパン、またはログをキャプチャするためのコードをアプリケーションに追加します。

これに関する詳細なドキュメントは、https://opentelemetry.io/docs/languages/net/instrumentation/[Open Telemetry .NET SDKのドキュメントページ]にあります。

OTLPエクスポータ(これがデフォルトです)とhttps://opentelemetry.io/docs/languages/java/instrumentation/#_autoconfiguration[自動構成]を使用していることを確認してください。アプリケーションをデプロイする際、サービス名とエクスポーターは環境変数を介して設定されます

SUSE Observabilityのメトリクス

一部の.NETメトリクス、例えばガーベジコレクターメトリクスについて、SUSE Observabilityは関連コンポーネントに関するチャートを定義しています。Kubernetesの場合、チャートはポッド上で利用可能です。より多くのメトリクスのためにチャートを追加することが可能です。これは自動インストルメンテーションからのメトリクスだけでなく、手動インストルメンテーションからのアプリケーション特有のメトリクスにも適用されます。