このページでは、gRPC を使用して、次のいずれかのサポートされているインターフェースを使用して Cloud Storage とやり取りするときに、gRPC クライアントサイドの指標を Cloud Monitoring に出力する方法について説明します。
クライアントサイドの指標を使用すると、gRPC を使用して Cloud Storage とやり取りするクライアント アプリケーションのパフォーマンスをモニタリングできます。クライアントサイドの指標は、サーバーサイドの視点から Cloud Storage のパフォーマンスに関する分析情報を提供するサーバーサイドの指標とは異なります。
仕組み
gRPC を使用してサポートされているインターフェースのいずれかを使用して Cloud Storage を操作する場合は、クライアントサイド指標を Cloud Monitoring に出力するようにオプトインできます。Metrics Explorer を使用してクライアントサイドの指標を表示すると、Cloud Storage と gRPC クライアント間のインタラクションをモニタリングして最適化し、使用状況を管理し、パフォーマンスのボトルネックや技術的な問題のトラブルシューティングを行うことができます。
料金
Cloud Storage クライアントサイド指標は課金対象外です。つまり、Cloud Monitoring の料金が発生することなく、Cloud Storage クライアントサイド指標を出力、保存、アクセスできます。料金の詳細については、Google Cloud Observability の料金をご覧ください。
始める前に
クライアントサイド指標を使用するには、まず次の手順を完了する必要があります。
使用する Cloud Storage クライアント ライブラリまたはコネクタが gRPC をサポートしていることを確認します。次の Cloud Storage クライアント ライブラリとコネクタは gRPC をサポートしています。
Cloud Monitoring API を有効にします。
Cloud Storage API を有効にします。
クライアントサイド指標の出力に必要なロールと権限を設定します。
必要なロール
gRPC クライアントサイド指標を Cloud Monitoring に出力するために必要な権限を設定するには、gRPC クライアントが使用するサービス アカウントに モニタリング指標書き込み(roles/monitoring.metricWriter
)IAM ロールを付与します。
この事前定義ロールには、gRPC クライアントサイド指標を Cloud Monitoring に出力するために必要な権限が含まれています。必要とされる正確な権限については、必要な権限セクションをご覧ください。
必要な権限
monitoring.timeSeries.create
他のカスタムロールや事前定義ロールを使用して、これらの権限を取得することもできます。Monitoring Metric Writer ロールの詳細については、roles/monitoring.metricWriter
に関する IAM のドキュメントをご覧ください。
考慮事項
Dataproc で Cloud Storage コネクタを使用している場合は、Dataproc 仮想マシン(VM)サービス アカウントに Monitoring Metric Writer(
roles/monitoring.metricWriter
)IAM ロールを付与する必要があります。Dataflow で Apache Beam コネクタを使用している場合は、Dataflow ワーカー サービス アカウントに Monitoring Metric Writer(
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)
詳細については、gRPC クライアント指標の Cloud Client Libraries for Java クラス GrpcStorageOptions.Builder
メソッドをご覧ください。
C++
C++ 用 Cloud クライアント ライブラリを使用して gRPC API のクライアントサイド指標をオプトアウトするには、構造体 EnableGrpcMetricsOption
をご覧ください。
次のステップ
Google Cloud のオブザーバビリティの詳細を確認する。
カスタム トレースと指標をアプリケーションに追加する方法を学びます。