Micro → Load → Chaos. A complete JVM observability pipeline:
JMH microbenchmarks with CI regression gate,
five Gatling load profiles with InfluxDB export,
and automated chaos engineering via Toxiproxy, Chaos Monkey, and Resilience4j.
| benchmark | param | result | bar | vs baseline |
|---|---|---|---|---|
| jacksonSerialize | 10 items | 1,897,986 ops/s | ↑ +5.06% | |
| kotlinxSerialize | 10 items | 1,805,309 ops/s | ↑ +1.17% | |
| gsonSerialize | 10 items | 892,501 ops/s | ↑ +5.13% | |
| jacksonSerialize | 100 items | 429,753 ops/s | ↑ +5.06% | |
| kotlinxSerialize | 100 items | 379,969 ops/s | ↑ +1.17% | |
| computeHeavyTask | 100 items | 3,172,261 ops/s | ↓ −2.14% | |
| sortList | 100 items | 419,898 ops/s | ↓ −5.72% | |
| binarySearch | 1000 items | 24,342 ops/s | ↑ +7.79% | |
| getCacheHit | avgt | ≈ 10⁻⁵ ms/op | ↑ +3.21% | |
| okhttpClientRequest | — | 24.38 ops/s | ↑ +0.84% |
| scenario | tool | fault injected | expected behaviour | result |
|---|---|---|---|---|
| DB latency injection | Toxiproxy | +300ms on postgres:5432 | Resilience4j timeout → fallback | ✓ PASS |
| Cache blackout | Toxiproxy | Redis:6379 connection cut | Circuit breaker OPEN → in-memory fallback | ✓ PASS |
| Downstream HTTP delay | Toxiproxy | OkHttp target +500ms | Bulkhead isolates · retry policy fires | ✓ PASS |
| Heap pressure / GC stress | Chaos Monkey | Memory watcher assault | GC reclaims · latency spike < SLA | ✓ PASS |
| Pod kill / shutdown | Chaos Monkey | Random instance kill | Tomcat GracefulShutdown · 0 lost requests | ✓ PASS |