Skip to content

Predictive monitoring for PostgreSQL fleets

Forecast PostgreSQL saturation before it becomes an incident.

GDE collects metrics and query statistics from every PostgreSQL instance through a Go agent, forecasts where each resource is heading, and gives on-call engineers one ranked view of incidents and predictions — with SQL literals masked as positional placeholders.

Fleet overviewtenant payments-prod · us-east-1 · sample data
Clusters monitored
6
Agents reporting
5 / 6
Open incidents
2
Active forecasts
2
Active connectionspg-orders-primary · 5 min resolution
↗ Predicted

Forecast crosses 340 at 13:35 UTC.

NOW 08:0010:0012:0014:00
  • Observed
  • Forecast
  • Confidence band
Incidents & forecastslast 6h
Critical
Replication lag above 30sINC-2041 · pg-ledger-replica-2
Warning
Lock wait above 10sINC-2039 · pg-orders-primary
Predicted
Connections forecast above 85%PRD-0187 · pg-orders-primary
Agent db-analytics-04 is disconnected. Data is stale until the agent re-authenticates.
HostClusterAgentHeartbeatStatus
db-orders-01pg-orders-primarygde-agent 1.14.22s agoConnected
db-ledger-03pg-ledger-replica-2gde-agent 1.14.148s agoStale
db-analytics-04pg-analyticsgde-agent 1.13.011:22:41 UTCDisconnected

Outcomes by role

One record of database risk, read three ways.

Each team gets the view it needs from the same underlying data — without exporting raw queries to get there.

Explore the Architecture →

01 · Platform & SRE

See saturation coming in hours or days, not at the page.

Forecasts with confidence bands for connections, storage, and transaction ID age. Incidents and predictions live in one ranked list.

  • predictive monitoring
  • incident timeline
  • query statistics

02 · Security & compliance

Monitoring that does not widen your data exposure.

SQL literals become positional placeholders. Tenant data is isolated, access is role-governed, agents authenticate, and privileged actions are audited.

  • tenant isolation
  • RBAC
  • audit logging
  • SQL masking

03 · Engineering leadership

Turn database risk into scheduled work.

Predictions arrive before thresholds are crossed, so capacity changes can be planned. Automated preemption remains an explicit opt-in.

  • opt in preemption
  • PostgreSQL
  • ClickHouse
  • Redis

Predictive monitoring

Forecasts with confidence bands, not single-line guesses.

GDE projects tracked metrics forward from observed history and shows the expected range. A widening band reads as uncertainty, not false precision.

Metric

Current
82.6%
At horizon
93.2%
Band at horizon
89.3–97.1%
Threshold
90.0%
Data volume usedpg-ledger-primary
PredictedCrosses threshold Apr 15, 00:00 UTC
NOW MAR 27APR 03APR 10APR 17
  • Observed
  • Forecast
  • Confidence band
  • Threshold

Incidents & query evidence

Every incident carries its evidence.

Signals, state changes, acknowledgments, and audit records share one timeline. Query samples arrive normalized, with every literal replaced by a positional placeholder.

CriticalINC-2041pg-ledger-replica-2
  1. replay_lag 12.4s exceeds warning threshold

  2. replay_lag 48.2s — incident opened, severity Critical

  3. Acknowledged by m.okafor · role db-oncall

  4. incident.acknowledge · actor m.okafor

Top queries by total timepg-orders-primary · 24h
q_7f3a91c2 · normalizedliterals masked as $n
SELECT o.id, o.status
FROM orders o
WHERE o.customer_id = $1
  AND o.created_at > $2
ORDER BY o.created_at DESC
LIMIT $3

Safe opt-in preemption

Preemption stays off until you turn it on.

When a runaway session threatens a cluster, GDE can preempt it — but only under a policy an authorized role explicitly enabled.

  1. 01Disabled by default on every policy.
  2. 02Changing a policy requires the right role.
  3. 03Each change produces an audit record.

Policy · sample

long-running-analytics
scope
pg-events-primary
applies to
role analytics_ro
condition
query runtime > 15 min
changed by
a.chen · policy-admin

Audit log

  1. policy.preemption.update · actor a.chen · enabled=false

Architecture

Built on components your platform team already understands.

A Go agent on your hosts, an idempotent ingestion path, and a Rails control plane backed by PostgreSQL, ClickHouse, and Redis.

Data path

  1. GoAgent

    Runs beside each PostgreSQL instance and authenticates before any payload is accepted.

  2. IngestionIdempotent writes

    A retried batch is recorded once — network retries never double-count.

  3. RedisQueue & cache

    Buffers work between ingestion and processing.

  4. ClickHouseTelemetry store

    Time-series metrics and normalized query statistics.

Control plane

  1. RailsApplication & API

    Dashboards, incidents, forecasts, RBAC enforcement, and audit logging.

  2. →
  3. PostgreSQLSystem of record

    Tenants, users, roles, policies, applications, and audit entries.

Security & reliability

Controls you can inspect in the product.

These are product capabilities, described as they behave. Ask us to walk through any of them against your own review checklist.

Tenant isolation
Each tenant’s metrics, queries, incidents, and audit records are isolated.
Role-based access control
Roles determine who can view clusters, acknowledge incidents, and change policies.
Audit logging
Acknowledgments, role grants, policy changes, and rejected credentials are recorded.
SQL data masking
Query literals are replaced with positional placeholders such as $1, $2, and $3.
Secure agent authentication
Agents authenticate before GDE accepts data. Revoked credentials are rejected.
Idempotent ingestion
Retried submissions are recorded once, so network failures never duplicate data.
Safe opt-in preemption
Automated session preemption is off unless an authorized role enables it.

Next step

Start with one cluster.

Pick the conversation that fits where you are. Both start with the clusters you choose.

Technical demo
Walk through predictive monitoring, architecture, and security with your engineers.
Pilot
Install the Go agent on selected clusters and evaluate GDE against your workload.
I want to