pg-stress — Stress Testing PostgreSQL with Claude-powered advisory
Source: Dev.to
Test it like It’s a Machine
When I started building pg-collector (another project that uses heavy stress testing with pg-test), I quickly ran into a problem: I didn’t have a reliable way to break PostgreSQL on demand. There are many tools for generating synthetic data, but none offered a comprehensive stress‑testing workflow. That’s when the idea for pg‑stress was born.
Built from “eat your own dog food”
pg‑stress didn’t start as a commercial product. While developing pg‑collector, I needed a way to intentionally stress PostgreSQL—not just benchmark it. The tool I built for that purpose became pg‑stress.
Think of it like automobile testing
When a new car is built, it isn’t only driven on smooth roads. It’s also tested on:
- Rough terrain
- Extreme temperatures
- High‑speed endurance runs
Similarly, before releasing a new query to production, you can inject it into pg‑stress, run it with hundreds of connections, insert millions of rows, and output the findings to a Claude chat box for advisory.
Databases are no different
Production issues often surface under:
- Burst traffic
- Unpredictable workloads
- Resource contention
pg‑stress is built to simulate exactly those conditions.
What pg‑stress actually tests
This isn’t just “run SELECT 1 in a loop.” pg‑stress injects real‑world chaos into PostgreSQL.
Jitter + randomness
- Non‑uniform traffic patterns
- Unpredictable workloads
- Concurrency spikes
Bloat & connection pressure
- Table and index bloat scenarios
- Connection exhaustion
- Lock contention
Query stress
- Slow queries under load
- Joins at scale
- Performance degradation over time
From stress → context → intelligence
Most stress tools stop at reporting TPS and latency numbers. pg‑stress goes further by producing structured output designed for contextual analysis.
Built for AI‑assisted diagnosis
The output of pg‑stress is optimized for modern workflows:
- Feed it directly into models like Claude
- Receive actionable advisory based on the stress results
Part of a bigger system
pg‑stress is intended to be a component of a larger observability and reliability stack, integrating with monitoring, alerting, and AI‑driven diagnostics.
Final thought
If you can’t break your database in a controlled environment, it will break in production—on its own terms.
Repository
pg‑stress on GitHub (replace with actual URL)
Tags: DataEngineering, AIInfrastructure, MachineLearning, PostgreSQL, OpenSource