Understand automation dashboard architecture

This module explains the automation dashboard architecture in Red Hat Ansible Automation Platform 2.7, including its integration with metrics service, deployment options, and Technology Preview limitations.

Important

Technology Preview: Automation dashboard is a Technology Preview feature in Red Hat Ansible Automation Platform 2.7. Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production.

Automation dashboard is disabled by default in Red Hat Ansible Automation Platform 2.7. You must explicitly enable it by using installer configuration or Custom Resource (CR) definition.

Automation dashboard overview

Automation dashboard provides visualization, measurement, and return on investment (ROI) analysis for your Ansible automation usage. In Ansible Automation Platform 2.7, the dashboard becomes a native component of the platform. It integrates directly with the Ansible Automation Platform unified user interface (UI) and leverages metrics service as its data collection backend.

Note

For information on the standalone automation dashboard, see View automation job metrics with automation dashboard.

Key characteristics (Red Hat Ansible Automation Platform 2.7 native integration)

Expand
Characteristic Ansible Automation Platform 2.7 Native Dashboard Standalone Dashboard Utility (Ansible Automation Platform 2.6)
Deployment Containerized installer or operator-based deployment as part of Ansible Automation Platform installation Separate RHEL 9 host, manual installation bundle
Backend Metrics service - unified data collection service Standalone database, direct Controller application programming interface (API) queries
UI Integration Native Ansible Automation Platform unified UI (integrated navigation) Separate dashboard URL
Authentication Ansible Automation Platform Gateway role-based access control (RBAC) (Lightweight Directory Access Protocol (LDAP), Security Assertion Markup Language (SAML), OpenID Connect (OIDC) support) OAuth tokens (clusters.yaml configuration)
Data Collection 6-hourly automated collection by using metrics service Configurable synchronization schedule
Multi-Instance Support Single Ansible Automation Platform instance only (Technology Preview limitation) Multiple Ansible Automation Platform instances supported
Default State Disabled (opt-in by using feature flag) N/A (separate installation)
Database Metrics service database Standalone postgres instance
Historical Data Backfill Up to 90 days from Controller DB when enabled post-installation Configurable backfill period

Architecture components

Figure 1. Automation dashboard architecture
Architectural diagram showing relationship between automation dashboard and metrics service

Core components

Expand
Component Purpose Dashboard Role
Automation dashboard UI Visualization and reporting interface Displays ROI metrics, cost analysis, and usage trends collected by metrics service
Metrics service Unified data collection backend Collects dashboard-specific metrics (cost, pricing, ROI) when FEATURE_DASHBOARD_COLLECTION_ENABLED feature flag enabled
Metrics service database Metrics storage and processing Once the feature flag is enabled, the data is stored in dashboard_* tables
awx database Controller operational data Source of automation usage data (accessed read-only by using ms_awx_readonly user)
Ansible Automation Platform Gateway Authentication and RBAC Controls dashboard access by using configurable RBAC policies

Metrics service as unified backend

Automation dashboard uses metrics service as its data collection and storage backend. This architecture provides:

  • Single infrastructure: Avoids duplicate data collection mechanisms
  • Unified API: Dashboard UI consumes data by using metrics service REST APIs
  • Shared database: Dashboard tables coexist with standard metrics in metrics_service database
  • Consistent data model: Same anonymization and retention policies
  • Feature flag control: Dashboard collection enabled independently by using FEATURE_DASHBOARD_COLLECTION_ENABLED: true

Metrics service REST API endpoints

The dashboard UI consumes data by using the following metrics service REST API endpoints:

Expand
Endpoint Method Purpose
/api/metrics/v1/dashboard_reports/report/ GET Paginated data list aggregated by templates
/api/metrics/v1/dashboard_reports/report/details/ GET Summary, graphical data, top user/project data
/api/metrics/v1/dashboard_reports/organizations/ GET Organization dropdown filter (from AWX database)
/api/metrics/v1/dashboard_reports/templates/ GET Job template dropdown filter (from AWX database)
/api/metrics/v1/dashboard_reports/projects/ GET Project dropdown filter (from AWX database)
/api/metrics/v1/dashboard_reports/labels/ GET Label dropdown filter (from AWX database)
/api/metrics/v1/dashboard_reports/subscription_costs/ GET/PATCH Cost parameters (singleton)
/api/metrics/v1/dashboard_reports/template_metadata/ GET/PATCH Manual/automated effort time metadata
/api/metrics/v1/dashboard_reports/filter_sets/ GET/POST/PATCH/DELETE Saved filterset configurations

Dashboard API quick reference

The automation dashboard provides REST APIs for programmatic access to dashboard data. These APIs are consumed by the dashboard UI and can also be accessed directly for custom reporting and integrations.

Base URL: https://<AAP-FQDN>/api/metrics/v1/dashboard_reports/

Authentication: All dashboard API endpoints require authentication by using Ansible Automation Platform credentials and are subject to RBAC enforcement through the Ansible Automation Platform Gateway.

Report endpoint

Endpoint: /api/metrics/v1/dashboard_reports/report/

Method: GET

Purpose: Retrieve paginated dashboard data aggregated by job templates

Required Query Parameters:

Expand
Parameter Type Description Valid Values
period string Time period for data aggregation last_30_days, last_60_days, last_90_days

Optional Filter Query Parameters:

Expand
Parameter Type Description Example
organization integer Filter by organization ID ?organization=3
template integer Filter by job template ID ?template=5
project integer Filter by project ID ?project=10
label integer Filter by label ID ?label=2
Important

Filter parameter names are singular (organization, not organizations). Multiple filters can be combined using multiple query parameters of the same name (for example, ?organization=3&organization=5).

Example Requests:

# Get all dashboard data for last 90 days
curl -k -u admin:<password> \
  "https://<AAP-FQDN>/api/metrics/v1/dashboard_reports/report/?period=last_90_days"

# Filter by specific organization
curl -k -u admin:<password> \
  "https://<AAP-FQDN>/api/metrics/v1/dashboard_reports/report/?period=last_90_days&organization=3"

# Combine multiple filters
curl -k -u admin:<password> \
  "https://<AAP-FQDN>/api/metrics/v1/dashboard_reports/report/?period=last_60_days&organization=3&project=10"

# Filter by multiple organizations
curl -k -u admin:<password> \
  "https://<AAP-FQDN>/api/metrics/v1/dashboard_reports/report/?period=last_90_days&organization=3&organization=5"

Response: Paginated JSON response containing job template aggregations with:

  • Cost and savings calculations
  • ROI metrics
  • Job execution statistics
  • Time saved calculations

Report details endpoint

Endpoint: /api/metrics/v1/dashboard_reports/report/details/

Method: GET

Purpose: Retrieve summary statistics, graphical data, and top user/project information

Query Parameters: Same as /report/ endpoint (period required, filters optional)

Example Request:

curl -k -u admin:<password> \
  "https://<AAP-FQDN>/api/metrics/v1/dashboard_reports/report/details/?period=last_90_days"

Response: JSON response containing:

  • Summary statistics (total jobs, total savings, total time saved)
  • Top 10 users by automation usage
  • Top 10 projects by savings
  • Time-series data for graphs

Filter list endpoints

These endpoints provide lists of available filter options for dropdown menus:

  • Organizations: GET /api/metrics/v1/dashboard_reports/organizations/
  • Templates: GET /api/metrics/v1/dashboard_reports/templates/
  • Projects: GET /api/metrics/v1/dashboard_reports/projects/
  • Labels: GET /api/metrics/v1/dashboard_reports/labels/
Note

These endpoints return the complete list of available filter values from the Controller database.

Cost configuration endpoint

Endpoint: /api/metrics/v1/dashboard_reports/subscription_costs/

Methods: GET (retrieve), PATCH (update)

Purpose: Configure cost parameters for ROI calculations

Example - Retrieve cost parameters:

curl -k -u admin:<password> \
  https://<AAP-FQDN>/api/metrics/v1/dashboard_reports/subscription_costs/

Example - Update cost parameters:

curl -k -X PATCH -u admin:<password> \
  https://<AAP-FQDN>/api/metrics/v1/dashboard_reports/subscription_costs/ \
  -H "Content-Type: application/json" \
  -d '{
    "infrastructure_cost_per_hour": 2.50,
    "currency": "USD"
  }'

API documentation

For complete API schema and additional endpoints, access the OpenAPI specification:

curl -k -u admin:<password> \
  https://<AAP-FQDN>/api/metrics/v1/dashboard_reports/schema/
Note

RBAC Note: Dashboard API access is controlled by Ansible Automation Platform Gateway RBAC policies. Users must have appropriate dashboard permissions to access these endpoints. System Auditor role provides read-only access to all dashboard data.

Data collection architecture

Collection schedule

When FEATURE_DASHBOARD_COLLECTION_ENABLED: true is configured (containerized) or spec.metrics_service.FEATURE_DASHBOARD_COLLECTION_ENABLED: true (operator), metrics service collects dashboard-specific data on a 6-hourly schedule.

Expand
Aspect Details
Frequency Every 6 hours (balance between data freshness and Controller database load)
Configurable? No
Database Impact Minimal - read-only queries by using ms_awx_readonly user, optimized for low overhead
Topology Support Single VM (growth topology) supported with 6-hourly collection

Dashboard collection configuration

The following configuration variables control dashboard collection behavior:

Expand
Variable Default Purpose User-Configurable?
FEATURE_DASHBOARD_COLLECTION_ENABLED False Enables/disables all dashboard data collection Yes
FEATURE_DASHBOARD_COLLECTION_ENABLED__COLLECTION_SCHEDULE_CRON "0 */6 * * *" Incremental data collection schedule (every 6 hours) No
retention_period_days 90 How many days JobData records are stored (configurable per task) Internal configuration only
Note

In Technology Preview, the collection schedule is fixed at 6 hours.

Dashboard-specific metrics collected

  • Cost and pricing data: Infrastructure costs for automation execution
  • ROI calculations: Time saved, cost savings, manual effort avoided
  • Automation savings metrics: Efficiency gains and resource optimization
  • Executive reporting data: High-level usage trends and adoption metrics

Detailed metrics schema:

Expand
Field Type Source (AWX database table) Description
job_id int main_unifiedjob.id Job ID in AWX (unique)
template_name str main_unifiedjobtemplate.name Job template name
template_id int (nullable) main_unifiedjobtemplate.id Job template ID in AWX
project_id int (nullable) main_project.id Project ID in AWX
project_name str (nullable) main_project.name Project name
organization_id int (nullable) main_organization.id Organization ID in AWX
organization_name str (nullable) main_organization.name Organization name
status str main_unifiedjob.status Status: new, pending, waiting, running, successful, failed, error, cancelled
started datetime (nullable) main_unifiedjob.started Job start time
finished datetime (nullable) main_unifiedjob.finished Job end time
elapsed decimal main_unifiedjob.elapsed Job duration in seconds
num_hosts int Calculated from main_hostsummary Number of hosts in a job
launched_by_id int (nullable) main_unifiedjob.created_by_id ID of the user that started the job in AWX/Automation Controller
launched_by_username str (nullable) auth_user.username Name of the user that started the job
awx_created datetime main_unifiedjob.created Date created in AWX/Automation Controller
awx_modified datetime main_unifiedjob.modified Last changed date in AWX/Automation Controller (watermark for incremental collection)

Related raw data tables:

Expand
Field Type Source (AWX database table) Description
host_summary_id int main_hostsummary.id Host summary ID in AWX/Automation Controller
host_id int (nullable) main_host.id Host ID in AWX/Automation Controller
host_name str main_host.name Host name
label_id int main_label.id Label ID in AWX/Automation Controller (for filtering purposes)

Database architecture

Technology Preview database approach

In Ansible Automation Platform 2.7 Technology Preview, the metrics service database may be colocated with the Controller database on the same postgres instance. The 6-hourly collection schedule minimizes performance impact on Controller database operations.

Expand
Phase Database Architecture Notes
Technology Preview (Ansible Automation Platform 2.7.0) Metrics service DB may be colocated with Controller DB on the same postgres instance 6-hourly collection minimizes impact; performance monitoring active
General Availability (2.7 async release) Database architecture evaluated based on Technology Preview data

Deployment topology

Single-instance limitation (Technology Preview)

The integrated dashboard in Ansible Automation Platform 2.7 Technology Preview displays data for the local Ansible Automation Platform instance only. Multi-instance support (connecting multiple Ansible Automation Platform deployments to a single dashboard) is not available with the Ansible Automation Platform integration.

Expand
Deployment Scenario Technology Preview Support Current Workaround
Single Ansible Automation Platform instance Fully supported N/A
Multiple Ansible Automation Platform instances (different versions) Not supported Use standalone dashboard utility for multi-instance aggregation
Multiple Ansible Automation Platform instances (same version) Not supported Use standalone dashboard utility for multi-instance aggregation
Note

If you need to aggregate data across multiple Ansible Automation Platform instances, continue using the standalone automation dashboard utility (Ansible Automation Platform 2.6 approach).

Feature flag architecture

Dashboard collection is controlled by a feature flag that enables or disables data collection when metrics service is installed.

Containerized installation method

Create a feature flags variables file (for example, feature_flags.yml) with the following information:

feature_flags:
  FEATURE_DASHBOARD_COLLECTION_ENABLED: True

Then pass the file to the installer using the -e flag:

cd /path/to/aap-containerized-installer
ansible-playbook -i inventory ansible.containerized_installer.install -e @feature_flags.yml

Operator deployment

spec:
  feature_flags:
    FEATURE_DASHBOARD_COLLECTION_ENABLED: true

This maps to the internal metrics service configuration:

# In metrics service settings.yaml
FEATURE_ENABLED:
  FEATURE_DASHBOARD_COLLECTION_ENABLED: true

# or in metrics service environment
env | grep DASHBOARD
METRICS_SERVICE_FEATURE_DASHBOARD_COLLECTION_ENABLED=true

Feature flag behavior

Expand
Feature Flag State Behavior
false (default) Dashboard collection tasks not scheduled; no dashboard data collected; UI may show empty state or be disabled
true Dashboard collection tasks run on 6-hourly schedule; dashboard-specific metrics collected; dashboard UI accessible

Dependency: Metrics service required

Automation dashboard requires metrics service to be configured and available.

If metrics service is not configured (no host in [automationmetrics] group for containerized, or no MetricsService CR for operator), dashboard configuration settings are ignored. The dashboard collection feature flag (FEATURE_DASHBOARD_COLLECTION_ENABLED: True) has no effect without metrics service enabled.

Warning

There is currently no installer preflight validation for this dependency. If metrics service is not configured, dashboard settings are ignored during installation.

Dependency Behavior:

  • Dashboard requires metrics service: Dashboard collection cannot function without metrics service backend
  • Metrics service is independent: Metrics service operates with or without dashboard enabled
  • Configuration relationship: If metrics service is not configured, dashboard settings are ignored

Performance characteristics

Collection impact on Controller database

The 6-hourly collection schedule minimizes impact on the Controller (AWX) database:

Expand
Metric Specification
Collection frequency Every 6 hours
Database access Read-only by using ms_awx_readonly user
Query optimization Incremental data collection (only new/updated records)
Topology support Single VM (growth topology) supported
Expected CPU impact < 5% during collection (lasts ~5-10 minutes)
Expected memory impact < 500MB temporary increase during collection

Technology Preview to GA migration

What to expect

  • Feature flag may change: GA enables dashboard by default
  • Backup before upgrade: Always back up metrics_service database before upgrading from Technology Preview to GA