helpyourneighbour/docs/performance-baseline.md

69 lines
1.6 KiB
Markdown
Raw Permalink Normal View History

# Performance-Baseline fuer Kernendpunkte
## Ziel
Umsetzung der in [Issue #25](https://forgejo.openclaw.ai/openclaw/helpyourneighbour/issues/25) definierten Ziele:
1. Zielwerte fuer /health, /auth/login, /requests GET definieren.
2. Lightweight-Benchmark-Setup dokumentieren.
3. Schwellenwert fuer Regressionswarnung festlegen.
## Baseline-Werte
| Endpunkt | Zielzeit (ms) | Maximalzeit (ms) |
|----------------|---------------|------------------|
| /health | 50 | 100 |
| /auth/login | 200 | 400 |
| /requests GET | 300 | 600 |
## Benchmark-Setup
### Lokale Tests
Lokale Performance-Tests werden mit `curl` und `time` durchgeführt:
```bash
time curl -s http://localhost:3000/health
```
### Docker-Integration
Ein Docker-Container wird verwendet, um die Tests in einer produktähnlichen Umgebung durchzuführen.
```dockerfile
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
```
### Benchmark-Tool
Ein einfaches Node.js-Skript zur Durchführung der Tests:
```js
const { exec } = require('child_process');
const fs = require('fs');
const endpoints = [
'/health',
'/auth/login',
'/requests'
];
endpoints.forEach(endpoint => {
const start = Date.now();
exec(`curl -s http://localhost:3000${endpoint}`, (error, stdout, stderr) => {
const end = Date.now();
console.log(`${endpoint}: ${end - start}ms`);
});
});
```
## Regressionswarnung
Wenn eine Endpunkt-Zeit um mehr als 20% über der Zielzeit liegt, wird eine Warnung ausgelöst.