.NET .NET Aspire ダッシュボードを調べる
今後のセクションでは、.NET.NET Aspire プロジェクトを作成し、次のタスクに着手する方法について説明します。
.NET .NET Aspire ダッシュボード アプリの機能を掘り下げます。
この記事で取り上げられるスクリーンショットでは、ダーク テーマが紹介されています。 テーマの選択の詳細については、「テーマの選択」を参照してください。
ダッシュボード認証
.NET .NET Aspire アプリ ホストを実行すると、オーケストレーターはアプリのすべての依存リソースを起動し、ブラウザー ウィンドウを開いてダッシュボードに移動します。 .NET .NET Aspire ダッシュボードには、環境変数やその他の機密情報が表示されるため、ユーザーにトークンベースの認証が必要です。
ダッシュボードが Visual Studio または Visual Studio Code (C# Dev Kit 拡張機能) から起動されると、ブラウザーが自動的にログインし、ダッシュボードが直接開きます。 これは一般的な開発者 F5 エクスペリエンスであり、認証ログイン フローは .NET.NET Aspire ツールによって自動化されます。
ただし、コマンド ラインからアプリ ホストを起動すると、ログイン ページが表示されます。 コンソール ウィンドウに、ブラウザーでダッシュボードを開くために選択できる URL が表示されます。
URL には、ダッシュボードに ログインを
次のスクリーンショットに示すように、ログイン ページはトークンを受け入れ、トークンを取得する方法に関する役立つ手順を示します。
コンソールからトークンをコピーしてログイン ページに貼り付けた後、[ログイン] ボタンを選択します。
ダッシュボードは、トークンをブラウザーの永続的な cookieとして保持します。これは 3 日間有効なままです。 永続的な Cookie には有効期限があり、ブラウザーを閉じた後も有効なままです。 つまり、ブラウザーを閉じて再度開いても、ユーザーはもう一度ログインする必要はありません。 詳細については、.NET.NET Aspire ダッシュボードの実行に関する セキュリティに関する考慮事項 ドキュメントを参照してください。
[リソース] ページ
リソース ページは、.NET.NET Aspire ダッシュボードの既定のホーム ページです。 このページには、.NET ソリューションに含まれるすべての .NET Aspire プロジェクト、コンテナー、実行可能ファイルが一覧表示されます。 たとえば、スターター アプリケーションには次の 2 つのプロジェクトが含まれています。
- apiservice: 最小限の API を使用して構築されたバックエンド API プロジェクト。
- webfrontend: Blazorを使用して構築されたフロントエンド UI プロジェクト。
ダッシュボードには、各リソースに関する重要な詳細も表示されます。
- 型: リソースがプロジェクト、コンテナー、実行可能ファイルのいずれであるかを表示します。
- 名前: リソースの名前。
-
状態: リソースが現在実行中かどうかを表示します。
-
エラー: 状態 列内で、エラー数のバッジとしてエラーが表示されます。 エラーを報告しているリソースをすばやく理解すると便利です。 バッジを選択すると、エラー レベルのフィルターを使用して、そのリソースの
セマンティック ログに移動します。
-
エラー: 状態 列内で、エラー数のバッジとしてエラーが表示されます。 エラーを報告しているリソースをすばやく理解すると便利です。 バッジを選択すると、エラー レベルのフィルターを使用して、そのリソースの
- 開始時刻: リソースの実行が開始されたとき。
- ソース: デバイス上のリソースの場所。
- エンドポイント: 実行中のリソースに直接到達するための 1 つ以上の URL。
- ログ: リソース ログ ページへのリンク。
アクション : リソースに対して実行できるアクション のセット。 - 停止/開始: 現在の 状態に応じて、リソースを停止 (または開始) します。
- コンソールログ: リソースのコンソールログに移動します。
-
省略記号: リソース固有の追加アクションを含むサブメニュー:
- 詳細の表示: リソースの詳細を表示します。
- コンソール ログ: リソースのコンソール ログに移動します。
- 構造化ログ: リソースの構造化ログに移動します。
- トレース: リソースのトレースに移動します。
- メトリック: リソースのメトリックに移動します。
- 再起動: リソースを停止してから開始します。
リソース ページの次のスクリーンショットを考えてみましょう。
リソース アクション
各リソースには、リソースの現在の状態に基づいて条件付きで有効になっている一連の使用可能なアクションがあります。 たとえば、リソースが実行されている場合、stop アクションが有効になります。 リソースが停止した場合、開始 アクションが有効になります。 同様に、一部のアクションは使用できない場合に無効になります。たとえば、一部のリソースには構造化ログがありません。 このような状況では、アクション
リソースを停止または開始する
[の停止] を選択すると、リソースの実行が停止し、状態 列が更新されて変更が反映されます。
手記
プロジェクト リソースの場合、デバッガーがアタッチされると、再起動時に再アタッチされます。
[開始] ボタンが有効になり、リソースをもう一度開始できます。 さらに、ダッシュボードには、アクションの結果のトースト通知が表示されます。
リソースが実行されていない状態の場合は、[開始] ボタンが有効になります。 [開始] を選択すると、リソースが開始され、状態 列が更新され、変更が反映されます。 [ 停止] ボタンが有効になり、リソースをもう一度停止できます。 ダッシュボードには、アクションの結果のトースト通知が表示されます。
先端
停止または再起動された他のリソースに依存するリソースでは、一時的なエラーが発生する可能性があります。 これは予期される動作であり、通常、依存リソースが 実行中の 状態にある場合に解決されます。
リソース サブメニューアクション
[Actions] 列で水平の省略記号アイコンを選択すると、リソース固有のアクションが追加されたサブメニューが開きます。 組み込みのリソース サブメニュー アクションに加えて、カスタム コマンドを定義してカスタム リソース アクションを定義することもできます。 詳細については、「
次のサブメニュー アクションを使用できます。
- 詳細の表示: リソースの詳細を表示します。
- コンソール ログ: リソースのコンソール ログに移動します。
- 構造化ログ: リソースの構造化ログに移動します。
- トレース: リソースのトレースに移動します。
- メトリック: リソースのメトリックに移動します。
- 再起動: リソースを停止してから開始します。
大事な
サブメニュー アクションが無効になっているリソースが存在する可能性があります。 無効にするとグレー表示されます。 たとえば、次のスクリーンショットは、サブメニューアクションが無効になっている状態を示しています。
テキスト ビジュアライザーでコピーまたは開く
特定の列の テキスト ビジュアライザー を表示するには、マウスポインターを合わせると垂直の省略記号アイコンが表示されます。 アイコンを選択すると、使用可能なオプションが表示されます。
- クリップボードにコピー
- テキスト ビジュアライザーで開く
省略記号メニュー オプションの次のスクリーンショットを考えてみましょう。
[テキスト ビジュアライザーで開く] オプションを選択すると、テキストがより大きな形式で表示されたモーダル ダイアログが開きます。 テキスト ビジュアライザーのモーダル ダイアログの次のスクリーンショットを考えてみましょう。
一部の値は、JSON または XML として書式設定されます。 このような場合、テキスト ビジュアライザーを使用すると、形式の選択 ドロップダウンでさまざまな形式を切り替えることができます。
リソースの詳細
各リソースに関する完全な詳細を取得するには、[
ダッシュボードの右上にある検索バーには、リストをフィルター処理するオプションも用意されています。これは、多くのリソースを含むプロジェクト .NET.NET Aspire に役立ちます。 表示されるリソースの種類を選択するには、フィルター テキスト ボックスの左側にある矢印をドロップダウンします。
この例では、コンテナーのみが一覧に表示されます。 たとえば、Redis プロジェクトの作成時に .NET Aspire を有効にすると、Redis コンテナーが一覧表示されます。
実行可能ファイルはスタンドアロン プロセスです。 起動時にスタンドアロンの実行可能ファイルを実行するように .NET.NET Aspire プロジェクトを構成できますが、既定のスターター テンプレートには既定では実行可能ファイルは含まれません。
次のスクリーンショットは、エラーがあるプロジェクトの例を示しています。
エラー数バッジを選択すると、リソースに関連するログのみが表示されるようにフィルターが適用された 構造化ログ ページに移動します。
エラーのログ エントリの詳細を表示するには、[ビュー] ボタンを選択して、構造化されたログ エントリの詳細を含む一覧の下のウィンドウを開きます。
構造化ログの詳細と例については、「構造化ログ」ページ セクションを参照してください。
手記
リソース ページは、リソース サービスが構成されていない状態でダッシュボードが開始された場合は使用できません。 ダッシュボードは、代わりに 構造化ログ ページ で開始されます。 これは、追加の構成なしでダッシュボードをスタンドアロン モードで実行する場合の既定のエクスペリエンスです。
リソース サービスの構成の詳細については、「ダッシュボードの構成」を参照してください。
監視ページ
.NET .NET Aspire ダッシュボードには、アプリのログ、トレース、メトリックを表示するためのさまざまな方法が用意されています。 この情報を使用すると、アプリの動作とパフォーマンスを追跡し、発生した問題を診断できます。
コンソール ログ ページ
コンソールログ ページには、アプリ内の各リソースが標準出力に送信したテキストが表示されます。 ログは、アプリの正常性を監視し、問題を診断する便利な方法です。 ログは、プロジェクト、コンテナー、実行可能ファイルなど、ソースによって異なる方法で表示されます。
[コンソール ログ] ページを開くときに、リソース の選択] ドロップダウン リストでソースを選択する必要があります。
プロジェクトを選択した場合、ライブ ログは、ログの重大度に対応する色のスタイル設定されたセットでレンダリングされます。例として、情報の緑。
apiservice
プロジェクトが選択されているプロジェクト ログの次の例のスクリーンショットを考えてみましょう。
エラーが発生すると、ログにスタイルが設定され、識別が容易になります。 次のエラーを含むプロジェクト ログのスクリーンショットの例を考えてみましょう。
コンテナーまたは実行可能ファイルを選択した場合、書式設定はプロジェクトとは異なりますが、詳細な動作情報は引き続き使用できます。
cache
コンテナーが選択されているコンテナー ログの次の例のスクリーンショットを考えてみましょう。
リソース レプリカ
WithReplicas API を使用してプロジェクト リソースがレプリケートされると、最上位レベルの名前付きリソース エントリの下のリソース セレクターに、インジケーターアイコンが表示されます。 レプリケートされた各リソースは、最上位レベルのリソース エントリの下に一覧表示され、対応する一意の名前が付けられます。 レプリケートされたプロジェクト リソースの次の例のスクリーンショットを考えてみましょう。
上のスクリーンショットは、catalogservice (application)
と catalogservice-2bpj2qdq6k
の 2 つのレプリカを持つ catalogservice-6ljdin0hc0
プロジェクトを示しています。 各レプリカには、レプリカ名を選択して表示できる独自のログ セットがあります。
[構造化ログ] ページ
.NET Aspire は、OpenTelemetryを使用して、プロジェクトをログ記録で自動的に構成します。 構造化ログ ページに移動して、.NET.NET Aspire プロジェクトのセマンティック ログを表示します。 セマンティック、または構造化されたログ記録 を使用すると、ログ イベントを書式設定されたメッセージに変換するのではなく、ログ イベント のメッセージ テンプレートとメッセージ パラメーターが保持されるため、ログ イベントの格納とクエリが簡単になります。 次の列を使用して、ページに表示されるさまざまなログのクリーンな構造に気付きます。
- リソース: ログの送信元のリソース。
- レベル: 情報、警告、エラーなどのエントリのログ レベル。
- Timestamp: ログが発生した時刻。
- メッセージ: ログの詳細。
- トレース: 該当する場合は、ログに関連するトレースへのリンク。
- 詳細: ログ エントリに関する追加の詳細またはメタデータ。
セマンティック ログの次のスクリーンショット例を考えてみましょう。
構造化されたログをフィルター処理する
構造化ログ ページには、サービス、レベル、またはメッセージでログをフィルター処理するための検索バーも用意されています。 [レベル] ドロップダウンを使用して、ログ レベルでフィルター処理します。 フィルター アイコン ボタンを選択して任意のログ プロパティでフィルター処理することもできます。このボタンを選択すると、フィルターの詳細ダイアログが開きます。
メッセージ テキストに "Hosting" が含まれる項目を表示するようにフィルター処理された、構造化されたログを示す次のスクリーンショットを考えてみましょう。
[トレース] ページ
トレース ページに移動して、アプリのすべてのトレースを表示します。
.NET
.NET Aspire は、アプリ内のさまざまなプロジェクトのトレースを自動的に構成します。 分散トレースは、エンジニアがアプリケーション内の障害とパフォーマンスの問題 (特に複数のマシンまたはプロセスに分散される可能性がある問題) をローカライズするのに役立つ診断手法です。 詳細については、分散トレース
- タイムスタンプ: トレースが完了したとき。
- 名前: トレースの名前。先頭にプロジェクト名が付きます。
- スパン: 要求に関連するリソース。
- 期間: 要求の完了にかかった時間。 この列には、リスト内の他の列と比較して要求の期間を示す放射状アイコンが含まれています。
トレースのフィルター処理
トレース ページには、名前またはスパンでトレースをフィルター処理するための検索バーも用意されています。 フィルターを適用すると、トレース結果が直ちに更新されます。 フィルターが weather
に適用されているトレースの次のスクリーンショットを検討し、結果で検索語句がどのように強調表示されているかを確認します。
[フィルター の追加] ダイアログでトレースをフィルター処理する場合、[パラメーター] とそれに対応する [条件]を選択すると、選択したパラメーターの使用可能な値が 値 選択されます。
パラメーターが選択されている http.route
の追加] ダイアログの次のスクリーンショットを考えてみます。
複数のリソースからのテレメトリを結合する
リソースに複数のレプリカがある場合は、テレメトリをフィルター処理して、すべてのインスタンスのデータを一度に表示できます。 次のスクリーンショットに示すように、(application)
というラベルが付いた親リソースを選択します。
親リソースを選択すると、トレース ページにリソースのすべてのインスタンスからのテレメトリが表示されます。
トレースの詳細
トレースの詳細ページには、次のような要求に関連するさまざまな詳細が含まれています。
- トレースの詳細: トレースが開始されたとき。
- 期間: 要求の完了にかかった時間。
- リソース: 要求に関係するリソースの数。
- 深度: 要求に関係するレイヤーの数。
- Total Spans: 要求に関係するスパンの合計数。
各スパンはテーブル内の行として表され、名前が含まれています。 トレースの特定のスパン内でエラーが発生した場合は、スパンにもエラー アイコンが表示されます。 client/consumer の種類を持つが、serverにスパンがないスパンには、矢印アイコンと宛先アドレスが表示されます。 これは、client プロジェクトの外部にあるシステムへの .NET Aspire 呼び出しを表します。 たとえば、HTTP は外部 Web API やデータベース呼び出しを要求します。
トレースの詳細ページ内には、要求に関連するログのみを表示するフィルターが適用された構造化されたログ ページに移動する [ログの表示] ボタンがあります。 トレースに関連するログのみを表示するフィルターが適用された構造化ログ ページを示すスクリーンショットの例を考えてみましょう。
構造化ログ ページについては、「構造化ログ」ページ セクションで詳しく説明します。
トレースの例
各トレースには色があり、各リソースに対して 1 色のスパンを区別するために生成されます。 色は、トレース ページの と トレースの詳細ページの両方に反映されます。 トレースが矢印アイコンを示している場合、それらのアイコンはターゲット トレースのスパンに合わせて色分けされます。 トレースの次の例のスクリーンショットを考えてみましょう。
また、[表示] ボタンを選択して、要求の詳細ビューと、各アプリケーション レイヤーの移動に費やした時間に移動することもできます。 トレースの選択例を考えて、その詳細を表示します。
トレース内の各スパンについて、[ビュー] を選択して詳細を表示します。
スパンの詳細の痛みを下にスクロールして、完全な情報を表示します。 スパンの詳細ウィンドウの下部には、次のキャッシュの呼び出しなど、一部のスパンの種類にスパン イベントのタイミングが表示されます。
エラーが発生すると、トレース名の横にエラー アイコンが表示されます。 エラーのあるトレースのスクリーンショットの例を考えてみましょう。
エラーのあるトレースの対応する詳細ビュー:
[メトリック] ページ
メトリック ページに移動して、アプリのメトリックを表示します。 .NET .NET Aspire は、アプリ内のさまざまなプロジェクトのメトリックを自動的に構成します。 メトリックは、アプリケーションの正常性を測定する方法であり、時間の経過に伴うアプリのパフォーマンスの監視に使用できます。
アプリ内の各メトリック発行プロジェクトには、独自のメトリックがあります。 メトリック ページには、各最上位レベルのメーターと、メトリックを表示するために選択できる対応するインストルメントの選択ウィンドウが表示されます。
webfrontend
プロジェクトが選択され、System.Net.Http
メーターの http.client.request.duration
メトリックが選択されているメトリック ページの次のスクリーンショットの例を考えてみましょう。
メトリック グラフに加えて、メトリック ページには、代わりにデータをテーブルとして表示するオプションが含まれています。 テーブル ビューが選択されているメトリック ページの次のスクリーンショットを考えてみましょう。
グラフの下には、関心のあるデータに注目するために適用できるフィルターの一覧があります。 たとえば、次のスクリーンショットでは、
また、垂直アクセスで表示されるメトリックの数を、その値の代わりに選択することもできます。
メトリックの詳細については、「
手本
.NET Aspire ダッシュボードは、OpenTelemetryのをサポートし、表示します。 の例示的な は、トレースからの追加の関連付けコンテキストとメトリック イベントを含む記録された値であり、トレース信号とメトリックのリンクに役立ちます。
の例示的な は、次のデータ ポイントで構成されています。
-
trace_id
とspan_id
: (省略可能) トレースとスパン識別子によって識別される、記録に関連付けられたトレース。 -
time_unix_nano
: 観察時間(Unix ナノ秒で表されます。 -
value
: 記録された値。 -
filtered_attributes
: 観察が行われたときに追加のコンテキストを提供するフィルター処理された属性のセット。
例示的な例は、データポイントの横に小さな丸いドットとしてメトリックチャートに表示される。 インジケーターをポイントすると、次のスクリーンショットに示すように、ヒントにサンプルの詳細が表示されます。
上のスクリーンショットは、http.client.request.duration
メトリックのサンプルの詳細を示しています。 例示的な詳細は次のとおりです。
- リソース名。
- 操作が実行されました。この場合は、
/catalog/images/{id}
に対する HTTP GET です。 - 対応する値とタイムスタンプ。
サンプル インジケーターを選択すると、トレースの詳細ページが開き、関連付けられているトレースを表示できます。たとえば、次のスクリーンショットを考えてみましょう。
詳細については、「OpenTelemetry Docs:の例」を参照してください。
テーマの選択
既定では、テーマはシステム テーマに従って設定されます。つまり、ダッシュボードはオペレーティング システムと同じテーマを使用します。
次のスクリーンショットは、既定のシステム テーマが選択されているテーマの選択ダイアログを示しています。
ライト テーマを使用する場合は、テーマ選択ダイアログから選択できます。
ダッシュボードのショートカット
.NET .NET Aspire ダッシュボードには、ダッシュボードのさまざまな部分 移動して制御 に役立つさまざまなショートカットが用意されています。 キーボード ショートカットを表示するには、shift キー 押 + ?するか、ダッシュボードの右上隅にある疑問符アイコンを選択します。
次のショートカットを使用できます。
パネル:
- +: パネルサイズを大きくします。
- -: パネルサイズを小さくします。
- Shift + r: Rパネル サイズを変更します。
- シフト + t:T小グルパネルの向き。
- shift + x: パネルを閉じます。
ページナビゲーション:
- r: Resourcesに移動します。
- c: Console Logsに移動します。
- の: Structured Logsに移動します。
- t:Tレースに移動します。
- m: Metricsに移動します。
サイト全体のナビゲーション:
? :ヘルプする必要があります。 - シフト + の:Settingsに移動します。
次の手順
.NET Aspire