OpenTelemetry と.NET アプリケーションの連携
.NET および.NET Framework アプリケーションにおいて、 OpenTelemetry と Instana を連携させるには、「 Instana OTLP Exporter」パッケージをご利用いただけます。 このエクスポーターは、 OpenTelemetry の計測機能と Instana のネイティブトレース機能とのシームレスな連携を実現します。 OpenTelemetry のトレースと Instana のトレースを自動的に関連付け、アプリケーション全体で統合された分散トレーシングを実現します。 本製品は、 Instana ( AutoTracing, )と連携して動作するように設計されており、 OpenTelemetry の計測機能と Instana の自動トレース機能を組み合わせることができます。
あるいは、「 OpenTelemetry 」ページに記載されている手順に従い、標準の OTLP エクスポーターを設定して、データを Instana エージェントに直接送信するようにすることもできます。 ただし、 Instana OTLP Exporter は、適切なトレースの相関関係を確実に確保できるため、.NET および.NET Framework アプリケーションでは推奨される方法です。
概要
Instana OTLP Exporterは、 OpenTelemetry 専用のエクスポーターであり、 OpenTelemetry の計測機能と Instana とのシームレスな連携を実現します。 以下の機能が提供されます。
- トレースの自動相関 : OpenTelemetry のトレースと Instana のトレースを相関させる
- 柔軟なプロトコル対応 : gRPC および HTTP -Protobufの両方のプロトコルに対応しています
- 設定可能なエクスポートモード :簡易エクスポートとバッチエクスポートのいずれかを選択できます
- 環境変数の設定 :環境変数による設定に対応しています
- カスタムヘッダーのサポート : OTLP のエクスポートリクエストにカスタムヘッダーを追加できるようになります
- バッチ処理オプション :最適なパフォーマンスを実現するため、バッチサイズ、キューサイズ、およびスケジューリングの遅延時間の設定に対応しています
Instana OTLP Exporter には、次のような利点があります:
- 統合トレース : OpenTelemetry のスパンは Instana のトレースと自動的に相関付けられ、分散システムの全体像を把握できます
- シームレスな統合 :既存の OpenTelemetry 計測機能と連携し、コードの変更は不要です
- 完全な可視性 :すべてのトレースデータが Instana のUI上で確認でき、サービス間の適切な相関関係が把握できます
- 柔軟な導入 :お客様のインフラに合わせて、複数のプロトコルや設定オプションに対応しています
OpenTelemetry との連携に関する詳細については、『 OpenTelemetry 』のドキュメントを参照してください。
対応するプラットフォーム
Instana OTLP Exporter は、以下の .NET プラットフォームに対応しています:
| プラットフォーム | サポート状況 |
|---|---|
| .NET Framework 4.6.2 そしてその後 | GA |
| .NET 標準 2.0 | GA |
| .NET 5.0 そしてその後 | GA |
エクスポーターのインストール
「 Instana 」 OTLP、「Exporter」 NuGet パッケージは、以下のいずれかの方法でインストールできます:
- .NET プロジェクトにインストールしてください:
dotnet add package Instana.OpenTelemetry.Otlp.Exporter - プロジェクトファイルにパッケージを追加してください:
<PackageReference Include="Instana.OpenTelemetry.Otlp.Exporter" Version="<latest-version>" />
エクスポーターの設定
アプリケーションで Instana OTLP Exporterを設定するには、 OpenTelemetryTracerProvider の設定に次のように追加します:
基本構成
using OpenTelemetry;
using OpenTelemetry.Trace;
using Instana.OpenTelemetry.Otlp.Exporter;
var tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddSource("MyApplication")
.AddInstanaOtlpExporter()
.Build();
オプション付きの設定
using OpenTelemetry;
using OpenTelemetry.Trace;
using Instana.OpenTelemetry.Otlp.Exporter;
var tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddSource("MyApplication")
.AddInstanaOtlpExporter(options =>
{
options.Endpoint = new Uri("http://instana-agent:4317");
options.Protocol = InstanaOtlpProtocol.Grpc;
})
.Build();
この InstanaOtlpExportOptions クラスには、以下の設定プロパティが用意されています:
| プロパティー | タイプ | Default | 説明 |
|---|---|---|---|
Endpoint |
Uri |
http://localhost:4317 (.NET 5+)http://localhost:4318/v1/traces (.NET Framework または .NET Standard) |
OTLP のエンドポイント URL。 Instana エージェントのURL( URL )に置き換えて localhost ください。 設定されていない場合は、環境変数またはデフォルト値が使用されます。 |
Protocol |
InstanaOtlpProtocol |
Grpc (.NET 5+)HttpProtobuf (.NET Framework または .NET Standard) |
使用するプロトコル: Grpc または HttpProtobuf。 設定されていない場合は、環境変数またはデフォルト値が使用されます。 |
Headers |
IDictionary<string, string> |
空の辞書 | エクスポートリクエストに含めるカスタムヘッダー。 |
TimeoutMilliseconds |
int |
10000 |
エクスポートリクエストのタイムアウト(ミリ秒単位)。 |
ExportProcessorType |
InstanaExportProcessorType |
Batch |
エクスポート・プロセッサのタイプ: Simple または Batch。 |
MaxQueueSize |
int |
2048 |
バッチ処理の最大キューサイズ。 |
MaxExportBatchSize |
int |
512 |
バッチ処理の最大バッチサイズ。 |
ScheduledDelayMilliseconds |
int |
5000 |
バッチエクスポート間の遅延(ミリ秒単位)。 |
Endpoint を設定する際は、 Instana エージェントのホスト名またはIPアドレスに置き換えてください localhost 。 たとえば、.NET 5+ を使用 http://instana-agent:4317 する場合は ` gRPC, ` を、.NET Framework または http://instana-agent:4318/v1/traces.NET Standard を使用する場合は ` HTTP -Protobuf` を指定します。プロトコル・オプション
この InstanaOtlpProtocol 列挙型は、以下の値を提供します:
Grpc: gRPC プロトコルを使用する(.NET 5.0 以降で利用可能)HttpProtobuf: Protobufエンコーディングを使用した HTTP を使用する(すべてのプラットフォームで利用可能)
Grpc 、エクスポート機能は自動的にを使用 HttpProtobuf します。エクスポート処理タイプの種類
この InstanaExportProcessorType 列挙型は、以下の値を提供します:
Simple: エクスポートは完了次第、直ちに実行されますBatch: 定期的にバッチ処理を行い、それらをエクスポートします(本番環境での利用を推奨)
環境変数による設定
Instana OTLP Exporter は、環境変数による設定をサポートしています:
| 環境変数 | 説明 | 例 |
|---|---|---|
| INSTANA_EXPORTER_OTLP_ENDPOINT | OTLP のエンドポイント URL | http://instana-agent:4317 |
| INSTANA_EXPORTER_OTLP_PROTOCOL | 使用するプロトコル: grpc または http/protobuf |
grpc |
例:環境変数の使用
アプリケーションを起動する前に、環境変数を設定してください:
Windows (PowerShell):
$env:INSTANA_EXPORTER_OTLP_ENDPOINT = "http://instana-agent:4317" $env:INSTANA_EXPORTER_OTLP_PROTOCOL = "grpc"Linux/macOS:
export INSTANA_EXPORTER_OTLP_ENDPOINT=http://instana-agent:4317 export INSTANA_EXPORTER_OTLP_PROTOCOL=grpc
明示的なオプションを指定せずにエクスポーターを設定する:
var tracerProvider = Sdk.CreateTracerProviderBuilder() .AddSource("MyApplication") .AddInstanaOtlpExporter() .Build();