diff --git a/packages/manager/.changeset/pr-12558-upcoming-features-1753278473938.md b/packages/manager/.changeset/pr-12558-upcoming-features-1753278473938.md new file mode 100644 index 00000000000..20c47c2514a --- /dev/null +++ b/packages/manager/.changeset/pr-12558-upcoming-features-1753278473938.md @@ -0,0 +1,5 @@ +--- +"@linode/manager": Upcoming Features +--- + +ACLP: add `linode id to label` translation logic for legend rows, add `entities` to `CloudPulseResouces` interface ([#12558](https://github.com/linode/manager/pull/12558)) diff --git a/packages/manager/src/features/CloudPulse/Utils/CloudPulseWidgetUtils.ts b/packages/manager/src/features/CloudPulse/Utils/CloudPulseWidgetUtils.ts index d66d88f316a..cacdff768b2 100644 --- a/packages/manager/src/features/CloudPulse/Utils/CloudPulseWidgetUtils.ts +++ b/packages/manager/src/features/CloudPulse/Utils/CloudPulseWidgetUtils.ts @@ -323,6 +323,13 @@ export const getDimensionName = (props: DimensionNameProperties): string => { return mapResourceIdToName(value, resources); } + if (key === 'linode_id') { + return ( + resources.find((resource) => resource.entities?.[value] !== undefined) + ?.entities?.[value] ?? value + ); + } + if (key === 'metric_name' && hideMetricName) { return ''; } diff --git a/packages/manager/src/features/CloudPulse/shared/CloudPulseResourcesSelect.tsx b/packages/manager/src/features/CloudPulse/shared/CloudPulseResourcesSelect.tsx index 4172ffec9e6..98fdd6499c7 100644 --- a/packages/manager/src/features/CloudPulse/shared/CloudPulseResourcesSelect.tsx +++ b/packages/manager/src/features/CloudPulse/shared/CloudPulseResourcesSelect.tsx @@ -10,6 +10,8 @@ import { deepEqual } from '../Utils/FilterBuilder'; import type { Filter, FilterValue } from '@linode/api-v4'; export interface CloudPulseResources { + engineType?: string; + entities?: Record; id: string; label: string; region?: string; diff --git a/packages/manager/src/mocks/serverHandlers.ts b/packages/manager/src/mocks/serverHandlers.ts index 18123e01504..71df3800afe 100644 --- a/packages/manager/src/mocks/serverHandlers.ts +++ b/packages/manager/src/mocks/serverHandlers.ts @@ -3171,6 +3171,7 @@ export const handlers = [ metric: { entity_id: '123', metric_name: 'average_cpu_usage', + linode_id: '1', node_id: 'primary-1', }, values: [ diff --git a/packages/manager/src/queries/cloudpulse/resources.ts b/packages/manager/src/queries/cloudpulse/resources.ts index ab4bbfbad7a..2cd9b1d8164 100644 --- a/packages/manager/src/queries/cloudpulse/resources.ts +++ b/packages/manager/src/queries/cloudpulse/resources.ts @@ -16,6 +16,18 @@ export const useResourcesQuery = ( enabled, select: (resources) => { return resources.map((resource) => { + const entities: Record = {}; + + // handle separately for firewall resource type + if (resourceType === 'firewall') { + resource.entities?.forEach( + (entity: { id: number; label: string; type: string }) => { + if (entity.type === 'linode') { + entities[String(entity.id)] = entity.label; + } + } + ); + } return { engineType: resource.engine, id: String(resource.id), @@ -23,6 +35,7 @@ export const useResourcesQuery = ( region: resource.region, regions: resource.regions ? resource.regions : [], tags: resource.tags, + entities, }; }); },