OpenTelemetry
OpenTelemetry プラグインは、開発ワークフローにランタイムの可観測性をもたらします。ログ、メトリクス、トレースを収集、処理、表示することで、アプリケーション内の実行時の動作やサービス間の関係性を理解できます。
OpenTelemetry プラグインをインストールする
この機能は、インストールして有効にする必要がある OpenTelemetry(英語) プラグインに依存しています。詳細については、マーケットプレイスからプラグインをインストールするを参照してください。
Ctrl+Alt+S を押して設定を開き、を選択します。
マーケットプレースタブを開き、OpenTelemetry プラグインを見つけて、インストールをクリックします (プロンプトが表示されたら、IDE を再起動します)。
プラグインをインストールすると、サービスウィンドウに OpenTelemetry サービスが追加されます。デフォルトでは、プロジェクトを実行するとすぐにサービスのデータ収集が開始されます(現在は .NET プロジェクトと .NET 起動設定構成がサポートされています)。

ほとんどの場合、対象アプリケーションを起動する前に OpenTelemetry サービスを実行しておく必要があります。そのため、デフォルトでは Rider を起動するとサービスが自動的に開始されます。これを変更するには、JetBrains Rider 設定(Ctrl+Alt+S)の ページで起動時に OpenTelemetry ホストを起動するチェックボックスをオフにしてください。
サービスを開始および停止するには、サービスウィンドウで OpenTelemetry ノードを選択し、ツールバーの対応するボタンを使用します。

サービスが実行中の場合、ツールバーにはホストアドレスと対応する環境変数も表示されます。これらを使用して gRPC OTLP エンドポイントを手動で追加し、IDE 外でローカルに起動されたアプリを分析対象に追加できます。
デフォルトではポートはランダムに割り当てられますが、JetBrains Rider 設定 Ctrl+Alt+S の ページにある固定の OTLP サーバーポートを使用するチェックボックスを使用して変更できます。
IDE から起動された .NET アプリケーションでは、OTEL_EXPORTER_OTLP_ENDPOINT 環境変数が自動的に設定されます。つまり、アプリケーションが OpenTelemetry で構成済みで OTLP エクスポーターが追加されているものの、エンドポイントがコード内で明示的に設定されていない場合、アプリケーションは自動的に Rider OTLP サーバーへのデータ送信を開始します。環境変数の自動割り当てを無効にするには、JetBrains Rider 設定の Ctrl+Alt+S にある ページで OpenTelemetry 環境変数を上書きするチェックボックスをオフにしてください。
OpenTelemetry データの研究
OpenTelemetry データの単位は、アプリケーションインスタンス(スペックではサービスインスタンス(英語))です。デフォルトでは、インスタンスは GUID で識別され、生成元のアプリケーションごとにグループ化されます。ログタブには、タイムスタンプ、ログレベル、ログメッセージなどの詳細情報が表示されます。ログをテキスト、レベル、その他の属性でフィルタリングすることで、関連する情報に簡単に絞り込むことができます。

ログとメトリクスはメモリに保存され、OTLP サーバーが再起動するとクリアされます。
コンテキストメニューを使用して、ツリービューから不要なインスタンスを削除できます。
ツールバーのコードへ移動をクリックすると、ログエントリから対応するソースコードの場所へ移動できます。ただし、ログエントリに {OriginalFormat} 属性が含まれている必要があり、サードパーティのコードや逆コンパイルされたコードへのナビゲーションはサポートされていないことに注意してください。
ツールバーのエディターで開くをクリックすると、ログエントリが JSON にシリアル化され、エディターで開きます。シリアル化されたエントリは保存され、エクスプローラーツールウィンドウのスクラッチとコンソールノードで利用できるようになります。
痕跡と範囲を調べる
トレースタブには、利用可能なすべてのトレース(英語)とその詳細が表示されます。トレースは、時間、期間、ID でフィルタリングできます。
スパン(英語)を視覚的に調べるには、リスト内のトレースを選択し、トレースを調べるをクリックします。

サービスマップ
複数のアプリやサービスを分析する場合、トレース(英語)に基づいてアーキテクチャダイアグラム(サービスマップ)を作成できます。マップにはサービス、エンドポイント、データベース、メッセージキューが表示され、システム内の相互作用パターンと依存関係を理解できます。
サービスマップにデータを入力するには、アプリとサービスが分散トレース (HTTP リクエストなどを通じて) を生成することを確認します。
サービスマップを表示するには、サービスウィンドウで OpenTelemetry ノードを選択し、対応するツールバーボタンをクリックします。

自動計測
IDE から ASP.NET Core アプリを実行すると、JetBrains Rider は実行時に必要な OpenTelemetry 依存関係を挿入できるため、アプリは自動的に OpenTelemetry データの送信を開始します。
自動計測機能はデフォルトで無効になっています。有効にするには、JetBrains Rider 設定(Ctrl+Alt+S)の ページで自動計測を許可するチェックボックスをオンにしてください。
自動インストルメンテーションは、迅速なテストを目的としています。本番環境に近い環境では、OpenTelemetry の依存関係を手動で追加および設定することをお勧めします。プロジェクトにすでに OpenTelemetry パッケージが含まれている場合、自動インストルメンテーションはスキップされます。
手動計装の例
自動インストルメント化される ASP.NET Core アプリの例を次に示します。
以下は OpenTelemetry 依存関係が構成された同じアプリです。
ローカル OpenTelemetry プロバイダーとの統合
Rider OpenTelemetry Satellite サービスは OTLP gRPC コレクター / エクスポーター API(英語) をサポートしており、IDE 外で動作する既存のローカル OpenTelemetry プロバイダーとの統合を可能にします。これにより、テレメトリデータ(トレース、ログ、メトリクス)を Rider に直接送信することも、ローカルの OpenTelemetry Collector を介して送信することもできます。
テレメトリデータを直接送信
JetBrains Rider 設定 Ctrl+Alt+S の ページで、OpenTelemetry 環境変数を上書きするを無効にし、固定の OTLP サーバーポートを使用するを構成して、Rider OpenTelemetry サービスを固定ポートにバインドします。
アプリケーションで、OTLP エクスポーターを Satellite サービスを指すように設定してください。エンドポイントは
http://localhost:<port>です。<port>はプラグイン設定で設定された値です。
複数の宛先 (Rider や外部監視サービスなど) にデータを転送する必要がある場合は、オープンテレメトリコレクター(英語)を使用します。
OpenTelemetry Collector 経由でテレメトリデータの統合を送信
JetBrains Rider 設定 Ctrl+Alt+S の ページで、OpenTelemetry 環境変数を上書きするを無効にし、固定の OTLP サーバーポートを使用するを構成して、Rider OpenTelemetry サービスを固定ポートにバインドします。
アプリケーションの OTLP エクスポータからテレメトリデータを受け入れるように OpenTelemetry Collector を構成します。
Rider OpenTelemetry Satellite サービスにデータをエクスポートするには、エクスポーターとして追加します (例:
endpoint: "localhost:17011")。Rider OpenTelemetry Satellite サービスをコレクターとして追加します。例:
otlp/satellite: endpoint: "localhost:17011" tls: insecure: trueOpenTelemetry Collector 設定で適切なパイプライン(トレース / メトリクス / ログ)を参照し、それらのパイプラインに Rider OpenTelemetry Satellite サービスを含めます。例:
service: pipelines: traces: receivers: ... exporters: [otlp/satellite] metrics: receivers: ... exporters: [otlp/satellite] logs: receivers: ... exporters: [otlp/satellite]
関連ページ:
プラグインのインストール
プラグインは JetBrains Rider のコア機能を拡張します。例: プラグインをインストールして、次の機能を取得します。バージョン管理システム、課題追跡システム、ビルド管理サーバー、その他のツールとの統合。さまざまな言語とフレームワークのコーディング支援サポート。ショートカットのヒント、ライブプレビュー、ファイルウォッチャーなど。新しいプログラミング言語を学ぶのに役立つコーディング演習。プラグイン設定を開くを押して設定を開き、を選択します。マーケットプレースタブを使用して、JetBrai...
サービスウィンドウ
サービスツールウィンドウを使用すると、実行 / デバッグ構成、アプリケーションサーバー、データベースセッション、Docker 接続など、ソフトウェア開発中に役立つさまざまなサービスを管理できます。プラグイン開発者は、IntelliJ プラットフォーム API を通じて他のサービスを追加できます。メインツールバーには、すべてのサービスタイプに共通の次のボタンとメニューが含まれています。すべて展開リスト内のすべての項目を展開します。すべて折りたたむリスト内のすべての項目を折りたたみます。グループ化サ...
実行
JetBrains Rider を使用すると、サポートされている任意の言語でコードを実行できます。JetBrains Rider でコードを実行するたびに、特定の実行 / デバッグ構成を使用しています。これにより、ソリューションのどの部分が実行され、どのパラメーターと環境を使用するかが定義されます。単一の静的メソッドの実行、アプリケーションの開始、単体テストの実行、Web サーバーでのコードの実行、マルチプロセス環境のデバッグなどを、さまざまな種類の実行 / デバッグ構成で実行できます。各構成は...
起動プロファイルを使用して .NETCore および ASP.NETCore アプリを実行およびデバッグする
.NET Core または ASP.NET Core アプリケーションでは、launchSettings.json を使用して起動プロファイルを設定できます。これらのプロファイルは対応する実行 / デバッグ構成に自動的にインポートされ、これを使用してアプリケーションを実行およびデバッグできます。ASP.NET Core アプリの起動設定プロファイルは、IIS Express でこれらのアプリを実行およびデバッグするためによく使用されます。launchSettings.json とは何ですか:プロ...
エクスプローラーツールウィンドウ
エクスプローラーツールウィンドウを使用すると、さまざまな視点からソリューションを確認し、新しい項目 (ディレクトリ、ファイル、クラスなど) の作成、エディターでのファイルのオープン、必要なコードフラグメントへの移動などのさまざまなタスクを実行できます。このツールウィンドウのほとんどの機能には、コンテンツペインのコンテキストメニューコマンドとして、関連するショートカットを介してアクセスします。このビューには、作成されたスクラッチファイル、クエリコンソール、拡張スクリプトを管理できるスクラッチとコ...
ターミナル
JetBrains Rider には、IDE 内からコマンドラインシェルを操作するためのターミナルエミュレータが組み込まれています。これを使用すると、専用のターミナルアプリケーションに切り替えることなく、.NET コマンド(例: エンティティフレームワークコア)や Git コマンドの実行、ファイル権限の設定、その他のコマンドラインタスクを実行できます。ターミナルプラグインを有効にするこの機能は、デフォルトで JetBrains Rider にバンドルされて有効になっているターミナルプラグインに依存...