Review connection changes around an app failure
Inspect connection state and quality in live or imported captures with the player, CLI, and agent tools.
Use connectivity evidence to locate disconnects, reconnects, and transport changes near a reported problem. The local and cloud players provide a Connectivity timeline and tab aligned with screenshots, logs, HTTP requests, and annotations.
The app must enable Connectivity Capture. External monitoring alone does not supply this SDK observation stream. To record away from a host, configure Native Offline Capture with the matching SDK and CLI implementation for automatic reconnect transfer, or use the released managed .NET recorder to export and import a ZIP.
Open an offline capture
Start the host with ansight host run --open. In another terminal, import the archive:
ansight session import capture.zip --json
ansight serve --open --session <session-id>
Use the session ID returned by import. For an encrypted archive, add --password-env ANSIGHT_CAPTURE_PASSWORD after setting that variable in your environment. Import accepts the SDK’s raw offline ZIP directly, including connectivity and retained annotations.
Read the timeline and tab
- Select the session and open Connectivity.
- Scrub to the failure to inspect the connection state at the playhead.
- Select a connection interval, history entry, or quality point to seek to that moment.
- Compare the same moment with captured HTTP requests, logs, screenshots, and annotations.
The timeline distinguishes unavailable intervals from unknown or interrupted observations. Unknown and gap intervals are hatched. Optional flags describe VPN, internet validation, captive portal, metered or expensive connections, and Low Data Mode where the OS supplies them.
Quality charts separate measurements by source, transport, and unit. They leave missing measurements unknown. The tab reports the measurement’s age at the playhead; loading or exporting a capture does not make an old sample fresh.
Available describes the OS connection state. It does not establish server reachability, and a nearby connection change alone does not establish why a request failed. Use Network Capture for HTTP evidence.
Review measured server performance
When HTTP capture supplies passive timing and byte measurements, Connectivity also summarizes requests completed in the last 60 seconds at the playhead, grouped by server. It shows available latency percentiles and median measured transfer rates. Select a request’s Timing view for individual phases.
These measurements come from actual captured requests. Missing measurements stay unknown; OS link-quality categories do not imply server speed. See Network Capture for collector requirements and measurement limits.
Query with the CLI
These commands work for live and historical sessions:
ansight session connectivity <session-id> summary --json
ansight session connectivity <session-id> at --offset 01:15 --json
ansight session connectivity <session-id> events --from 00:30 --to 02:00 --json
ansight session connectivity <session-id> quality --limit 100 --json
ansight session connectivity <session-id> timeline --annotation <annotation-id> --before 120 --after 30 --json
| Action | Result |
|---|---|
summary | Available, unavailable, and unknown durations; change, disconnect, reconnect, gap, and sample counts; supported measurements and capture bounds. This is the default action. |
at | State at one time, its source observation, and quality measurement age. Accepts --offset or --at. |
events | Observations excluding quality-only records. |
quality | Observations carrying a quality sample. |
timeline | Every observation kind. |
Times accept ISO-8601 timestamps or mm:ss / hh:mm:ss offsets from the session start. Use --from and --to for a window, or --annotation with --before and --after in seconds. Annotation windows default to 120 seconds before and 30 seconds after; each accepts 1–3,600 seconds.
Use --kind snapshot|change|quality|gap to narrow timeline, event, or quality results. Pages default to 200 records; --limit accepts 1–1,000 and each response has a bounded payload size. When a response supplies nextCursor, repeat the same filters with --cursor <nextCursor>. Restart the query if a live capture changes and invalidates its cursor.
Inspect capture bounds, clipping, preceding state, and malformed-record counts before treating a window as complete. Correlate it with ansight session network <session-id> --failed --json and the session’s logs and images. The general session timeline also supports the connectivity kind.
Agent and repository task access
The agent tools are:
ansight_get_connectivity_summaryansight_get_connectivity_timelineansight_get_connectivity_at
Pass the live or imported sessionId. Depending on the tool, inputs support from, to, at, annotationId, beforeSeconds, afterSeconds, kind, limit, and cursor. Repository tasks expose the same session-bound queries through ansight.connectivity.summary(), ansight.connectivity.timeline(), and ansight.connectivity.at({ at: "01:15" }).
Missing or partial evidence
- No connectivity observations: check that the app enabled collection and the runtime was active. Older captures and external captures may have no connectivity stream.
- A gap: the observer paused, such as while the app was backgrounded, or capture dropped records. Do not interpret it as a disconnect.
- Missing quality or flags: the OS may not expose those measurements. Check the reported supported measurements.
- A clipped window: retention or extraction may have removed older evidence. The retained preceding observation establishes boundary state, but does not recreate removed history.
Extraction retains the preceding state. Removing a timeline range rebases playback times while preserving source timestamps in originalCapturedAtUtc and quality.originalMeasuredAtUtc. Prefer an extracted copy when preparing a focused investigation.