Skip to content

Conversation

@rahim-kanji
Copy link
Collaborator

@rahim-kanji rahim-kanji commented Dec 3, 2025

PostgreSQL monitor now supports client certificates for SSL/TLS connections to backend servers.

  • Added two new metrics, PgSQL_Monitor_ssl_connections_OK and PgSQL_Monitor_non_ssl_connections_OK (in stats_pgsql_global), to improve visibility into PostgreSQL monitor connection status.

Closes #5205

@gemini-code-assist
Copy link

Summary of Changes

Hello @rahim-kanji, 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 significantly upgrades the PostgreSQL monitor's capabilities by integrating robust SSL/TLS client certificate support for connections to backend servers. This enhancement allows for more secure and authenticated communication channels, addressing the need for stronger encryption and identity verification in database monitoring.

Highlights

  • SSL Options Structure: Introduced a new ssl_opts_t structure within mon_srv_t to hold client certificate, key, CA, and CRL paths for secure PostgreSQL backend connections.
  • Configuration Loading: Updated the ext_srvs function to load and populate these new SSL options from global configuration variables when fetching server details.
  • Secure Connection String Building: Enhanced the build_conn_str function to dynamically construct the PostgreSQL connection string, incorporating sslmode='require' and the specified client certificate parameters if SSL is enabled for a server.
  • Parameter Escaping Utility: Added a new helper function append_conninfo_param to safely append connection parameters to the connection string, ensuring proper escaping of special characters.
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

@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 adds SSL support for backend connections in the PostgreSQL monitor by extending the server configuration with SSL options and updating the connection string builder. The overall approach is sound, but there's a critical compilation error in how the new SSL options are initialized. I've also included a suggestion to optimize the new helper function for building connection string parameters.

@rahim-kanji rahim-kanji force-pushed the v3.0_pgsql-monitor-sslsupport-5205 branch 2 times, most recently from d6da789 to 7205f42 Compare December 3, 2025 14:18
@renecannao
Copy link
Contributor

@rahim-kanji : we should add some TAP test , at least to verify that SSL is being used for monitoring

…ections

Adds two new metrics, ssl_connections_OK and non_ssl_connections_OK, to improve visibility into PostgreSQL monitor connection status.
@rahim-kanji rahim-kanji force-pushed the v3.0_pgsql-monitor-sslsupport-5205 branch from 2363892 to 0e7b5e2 Compare December 10, 2025 20:38
@sonarqubecloud
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants