Skip to content

The admin listener's endpoints: readiness, server info, listeners, clusters, certificates, memory, config dump, stats and counter reset.

The admin API is a small HTTP server for inspecting a running Arion; it is off unless the bootstrap configures it.

Enabling the admin listener

Add admin to envoy_bootstrap with a socket address. Only address is accepted — admin access logs, profile_path, socket_options and allow_paths are not supported.

FieldTypeRequiredDefaultDescription
address.socket_address.addressstringyes—IP to bind; keep it on loopback or a management network.
address.socket_address.port_valueuint16yes—Port to bind (9901 by convention).
envoy_bootstrap:
  admin:
    address:
      socket_address:
        address: 127.0.0.1
        port_value: 9901

The admin server has no authentication or TLS. Do not expose it beyond localhost or a trusted management network.

Endpoints

EndpointMethodReturnsNotes
/GETHTMLConsole page linking every enabled endpoint.
/helpGETtextPlain-text list of the enabled endpoints.
/readyGETtext200 with body LIVE once the proxy is serving; 503 before that. Use it as a readiness probe.
/server_infoGETJSONversion (arion/<semver>), state, uptime_current_epoch, uptime_all_epochs, command_line_options.concurrency, node.id, node.cluster.
/listenersGETtextOne name::address line per active listener (internal listeners print an empty address).
/clustersGETtextEnvoy-style cluster::key::value lines: per-priority circuit-breaker thresholds (max_connections, max_pending_requests, max_requests, max_retries), added_via_api::false, then per-endpoint lines (cx_*, rq_*, hostname, health_flags, weight, priority, success_rate::-1). Connection and request counters are tracked per cluster, so every endpoint of a cluster repeats the cluster-wide totals; hostname is filled only for STRICT_DNS clusters.
/certsGETJSONcertificates array with the certificate chains and CA bundles referenced by name from listeners and clusters; each certificate reports path, serial_number, subject_alt_names, valid_from, expiration_time and days_until_expiration.
/memoryGETJSONphysical, heap_size and allocated bytes. Heap and allocated need the jemalloc build feature; otherwise they fall back to the physical size.
/config_dumpGETJSONThe loaded bootstrap plus the live listeners, routes, clusters, endpoints and secrets. Private keys are replaced with [redacted]. Requires the config-dump build feature.
/statsGETtextThe built-in metric families in Envoy-canonical form, family.<labels>.name: value; histograms print _sum and _count. Requires the metrics build feature.
/stats/prometheusGETtextThe same metrics in Prometheus text format 0.0.4 — the scrape target for Prometheus. Requires the prometheus build feature. See the metrics list.
/reset_countersPOSTtextResets all metric counters to zero and answers OK. Requires the metrics build feature.

Build features

Some endpoints exist only when Arion is compiled with the matching Cargo feature; the / and /help listings show only what the build includes.

FeatureAddsNotes
config-dump/config_dumpOff by default.
metrics/stats, /reset_countersOff by default; also enables metric collection itself.
prometheus/stats/prometheusOff by default; implies metrics.

Verify

curl -s http://127.0.0.1:9901/ready
LIVE

Continue

Start typing to search the site.

↑ ↓ to move Enter to open Esc to close