API Tracing
Measure API requests and correlate with backend traces.
What to Capture (OTel-Compatible)
| Attribute | OTel Name | Purpose |
|-----------|-----------|---------|
| Method | http.request.method | GET, POST, etc. |
| Status | http.response.status_code | Success/failure |
| URL | url.path | Endpoint (sanitized) |
| Duration | http.request.duration | Request time (ms) |
Using OTel naming now = easier migration later.
Key Thresholds
| Metric | Good | Acceptable | Poor | |--------|------|------------|------| | p50 | <200ms | <500ms | >500ms | | p95 | <1s | <2s | >2s | | Error rate | <0.1% | <1% | >1% |
What NOT to Log
| Don't | Why | |-------|-----| | Request bodies | PII risk | | Auth headers | Security | | Full response data | Size limits | | User tokens | Security |
Do log: Request ID, sanitized path, status code, duration, error type.
Implementation
See templates/api-interceptor.ts for fetch/axios interceptors.
Use Read tool to load template when generating implementation.
Related
skills/error-tracking- API error handlingskills/route-transition-tracking- Data fetch during navigationreferences/otel-web.md- OpenTelemetry naming