Skip to content

feat(bigtable): debug tags for GetClientConfiguration session_configuration state - #20472

Merged
sushanb merged 2 commits into
googleapis:mainfrom
sushanb:fix/bigtable-client-config-debug-tags
Sep 3, 2026
Merged

sushanb merged 2 commits into
googleapis:mainfrom
sushanb:fix/bigtable-client-config-debug-tags

Conversation

@sushanb

@sushanb sushanb commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Summary

Two new debug-tag emissions from the successful-poll branch of `ClientConfigurationManager`, distinguishing the two ways a poll can succeed but still leave the client without a working `session_load`:

  • `client_config_session_configuration_null` — response arrived with `SessionConfiguration` unset (control-plane config never landed).
  • `client_config_session_load_zero` — `SessionConfiguration` is populated but `session_load == 0` (explicit "route 0% through session, 100% through classic"). Legitimate operating point, but worth surfacing so ops can spot instances/app-profiles opted out of the session data path.

Tags are mutually exclusive by construction. Failed polls still route through the existing `client_config_poll_failed` counter — no overlap.

Motivation

Under investigation of a real instance (`sushanb-cache`), every GetClientConfiguration poll returns the same instance-level defaults regardless of app profile. The client silently accepts this and falls back to defaults — no operator-visible signal. These tags close that gap so dashboards can plot the rate of null/zero responses across instances.

Test plan

  • `go test ./internal/transport/ -run TestManagerPoll_SessionConfigurationDebugTags -count=1` — table-driven suite covering all three branches (null, zero, nonzero).
  • `go test ./internal/transport/ ./internal/session/ -count=1 -short` — full smoke.

…ssion_configuration

A successful poll can still leave the client with no session_configuration
— e.g. an instance/profile whose control-plane config never landed — and
today that silently falls back to defaults with no operator-visible signal.
Fire client_config_session_configuration_null on the debug-tag counter
whenever resp.SessionConfiguration is nil on a successful poll so ops can
grep it apart from failed polls (which already emit
client_config_poll_failed).
…_load=0

Companion signal to client_config_session_configuration_null: fires
client_config_session_load_zero when a successful poll returns a
populated SessionClientConfiguration whose session_load is 0 (explicit
"route 0% through session, 100% through classic"). Legitimate operating
point, but worth surfacing so operators can spot instances/app-profiles
effectively opted out of the session data path. Mutually exclusive with
the null-config tag.
@sushanb
sushanb requested review from a team as code owners September 3, 2026 20:56
@product-auto-label product-auto-label Bot added the api: bigtable Issues related to the Bigtable API. label Sep 3, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces two new debug tags (tagClientConfigSessionConfigurationNull and tagClientConfigSessionLoadZero) to monitor the health of the polled client configuration in Bigtable. It records these tags when the session configuration is null or when the session load is explicitly set to zero, and includes corresponding unit tests to verify this behavior. There are no review comments, so I have no feedback to provide.

@sushanb
sushanb merged commit 8e57e4b into googleapis:main Sep 3, 2026
19 checks passed
machi-genggeng pushed a commit to machi-genggeng/google-cloud-go that referenced this pull request Sep 3, 2026
🤖 I have created a release *beep* *boop*
---


##
[1.55.0](googleapis/google-cloud-go@bigtable/v1.54.0...bigtable/v1.55.0)
(2026-09-03)


### Features

* **bigtable/bttest:** Honor the table's timestamp granularity
([googleapis#20456](googleapis#20456))
([0054866](googleapis@0054866))
* **bigtable:** Debug tags for GetClientConfiguration
session_configuration state
([googleapis#20472](googleapis#20472))
([8e57e4b](googleapis@8e57e4b))


### Bug Fixes

* **bigtable:** Use instance_name instead of name in GetClientConfig
([googleapis#20465](googleapis#20465))
([375f198](googleapis@375f198))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
sushanb pushed a commit that referenced this pull request Sep 3, 2026
🤖 I have created a release *beep* *boop*
---


##
[1.55.0](bigtable/v1.54.0...bigtable/v1.55.0)
(2026-09-03)


### Features

* **bigtable/bttest:** Honor the table's timestamp granularity
([#20456](#20456))
([0054866](0054866))
* **bigtable:** Debug tags for GetClientConfiguration
session_configuration state
([#20472](#20472))
([8e57e4b](8e57e4b))


### Bug Fixes

* **bigtable:** Use instance_name instead of name in GetClientConfig
([#20465](#20465))
([375f198](375f198))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api: bigtable Issues related to the Bigtable API.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants