diff --git a/awx/main/analytics/collectors.py b/awx/main/analytics/collectors.py index 27108e66b3..e70318c194 100644 --- a/awx/main/analytics/collectors.py +++ b/awx/main/analytics/collectors.py @@ -238,7 +238,9 @@ def instance_info(since, include_hostnames=False, **kwargs): info = {} # Use same method that the TaskManager does to compute consumed capacity without querying all running jobs for each Instance active_tasks = models.UnifiedJob.objects.filter(status__in=['running', 'waiting']).only('task_impact', 'controller_node', 'execution_node') - tm_instances = TaskManagerInstances(active_tasks, instance_fields=['uuid', 'version', 'capacity', 'cpu', 'memory', 'managed_by_policy', 'enabled']) + tm_instances = TaskManagerInstances( + active_tasks, instance_fields=['uuid', 'version', 'capacity', 'cpu', 'memory', 'managed_by_policy', 'enabled', 'node_type'] + ) for tm_instance in tm_instances.instances_by_hostname.values(): instance = tm_instance.obj instance_info = { @@ -251,6 +253,7 @@ def instance_info(since, include_hostnames=False, **kwargs): 'enabled': instance.enabled, 'consumed_capacity': tm_instance.consumed_capacity, 'remaining_capacity': instance.capacity - tm_instance.consumed_capacity, + 'node_type': instance.node_type, } if include_hostnames is True: instance_info['hostname'] = instance.hostname diff --git a/awx/main/analytics/metrics.py b/awx/main/analytics/metrics.py index 67c295071a..100b1c968f 100644 --- a/awx/main/analytics/metrics.py +++ b/awx/main/analytics/metrics.py @@ -57,6 +57,7 @@ def metrics(): [ 'hostname', 'instance_uuid', + 'node_type', ], registry=REGISTRY, ) @@ -84,6 +85,7 @@ def metrics(): [ 'hostname', 'instance_uuid', + 'node_type', ], registry=REGISTRY, ) @@ -111,6 +113,7 @@ def metrics(): [ 'hostname', 'instance_uuid', + 'node_type', ], registry=REGISTRY, ) @@ -120,6 +123,7 @@ def metrics(): [ 'hostname', 'instance_uuid', + 'node_type', ], registry=REGISTRY, ) @@ -180,12 +184,13 @@ def metrics(): instance_data = instance_info(None, include_hostnames=True) for uuid, info in instance_data.items(): hostname = info['hostname'] - INSTANCE_CAPACITY.labels(hostname=hostname, instance_uuid=uuid).set(instance_data[uuid]['capacity']) + node_type = info['node_type'] + INSTANCE_CAPACITY.labels(hostname=hostname, instance_uuid=uuid, node_type=node_type).set(instance_data[uuid]['capacity']) INSTANCE_CPU.labels(hostname=hostname, instance_uuid=uuid).set(instance_data[uuid]['cpu']) INSTANCE_MEMORY.labels(hostname=hostname, instance_uuid=uuid).set(instance_data[uuid]['memory']) - INSTANCE_CONSUMED_CAPACITY.labels(hostname=hostname, instance_uuid=uuid).set(instance_data[uuid]['consumed_capacity']) - INSTANCE_REMAINING_CAPACITY.labels(hostname=hostname, instance_uuid=uuid).set(instance_data[uuid]['remaining_capacity']) - INSTANCE_INFO.labels(hostname=hostname, instance_uuid=uuid).info( + INSTANCE_CONSUMED_CAPACITY.labels(hostname=hostname, instance_uuid=uuid, node_type=node_type).set(instance_data[uuid]['consumed_capacity']) + INSTANCE_REMAINING_CAPACITY.labels(hostname=hostname, instance_uuid=uuid, node_type=node_type).set(instance_data[uuid]['remaining_capacity']) + INSTANCE_INFO.labels(hostname=hostname, instance_uuid=uuid, node_type=node_type).info( { 'enabled': str(instance_data[uuid]['enabled']), 'managed_by_policy': str(instance_data[uuid]['managed_by_policy']),