Fleet Statistics & KPIs
The same roll-up counters the Dashboard shows at a glance are also available as small, script-friendly summaries you can pull on demand — agents by status, command and deployment activity, scheduler throughput, package storage, audit volume, and open alerts. Each is a single call over the REST API or a one-line PowerShell cmdlet, so you can feed your own reports, external dashboards, and monitoring checks without paging through raw records.
What these summaries are#
Every summary is a lightweight, read-only snapshot computed when you ask for it — there is nothing to schedule and no state to reset. Counts are returned as plain numbers, so they slot straight into a script, a spreadsheet, or a monitoring probe. They are intended for a fast overview; when you need the underlying rows (which agent, which command, which event) use the full list endpoints on each subject's own page instead.
Where a counter is scoped to today or this week, the window is measured against the Athena server's local date — today is the current calendar day, and the week is the last seven days up to now. Schedule any daily export to run after your local midnight so the numbers line up with the day you expect.
The summaries at a glance#
Each summary has its own endpoint, its own permission, and a matching cmdlet. You only need the permission for the subject you are reading — a helpdesk account that can view agents can read the agent counts without being able to see, say, the audit or package figures.
| Summary | Endpoint | Permission | Cmdlet |
|---|---|---|---|
| Agents by status | GET api/agents/stats | View agents | Get-AthenaAgentStats |
| Command activity | GET api/commands/stats | View commands | Get-AthenaCommandStats |
| Deployment activity | GET api/deployments/stats | View deployments | Get-AthenaDeploymentStats |
| Scheduler throughput | GET api/scheduler/stats | View scheduler | Get-AthenaSchedulerStats |
| Audit volume | GET api/audit/stats | View audit | Get-AthenaAuditStats |
| Package storage | GET api/packages/stats | Manage packages | Get-AthenaPackageStats |
| Alert summary | GET api/alerts/summary | View alerts | Get-AthenaAlertSummary |
All seven are part of the JWT-authenticated REST API. Send the bearer token as
Authorization: Bearer <token>, and refer to the
Permission Model for how these view/manage permissions map to
the built-in roles.
Agents by status#
A count of your whole fleet broken out by current agent status — the headline "how many machines, and how many are reachable right now" figure.
| Field | Meaning |
|---|---|
total | All enrolled agents. |
online | Agents currently connected and reporting. |
offline | Agents that have missed their heartbeat window. |
maintenance | Agents in maintenance mode. |
warning | Agents flagged for attention — for example, a client certificate approaching expiry. |
Command activity#
A snapshot of remote command execution — what is in flight now and how the day is going.
| Field | Meaning |
|---|---|
running | Commands executing right now. |
pending | Commands queued and waiting to run. |
completedToday | Commands that finished successfully today. |
failedToday | Commands that failed today. |
total | All commands recorded. |
Deployment activity#
A roll-up of software deployments plus a package count, so you can watch a rollout without opening each deployment.
| Field | Meaning |
|---|---|
total | All deployments recorded. |
running | Deployments currently in progress. |
pending | Deployments scheduled or queued but not yet started. |
completedToday | Deployments that finished today. |
failedToday | Deployments that failed today. |
totalPackages | Number of deployment packages defined. |
Scheduler throughput#
How the job scheduler is performing — what is scheduled, what has run this week, and how many jobs failed.
| Field | Meaning |
|---|---|
totalScheduled | All scheduled jobs defined. |
scheduledToday | Jobs set to run today. |
executedThisWeek | Jobs that ran in the last seven days. |
failedThisWeek | Jobs that failed in the last seven days. |
activeJobs | Jobs that are enabled and eligible to run. |
pausedJobs | Jobs that are currently paused. |
Audit volume#
A quick read on activity and security signals from the audit trail — handy for a daily security digest.
| Field | Meaning |
|---|---|
totalEventsToday | Audit events recorded today. |
totalEventsThisWeek | Audit events recorded in the last seven days. |
loginSuccessToday | Successful sign-ins today. |
loginFailuresToday | Failed sign-in attempts today — a spike is worth investigating. |
warningsThisWeek | Warning-severity events in the last seven days. |
errorsThisWeek | Error-severity (or higher) events in the last seven days. |
Package storage#
Storage and usage figures for the package library — a capacity-planning aid for the volume that holds your uploads.
| Field | Meaning |
|---|---|
totalPackages | Number of packages in the library. |
totalStorageBytes | Total space used by all packages, in bytes. |
totalStorageFormatted | The same figure pre-formatted for display (for example, "12.4 GB"). |
totalDownloads | Combined download count across every package. |
largestPackage | File name of the biggest package. |
mostDownloaded | File name of the most-downloaded package. |
Alert summary#
Open-incident counts from Monitoring & Alerts, split by state and by severity — the number to put on a wall-board or feed to an external notifier.
| Field | Meaning |
|---|---|
firingCount | Alerts currently firing (active and unacknowledged). |
acknowledgedCount | Alerts that are active but have been acknowledged by someone. |
resolvedCount | Alerts that have been resolved and kept as history. |
criticalFiringCount | Of the firing alerts, how many are Critical. |
warningFiringCount | Of the firing alerts, how many are Warning. |
infoFiringCount | Of the firing alerts, how many are Info. |
Reading them over REST#
Each endpoint returns a small JSON object wrapped in the standard API envelope — the counts are in
the data field. For example:
# Agents by status
curl -k -H "Authorization: Bearer <token>" \
https://athena.example.com:8443/api/agents/stats
# → { "success": true, "data": {
# "total": 428, "online": 401, "offline": 21,
# "maintenance": 4, "warning": 2 } }
# Open alerts, by state and severity
curl -k -H "Authorization: Bearer <token>" \
https://athena.example.com:8443/api/alerts/summary
Field names are returned in camelCase exactly as listed in the tables above. See the
API Reference for how to obtain a token and the shape of the response
envelope.
Reading them from PowerShell#
The Athena PowerShell module wraps each summary in a
Get-Athena…Stats cmdlet (and Get-AthenaAlertSummary for alerts). Sign in
once with Connect-Athena, then call the cmdlets — each
returns an object whose properties match the fields above, so you can branch on them directly.
# One-off snapshot
Connect-Athena -Server "athena.contoso.com"
Get-AthenaAgentStats
Get-AthenaCommandStats
Get-AthenaDeploymentStats
Get-AthenaSchedulerStats
Get-AthenaAuditStats
Get-AthenaPackageStats
Get-AthenaAlertSummary
Turn them into a one-line fleet digest:
# Compose a daily summary line
$a = Get-AthenaAgentStats
$d = Get-AthenaDeploymentStats
$al = Get-AthenaAlertSummary
"Agents online $($a.Online)/$($a.Total) · " +
"deployments failed today $($d.FailedToday) · " +
"alerts firing $($al.FiringCount) (critical $($al.CriticalFiringCount))"
Or drive a monitoring check that exits non-zero when something needs attention:
# Fail the check on any firing critical alert or an offline spike
$a = Get-AthenaAgentStats
$al = Get-AthenaAlertSummary
if ($al.CriticalFiringCount -gt 0 -or $a.Offline -gt 25) {
Write-Warning "Attention: $($a.Offline) offline, $($al.CriticalFiringCount) critical alerts"
exit 1
}
exit 0
If a signed-in account lacks the permission for a subject, that one call is refused while the others still work. Grant a read-only service account just the view permissions it needs for the summaries you want to collect — see Permission Model & Role Bundles.
Putting the numbers to work#
- Daily digest — run the cmdlets from a scheduled job or an OS task after midnight and email or log a one-line health summary of the fleet.
- External dashboards — poll the REST endpoints from your existing monitoring or wall-board tooling; the counts are already aggregated, so there is no heavy query to run.
- Up/down & capacity checks — branch on
offline,failedToday, or a risingtotalStorageBytesto raise a ticket before users notice. - Security signals — watch
loginFailuresTodayandcriticalFiringCountfor early warning, and forward the raw events with audit forwarding for deeper investigation.
For the live, in-console view of these same figures, see the Dashboard; for the server's own vital signs (database, PKI, disk), see Server Health & Monitoring.