requests
Show the HTTP requests an application received.
The HTTP requests an application received, with the status, the method, the path and how long each took. It is the first place to look when an application is up and something is still failing.
status is what the client received and originStatus is what the application
answered. A 502 with an origin status of 0 means the application never replied at
all, which is a different problem from one it reported itself.
Usage
outplane requests [APP] [flags]Arguments
| Argument | Type | Description |
|---|---|---|
APP | string | Application name or id. Omit for the whole team. |
Flags
| Flag | Type | Description |
|---|---|---|
--since | duration | How far back to look. Defaults to 1h. |
-n, --lines | int | How many of the most recent requests to show. Defaults to 200. |
-f, --follow | bool | Keep printing new requests until interrupted. |
--status | string | Only these statuses, comma separated. A class such as 5xx, or an exact code such as 404. |
--method | string | Only these methods, comma separated, e.g. POST,DELETE. |
--search | string | Only records containing this text, case-insensitive. Matches the whole record, so it reaches the path, the host and the headers alike. |
The global flags apply as well.
Output
| Field | Type | Description |
|---|---|---|
at | string | RFC 3339, UTC. |
app | string | null | Which application served it. null when the proxy's service name has an unrecognised shape. |
method | string | |
status | int | What the client received. |
path | string | |
host | string | The address that was asked for, which may be a custom domain. |
latencyMs | float | The whole request, as the client experienced it. |
originMs | float | The part the application itself took. The difference from latencyMs is proxy overhead and retries. |
originStatus | int | What the application answered. It differs from status when the proxy answered on its own, which is how a 502 with originStatus 0 reads as "the app never replied". |
bytes | int | Response size. |
protocol | string | null | E.g. HTTP/2.0. |
scheme | string | null | |
clientIp | string | null | The caller, taken from the forwarded address when there is one. |
country | string | null | Two-letter code, when the edge reported one. |
service | string | null | The proxy's own name for the route, which is where app comes from. |
Streams as NDJSON: one object per line, flushed as it arrives.
Examples
The last hour of traffic, for every application
outplane requestsWhat is failing on one application
outplane requests checkout --status 5xx --since 24hWatch traffic as it arrives
outplane requests checkout --followThe slowest requests in the last hour
outplane requests --json --fields path,latencyMs,status{
"items": [
{
"latencyMs": 1240.7,
"path": "/api/checkout",
"status": 200
},
{
"latencyMs": 1.2,
"path": "/healthz",
"status": 200
}
],
"total": 2,
"truncated": false
}One path, whatever it answered
outplane requests checkout --search /api/ordersWhat to Know
- Without --follow this returns {items, total, truncated} like any other list. With --follow it emits one object per line as requests arrive, in every format, because a stream that has no end cannot be one JSON document.
- --lines counts from the most recent, so raising it reaches further back rather than adding newer requests. There is no way to page: ask for a narrower window instead.
- status is what the client received and originStatus is what the application answered. A 502 with originStatus 0 means the application never replied, which is a different failure from one it returned itself.
- --search matches the raw record before it is parsed, so it finds a path, a host and a header alike. It cannot be anchored to one field; use --status and --method for those.
- Only HTTP is recorded. An app that serves a TCP port is forwarded rather than proxied and produces nothing here, which reads as no traffic rather than as an error.
- Without --follow the command returns what exists now and exits 0, even when that is nothing. An application nobody visited is not an error.
- --follow ends only on interruption, and exits 130 when it is.
Errors
Beyond 0 for success, this command exits with:
| Exit | Kind | Meaning |
|---|---|---|
2 | usage | Invalid arguments, unknown flag, or client-side validation failure. |
3 | auth | Not authenticated, token revoked or expired, or forbidden for this team. |
5 | not_found | The named resource does not exist, or is not visible to this credential. |
8 | upstream | The Out Plane API returned a server error. |
130 | interrupted | Cancelled by the user. |
The code on the error object is one of logs.no_team_slug, app.not_found, usage.bad_status, usage.bad_method, usage.empty_argument, logs.bad_response, usage.bad_duration. Branch on that, or on the exit status. The message is prose and changes.