Out Plane

requests

Show the HTTP requests an application received.

read onlyrepeatableruns until stoppedstreams ndjson

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

ArgumentTypeDescription
APPstringApplication name or id. Omit for the whole team.

Flags

FlagTypeDescription
--sincedurationHow far back to look. Defaults to 1h.
-n, --linesintHow many of the most recent requests to show. Defaults to 200.
-f, --followboolKeep printing new requests until interrupted.
--statusstringOnly these statuses, comma separated. A class such as 5xx, or an exact code such as 404.
--methodstringOnly these methods, comma separated, e.g. POST,DELETE.
--searchstringOnly 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

FieldTypeDescription
atstringRFC 3339, UTC.
appstring | nullWhich application served it. null when the proxy's service name has an unrecognised shape.
methodstring
statusintWhat the client received.
pathstring
hoststringThe address that was asked for, which may be a custom domain.
latencyMsfloatThe whole request, as the client experienced it.
originMsfloatThe part the application itself took. The difference from latencyMs is proxy overhead and retries.
originStatusintWhat 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".
bytesintResponse size.
protocolstring | nullE.g. HTTP/2.0.
schemestring | null
clientIpstring | nullThe caller, taken from the forwarded address when there is one.
countrystring | nullTwo-letter code, when the edge reported one.
servicestring | nullThe 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 requests

What is failing on one application

outplane requests checkout --status 5xx --since 24h

Watch traffic as it arrives

outplane requests checkout --follow

The 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/orders

What 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:

ExitKindMeaning
2usageInvalid arguments, unknown flag, or client-side validation failure.
3authNot authenticated, token revoked or expired, or forbidden for this team.
5not_foundThe named resource does not exist, or is not visible to this credential.
8upstreamThe Out Plane API returned a server error.
130interruptedCancelled 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.

On this page