Usage Analytics¶
Usage Analytics is an administrator dashboard that shows how Reports, Dashboards, Views, APIs, exports, and embedded content are used across AcuGIS Report Server.
It is an aggregated view of activity already captured by the Audit subsystem. It does not replace Auditing, and it does not introduce a second event log.
Application activity
↓
Audit events (source of truth)
↓
Usage Analytics aggregation APIs
↓
Administration → Usage Analytics
Open Administration → Usage Analytics (/admin/usage.php).
Required Edition¶
Usage Analytics requires feature usage_analytics and a platform administrator.
| Runtime | Available |
|---|---|
| Open Source package | No. The routes are not compiled. |
| Professional package without a valid license | No. The denial uses Community Edition wording. |
| Licensed Professional | Yes |
ACUGIS_EDITION does not grant this feature. Menu visibility is not sufficient. Every Usage Analytics API checks the feature and the administrator role.
Overview¶
The dashboard default period is Last 30 Days. KPI cards summarize:
| KPI | Meaning |
|---|---|
| Report Executions | Report execute and export events |
| Dashboard Views | Meaningful Dashboard opens |
| View Opens | Meaningful saved View opens |
| Unique Users | Distinct users with usage activity (not admin-config noise) |
| Exports | Report export events |
| API Requests | Selective /api/v1/* request audits |
| Embedded Views | Content opens/views via embed channel |
| Failed Executions | Failed report execute/export events |
| Average Report Render Time | Average duration_ms for report execute/export |
Where available, each card shows change versus the immediately preceding period of equal length. When the previous period had no data, the UI shows No previous data rather than a misleading percentage.
Date Ranges¶
| Period | Notes |
|---|---|
| Today | From midnight UTC to now |
| Last 7 Days | Rolling window |
| Last 30 Days | Default |
| Last 90 Days | May approach retention limits |
| Custom Range | From / To dates; invalid ranges are rejected with a validation message |
Changing the period refreshes KPIs, the activity chart, and loaded tables.
Filters¶
Use Filters to refine analytics by:
- User (username)
- Content type (
report,dashboard,view) - Content ID
- Folder ID
- Activity type
- Channel (
embedorinteractive)
Active filters appear as chips and can be cleared individually or all at once.
Activity Over Time¶
The chart uses server-side time buckets (hourly/daily/weekly/monthly depending on the selected window). Metric toggles control which series are displayed. Raw Audit rows are never sent to the browser for charting.
Content Usage¶
Most Used Content¶
Shows Reports, Dashboards, and Views ordered by usage, with unique users, last used time, average render time (where meaningful), and failure rate.
Deleted content keeps its historical Audit name but is not linked to a live page.
Least Used Content¶
Catalog-driven view for content with little or no usage. Modes include:
- No usage in 30 days
- No usage in 90 days
- No usage in retained history
Important: Usage Analytics cannot claim lifetime Never used when Audit
retention deletes older events. If retained history is insufficient for a
requested window (for example, 180 days when retention is 90), the UI surfaces
the backend’s history_insufficient message and labels rows as
No usage in retained Audit history.
Content Drill-down¶
Click content for a detail view: totals, unique users, usage over time, render time (reports), failures, exports, and top users. Report-specific metrics are omitted for Dashboards/Views when not meaningful.
Report Performance¶
Identifies expensive or unreliable reports:
- Executions
- Average / P95 / slowest render time
- Failures and failure rate
- Last executed
Failures¶
Aggregated failures with latest sanitized error text. Use View in Audit to inspect individual events. Secrets are never shown.
User Activity¶
Per-user usage of reports, dashboards, views, exports, APIs, and embeds. SSO users appear as their normal mapped AcuGIS usernames. Deleted users remain visible via historical Audit identity.
Exports¶
Total exports, breakdown by format, most exported reports, and exporting users.
API Usage¶
Operational totals and a table of normalized routes (for example
GET /api/v1/reports/{key}), failures, and average duration.
This is not an API request log — use Auditing for event detail.
Admin Usage Analytics and Audit APIs are excluded from API usage counting to avoid self-referential noise.
Embedded Analytics¶
Token issuance counts and embedded consumption (views, report executions, dashboard views, failures), with optional breakdowns by content, origin, and issuer.
Never displayed:
emb_embed tokensjrs_personal access tokens- session identifiers
- Authorization headers
View in Audit¶
Tables and content detail provide View in Audit links into
/admin/audit.php with period and filter parameters applied.
Auditing remains the detailed event/history interface.
Audit vs Usage Analytics¶
| Auditing | Usage Analytics | |
|---|---|---|
| Purpose | Individual security/admin/activity events | Aggregated operational usage |
| Audience | Investigate who did what | Understand what is used |
| Data | Raw audit_log rows |
Aggregations over those rows |
| Retention | Controls history window | Bound by the same retention |
Audit Retention¶
Usage Analytics history is limited by Audit retention:
| Setting | Default |
|---|---|
JRS_AUDIT_RETENTION_DAYS / AUDIT_RETENTION_DAYS |
90 |
The dashboard shows Audit history available: N days from the live configuration. Missing older data means it is outside retained history — not that usage was zero.
Empty States¶
When no usage exists for the selected period:
No usage data is available for this period.
Usage Analytics will populate as Reports, Dashboards,
Views, APIs, and embedded content are used.
Individual sections use specific empty messages (for example, no failures or no embedded activity).