Skip to main content
fjall metrics reads application performance metrics from the Fjall control plane. It calls GET /api/app-metrics and prints the rows. It never calls AWS directly.
Metrics come from Fjall’s monitoring pipeline, so an application that has never been deployed returns no rows.

View application metrics

show is the only subcommand, and it is also the fallback when the positional is omitted. fjall metrics and fjall metrics show run the same code path.
Any other positional is rejected:

metrics show

--mode selects which query runs on the server. The four accepted values behave differently:
The CLI forwards --mode to the metrics API unchanged, and the API accepts only time_series, latest, sparklines and org_summary. The values printed in fjall metrics --help (summary, requests, errors, latency) and the CLI default of summary are rejected by the API with 400 Invalid query parameters. Pass one of the four API modes explicitly on every invocation.
-a, --app <name> is sent verbatim as the applicationId query parameter. The server treats it as an application ID, not a name. Read the ID from fjall apps describe <app>, which returns name, health and id.
time_series without --app returns 400 applicationId is required for time_series mode.

What Happens

  1. The CLI checks stored credentials. Missing or rejected credentials stop the command with Authentication required. before any request goes out.
  2. The subcommand resolves to show, and any unrecognised positional exits with the unknown-subcommand error above.
  3. The CLI issues GET /api/app-metrics with mode, applicationId, hours and limit as query parameters. Absent flags are omitted from the query string, and the server applies its own defaults.
  4. On success, the CLI prints the response as pretty-printed JSON on stdout. Every string is passed through credential masking first.
  5. On failure, the CLI prints Error: <message> on stderr and exits non-zero.
The command is read-only. It creates nothing, changes nothing, and has no dry-run mode.

Output shapes

The response body is a bare array of rows, with no envelope. time_series, latest and org_summary return metric rows carrying application_id, resource_name, resource_type, timestamp, cpu_utilisation, memory_utilisation, request_count, error_count, target_response_time, error_rate, health_status and the per-service counters for databases, storage, Lambda, queues, cache, DynamoDB and CDN. sparklines returns application_id, hour, requests, errors and response_time_ms. target_response_time is recorded in seconds. Multiply by 1000 to compare it against millisecond latency figures.

Agent mode

With --agent, or on an auto-detected agent host, the result renders as a TOON block on stdout instead of JSON, and failures render as a structured TOON error block rather than a stderr line. --no-agent forces the human path. metrics show renders its payload without a field schema, so --budget and --full shape the block while --fields is accepted and has no effect on the rows. Filter the JSON with jq when you want a subset.

Scale and failure responses

Options

--agent, --no-agent, --budget, --fields, --full, --non-interactive and -v, --verbose are also root-level options, so fjall --agent metrics show --mode latest works too.

Next Steps

fjall deploy

Ship a new version of the application whose metrics you just read.

fjall releases

Correlate a metric change with the release that landed.

fjall drift

Detect and repair infrastructure that has moved away from your definition.

Agent mode

Read metrics as TOON blocks from an AI agent or a script.