FE-1858 FE-1853: fix pooler max connections (#38823)

* fix db config

* add fetch of pooler cn
This commit is contained in:
Jordi Enric
2025-09-23 21:03:29 +02:00
committed by GitHub
parent 6467a18963
commit d3708a3980
2 changed files with 18 additions and 22 deletions

View File

@@ -4,18 +4,9 @@ import { formatBytes } from 'lib/helpers'
import { Organization } from 'types'
import { DiskAttributesData } from '../config/disk-attributes-query'
import { MaxConnectionsData } from '../database/max-connections-query'
import { PgbouncerConfigData } from '../database/pgbouncer-config-query'
import { Project } from '../projects/project-detail-query'
export const getReportAttributes = (
org: Organization,
project: Project,
diskConfig?: DiskAttributesData,
maxConnections?: MaxConnectionsData,
poolerConfig?: PgbouncerConfigData
): ReportAttributes[] => {
const computeSize = project?.infra_compute_size || 'medium'
export const getReportAttributes = (diskConfig?: DiskAttributesData): ReportAttributes[] => {
return [
{
id: 'ram-usage',
@@ -224,10 +215,9 @@ export const getReportAttributesV2: (
project: Project,
diskConfig?: DiskAttributesData,
maxConnections?: MaxConnectionsData,
poolerConfig?: PgbouncerConfigData
) => ReportAttributes[] = (org, project, diskConfig, maxConnections, poolerConfig) => {
pgBouncerMaxConnections?: number
) => ReportAttributes[] = (org, project, diskConfig, maxConnections, pgBouncerMaxConnections) => {
const isFreePlan = org?.plan?.id === 'free'
const computeSize = project?.infra_compute_size || 'medium'
const isSpendCapEnabled =
org?.plan.id !== 'free' && !org?.usage_billing_enabled && project?.cloud_provider !== 'FLY'
@@ -507,7 +497,7 @@ export const getReportAttributesV2: (
attribute: 'pg_pooler_max_connections',
provider: 'reference-line',
label: 'Max pooler connections',
value: poolerConfig?.max_client_conn,
value: pgBouncerMaxConnections,
tooltip: 'Maximum allowed pooler connections for your current compute size',
isMaxValue: true,
},

View File

@@ -42,6 +42,8 @@ import { useDatabaseSelectorStateSnapshot } from 'state/database-selector'
import type { NextPageWithLayout } from 'types'
import { AlertDescription_Shadcn_, Alert_Shadcn_, Button } from 'ui'
import { ReportChartUpsell } from 'components/interfaces/Reports/v2/ReportChartUpsell'
import { POOLING_OPTIMIZATIONS } from 'components/interfaces/Settings/Database/ConnectionPooling/ConnectionPooling.constants'
import { useProjectAddonsQuery } from 'data/subscriptions/project-addons-query'
const DatabaseReport: NextPageWithLayout = () => {
return (
@@ -107,6 +109,16 @@ const DatabaseUsage = () => {
})
const { data: poolerConfig } = usePgbouncerConfigQuery({ projectRef: project?.ref })
// PGBouncer connections
const { data: addons } = useProjectAddonsQuery({ projectRef: project?.ref })
const computeInstance = addons?.selected_addons.find((addon) => addon.type === 'compute_instance')
const poolingOptimizations =
POOLING_OPTIMIZATIONS[
(computeInstance?.variant.identifier as keyof typeof POOLING_OPTIMIZATIONS) ??
(project?.infra_compute_size === 'nano' ? 'ci_nano' : 'ci_micro')
]
const defaultMaxClientConn = poolingOptimizations.maxClientConn ?? 200
const { can: canUpdateDiskSizeConfig } = useAsyncCheckPermissions(
PermissionAction.UPDATE,
'projects',
@@ -117,19 +129,13 @@ const DatabaseUsage = () => {
}
)
const REPORT_ATTRIBUTES = getReportAttributes(
org!,
project!,
diskConfig,
maxConnections,
poolerConfig
)
const REPORT_ATTRIBUTES = getReportAttributes(diskConfig)
const REPORT_ATTRIBUTES_V2 = getReportAttributesV2(
org!,
project!,
diskConfig,
maxConnections,
poolerConfig
defaultMaxClientConn
)
const { isLoading: isUpdatingDiskSize } = useProjectDiskResizeMutation({