Ansible Automation Platform - Data Dictionary

Updated -

Overview: Automation Analytics Data Dictionary for AAP Controller

This document outlines the data dictionary for the information collected by Automation Analytics from the Red Hat Ansible Automation Platform (AAP) Controller, also known as Automation Execution.

This data is sent to the Red Hat Hybrid Cloud Console (HCC) to provide detailed analytics on your automation. Understanding these tables and fields will help customers know precisely what data is collected within AAP and transmitted for analysis.

For a comprehensive explanation of what Automation Analytics is, how to enable it in AAP, and how to use it, please refer to the official product documentation:

The data dictionary details cover the following areas:

  • Cluster Information
  • System Data
  • Job Execution
  • Ansible Components
  • Licensing

Table 1: Cluster Data

Information about the AAP Controller cluster.

Field Name Type Example Has Automation Job Data? (Y/N) Description
id bigint "25225" N Primary key
timestamp timestamp without time zone "2023-03-02 23:19:34.82261" N Timestamp of creation of this cluster state snapshot and partitioning key.
cluster_id bigint "1" N Foreign key to cluster table.
platform jsonb "{\"dist\": [\"Red Hat Enterprise Linux\", \"8.7\", \"Ootpa\"], \"type\": \"traditional\", \"system\": \"Linux\", \"release\": \"4.18.0-425.10.1.el8_7.x86_64\"}" N Info about the platform of the node of a cluster reporting the cluster state snapshot.
tower_version character varying "4.3.1" N Ansible Tower/Automation Controller version (Automation Controller is the new name from version 4.0).
ansible_version character varying '2.9.1' N Ansible version is now specified for each job in unified_jobs_fk table.
license_type character varying "enterprise" N License type.
free_instances bigint "34989" N Free number of managed nodes in license (in newer Controller versions the min value is 0), computed as total_licensed_instances - automated_instances.
total_licensed_instances bigint "35000" N Total number of managed nodes in the subscription manifest.
license_expiry bigint "-152372" N Number of seconds left in the license, negative if expired.
pendo_tracking character varying "detailed" N If pendo is enabled and in what mode. off - disabled, detailed - detailed pendo collection, anonymous - anonymous pendo collection.
external_logger_enabled boolean "t" N If the external logger is enabled (splunk, elastic+kibana, etc,).
external_logger_type character varying "splunk" N What kind of external logger is there (splunk, elastic+kibana, etc,).
authentication_backends jsonb "[\"awx.sso.backends.TACACSPlusBackend\", \"awx.sso.backends.SAMLAuth\", \"awx.main.backends.AWXModelBackend\"]" N Authentication plugin stack.
logging_aggregators jsonb `"[\"awx\", \"activity_stream\", \"job_events\", \"system_tracking\"]"` N What loggers are turned on for the rsyslog integration that will get to external logging if enabled (splunk, elastic+kibana, etc,).
ansible_version_id bigint null N Ansible version is now specified for each job in unified_jobs_fk table.
license_date bigint "1677646799" N License/Subscription creation date as seconds ago from now.
subscription_name character varying "Red Hat Ansible Automation Platform (Academic Edition), Premium (35000 Managed Nodes)" N Subscription name.
sku character varying "MCT3742" N SKU.
support_level character varying 'Premium' N Support level.
product_name character varying "Red Hat Ansible Automation Platform (Academic Edition), Premium (100 Managed Nodes)" N Product name.
valid_key boolean "t" N If the subscription key is valid.
satellite character varying "false" N String true/false based marking if the subscription/pool_id comes via RH Satellite.
pool_id character varying "8a85f9a07ed94235017f28aaaa901576" N Pool id of the Red Hat subscription.
current_instances bigint "3840" N How many unique managed s are in the inventory now.
automated_instances bigint "11" N How many unique managed s were automated on cluster and are consumed from subscription counter.
automated_since bigint "1675277428" N First automation recorded in the Controller cluster as a seconds ago from now.
trial boolean "f" N If the subscription is trial.
grace_period_remaining bigint "2439628" N Number of seconds left in the license + grace period, negative if expired.
compliant boolean "f" N If the subscription usage is compliant, the number of s automated is within the subscription allowed count.
date_warning boolean "t" N True if there is a warning that the subscription will soon expire.
date_expire boolean "t" N True if the subscription expired.

Table 2 : System Data

Information about individual nodes of the Controller cluster. Stored as daily partitions.

Field Name Type Example Has Automation Job Data? (Y/N) Description
id bigint "17352" N
timestamp timestamp without time zone "2023-03-02 23:19:34.852885" N Timestamp of storing this info and partitioning key.
system_id bigint "40142" N FK to system table.
capacity integer "137" N Capacity of running jobs.
cpu numeric 4 N Number of cpus.
memory bigint "16568037376" N Available memory in bytes.
last_isolated_check timestamp without time zone null N Timestamp of last check the isolated node (relevant only to cluster version \<4.0), isolated nodes were replaced with Automation Mesh.
enabled boolean "t" N If the node is enabled.
version character varying "4.3.1" N Version of the Controller cluster (all nodes should have the same version).
consumed_capacity integer "0" N How much capacity of running jobs is consumed.
remaining_capacity integer "137" N Remaining capacity for running jobs.
managed_by_policy boolean "t" N Whether the node is managed by policy.

Table 3: Job Events Data

Events produced by ansible runner, from running ansible content (playbook, role,..) through Controller job.

Field Name Type Example Has Automation Job Data? (Y/N) Description
job_created timestamp without time zone "2023-03-02 00:00:10.885219+00" N Timestamp of the Controller job creation and partitioning key.
changed boolean "t" N
cluster_id bigint "1" N FK to the cluster table.
created timestamp without time zone "2023-03-02 00:00:12.806633" N When was the event created.
deprecations ARRAY '{499109}' N List of FKs to deprecations table.
duration double precision 0.59311 N How long was the event running, usually present only on terminal task. Task starts with runner_on_start and ends with runner_on_ok/failed,...which will have the duration.
end timestamp without time zone "2023-03-02 00:00:12.806333" N End of the task timestamp.
event character varying "runner_on_ok" N Ansible Runner event type.
failed boolean "f" N Flag if the task failed.
_id bigint "129755" N Id of the in Controller's inventory.
_name bigint "9" N FK to table.
id bigint "46352567" N ID of the event in Controller's DB.
job_id bigint "476465" N Part of the composite FK to unified_jobs_fktable, the join condition must use both (cluster_id, job_id).
modified timestamp without time zone "2023-03-02 00:00:12.815454" N Timestamp of when the event was processed and stored into Controller's DB.
parent_uuid character varying "005056b4-28a3-c5ea-c413-000000000008" N Parent event uuid.
play bigint "9346" N FK to 'play' table.
playbook bigint "7626" N FK to the playbook table.
role bigint '10' N FK to role table.
start timestamp without time zone "2023-03-02 00:00:12.213223" N Start of the task timestamp.
system_id bigint "2" N FK to systems table, pointing to which system sent this data.
task bigint "296909" N FK to tasks table.
task_action bigint "4" N FK to task_action table.
uuid character varying "8bb31871-9193-488b-ab2a-56a45e130630" N Event uuid.
warnings array '{2641, 72}' N Array of FKs to warnings table.
playbook_on_stats character varying "{\"ok\": {\"name_1\": 18}, \"dark\": {}, \"uuid\": \"70c0d088-9e50-443f-9e71-66bfa3c73a33\", \"changed\": {}, \"ignored\": {}, \"rescued\": {}, \"skipped\": {\"name_2\": 2}, \"failures\": {}, \"playbook\": \"vm-check.yml\", \"processed\": {\"name_1\": 1}, \"playbook_uuid\": \"616d00cf-a587-4f17-9e62-46e1f363a8ea\"}" '{"ok": {"local": 6, "ppseelm-lx41844.exampled.com": 9}, "dark": {}, "guid": "9b62a12908864d0796f8c2f55e71afd6", "uuid": "694ef435-e6bc-4dba-9faa-9502725c7977", "changed": {"local": 1, "ppseelm-lx41844.exampled.com": 4}, "ignored": {}, "rescued": {}, "skipped": {"local": 2, "ppseelm-lx41844.exampled.com": 1}, "failures": {}, "playbook": "playbooks/linux/ao-tmp-msdef-alert-remediation.yml", "processed": {"local": 1, "ppseelm-lx41844.exampled.com": 1}, "playbook_uuid": "d4a9b86f-8fde-48d6-b138-74c7e44a7916"}' Y Summarization of the playbook run, having a list of s and the state their tasks ended up in. This will be populated only if "event" is equal to "playbook_on_stats".
resolved_action_id bigint '103' N FK to resolved_action table.
resolved_role_id bigint ‘100’ N FK to resolved_role table.

Table 4: Cluster System Data

Mapping table that defines the association between clusters and their member systems (nodes). It details which systems are part of which cluster.

Column Name Data Type Description Has Automation Job Data? (Y/N) Example Value
cluster_idFK bigint Identifier for the cluster. Likely references a clusterstable. N "1"
system_idFK bigint Identifier for the system or node. Likely references a systems or nodes table. N "40142"

Table 5: AAP Job Data

Contains information about jobs running in the Automation Controller.

Column Name Data Type Example Value Has Automation Job Data? (Y/N) Description
system_idFK bigint "187757" N Foreign Key to a system table, indicating which system sent this data.
id bigint "678281" N Primary Key of the job in the source Automation Controller database.
polymorphic_ctype_id bigint "9" N Foreign Key in Controller DB to polymorphic_ctype table (note: this referenced table is not synced to this datastore).
model character varying "job" N Indicates the type of job (e.g., "job", "workflow").
created timestamp with time zone "2023-03-02 00:00:09.444657+00" N Timestamp of job creation. Also serves as the partitioning key for this dataset.
nameFK bigint "426466" N Foreign Key to a table holding job name identifiers or attributes (e.g., a "job names" or "job details" table).
unified_job_template_id bigint "4232" N Foreign Key in Controller DB pointing to job_template table (note: this referenced table is not synced to this datastore).
launch_type character varying "scheduled" N The method by which the job was launched (e.g., "scheduled", "manual", "workflow").
schedule_id bigint "575" N Foreign Key in Controller DB pointing to schedule table (note: this referenced table is not synced to this datastore).
execution_nodeFK bigint "26340814" N Foreign Key to a "" table, indicating the that ran the automation.
controller_nodeFK bigint "43652988" N Foreign Key to a "" table, indicating the Automation Controller that processed job events for this job.
cancel_flag boolean "f" N Flag indicating if the job was cancelled (t for true, f for false).
status character varying "successful" N The final status of the job (e.g., "successful", "failed", "pending", "running").
failed boolean "f" N Flag indicating if the job failed (t for true, f for false).
started timestamp with time zone "2023-03-02 00:00:10.542319+00" N Timestamp of when the job started execution.
finished timestamp with time zone "2023-03-02 00:01:30.521015+00" N Timestamp of when the job finished execution.
elapsed numeric 79.979 N Elapsed time of the job in seconds.
job_explanation text {"Failed to JSON parse a line from worker stream. Error: Expecting value: line 1 column 1 (char 0) Line with invalid JSON data: b''", 'Job could not start because it does not have a valid inventory.', 'No error handling paths found, marking workflow as failed', None, 'Previous Task Failed: {"job_type": "inventory_update", "job_name": "GWLS - GWLS", "job_id": "7426793"}', 'Previous Task Failed: {"job_type": "project_update", "job_name": "GWLS EXAMPLE", "job_id": "7426795"}', 'waiting for workflowjob-7421535 to finish'} Y Contains messages or explanations about the job's run, especially for non-standard outcomes (e.g., error details, reasons for failure).
instance_group_id bigint "4" N Foreign Key in Controller DB pointing to instance_grouptable (note: this referenced table is not synced to this datastore).
org_id bigint "57" N Foreign Key in Controller DB pointing to the organization table.
org_nameFK bigint "57759" N Foreign Key to an organization name table or an ID representing the organization's name.
cluster_idFK bigint "33948" N Foreign Key to a cluster table, associating the job with a specific cluster.
inventory_id bigint "193" N Foreign Key in Controller DB pointing to inventory table.
inventory_nameFK bigint "57840" N Foreign Key likely to an inventory name table or an ID representing the inventory's name. (The original description "FK to cluster table" was assumed to be an error).
ansible_version_idFK bigint "14955" N Foreign Key to an ansible_version table.
installed_collections_idFK bigint "32582" N Foreign Key to an installed_collections table.
execution_environment_image_idFK bigint "27" N Foreign Key to an execution_environment_imagetable.
forks integer "0" N The number of parallel processes (forks) used during the job execution.

Table 6: Job Workflow Data

Contains data about Controller's workflow nodes that are part of a job.

Column Name Data Type Example Value Has Automation Job Data? (Y/N) Description
id bigint "264788" N PK in Controller's DB.
cluster_idFK bigint "33948" N FK to cluster table.
system_idFK bigint "187757" N FK to system table.
created timestamp with time zone "2023-03-02 00:00:08.306675+00" N Timestamp of the node creation. Likely used as the partitioning key.
modified timestamp with time zone "2023-03-02 00:00:10.753171+00" N Timestamp of the node's last update.
job_idFK bigint "678283" N FK to unified_jobs_fk table, marking job run associated with this node.
unified_job_template_id bigint "3018" N FK in Controller's DB pointing to job_template table.
workflow_job_idFK bigint "678278" N FK to unified_jobs_fk table, marking the parent job of this workflow.
inventory_id bigint “5” N FK in Controller's DB pointing to the inventory table.
success_nodes array\<bigint> "{264789,264790}" N Array of FKs pointing to this table, marking the workflow path taken on "success" run of this node.
failure_nodes array\<bigint> "{264791}" N Array of FKs pointing to this table, marking the workflow path taken on "failure" run of this node.
always_nodes array\<bigint> '{133937}' N Array of FKs pointing to this table, marking the workflow path that is always taken, regardless of the state of this node.
do_not_run boolean "f" N Boolean for whether this node should run or be skipped.
all_parents_must_converge boolean "f" N Boolean for whether this node should wait for all parent nodes to finish, before running this node.

Table 7: Controller Cluster Data

Contains data about the Controller cluster deployed as part of AAP.

Column Name Data Type Example Value Has Automation Job Data? (Y/N) Description
cluster_idPK bigint "1" N PK (Primary Key for this table).
install_uuid character varying "8d9d4e6b-7b90-4500-b717-f1d4ee0a3a7d" N UUID of the Controller cluster, with unique constraints.
url_base character varying "encrypted" N Old encrypted value is not used anymore.
label character varying "encrypted" N Old encrypted value is not used anymore.
value character varying "tower.example.my_domain.com" N Parsed domain name of the Controller cluster URL.
url_base_value character varying "tower.example.my_domain.com" N URL of the Controller cluster; user-editable in Controller's settings, so can contain anything.

Table 8: Play Data

Contains names of Ansible plays. An Ansible playbook contains one or multiple plays.

Column Name Data Type Example Value Has Automation Job Data? (Y/N) Description
idPK bigint "354065" N Primary key for this table.
hash character varying "sKpTPsB_G5cmC31j8r72F1409XZ3MW1vJxGZHl-yE7zVJQZnSxXuknxZMKEx58Jq62-Fpu6AFe5P_DECTVvL2w==" N SHA256 hash of the value column. This column has a unique index.
value character varying "Remove my_.com from ldap" N Normalized play name/description. Could contain the job name in the playbook description.

Table 9: Playbook Data

Contains names of Ansible playbooks.

Column Name Data Type Example Value Has Automation Job Data? (Y/N) Description
idPK bigint "13643" N Primary key for this table.
hash character varying "9mgrQmF6H-XJCNmvGdybhq-QVfQzdXQv6i0_aK-1CeFkzQgyAx9AQ-HvD0gF8yh1iZDQNqL4zQFdgc52kpbCsQ==" N SHA256 hash of the value column. This column has a unique index.
value character varying "src/CheckAuditing.yml" N Normalized playbook name/path.

Table 10: Resolved Action Data

Contains FQCN (Fully Qualified Collection Name) of Ansible modules.

Column Name Data Type Example Value Has Automation Job Data? (Y/N) Description
idPK bigint "126610" N Primary key for this table.
hash character varying "2RN7XzDQMXhjXrf7kKGshgGd_O0nafc40I5DCEfd-40FrGZl97eMCWYcmTBNYc46Wq-y4pT5IDMU3TdW_q0jXw==" N SHA256 hash of the value column. This column has a unique index.
value character varying "community.general.net_tools.ldap.ldap_search" N Normalized FQCN of the module.

Table 11: Task Action Data

Contains Ansible module names (short names).

Column Name Data Type Example Value Has Automation Job Data? (Y/N) Description
idPK bigint "348209" N Primary key for this table.
hash character varying "dRZ7svy_LGTFEATFQTHTxg_icp7JsVhJxPf58Wawe8D0-NyJdm2_9bYSWXStLTKnfLS99xY84LJuUkt4n4DVeA==" N SHA256 hash of the value column. This column has a unique index.
value character varying "ldap_search" N Normalized module name.

Table 12: Resolved Role Data

Contains FQCN (Fully Qualified Collection Name) for Ansible roles.

Column Name Data Type Example Value Has Automation Job Data? (Y/N) Description
idPK bigint "36" N Primary key for this table.
hash character varying "8IQS4wDnVeN2ZErP3Z2B2Scc697-ektHBNhiXlq_Byv83kJEMtqs_xEIGQFHWPg5oWW8Cr0BXJ8ZiPUy70cqPQ==" N SHA256 hash of the value column. This column has a unique index.
value character varying "local.monitor.looping" N Normalized FQCN of the role.

Table 13: Ansible Role Data

Contains Ansible role names. This is based on what the user inputs in the playbook, so it can be a relative name, FQCN, or path to the filesystem.

Column Name Data Type Example Value Has Automation Job Data? (Y/N) Description
idPK bigint "563428" N Primary key for this table.
hash character varying "LyhXFjAjYhCMSSINAaIzbbqlcP8jW5K-31OHpQgLAnCgipvTJSL0sHRABn70b_ky2YJML8EODaGbE_p0SEcVuQ==" N SHA256 hash of the value column. This column has a unique index.
value character varying "looping" N Normalized role name/reference as used in the playbook.

Table 14: Systems Data

Contains names of systems (normalized string values).

Column Name Data Type Example Value Has Automation Job Data? (Y/N) Description
idPK bigint "563428" N Primary key for this table.
hash character varying "LyhXFjAjYhCMSSINAaIzbbqlcP8jW5K-31OHpQgLAnCgipvTJSL0sHRABn70b_ky2YJML8EODaGbE_p0SEcVuQ==" N SHA256 hash of the value column. This column has a unique index.
value character varying "Looping" tower.example.com Y Normalized system name.

Table 15: Installed Collections Data

Contains JSONs with versions of all Ansible collections that were installed and used by one or multiple job runs.

Column Name Data Type Example Value Has Automation Job Data? (Y/N) Description
idPK bigint "8150" N Primary key for this table.
hash character varying "SWEeeNyX8RxwnI3g80XUpUWseBwvynQt-8LAoLeMIo28nO15YT3bmON8WpvpHNqr8_QHDsMQBViY22erLJiF7A==" N SHA256 hash of the value column. This column has a unique index.
value jsonb `{"/runner/project/ansible_collections": {"cisco.nd": {"version": "0.1.2"}, ...}, "/usr/share/ansible/collections/ansible_collections": {...}, "/usr/share/automation-controller/collections/ansible_collections": {...}}` N JSONB object detailing installed collections and their versions at various paths.

Table 16: Inventory Data

Contains names of inventories.

Column Name Data Type Example Value Has Automation Job Data? (Y/N) Description
idPK bigint "1243" N Primary key for this table.
hash character varying "qbAz5RIgiz_cgj6J187GUI0QdIU9QovelqCNq8SUXyAZeH-rQEMcfHv4epK-4gDvhIthNDbntaJJabDG3gGf9A==" N SHA256 hash of the value column. This column has a unique index.
value character varying "Satellite servers" N Normalized inventory name.

Table 17: Automation Job Data

Contains names of jobs. (The name of the job comes from the job_template name).

Column Name Data Type Example Value Has Automation Job Data? (Y/N) Description
idPK bigint "49948" N Primary key for this table.
hash character varying "dyvDjPBJlemhdlZ6gwdLvwVvHgb4koIHjrARbeajNxHvKtFwZOsHgikZiiolv1do4UOINwPsSH9G90rh632Ikw==" N SHA256 hash of the value column. This column has a unique index.
value character varying "Dynatrace One agent Installer" N Normalized job name (derived from job template name).

Table 18: Execution Environment Data

Contains path to image with tag for execution environments.

Column Name Data Type Example Value Has Automation Job Data? (Y/N) Description
idPK bigint "1" N Primary key for this table.
hash character varying "KiYU9O7tEUpSCiIO0NtuqrD1CEu2-dNQBVb6hpozw_1pQuT2W1F4-aujNSgLx2FnVxsqXp1RWI7tCafl1wk-yQ==" N SHA256 hash of the value column. This column has a unique index.
value character varying "my_domain.com/ansible-automation-platform-22/ee-supported-rhel8:latest" N Normalized execution environment image path with tag.

Table 19: Host Data

Contains names from the inventories that were used in a job run.

Column Name Data Type Example Value Has Automation Job Data? (Y/N) Description
idPK bigint "10264076" N Primary key for this table.
hash character varying "yQRq35YBkFYVLT4YcqSmc0CACZlgQWWCInfFTAKgACA6BbD3eCdR1T1gv5PDWc-pFMfQJU-s5mFaiZQlG4WebQ==" N SHA256 hash of the value column. This column has a unique index.
value character varying example.example.com 10.137.38.89 Y Normalized name. Could contain name identifiers.

Table 20: Task Data

A freeform description of each task in a playbook.

Column Name Data Type Example Value Has Automation Job Data? (Y/N) Description
idPK bigint "1025787" N Primary key for this table.
hash character varying "rsehyoisyHH1l3y2pQdeBxodKTTsslZWaDmbmNf77cMd3vIeQ7enWeApu_hFDV_zQ1mk-RuKM7UHD0BfL5CXhA==" N SHA256 hash of the value column. This column has a unique index.
value character varying "Change requirements.yml to contain the correct branch names" N Normalized task description/name.

Comments