Instrument API requests with spans and distributed tracing. Use when tracking request latency, correlating client-backend traces, or debugging API issues.
Installation
Details
Usage
After installing, this skill will be available to your AI coding assistant.
Verify installation:
skills listSkill Instructions
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.
More by nexus-labs-automation
View allConfigure crash symbolication for readable stack traces. Use when setting up dSYMs (iOS), ProGuard/R8 mappings (Android), or source maps (React Native).
Set up crash instrumentation with actionable context. Use when configuring crash capture, error boundaries, or breadcrumb strategies.
Set up session replay for visual debugging. Use when implementing screen recording, replay features, or visual debugging tools.
Plan what to measure in mobile apps. Use when starting observability, prioritizing instrumentation, or asking "what should I track?"
