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.

"Today" and "this week" use the server's clock

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.

SummaryEndpointPermissionCmdlet
Agents by statusGET api/agents/statsView agentsGet-AthenaAgentStats
Command activityGET api/commands/statsView commandsGet-AthenaCommandStats
Deployment activityGET api/deployments/statsView deploymentsGet-AthenaDeploymentStats
Scheduler throughputGET api/scheduler/statsView schedulerGet-AthenaSchedulerStats
Audit volumeGET api/audit/statsView auditGet-AthenaAuditStats
Package storageGET api/packages/statsManage packagesGet-AthenaPackageStats
Alert summaryGET api/alerts/summaryView alertsGet-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.

FieldMeaning
totalAll enrolled agents.
onlineAgents currently connected and reporting.
offlineAgents that have missed their heartbeat window.
maintenanceAgents in maintenance mode.
warningAgents 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.

FieldMeaning
runningCommands executing right now.
pendingCommands queued and waiting to run.
completedTodayCommands that finished successfully today.
failedTodayCommands that failed today.
totalAll commands recorded.

Deployment activity#

A roll-up of software deployments plus a package count, so you can watch a rollout without opening each deployment.

FieldMeaning
totalAll deployments recorded.
runningDeployments currently in progress.
pendingDeployments scheduled or queued but not yet started.
completedTodayDeployments that finished today.
failedTodayDeployments that failed today.
totalPackagesNumber 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.

FieldMeaning
totalScheduledAll scheduled jobs defined.
scheduledTodayJobs set to run today.
executedThisWeekJobs that ran in the last seven days.
failedThisWeekJobs that failed in the last seven days.
activeJobsJobs that are enabled and eligible to run.
pausedJobsJobs that are currently paused.

Audit volume#

A quick read on activity and security signals from the audit trail — handy for a daily security digest.

FieldMeaning
totalEventsTodayAudit events recorded today.
totalEventsThisWeekAudit events recorded in the last seven days.
loginSuccessTodaySuccessful sign-ins today.
loginFailuresTodayFailed sign-in attempts today — a spike is worth investigating.
warningsThisWeekWarning-severity events in the last seven days.
errorsThisWeekError-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.

FieldMeaning
totalPackagesNumber of packages in the library.
totalStorageBytesTotal space used by all packages, in bytes.
totalStorageFormattedThe same figure pre-formatted for display (for example, "12.4 GB").
totalDownloadsCombined download count across every package.
largestPackageFile name of the biggest package.
mostDownloadedFile 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.

FieldMeaning
firingCountAlerts currently firing (active and unacknowledged).
acknowledgedCountAlerts that are active but have been acknowledged by someone.
resolvedCountAlerts that have been resolved and kept as history.
criticalFiringCountOf the firing alerts, how many are Critical.
warningFiringCountOf the firing alerts, how many are Warning.
infoFiringCountOf 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
Each cmdlet needs only its own permission

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#

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.