crash-instrumentation
Set up crash instrumentation with actionable context. Use when configuring crash capture, error boundaries, or breadcrumb…
Instrument API requests with spans and distributed tracing. Use when tracking request latency, correlating client-backend traces, or debugging API issues.
$ npx -y skills add nexus-labs-automation/mobile-observability --skill network-tracing --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/network-tracingContext preview
The summary Claude sees to decide when to auto-load this skill.
Instrument API requests with spans and distributed tracing. Use when tracking request latency, correlating client-backend traces, or debugging API issues.
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
Measure API requests and correlate with backend traces.
| 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.
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)| Metric | Good | Acceptable | Poor | |--------|------|------------|------| | API p50 | <500ms | <1s | >1s | | API p95 | <2s | <5s | >5s | | Error rate | <1% | <3% | >3% |
**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 | | New Relic | Auto URLSession instrumentation | Auto OkHttp/HttpURLConnection | 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 | 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 |
See `references/mobile-challenges.md` (Client-Backend Correlation) for:
See `references/performance.md` (Network section) for latency budgets.
Teaches Claude how to instrument mobile apps correctly — what to measure, what context to attach, and what mistakes to avoid.
Set up crash instrumentation with actionable context. Use when configuring crash capture, error boundaries, or breadcrumb…
Plan what to measure in mobile apps. Use when starting observability, prioritizing instrumentation, or asking "what should I…
Measure time from user tap to action completion. Use when tracking button response times, form submissions, add-to-cart, or any…
Measure time from navigation tap to screen fully loaded and interactive. Use when tracking screen transitions, deep links, or tab…
Set up session replay for visual debugging. Use when implementing screen recording, replay features, or visual debugging tools.
Configure crash symbolication for readable stack traces. Use when setting up dSYMs (iOS), ProGuard/R8 mappings (Android), or…