Fleet overview¶
The fleet page (/) is the default view after you open the grex UI. It shows
every agent still in memory: connected agents and disconnected agents that
have not yet been evicted as stale.
Layout¶
Typical columns include:
- Status — combined health + connected presentation (icons/labels)
- Display name — primarily
service.name, thenhost.name, else instance uid - Role — Collector / Gateway (or
service.componentwhen set) - Version —
service.versionwhen reported - Attributes — identifying and non-identifying keys as compact chips
- Via — direct vs gateway
- Transport — OpAMP
wsorhttp - Last seen — relative time of last check-in
- Instance uid — truncated OpAMP instance identifier (link to detail)
The table auto-refreshes via htmx at ui.poll_interval (default 5 seconds).
Filter and sort query parameters are preserved across polls.
Filters¶
Use the filter bar to narrow the list. Filters map to the read API:
| Control | Effect |
|---|---|
| Healthy | healthy=true / false |
| Connected | connected=true / false |
| Via gateway | via_gateway=true / false |
| Attribute matchers | Prometheus-style matchers (=, !=, =~, !~) |
Multiple filters are ANDed. Empty “Any” selections are ignored.
Examples of attribute matchers you might enter:
Pagination and sort¶
- Page size defaults to 100 agents (API cap 1000)
- Prev/next (and page controls) adjust
offsetwhile keeping filters - Column sort uses
sortandorderquery parameters (UI-only helpers on the list API path)
Status meanings¶
| You see | Interpretation |
|---|---|
| Connected + healthy | Checking in and reporting healthy |
| Connected + unhealthy | Checking in but reporting a problem (health_error / status text on detail) |
| Connected + health unknown | Connected but has not sent a health report yet |
| Disconnected | Missed check-ins; still visible until stale eviction |
| Missing from the table | Evicted after too many missed intervals (fleet.stale_missed_heartbeats) |
Disconnected is not the same as unhealthy. A collector can miss heartbeats while its last reported health was still healthy.
Tips¶
- Prefer attribute filters that match your org’s required attributes
(
fleet.required_attributeson the server) so noncompliant agents stand out - Use the browser’s reduced-motion preference if you want calmer transitions;
grex respects
prefers-reduced-motion - Deep-link filters by sharing the URL (query string)