Instrument API requests with spans and distributed tracing. Use when tracking request latency, correlating client-backend traces, or debugging API issues.
Scanned 2/12/2026
Install via CLI
openskills install nexus-labs-automation/mobile-observability---
name: network-tracing
description: Instrument API requests with spans and distributed tracing. Use when tracking request latency, correlating client-backend traces, or debugging API issues.
triggers:
- "correlate backend traces"
- "distributed tracing"
- "network performance"
- "slow API calls"
- "trace requests"
- "track API requests"
priority: 2
---
# Network Tracing
Measure API requests and correlate with backend traces.
## What to Capture (OTel-Compatible Names)
| 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) |
| Size | `http.response.body.size` | Payload bytes |
Using OTel naming = easier migration when OTel mobile matures.
See `references/otel-mobile.md` for rationale.
## Distributed Tracing
Propagate trace context to backend:
```
Client Request
│
├── traceparent: 00-{trace_id}-{span_id}-01
├── X-Request-Id: {uuid}
└── X-Session-Id: {session}
│
▼
Backend (correlates logs with trace_id)
```
## Key Thresholds
| Metric | Good | Acceptable | Poor |
|--------|------|------------|------|
| API p50 | <500ms | <1s | >1s |
| API p95 | <2s | <5s | >5s |
| Error rate | <1% | <3% | >3% |
## Integration Options
**Choose based on existing vendor:**
| Vendor | iOS | Android | Approach |
|--------|-----|---------|----------|
| Sentry | Auto URLSession swizzling | OkHttp integration | Automatic |
| Datadog | URLSession delegate | OkHttp interceptor | Semi-auto |
| Embrace | Auto-instrumentation | Auto-instrumentation | Automatic |
| Custom | Manual interceptor | Manual interceptor | Manual |
**Automatic (swizzling):** Less code, may miss custom clients
**Manual (interceptors):** More control, works with any HTTP client
## Platform Integration Points
| Platform | Manual Option | Works With |
|----------|---------------|------------|
| iOS | URLSession delegate | All URLSession-based clients |
| iOS | Alamofire EventMonitor | Alamofire |
| Android | OkHttp Interceptor | OkHttp, Retrofit |
| Android | Ktor HttpClientPlugin | Ktor |
| RN | fetch wrapper | Native fetch |
| RN | axios interceptor | axios |
## Implementation
See `references/mobile-challenges.md` (Client-Backend Correlation) for:
- W3C trace header format
- Platform-specific interceptor code
- Backend log correlation patterns
See `references/performance.md` (Network section) for latency budgets.
No comments yet. Be the first to comment!