このページでは、gRPC を利用し、次のサポートされているインターフェースのいずれかを使用して Cloud Storage とやり取りする際に、gRPC クライアントサイドの指標を Cloud Monitoring に出力する方法について説明します。
クライアントサイドの指標を使用すると、gRPC を使用して Cloud Storage とやり取りするクライアント アプリケーションのパフォーマンスをモニタリングできます。クライアントサイドの指標は、サーバーサイドの視点から Cloud Storage のパフォーマンスに関する情報を提供するサーバーサイドの指標とは異なります。
仕組み
gRPC を利用し、サポートされているインターフェースのいずれかを使用して Cloud Storage とやり取りする際に、クライアントサイドの指標を Cloud Monitoring に出力するようオプトインできます。Metrics Explorer を使用してクライアントサイドの指標を表示すると、Cloud Storage と gRPC クライアント間のインタラクションのモニタリングや最適化、使用状況の管理、パフォーマンスのボトルネックや技術的な問題のトラブルシューティングに役立ちます。
料金
Cloud Storage のクライアントサイドの指標は課金対象外です。つまり、Cloud Storage のクライアントサイドの指標の出力、保存、アクセスを行っても Cloud Monitoring の料金は発生しません。料金の詳細については、Google Cloud Observability の料金をご覧ください。
始める前に
クライアントサイドの指標を使用するには、まず次の手順を完了する必要があります。
使用する Cloud Storage クライアント ライブラリまたはコネクタが gRPC をサポートしていることを確認します。gRPC をサポートしている Cloud Storage クライアント ライブラリとコネクタは、次のとおりです。
Cloud Monitoring API を有効にします。
Cloud Storage API を有効にします。
クライアントサイドの指標の出力に必要なロールと権限を設定します。
必要なロール
gRPC のクライアントサイドの指標を Cloud Monitoring に出力するために必要な権限を設定するには、gRPC クライアントが使用するサービス アカウントに モニタリング指標の書き込み(roles/monitoring.metricWriter
)IAM ロールを付与します。
この事前定義ロールには、gRPC のクライアントサイドの指標を Cloud Monitoring に出力するために必要な権限が含まれています。必要とされる正確な権限については、必要な権限セクションをご覧ください。
必要な権限
monitoring.timeSeries.create
他のカスタムロールや事前定義ロールを使用して、これらの権限を取得することもできます。モニタリング指標の書き込みロールの詳細については、roles/monitoring.metricWriter
に関する IAM のドキュメントをご覧ください。
考慮事項
Dataproc の Cloud Storage コネクタを使用している場合は、Dataproc 仮想マシン(VM)サービス アカウントにモニタリング指標の書き込み(
roles/monitoring.metricWriter
)IAM ロールを付与する必要があります。Dataflow の Apache Beam コネクタを使用している場合は、Dataflow ワーカー サービス アカウントにモニタリング指標の書き込み(
roles/monitoring.metricWriter
)IAM ロールを付与する必要があります。
Metrics Explorer で指標を表示する
Metrics Explorer で、Cloud Storage の gRPC のクライアントサイド指標を表示する手順は次のとおりです。
Google Cloud コンソールで、[Metrics Explorer] ページに移動します。
指標を表示するプロジェクトを選択します。
[指標] プルダウン メニューの [指標を選択] をクリックします。
[リソース名または指標名でフィルタ] 検索バーに「
storage.googleapis.com/Client
」と入力するか、適用する指標を指標名で検索して、[適用] をクリックします。複数の指標を追加するには、[クエリを追加] をクリックします。Cloud Storage でプロジェクトに指標が適用されます。次のプルダウン メニューを使用して、指標をフィルタまたは集計できます。
指定した条件に基づいてデータのサブセットを選択して表示するには、[フィルタ] プルダウン メニューを使用します。
複数のデータポイントを 1 つの値に結合して、指標の概要を示すには、[集計] プルダウン メニューを使用します。
アプリケーションを 1 分以上実行してから、公開された指標を確認してください。
ダッシュボードを使用してプロジェクトに追加した指標を表示するには、ダッシュボードの概要をご覧ください。
指標の説明
次のセクションでは、gRPC クライアントのパフォーマンス モニタリングに使用できる Cloud Storage のクライアントサイドの指標について説明します。
クライアントの試行ごとの指標
次の指標は、クライアントがサーバーと通信するために行った個々の試行に関するパフォーマンス データを収集します。クライアントの試行ごとの指標は、再試行動作やボトルネックの測定、クライアントとサーバー間の通信の最適化に役立ちます。
完全な指標 | 説明 | 計測タイプ | ユニット | 属性 |
---|---|---|---|---|
storage.googleapis.com/client/grpc/client/attempt/started |
Preview 。開始された RPC 試行の合計数(完了していない試行を含む)。 |
カウンタ | {attempt} |
|
storage.googleapis.com/client/grpc/client/attempt/duration |
Preview 。RPC の試行を完了するまでにかかるエンドツーエンドの時間(サブチャネルの選択にかかる時間を含む)。 |
ヒストグラム | s |
|
storage.googleapis.com/client/grpc/client/attempt/sent_total_compressed_message_size |
Preview 。RPC の試行ごとに、メタデータを除くすべてのリクエスト メッセージで送信されるバイト数の合計(圧縮あり、暗号化なし)。gRPC またはトランスポートのフレーム処理バイトは含まれません。 |
ヒストグラム | By |
|
storage.googleapis.com/client/grpc/client/attempt/rcvd_total_compressed_message_size |
Preview 。RPC の試行ごとに、メタデータを除くすべてのレスポンス メッセージで受信したバイト数の合計(圧縮あり、暗号化なし)。gRPC またはトランスポートのフレーム処理バイトは含まれません。 |
ヒストグラム | By |
|
クライアントの試行ごとの計測の詳細については、GitHub の OpenTelemetry 指標のドキュメントをご覧ください。
クライアントの呼び出しごとの指標
次の指標は、クライアントからサーバーに対する呼び出しのライフサイクル全体を集約して示します。クライアントの呼び出しごとの指標は、クライアントの呼び出しに関する概要データと呼び出しパターンを把握するためのトラッキング指標を提供し、エラーの頻度を特定するのに役立ちます。
完全な指標 | 説明 | 計測タイプ | ユニット | 属性 |
---|---|---|---|---|
storage.googleapis.com/client/grpc/client/call/duration |
Preview 。アプリケーションの観点から gRPC ライブラリが RPC を完了するまでにかかるエンドツーエンドの時間を測定します。 |
ヒストグラム | s |
|
クライアントの呼び出しごとの計測の詳細については、GitHub の OpenTelemetry 指標のドキュメントをご覧ください。
リクエスト ロード センシングの指標
次の指標は、クライアント アプリケーションでリクエスト ロード センシングを使用する際の有効性に関する情報を提供します。リクエスト ロード センシングの指標は、サーバー負荷のバランス調整、リソース使用率の最適化、クライアントの応答時間の改善に役立ちます。次の指標は、直接接続でのみ使用できます。
完全な指標 | 説明 | 計測タイプ | ユニット | 属性 |
---|---|---|---|---|
storage.googleapis.com/client/grpc/lb/rls/cache_entries |
Preview 。リクエスト ロード センシングのキャッシュ内のエントリ数。 |
ゲージ | {entry} |
|
storage.googleapis.com/client/grpc/lb/rls/cache_size |
Preview 。リクエスト ロード センシングのキャッシュの現在のサイズ。 |
ゲージ | By |
|
storage.googleapis.com/client/grpc/lb/rls/default_target_picks |
Preview 。デフォルトのターゲットに送信されるロードバランサ(LB)選択の数。 |
カウンタ | {pick} |
|
storage.googleapis.com/client/grpc/lb/rls/target_picks |
Preview 。各リクエスト ロード センシング ターゲットに送信される LB 選択の数。デフォルト ターゲットもリクエスト ロード センシング サーバーから返される場合、キャッシュからそのターゲットに送信される RPC は grpc.rls.default_target_picks ではなくこの指標でカウントされます。 |
カウンタ | {pick} |
|
storage.googleapis.com/client/grpc/lb/rls/failed_picks |
Preview 。リクエスト ロード センシングのリクエスト失敗、またはリクエスト ロード センシング チャネルのスロットリングが原因で失敗した LB 選択の数。 |
カウンタ | {pick} |
|
xDiscovery Service クライアントの指標
次の指標は、クライアント アプリケーションが xDiscovery Service(xDS)コントロール プレーンとやり取りしてバックエンド サービスへの接続を検出し、構成する方法に関する情報を提供します。xDS 指標は、サービス リクエストのレイテンシの追跡、構成の更新のモニタリング、xDS の全体的なパフォーマンスの最適化に役立ちます。
次の指標は、直接接続でのみ使用できます。
完全な指標 | 説明 | 計測タイプ | ユニット | 属性 |
---|---|---|---|---|
storage.googleapis.com/client/grpc/xds_client/connected |
Preview 。xDS クライアントが xDS サーバーに対して有効な ADS ストリームを持っているかどうかを測定します。特定のサーバーでは、この指標は、ストリームが最初に作成されたときに 1 に設定されます。接続エラーが発生した場合、または A57 に従ってレスポンス メッセージが表示されずに ADS ストリームが失敗した場合、指標は 0 に設定されます。0 に設定すると、ADS ストリームで最初のレスポンスを受信したときに、この指標は 1 にリセットされます。この指標は、C++ の Cloud クライアント ライブラリにのみ使用できます。 |
ゲージ | {bool} |
|
storage.googleapis.com/client/grpc/xds_client/resource_updates_invalid |
Preview 。受信したリソースのうち無効と見なされた数。この指標は、C++ の Cloud クライアント ライブラリにのみ使用できます。 |
カウンタ | {resource} |
|
storage.googleapis.com/client/grpc/xds_client/resource_updates_valid |
Preview 。受信したリソースのうち、変更されていなくても無効と見なされた数。この指標は、C++ の Cloud クライアント ライブラリにのみ使用できます。 |
カウンタ | {resource} |
|
storage.googleapis.com/client/grpc/xds_client/resources |
Preview 。xDS リソースの数。この指標は、C++ の Cloud クライアント ライブラリにのみ使用できます。 |
ゲージ | {resource} |
|
storage.googleapis.com/client/grpc/xds_client/server_failure |
Preview 。正しく機能しなくなった(使用できなくなった、過負荷になった、不正または無効な構成データを提供している)xDS サーバーの数。この指標は、C++ の Cloud クライアント ライブラリにのみ使用できます。 |
カウンタ | {failure} |
|
xDS クライアントの指標の詳細については、GitHub の xDS ベースのグローバル ロード バランシングのドキュメントをご覧ください。
クライアントサイドの指標をオプトアウトする
必要に応じて、クライアントサイドの指標をオプトアウトできます。
Java
public GrpcStorageOptions.Builder setEnableGrpcClientMetrics(false enableGrpcClientMetrics)
詳細については、Java クラス用 Cloud クライアント ライブラリの gRPC クライアント指標の GrpcStorageOptions.Builder
メソッドをご覧ください。
C++
C++ の Cloud クライアント ライブラリを使用して gRPC API のクライアントサイドの指標をオプトアウトするには、構造体 EnableGrpcMetricsOption
をご覧ください。
次のステップ
Google Cloud でのオブザーバビリティの詳細を確認する。