googleapis / googleapis/google-cloud-java

[java-bigtable] client side metric for ReadRows request tagged with "undefined" table id

オープン
#13,079 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
api: bigtable
主要言語
Java
スター
2.1k
フォーク
1.2k
平均マージ
1日 23時間
マージ済み PR(30日)
154

説明

For ReadRows request, when we received a retryable exception at the end of the stream after consuming all the rows, the client will initiate a new attempt RPC which has a [fake ReadRowsRequest](https://github.com/googleapis/java-bigtable/blob/main/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/readrows/ReadRowsRetryCompletedCallable.java#L54-L57). This is fine in the most cases because the request is not actually getting send to the server and the returned response is correct.

However, when client side metrics is enabled, this would show up as an extra client RPC with `cluster_id=unspecified`, `zone_id=global`, `table_id=undefined`, and `status=OK`: https://screenshot.googleplex.com/B6HqQdHMJduK5XP. The cluster_id and zone_id are unspecified because no request is send to server so nothing is returned, the table_id is undefined because we skipped setting table name in the [fake FULFILLED_REQUEST_MARKER request](https://github.com/googleapis/java-bigtable/blob/main/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/readrows/ReadRowsRetryCompletedCallable.java#L42).

This could be confusing because usually when cluster_id is unspecified it means the request failed before it reaches Bigtable server, in which case the status would be OK. And table_id should never be undefined because we get the table_id from the request.

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。