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

.NETアプリケーション

自動計測

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

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

  1. glibcまたはhttps://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/latest/download/opentelemetry-dotnet-instrumentation-linux-musl.zip[musl]バージョンの計測ライブラリを、opentelemetry-dotnet-instrumentationリポジトリのhttps://github.com/open-telemetry/opentelemetry-java-instrumentation/releases[リリース]からダウンロードしてください。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. さらに、ポッド上でサービス名とエクスポーターエンドポイントを構成するための追加の環境変数を設定してください。サポートされているプロトコルは、gRPCとHTTP上のprotobufです。

  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 エクスポーター(これがデフォルトです)と 自動構成 を使用することを確認してください。アプリケーションをデプロイする際、サービス名とエクスポーターは環境変数を介して構成されます

SUSE Observability におけるメトリクス

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