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 NameTypeExampleHas Automation Job Data? (Y/N)Description
idbigint"25225"NPrimary key
timestamptimestamp without time zone"2023-03-02 23:19:34.82261"NTimestamp of creation of this cluster state snapshot and partitioning key.
cluster_idbigint"1"NForeign key to cluster table.
platformjsonb"{\"dist\": [\"Red Hat Enterprise Linux\", \"8.7\", \"Ootpa\"], \"type\": \"traditional\", \"system\": \"Linux\", \"release\": \"4.18.0-425.10.1.el8_7.x86_64\"}"NInfo about the platform of the node of a cluster reporting the cluster state snapshot.
tower_versioncharacter varying"4.3.1"NAnsible Tower/Automation Controller version (Automation Controller is the new name from version 4.0).
ansible_versioncharacter varying'2.9.1'NAnsible version is now specified for each job in unified_jobs_fk table.
license_typecharacter varying"enterprise"NLicense type.
free_instancesbigint"34989"NFree number of managed nodes in license (in newer Controller versions the min value is 0), computed as total_licensed_instances - automated_instances.
total_licensed_instancesbigint"35000"NTotal number of managed nodes in the subscription manifest.
license_expirybigint"-152372"NNumber of seconds left in the license, negative if expired.
pendo_trackingcharacter varying"detailed"NIf pendo is enabled and in what mode. off - disabled, detailed - detailed pendo collection, anonymous - anonymous pendo collection.
external_logger_enabledboolean"t"NIf the external logger is enabled (splunk, elastic+kibana, etc,).
external_logger_typecharacter varying"splunk"NWhat kind of external logger is there (splunk, elastic+kibana, etc,).
authentication_backendsjsonb"[\"awx.sso.backends.TACACSPlusBackend\", \"awx.sso.backends.SAMLAuth\", \"awx.main.backends.AWXModelBackend\"]"NAuthentication plugin stack.
logging_aggregatorsjsonb`"[\"awx\", \"activity_stream\", \"job_events\", \"system_tracking\"]"`NWhat loggers are turned on for the rsyslog integration that will get to external logging if enabled (splunk, elastic+kibana, etc,).
ansible_version_idbigintnullNAnsible version is now specified for each job in unified_jobs_fk table.
license_datebigint"1677646799"NLicense/Subscription creation date as seconds ago from now.
subscription_namecharacter varying"Red Hat Ansible Automation Platform (Academic Edition), Premium (35000 Managed Nodes)"NSubscription name.
skucharacter varying"MCT3742"NSKU.
support_levelcharacter varying'Premium'NSupport level.
product_namecharacter varying"Red Hat Ansible Automation Platform (Academic Edition), Premium (100 Managed Nodes)"NProduct name.
valid_keyboolean"t"NIf the subscription key is valid.
satellitecharacter varying"false"NString true/false based marking if the subscription/pool_id comes via RH Satellite.
pool_idcharacter varying"8a85f9a07ed94235017f28aaaa901576"NPool id of the Red Hat subscription.
current_instancesbigint"3840"NHow many unique managed s are in the inventory now.
automated_instancesbigint"11"NHow many unique managed s were automated on cluster and are consumed from subscription counter.
automated_sincebigint"1675277428"NFirst automation recorded in the Controller cluster as a seconds ago from now.
trialboolean"f"NIf the subscription is trial.
grace_period_remainingbigint"2439628"NNumber of seconds left in the license + grace period, negative if expired.
compliantboolean"f"NIf the subscription usage is compliant, the number of s automated is within the subscription allowed count.
date_warningboolean"t"NTrue if there is a warning that the subscription will soon expire.
date_expireboolean"t"NTrue if the subscription expired.

Table 2 : System Data

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

Field NameTypeExampleHas Automation Job Data? (Y/N)Description
idbigint"17352"N
timestamptimestamp without time zone"2023-03-02 23:19:34.852885"NTimestamp of storing this info and partitioning key.
system_idbigint"40142"NFK to system table.
capacityinteger"137"NCapacity of running jobs.
cpunumeric4NNumber of cpus.
memorybigint"16568037376"NAvailable memory in bytes.
last_isolated_checktimestamp without time zonenullNTimestamp of last check the isolated node (relevant only to cluster version <4.0), isolated nodes were replaced with Automation Mesh.
enabledboolean"t"NIf the node is enabled.
versioncharacter varying"4.3.1"NVersion of the Controller cluster (all nodes should have the same version).
consumed_capacityinteger"0"NHow much capacity of running jobs is consumed.
remaining_capacityinteger"137"NRemaining capacity for running jobs.
managed_by_policyboolean"t"NWhether 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 NameTypeExampleHas Automation Job Data? (Y/N)Description
job_createdtimestamp without time zone"2023-03-02 00:00:10.885219+00"NTimestamp of the Controller job creation and partitioning key.
changedboolean"t"N
cluster_idbigint"1"NFK to the cluster table.
createdtimestamp without time zone"2023-03-02 00:00:12.806633"NWhen was the event created.
deprecationsARRAY'{499109}'NList of FKs to deprecations table.
durationdouble precision0.59311NHow 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.
endtimestamp without time zone"2023-03-02 00:00:12.806333"NEnd of the task timestamp.
eventcharacter varying"runner_on_ok"NAnsible Runner event type.
failedboolean"f"NFlag if the task failed.
_idbigint"129755"NId of the in Controller's inventory.
_namebigint"9"NFK to table.
idbigint"46352567"NID of the event in Controller's DB.
job_idbigint"476465"NPart of the composite FK to unified_jobs_fktable, the join condition must use both (cluster_id, job_id).
modifiedtimestamp without time zone"2023-03-02 00:00:12.815454"NTimestamp of when the event was processed and stored into Controller's DB.
parent_uuidcharacter varying"005056b4-28a3-c5ea-c413-000000000008"NParent event uuid.
playbigint"9346"NFK to 'play' table.
playbookbigint"7626"NFK to the playbook table.
rolebigint'10'NFK to role table.
starttimestamp without time zone"2023-03-02 00:00:12.213223"NStart of the task timestamp.
system_idbigint"2"NFK to systems table, pointing to which system sent this data.
taskbigint"296909"NFK to tasks table.
task_actionbigint"4"NFK to task_action table.
uuidcharacter varying"8bb31871-9193-488b-ab2a-56a45e130630"NEvent uuid.
warningsarray'{2641, 72}'NArray of FKs to warnings table.
playbook_on_statscharacter 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"}'YSummarization 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_idbigint'103'NFK to resolved_action table.
resolved_role_idbigint‘100’NFK 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 NameData TypeDescriptionHas Automation Job Data? (Y/N)Example Value
cluster_idFKbigintIdentifier for the cluster. Likely references a clusterstable.N"1"
system_idFKbigintIdentifier 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 NameData TypeExample ValueHas Automation Job Data? (Y/N)Description
system_idFKbigint"187757"NForeign Key to a system table, indicating which system sent this data.
idbigint"678281"NPrimary Key of the job in the source Automation Controller database.
polymorphic_ctype_idbigint"9"NForeign Key in Controller DB to polymorphic_ctype table (note: this referenced table is not synced to this datastore).
modelcharacter varying"job"NIndicates the type of job (e.g., "job", "workflow").
createdtimestamp with time zone"2023-03-02 00:00:09.444657+00"NTimestamp of job creation. Also serves as the partitioning key for this dataset.
nameFKbigint"426466"NForeign Key to a table holding job name identifiers or attributes (e.g., a "job names" or "job details" table).
unified_job_template_idbigint"4232"NForeign Key in Controller DB pointing to job_template table (note: this referenced table is not synced to this datastore).
launch_typecharacter varying"scheduled"NThe method by which the job was launched (e.g., "scheduled", "manual", "workflow").
schedule_idbigint"575"NForeign Key in Controller DB pointing to schedule table (note: this referenced table is not synced to this datastore).
execution_nodeFKbigint"26340814"NForeign Key to a "" table, indicating the that ran the automation.
controller_nodeFKbigint"43652988"NForeign Key to a "" table, indicating the Automation Controller that processed job events for this job.
cancel_flagboolean"f"NFlag indicating if the job was cancelled (t for true, f for false).
statuscharacter varying"successful"NThe final status of the job (e.g., "successful", "failed", "pending", "running").
failedboolean"f"NFlag indicating if the job failed (t for true, f for false).
startedtimestamp with time zone"2023-03-02 00:00:10.542319+00"NTimestamp of when the job started execution.
finishedtimestamp with time zone"2023-03-02 00:01:30.521015+00"NTimestamp of when the job finished execution.
elapsednumeric79.979NElapsed time of the job in seconds.
job_explanationtext{"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'}YContains messages or explanations about the job's run, especially for non-standard outcomes (e.g., error details, reasons for failure).
instance_group_idbigint"4"NForeign Key in Controller DB pointing to instance_grouptable (note: this referenced table is not synced to this datastore).
org_idbigint"57"NForeign Key in Controller DB pointing to the organization table.
org_nameFKbigint"57759"NForeign Key to an organization name table or an ID representing the organization's name.
cluster_idFKbigint"33948"NForeign Key to a cluster table, associating the job with a specific cluster.
inventory_idbigint"193"NForeign Key in Controller DB pointing to inventory table.
inventory_nameFKbigint"57840"NForeign 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_idFKbigint"14955"NForeign Key to an ansible_version table.
installed_collections_idFKbigint"32582"NForeign Key to an installed_collections table.
execution_environment_image_idFKbigint"27"NForeign Key to an execution_environment_imagetable.
forksinteger"0"NThe 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 NameData TypeExample ValueHas Automation Job Data? (Y/N)Description
idbigint"264788"NPK in Controller's DB.
cluster_idFKbigint"33948"NFK to cluster table.
system_idFKbigint"187757"NFK to system table.
createdtimestamp with time zone"2023-03-02 00:00:08.306675+00"NTimestamp of the node creation. Likely used as the partitioning key.
modifiedtimestamp with time zone"2023-03-02 00:00:10.753171+00"NTimestamp of the node's last update.
job_idFKbigint"678283"NFK to unified_jobs_fk table, marking job run associated with this node.
unified_job_template_idbigint"3018"NFK in Controller's DB pointing to job_template table.
workflow_job_idFKbigint"678278"NFK to unified_jobs_fk table, marking the parent job of this workflow.
inventory_idbigint“5”NFK in Controller's DB pointing to the inventory table.
success_nodesarray<bigint>"{264789,264790}"NArray of FKs pointing to this table, marking the workflow path taken on "success" run of this node.
failure_nodesarray<bigint>"{264791}"NArray of FKs pointing to this table, marking the workflow path taken on "failure" run of this node.
always_nodesarray<bigint>'{133937}'NArray of FKs pointing to this table, marking the workflow path that is always taken, regardless of the state of this node.
do_not_runboolean"f"NBoolean for whether this node should run or be skipped.
all_parents_must_convergeboolean"f"NBoolean 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 NameData TypeExample ValueHas Automation Job Data? (Y/N)Description
cluster_idPKbigint"1"NPK (Primary Key for this table).
install_uuidcharacter varying"8d9d4e6b-7b90-4500-b717-f1d4ee0a3a7d"NUUID of the Controller cluster, with unique constraints.
url_basecharacter varying"encrypted"NOld encrypted value is not used anymore.
labelcharacter varying"encrypted"NOld encrypted value is not used anymore.
valuecharacter varying"tower.example.my_domain.com"NParsed domain name of the Controller cluster URL.
url_base_valuecharacter varying"tower.example.my_domain.com"NURL 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 NameData TypeExample ValueHas Automation Job Data? (Y/N)Description
idPKbigint"354065"NPrimary key for this table.
hashcharacter varying"sKpTPsB_G5cmC31j8r72F1409XZ3MW1vJxGZHl-yE7zVJQZnSxXuknxZMKEx58Jq62-Fpu6AFe5P_DECTVvL2w=="NSHA256 hash of the value column. This column has a unique index.
valuecharacter varying"Remove my_.com from ldap"NNormalized play name/description. Could contain the job name in the playbook description.

Table 9: Playbook Data

Contains names of Ansible playbooks.

Column NameData TypeExample ValueHas Automation Job Data? (Y/N)Description
idPKbigint"13643"NPrimary key for this table.
hashcharacter varying"9mgrQmF6H-XJCNmvGdybhq-QVfQzdXQv6i0_aK-1CeFkzQgyAx9AQ-HvD0gF8yh1iZDQNqL4zQFdgc52kpbCsQ=="NSHA256 hash of the value column. This column has a unique index.
valuecharacter varying"src/CheckAuditing.yml"NNormalized playbook name/path.

Table 10: Resolved Action Data

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

Column NameData TypeExample ValueHas Automation Job Data? (Y/N)Description
idPKbigint"126610"NPrimary key for this table.
hashcharacter varying"2RN7XzDQMXhjXrf7kKGshgGd_O0nafc40I5DCEfd-40FrGZl97eMCWYcmTBNYc46Wq-y4pT5IDMU3TdW_q0jXw=="NSHA256 hash of the value column. This column has a unique index.
valuecharacter varying"community.general.net_tools.ldap.ldap_search"NNormalized FQCN of the module.

Table 11: Task Action Data

Contains Ansible module names (short names).

Column NameData TypeExample ValueHas Automation Job Data? (Y/N)Description
idPKbigint"348209"NPrimary key for this table.
hashcharacter varying"dRZ7svy_LGTFEATFQTHTxg_icp7JsVhJxPf58Wawe8D0-NyJdm2_9bYSWXStLTKnfLS99xY84LJuUkt4n4DVeA=="NSHA256 hash of the value column. This column has a unique index.
valuecharacter varying"ldap_search"NNormalized module name.

Table 12: Resolved Role Data

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

Column NameData TypeExample ValueHas Automation Job Data? (Y/N)Description
idPKbigint"36"NPrimary key for this table.
hashcharacter varying"8IQS4wDnVeN2ZErP3Z2B2Scc697-ektHBNhiXlq_Byv83kJEMtqs_xEIGQFHWPg5oWW8Cr0BXJ8ZiPUy70cqPQ=="NSHA256 hash of the value column. This column has a unique index.
valuecharacter varying"local.monitor.looping"NNormalized 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 NameData TypeExample ValueHas Automation Job Data? (Y/N)Description
idPKbigint"563428"NPrimary key for this table.
hashcharacter varying"LyhXFjAjYhCMSSINAaIzbbqlcP8jW5K-31OHpQgLAnCgipvTJSL0sHRABn70b_ky2YJML8EODaGbE_p0SEcVuQ=="NSHA256 hash of the value column. This column has a unique index.
valuecharacter varying"looping"NNormalized role name/reference as used in the playbook.

Table 14: Systems Data

Contains names of systems (normalized string values).

Column NameData TypeExample ValueHas Automation Job Data? (Y/N)Description
idPKbigint"563428"NPrimary key for this table.
hashcharacter varying"LyhXFjAjYhCMSSINAaIzbbqlcP8jW5K-31OHpQgLAnCgipvTJSL0sHRABn70b_ky2YJML8EODaGbE_p0SEcVuQ=="NSHA256 hash of the value column. This column has a unique index.
valuecharacter varying"Looping" tower.example.comYNormalized 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 NameData TypeExample ValueHas Automation Job Data? (Y/N)Description
idPKbigint"8150"NPrimary key for this table.
hashcharacter varying"SWEeeNyX8RxwnI3g80XUpUWseBwvynQt-8LAoLeMIo28nO15YT3bmON8WpvpHNqr8_QHDsMQBViY22erLJiF7A=="NSHA256 hash of the value column. This column has a unique index.
valuejsonb`{"/runner/project/ansible_collections": {"cisco.nd": {"version": "0.1.2"}, ...}, "/usr/share/ansible/collections/ansible_collections": {...}, "/usr/share/automation-controller/collections/ansible_collections": {...}}`NJSONB object detailing installed collections and their versions at various paths.

Table 16: Inventory Data

Contains names of inventories.

Column NameData TypeExample ValueHas Automation Job Data? (Y/N)Description
idPKbigint"1243"NPrimary key for this table.
hashcharacter varying"qbAz5RIgiz_cgj6J187GUI0QdIU9QovelqCNq8SUXyAZeH-rQEMcfHv4epK-4gDvhIthNDbntaJJabDG3gGf9A=="NSHA256 hash of the value column. This column has a unique index.
valuecharacter varying"Satellite servers"NNormalized inventory name.

Table 17: Automation Job Data

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

Column NameData TypeExample ValueHas Automation Job Data? (Y/N)Description
idPKbigint"49948"NPrimary key for this table.
hashcharacter varying"dyvDjPBJlemhdlZ6gwdLvwVvHgb4koIHjrARbeajNxHvKtFwZOsHgikZiiolv1do4UOINwPsSH9G90rh632Ikw=="NSHA256 hash of the value column. This column has a unique index.
valuecharacter varying"Dynatrace One agent Installer"NNormalized job name (derived from job template name).

Table 18: Execution Environment Data

Contains path to image with tag for execution environments.

Column NameData TypeExample ValueHas Automation Job Data? (Y/N)Description
idPKbigint"1"NPrimary key for this table.
hashcharacter varying"KiYU9O7tEUpSCiIO0NtuqrD1CEu2-dNQBVb6hpozw_1pQuT2W1F4-aujNSgLx2FnVxsqXp1RWI7tCafl1wk-yQ=="NSHA256 hash of the value column. This column has a unique index.
valuecharacter varying"my_domain.com/ansible-automation-platform-22/ee-supported-rhel8:latest"NNormalized execution environment image path with tag.

Table 19: Host Data

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

Column NameData TypeExample ValueHas Automation Job Data? (Y/N)Description
idPKbigint"10264076"NPrimary key for this table.
hashcharacter varying"yQRq35YBkFYVLT4YcqSmc0CACZlgQWWCInfFTAKgACA6BbD3eCdR1T1gv5PDWc-pFMfQJU-s5mFaiZQlG4WebQ=="NSHA256 hash of the value column. This column has a unique index.
valuecharacter varyingContent from example.example.com is not included.example.example.com 10.137.38.89YNormalized name. Could contain name identifiers.

Table 20: Task Data

A freeform description of each task in a playbook.

Column NameData TypeExample ValueHas Automation Job Data? (Y/N)Description
idPKbigint"1025787"NPrimary key for this table.
hashcharacter varying"rsehyoisyHH1l3y2pQdeBxodKTTsslZWaDmbmNf77cMd3vIeQ7enWeApu_hFDV_zQ1mk-RuKM7UHD0BfL5CXhA=="NSHA256 hash of the value column. This column has a unique index.
valuecharacter varying"Change requirements.yml to contain the correct branch names"NNormalized task description/name.
SBR
Article Type