# 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.
