Skip to content

Conversation

@Abacn
Copy link
Contributor

@Abacn Abacn commented Aug 13, 2025

Fix SpannerIO TypeError due to monitoring_info

Also fix monitoring info error format string

Fix #35850

Part 1 of #35860

Please add a meaningful description for your change here


Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

  • Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
  • Update CHANGES.md with noteworthy changes.
  • If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md

GitHub Actions Tests Status (on master branch)

Build python source distribution and wheels
Python tests
Java tests
Go tests

See CI.md for more information about GitHub Actions CI or the workflows README to see a list of phrases to trigger workflows.

Fix SpannerIO TypeError due to monitoring_info

Also fix monitoring info error format string
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.

Summary of Changes

Hello @Abacn, 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 deprecates the experimental SpannerIO module within Apache Beam's Python SDK, guiding users towards the more stable apache_beam.io.gcp.spanner module. Concurrently, it addresses a TypeError that occurred in the SpannerIO monitoring logic by ensuring that the table_id label is conditionally applied. Additionally, a minor f-string formatting bug in monitoring error messages has been corrected for improved clarity.

Highlights

  • Deprecation of Experimental SpannerIO: The apache_beam.io.gcp.experimental.spannerio module, including ReadFromSpanner and WriteToSpanner transforms, has been marked as deprecated. Users are now advised to use the stable apache_beam.io.gcp.spanner module instead.
  • Fix for SpannerIO Monitoring TypeError: Resolved a TypeError in SpannerIO's monitoring metrics by ensuring that the SPANNER_TABLE_ID label is only added to monitoring labels if a table_id is actually provided, preventing issues when table_id might be None.
  • Correction of Monitoring Error Message Format: Fixed an f-string formatting error in the create_monitoring_info function within monitoring_infos.py, improving the clarity and correctness of error messages related to monitoring info creation.
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 in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

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 issue 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.

@Abacn Abacn changed the title Deprecate native SpannerIO, with exposed bug fix Deprecate Python native SpannerIO, with exposed bug fix Aug 13, 2025
@Abacn
Copy link
Contributor Author

Abacn commented Aug 13, 2025

R: @damccorm

@liferoad
Copy link
Contributor

/gemini review

@github-actions
Copy link
Contributor

Stopping reviewer notifications for this pull request: review requested by someone other than the bot, ceding control. If you'd like to restart, comment assign set of reviewers

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 effectively deprecates the experimental spannerio module and introduces two important bug fixes. The first fix correctly handles a potential TypeError in Spanner IO when a table_id is not provided for monitoring. The second fix corrects a malformed f-string in an error message within the monitoring_infos module, which will improve debuggability. The changes are well-executed and address the stated goals.

Abacn and others added 2 commits August 13, 2025 11:38
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
@Abacn
Copy link
Contributor Author

Abacn commented Aug 13, 2025

two bigquery_test failed not related to the change

@Abacn Abacn merged commit 0e47f80 into apache:master Aug 13, 2025
91 of 95 checks passed
@Abacn Abacn deleted the fixmonitoring-info branch August 13, 2025 18:05
parveensania pushed a commit to parveensania/beam-dp that referenced this pull request Aug 17, 2025
* Deprecate native SpannerIO, with exposed bug fix

Fix SpannerIO TypeError due to monitoring_info

Also fix monitoring info error format string

* Update sdks/python/apache_beam/metrics/monitoring_infos.py

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* add CHANGES.md

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
DKER2 pushed a commit to DKER2/beam that referenced this pull request Aug 20, 2025
* Deprecate native SpannerIO, with exposed bug fix

Fix SpannerIO TypeError due to monitoring_info

Also fix monitoring info error format string

* Update sdks/python/apache_beam/metrics/monitoring_infos.py

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* add CHANGES.md

---------

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: ReadFromSpanner fails with Dataflow when using apache_beam.io.gcp.experimental.spannerio

3 participants