Fleet-wide busiest/erroring interfaces. Ranks `(node,ifindex)` by a query-time rate, then joins node + interface names (and speed) from PostgreSQL.
const url = 'https://example.com/api/v1/metrics/interface-top?metric=example';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://example.com/api/v1/metrics/interface-top?metric=example' \ --header 'Authorization: Bearer <token>'Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”throughput | in_bps | out_bps | errors | discards.
Responses
Section titled “Responses”The busiest or most-erroring interfaces, ranked; partial says the scope filter may have shortened the list
A ranked Top-N result.
object
The ranked rows, highest first, at most the requested limit.
One ranked interface in a fleet interface Top-N.
object
Configured speed (bits/sec) for util%; null if unknown.
Bits/sec for throughput metrics, errors|discards per second otherwise.
true when this ranking covers only the groups the calling account may see and entries it
is entitled to may be missing. Always false for an account with unrestricted visibility.
Examplegenerated
{ "entries": [ { "if_alias": "example", "if_name": "example", "if_speed_bps": 1, "ifindex": 1, "node_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "node_name": "example", "value": 1 } ], "partial": true}metric is not one of throughput|in_bps|out_bps|errors|discards, or agg is unsupported
The ADR-019 envelope every failure renders as. pub(crate) and schema-bearing so the OpenAPI
document can name one error shape for every endpoint (ADR-035) instead of leaving 4xx/5xx bodies
undescribed — a client that has to guess the failure shape ends up parsing the success shape and
reading undefined.
object
object
Stable machine-readable code. Clients branch on this, never on the message.
Operator-facing sentence. Safe to display; never carries an internal error’s own text.
Examplegenerated
{ "error": { "code": "example", "message": "example" }}No valid bearer token
The ADR-019 envelope every failure renders as. pub(crate) and schema-bearing so the OpenAPI
document can name one error shape for every endpoint (ADR-035) instead of leaving 4xx/5xx bodies
undescribed — a client that has to guess the failure shape ends up parsing the success shape and
reading undefined.
object
object
Stable machine-readable code. Clients branch on this, never on the message.
Operator-facing sentence. Safe to display; never carries an internal error’s own text.
Examplegenerated
{ "error": { "code": "example", "message": "example" }}Role lacks the read permission
The ADR-019 envelope every failure renders as. pub(crate) and schema-bearing so the OpenAPI
document can name one error shape for every endpoint (ADR-035) instead of leaving 4xx/5xx bodies
undescribed — a client that has to guess the failure shape ends up parsing the success shape and
reading undefined.
object
object
Stable machine-readable code. Clients branch on this, never on the message.
Operator-facing sentence. Safe to display; never carries an internal error’s own text.
Examplegenerated
{ "error": { "code": "example", "message": "example" }}