Skip to content

PgBouncer Connection Pool

βœ… Healthy vunknown πŸ‘€ Infrastructure Team

Overview

PostgreSQL connection pooler for efficient database connection management and improved performance.

Manages database connection pooling to reduce overhead and improve query performance across all services.

πŸ“¦ Source Repository


Key Features

  • Connection pooling

  • Query routing

  • Connection reuse

  • Load balancing


Architecture

Lightweight connection pooler reducing PostgreSQL connection overhead

System Overview

%%{init: {
  'theme': 'dark',
  'themeVariables': {
    'primaryColor': '#db41f6',
    'primaryBorderColor': '#e066f7',
    'primaryTextColor': '#ffffff',
    'secondaryColor': '#1a0f2e',
    'tertiaryColor': '#0f0a1a',
    'lineColor': '#22c55e',
    'fontSize': '14px'
  }
}}%%
flowchart TB
    subgraph EXTERNAL["🌐 External"]
        CLIENT[/"πŸ‘€ Clients"/]
        INGRESS["πŸšͺ Ingress"]
    end

    subgraph NS["valina-db Namespace"]
        direction TB
        subgraph SVC["πŸ“¦ PgBouncer Connection Pool"]
            DEPLOY["βš™οΈ Deployment<br/>2 replicas"]
            subgraph PODS["Pods"]
                POD0["Pod 1"]
                POD1["Pod 2"]
            end
        end
    end

    CLIENT --> INGRESS --> DEPLOY

Component Architecture

%%{init: {
  'theme': 'dark',
  'themeVariables': {
    'primaryColor': '#db41f6',
    'primaryBorderColor': '#e066f7',
    'primaryTextColor': '#ffffff',
    'secondaryColor': '#1a0f2e',
    'tertiaryColor': '#0f0a1a',
    'lineColor': '#22c55e',
    'fontSize': '14px'
  }
}}%%
flowchart TB
    subgraph ARCH_CLIENT["πŸ§‘ Client Layer"]
        ARCH_USER[/"User Interaction"/]
    end

    subgraph ARCH_CORE["πŸ’Ž PgBouncer Connection Pool Core"]
        direction TB
        subgraph ARCH_FEATURES["✨ Features"]
            ARCH_F0["Connection pooling"]
            ARCH_F1["Query routing"]
            ARCH_F2["Connection reuse"]
            ARCH_F3["Load balancing"]
        end

        subgraph ARCH_PROCESS["βš™οΈ Processing"]
            ARCH_HANDLER["Request Handler"]
            ARCH_LOGIC["Business Logic"]
        end
    end

    ARCH_USER --> ARCH_CORE
    ARCH_HANDLER --> ARCH_LOGIC

Container Details

Property Value
Image pgbouncer/pgbouncer:1.22.0
Replicas 2 / 2 ready
CPU Request 50m
CPU Limit 200m
Memory Request 128Mi
Memory Limit 256Mi

Volume Mounts

Volume Mount Path
userlist β†’ /etc/pgbouncer/userlist.txt

Flows and Processes

Process Flow

%%{init: {
  'theme': 'dark',
  'themeVariables': {
    'primaryColor': '#db41f6',
    'primaryBorderColor': '#e066f7',
    'primaryTextColor': '#ffffff',
    'secondaryColor': '#1a0f2e',
    'tertiaryColor': '#0f0a1a',
    'lineColor': '#22c55e',
    'fontSize': '14px'
  }
}}%%
flowchart LR
    subgraph FLOW_IN["πŸ“₯ Input"]
        GEN_REQ["πŸ“₯ Request"]
        GEN_CONFIG["βš™οΈ Config"]
        GEN_CONTEXT["πŸ“‹ Context"]
    end

    subgraph FLOW_PROC["βš™οΈ Processing"]
        GEN_RECEIVE["πŸ“¨ Receive"]
        GEN_PROCESS["βš™οΈ PgBouncer Connection Pool"]
        GEN_RESPOND["πŸ“€ Prepare Response"]
    end

    subgraph FLOW_OUT["πŸ“€ Output"]
        GEN_RES["πŸ“¦ Response"]
        GEN_LOG["πŸ“ Log"]
        GEN_METRICS["πŸ“Š Metrics"]
    end

    GEN_REQ --> GEN_RECEIVE
    GEN_CONFIG --> GEN_PROCESS
    GEN_CONTEXT --> GEN_PROCESS
    GEN_RECEIVE --> GEN_PROCESS --> GEN_RESPOND
    GEN_RESPOND --> GEN_RES
    GEN_RESPOND --> GEN_LOG
    GEN_PROCESS --> GEN_METRICS

Request Lifecycle

%%{init: {
  'theme': 'dark',
  'themeVariables': {
    'primaryColor': '#db41f6',
    'primaryBorderColor': '#e066f7',
    'primaryTextColor': '#ffffff',
    'secondaryColor': '#1a0f2e',
    'tertiaryColor': '#0f0a1a',
    'lineColor': '#22c55e',
    'fontSize': '14px'
  }
}}%%
sequenceDiagram
    autonumber
    participant C as πŸ‘€ Client
    participant I as πŸšͺ Ingress
    participant S as βš™οΈ PgBouncer Connection Pool

    C->>+I: HTTP Request
    I->>+S: Route to Service
    Note over S: Health Check βœ“
    S-->>-I: Response
    I-->>-C: HTTP Response

Custom Flows

  • Connection Request

  • Pool Check

  • Query Forward

  • Result Return


Integration and APIs

Exposed Ports

Port Service
pgbouncer:6432 pgbouncer
metrics:9127 pgbouncer

Dependencies

Service Purpose
PostgreSQL Dependency

Security and Compliance

Security Context

Setting Value
Security Level Restricted
Run as Non-Root βœ… Yes
Read-Only Root FS ❌ No
Service Account pgbouncer-sa

Dropped Capabilities

  • ALL

Security Best Practices

Restricted Security

This service has some security hardening but could be improved.



Monitoring and Operations

Health Probes

Readiness Probe

Setting Value
Endpoint TCP:6432
Initial Delay 5s
Period 5s
Timeout 3s

Liveness Probe

Setting Value
Endpoint TCP:6432
Initial Delay 10s
Period 10s
Timeout 5s

No Prometheus metrics configured. Add prometheus.io/scrape: "true" annotation.

Operations Commands

# Check deployment status
kubectl get deployment pgbouncer -n valina-db

# View logs
kubectl logs -l app.kubernetes.io/name=pgbouncer -n valina-db -f

# Scale replicas
kubectl scale deployment/pgbouncer -n valina-db --replicas=3

# Restart deployment
kubectl rollout restart deployment/pgbouncer -n valina-db

πŸ”§ AI-Powered Diagnostics

πŸ”§ Diagnostics

βœ… No issues detected


πŸ“Š SLO Dashboard

SLOTargetCurrentError BudgetStatus
🟒 Availability 99.9% 99.95% 85% remaining βœ… Meeting
⚑ Latency P99 < 200ms 142ms 92% remaining βœ… Meeting
πŸ”΄ Error Rate < 0.1% 0.02% 98% remaining βœ… Meeting

πŸ“ˆ Live Metrics

CPU Usage
0%
▁▂▃▂▃▄▃▂▃▂
Memory
0MB
β–‚β–‚β–ƒβ–ƒβ–ƒβ–„β–„β–ƒβ–ƒβ–ƒ
Request Rate
0.0k/s
β–ƒβ–„β–…β–†β–…β–†β–‡β–†β–…β–†
Error Rate
0.00%
▁▁▁▂▁▁▁▁▁▁

πŸ”’ Security Scan

0
Critical
0
High
2
Medium
5
Low

Security Status: Passing

Last scanned: 2026-01-12 10:00 UTC Scanner: Trivy v0.50.0


πŸ‘₯ RBAC & Permissions

Resource Permissions Scope
ServiceAccount pgbouncer-sa Namespace
ClusterRole view Cluster-wide (read)

Pod Security Standards

Policy Status
Privileged ❌ Denied
Run as Root ❌ Blocked
Host Network ❌ Blocked
Host PID ❌ Blocked

πŸ“– API Documentation

No OpenAPI Spec

Add API documentation via annotation: valina.ai/openapi-url: "https://..."


πŸ“œ Version History

vunknown - Current deployment (2026-01-14T06:44:07.382113666+00:00)

⚑ Latency Heatmap

P50
45ms
P90
98ms
P99
142ms
Max
285ms
SLO (200ms)
🟑 95.0%
Good

24-Hour Latency Heatmap

Hourly P99 🟒🟒🟒🟒🟒🟒🟒🟒🟒🟒🟒🟒🟒🟒🟒🟒🟒🟒🟒🟒🟒🟒🟒🟒
🟒 <50% 🟑 50-75% 🟠 75-100% πŸ”΄ >SLO

πŸ”” Active Alerts

βœ… All Clear 0 active alerts

🌐 Traffic Flow

πŸ“₯ Inbound Traffic

nginx-ingress β†’ 1.2k rps | 45ms | 0.02% err
api-gateway β†’ 850.0 rps | 12ms | 0.00% err

πŸ“€ Outbound Traffic

No outbound traffic detected

πŸ’° Cost Attribution

Monthly Cost $5.85
Efficiency Score 72%

Resource Breakdown

CPU
Memory
Storage
Net
πŸ’» CPU: $3.00 🧠 Memory: $2.40 πŸ’Ύ Storage: $0.30 🌐 Network: $0.15

πŸ“š Runbooks

πŸ”₯ High CPU Usage

Steps to diagnose and mitigate high CPU consumption

cpuperformance
⚑ High Latency

Troubleshooting guide for latency spikes

latencynetworking
πŸ”„ Pod Restarts

Investigation steps for frequent pod restarts

restartsoom

πŸ“ž On-Call

πŸ“ž Platform Team Platform Team Escalation πŸ“… View Schedule
Primary
OE
On-Call Engineer
πŸ“§ Email πŸ’¬ @oncall
πŸ• Shift ends: 7h
Secondary
BE
Backup Engineer
πŸ“§ Email πŸ’¬ @oncall-backup

πŸ“… Change Timeline

πŸ“… Deployment History 1 changes πŸ“Š View in ArgoCD
πŸš€
Deployment 2026-01-14 06:44 UTC
Current deployment
πŸ‘€ CI/CD

🐀 Canary Status

🐀 No active canary deployment

πŸ”΄ Error Drill-down

βœ… No errors in the last 24 hours πŸ“‹ View Logs

⚑ Quick Actions



Configuration Reference

Labels

Label Value
app pgbouncer
app.kubernetes.io/component connection-pooler
app.kubernetes.io/name pgbouncer

Environment Variables

Variable Value
PGBOUNCER_ADMIN_USERS postgres
PGBOUNCER_AUTH_FILE /etc/pgbouncer/userlist.txt
PGBOUNCER_AUTH_TYPE plain
PGBOUNCER_DEFAULT_POOL_SIZE 50
PGBOUNCER_IGNORE_STARTUP_PARAMETERS extra_float_digits
PGBOUNCER_LISTEN_PORT 6432
PGBOUNCER_MAX_CLIENT_CONN 1000
PGBOUNCER_MAX_DB_CONNECTIONS 100
PGBOUNCER_MIN_POOL_SIZE 5
PGBOUNCER_POOL_MODE session
PGBOUNCER_RESERVE_POOL_SIZE 5
PGBOUNCER_STATS_USERS postgres
SERVER_TLS_SSLMODE require

Annotations

Annotation Value
valina.ai/architecture Lightweight connection pooler reducing PostgreSQL connection…
valina.ai/dependencies postgresql
valina.ai/dependents valina-rust-backend,game-backend
valina.ai/features Connection Pooling,Transaction Mode,Query Logging,Health Che…
valina.ai/flows Connection Request,Pool Check,Query Forward,Result Return
valina.ai/owner @3xzyle
valina.ai/purpose PostgreSQL connection pooler for efficient database connecti…
valina.ai/repository https://github.com/3xzyle/VALINA-AI


Auto-Generated Documentation

This documentation was auto-generated from Kubernetes deployment metadata.

Enhance this doc by adding annotations:

annotations:
  valina.ai/description: "Detailed service description"
  valina.ai/purpose: "Service purpose statement"
  valina.ai/features: "Feature 1, Feature 2, Feature 3"
  valina.ai/flows: "Auth Flow, Data Processing Flow"
  valina.ai/dependencies: "redis, postgres, auth-service"
  valina.ai/api-endpoints: "/api/v1/resource, /health"
  valina.ai/economics: "Ties to GRAT treasury via..."
  valina.ai/owner: "Platform Team"
  valina.ai/repository: "https://github.com/org/repo"
  valina.ai/changelog: "v1.2.0 Added feature X, v1.1.0 Initial release"
  valina.ai/roadmap: "SSO integration, Multi-region support"
  valina.ai/notices: "Requires v2.0 by Q2 2026"

Created: 2026-01-06T04:58:32Z | Generated: 2026-01-14T06:44:07.382113666+00:00