Skip to content

Conversation

@bhshkh
Copy link
Contributor

@bhshkh bhshkh commented Dec 15, 2025

Fixes: #13466

@bhshkh bhshkh requested review from a team as code owners December 15, 2025 18:02
@product-auto-label product-auto-label bot added the api: bigtable Issues related to the Bigtable API. label Dec 15, 2025
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @bhshkh, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request refactors how gRPC status codes are recorded within the Bigtable client's metrics system. The primary goal is to standardize the format of these status codes to a 'screaming uppercase' convention, improving consistency and readability in metric data. This involves updating the setCurrOpStatus method to directly consume gRPC status codes and applying a new canonicalization logic, along with comprehensive updates to existing tests and the addition of a dedicated test for the new string conversion utility.

Highlights

  • Standardized Metric Status Format: Metric status codes are now consistently formatted to 'screaming uppercase' (e.g., DEADLINE_EXCEEDED) using a new canonicalString helper function, ensuring uniformity in metric reporting.
  • setCurrOpStatus Signature Update: The setCurrOpStatus function in builtinMetricsTracer has been updated to directly accept a codes.Code enum instead of a string, improving type safety and consistency in how status is passed.
  • New canonicalString Function: A new utility function canonicalString has been introduced to convert grpc/codes.Code values into the desired 'screaming uppercase' string representation for metrics, utilizing regexp and strings for transformation.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

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

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 refactors how metric statuses are formatted, changing them to a "screaming snake case" format (e.g., DEADLINE_EXCEEDED). This is achieved by introducing a canonicalString helper function and updating various method calls to use it, ensuring consistent status reporting. The changes are well-contained and include corresponding updates to tests, which is great. I have one suggestion to improve the robustness of a newly added test case to align it better with the new formatting logic.

shollyman
shollyman previously approved these changes Dec 15, 2025
@bhshkh bhshkh enabled auto-merge (squash) December 15, 2025 18:17
@bhshkh bhshkh merged commit b35ee8f into googleapis:main Dec 15, 2025
11 checks passed
bhshkh added a commit that referenced this pull request Dec 15, 2025
PR created by the Librarian CLI to initialize a release. Merging this PR
will auto trigger a release.

Librarian Version: v0.7.0
Language Image:
us-central1-docker.pkg.dev/cloud-sdk-librarian-prod/images-prod/librarian-go@sha256:718167d5c23ed389b41f617b3a00ac839bdd938a6bd2d48ae0c2f1fa51ab1c3d
<details><summary>bigtable: 1.41.0</summary>

##
[1.41.0](bigtable/v1.40.1...bigtable/v1.41.0)
(2025-12-15)

### Features

* add PeerInfo proto in Bigtable API (PiperOrigin-RevId: 829585900)
([185951b](185951b3))

* precompute featureflags in client and reuse (#13297)
([3b3253a](3b3253ac))

* Add experimental Bigtable connection pool with custom load balancing
strategy. (#12882)
([7aa9612](7aa96127))

* Enable ALTS hard bound token in Bigtable w/ direct access (#13153)
([9023934](90239341))

* Enable routing cookie and attempt headers for enhanced retries
(#12964)
([96cfd47](96cfd47a))

### Bug Fixes

* fix project id sent in otel (#13286)
([4865868](4865868c))

* screaming uppercase metric status (#13484)
([b35ee8f](b35ee8fd))

### Performance Improvements

* parallelize the exportTimeSeries function (#13004)
([bafd691](bafd691d))

</details>
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.

bigtable: metric status labels should be in SCREAMING_CAP_CASE

2 participants