このページでは、Cloud Load Balancing の Service Extensions コールアウトで Cloud Logging と Cloud Monitoring を構成して使用する方法について説明します。
ロギング
このセクションでは、アプリケーション ロードバランサのコールアウトのロギングについて説明します。
バックエンド サービスでロギングを有効にする
アプリケーション ロードバランサのコールアウトのロギングを有効にするには、サービスを作成するときに、リクエストのターゲット であるバックエンド サービス(拡張機能に関連付けられたバックエンド サービスではない)でロギングを有効にします。
ターゲット バックエンド サービスのロギングを有効にするには、
gcloud compute backend-services update コマンドを使用します。
gcloud compute backend-services update BACKEND_SERVICE \
--enable-logging \
--logging-sample-rate=RATE \
--region=REGION \
--logging-optional=LOGGING_OPTIONAL_MODE \
--logging-optional-fields=OPTIONAL_FIELDS
次のように置き換えます。
BACKEND_SERVICE: バックエンド サービスの名前RATE:0.0~1.0の値。0.0はリクエストがログに記録されないことを意味し、1.0はリクエストの 100% がログに記録されることを意味します。デフォルト値は1.0です。この設定は、 パラメータとともに使用した場合にのみ有効です。enable-loggingenable-loggingを省略すると、ロギングは無効になります。REGION: バックエンドのリージョンLOGGING_OPTIONAL_MODE: 次のいずれかのモードで オプション フィールドのロギングを有効にします。INCLUDE_ALL_OPTIONAL: すべてのオプション フィールドを含めます。EXCLUDE_ALL_OPTIONAL(デフォルト): すべてのオプション フィールドを除外します。CUSTOM: オプション フィールドのカスタムリストを含めます。
OPTIONAL_FIELDS:CUSTOMモードを選択した場合の オプション フィールドのカンマ区切りのリスト
バックエンド サービスでロギングを有効にすると、HTTP リクエストまたは HTTPS リクエストが Cloud Logging ログのリクエストを使用してログに記録されます。
ログを表示するには、 Google Cloud コンソールで [ログ エクスプローラ] ページに移動します。
詳細については、アプリケーション ロードバランサのドキュメントの「モニタリングとトラブルシューティング」(内部アプリケーション ロードバランサのロギングとモニタリングなど)をご覧ください。
バックエンド サービスのログメッセージ
一般に、アプリケーション ロードバランサのログエントリには、HTTP トラフィックまたは HTTPS トラフィックのモニタリングとデバッグに役立つ情報が含まれています。ログエントリには次のタイプの情報が含まれています。
- LogEntry ログで説明されているように、重大度、 プロジェクト ID、プロジェクト番号、タイムスタンプなど、ほとんどの Google Cloud ログに表示される情報。
- HttpRequest ログフィールド。
HTTP ロードバランサと HTTPS ロードバランサのリクエストログには、ロードバランサのログエントリ JSON ペイロードに service_extension_info オブジェクトが含まれており、次の情報が含まれています。
| フィールド | タイプ | 説明 |
|---|---|---|
backend_target_name |
文字列 | 拡張機能のバックエンド ターゲットの名前。 |
backend_target_type |
文字列 | バックエンド ターゲットのタイプ。 |
chain |
文字列 | リクエストに一致するサービス拡張機能リソース内の拡張機能チェーンの名前。 リクエストに一致します。 |
extension |
文字列 | 拡張機能チェーン内の拡張機能の名前。 |
failed_open |
ブール値 | 拡張機能の構成で failOpen
が true に設定されている場合、この指標の値 true は、
拡張機能がタイムアウトまたは失敗したときに処理が続行されたことを示します。
リージョン外部アプリケーション ロードバランサ、リージョン内部アプリケーション ロードバランサ、 クロスリージョン内部アプリケーション ロードバランサにのみ適用されます。 |
grpc_status |
enum | gRPC ストリームの最新のステータス。詳細については、 gRPC ステータス コードをご覧ください。 |
per_processing_request_info |
配列 | gRPC ストリームで発生する ext_proc 拡張機能の ProcessingRequest 統計情報または ext_authz 拡張機能の CheckRequest 統計情報のリスト。 |
per_processing_request_info[].event_type |
enum | ProcessingRequest のイベントタイプ。次のいずれかになります。
REQUEST_HEADERS、REQUEST_BODY、
RESPONSE_HEADERS、または RESPONSE_BODY。
|
per_processing_request_info[].latency |
duration | ProcessingRequest
メッセージの最初のバイトが拡張機能に送信されてから、
ProcessingResponse メッセージの最後のバイトが受信されるまでの時間。 |
per_processing_request_info[].processing_effect |
enum | 処理リクエスト内の各イベントの処理結果。リージョン外部アプリケーション ロードバランサ、リージョン内部アプリケーション ロードバランサ、
クロスリージョン内部アプリケーション ロードバランサにのみ適用されます。
次のいずれかの値です。
|
per_processing_request_info[].processing_effect_details |
文字列 | processing_effect が MUTATION_REJECTED の場合、ミューテーションが拒否された理由の詳細。リージョン外部アプリケーション ロードバランサ、 リージョン内部アプリケーション ロードバランサ、クロスリージョン内部アプリケーション ロードバランサにのみ適用されます。 |
resource |
文字列 | 拡張機能リソースの名前 |
モニタリング
このセクションでは、Cloud Load Balancing の Service Extensions を使用して構成されたコールアウト をモニタリングする方法について説明します。
Monitoring ダッシュボードを表示する
アプリケーション ロードバランサは、モニタリング データを Cloud Monitoringにエクスポートします。
Monitoring 指標は、次の目的で使用できます。
- ロードバランサの構成、使用状況、パフォーマンスの評価
- 問題のトラブルシューティング
- リソースの使用率とユーザー エクスペリエンスの改善
事前定義されたダッシュボードを表示する手順は次のとおりです。
- コンソールで、[**ダッシュボードの概要**] ページに移動します。 Google Cloud
- [カテゴリ] セクションで [GCP] をクリックします。
- すべてのロードバランサのダッシュボードのリストを表示するには、 [GCP ダッシュボード] リストで [Google Cloud Load Balancers] というダッシュボードをクリックします。特定のロードバランサのダッシュボードを表示するには、リストでロードバランサを見つけて 名前をクリックします。
- ロードバランサの事前定義されたダッシュボードのみを表示するには、適切なダッシュボードを選択します。
Monitoring の事前定義されたダッシュボードに加えて、カスタム ダッシュボードを作成して、アラートをセットアップし、 Cloud Monitoring API を使用して指標をクエリできます。
詳細については、アプリケーション ロードバランサのドキュメントの「モニタリングとトラブルシューティング」(内部アプリケーション ロードバランサのロギングとモニタリングなど)をご覧ください。
コールアウトのモニタリング指標
コールアウト バックエンド サービスの次の指標をモニタリングできます。
プレビュー版では、リージョン外部アプリケーション ロードバランサ、リージョン内部アプリケーション ロードバランサ、クロスリージョン内部アプリケーション ロードバランサの拡張機能について、次の指標をモニタリングできます。これらの指標には
networkservices.googleapis.com という接頭辞が付いています。次の表のエントリでは、接頭辞は省略されています。
次の表に、各指標の指標タイプ、表示名、種類、タイプ、単位、説明を示します。
| 指標タイプ | 表示名
種類、タイプ、単位 説明 |
|---|---|
extension/invocation_count
|
拡張機能の呼び出し回数
DELTA, INT64, 1
拡張機能に送信された呼び出しの数。 |
extension/invocation_latencies
|
拡張機能の呼び出しレイテンシ
DELTA, DISTRIBUTION, ms
各拡張機能の呼び出しのレイテンシから計算された分布。 |
extension/sent_chunks_count
|
拡張機能から送信されたチャンク数
DELTA, INT64, 1
request_body イベントと response_body イベントにのみ適用されます。
拡張機能に送信されたデータチャンクの数。 |
extension/received_chunks_count
|
拡張機能から受信したチャンク数
DELTA, INT64, 1
request_body イベントと response_body イベントにのみ適用されます。
拡張機能から受信したチャンクの数。 |
extension/failed_open_count
|
フェイルオープンで失敗した拡張機能の呼び出し
DELTA, INT64, 1
システムが フェイルオープンするように構成され、リクエストの続行が許可された場合に、呼び出しが失敗した回数。 |
extension/mutation_rejections_count
|
拡張機能のミューテーション拒否数
DELTA, INT64, 1
ヘッダー、本文、トレーラーのミューテーションをリクエストしたが 拒否された呼び出しの数。拒否は、ミューテーション が無効であるか、サイズ制限を超えているなど、さまざまな理由で発生する可能性があります。 |
extension/sent_bytes_count
|
拡張機能に送信されたバイト数
DELTA, INT64, By
拡張機能に送信されたバイト数。 |
extension/received_bytes_count
|
拡張機能から受信したバイト数
DELTA, INT64, By
拡張機能から受信したバイト数。 |
次の指標もモニタリングできます。これらの指標には
loadbalancing.googleapis.com/という接頭辞が付いています。次の表のエントリでは、接頭辞は省略されています
。
| 指標タイプ | 表示名
種類、タイプ、単位 説明 |
|---|---|
https/backend_request_count,
https/external/regional/backend_request_count,
https/internal/backend_request_count
|
バックエンド リクエスト数
DELTA、INT64、1
アプリケーション ロードバランサからコールアウト バックエンド サービスが呼び出された回数。 |
https/backend_request_bytes_count、
、 https/external/regional/backend_request_bytes_count、
、 https/internal/backend_request_bytes_count
|
バックエンド リクエストのバイト数
DELTA, INT64, By
ロードバランサからコールアウト バックエンド サービスに送信されたバイト数。 |
https/backend_response_bytes_count,
https/external/regional/backend_response_bytes_count,
https/internal/backend_response_bytes_count
|
バックエンド レスポンスのバイト数
DELTA、INT64、By
ロードバランサが 拡張機能バックエンドから受信したバイト数。 |
https/backend_latencies、
https/external/regional/backend_latencies、
https/internal/backend_latencies
|
バックエンド レイテンシ
DELTA、DISTRIBUTION、ms
ロードバランサとコールアウト バックエンド サービス間の各拡張機能の呼び出しのレイテンシの合計から計算された分布。60 秒ごとにサンプリングされます。 |