From 40d77921a99bf8ddc51134c8356f8b8f56d03e5a Mon Sep 17 00:00:00 2001 From: Cloud User Date: Mon, 16 Mar 2026 13:31:27 +0900 Subject: [PATCH] feat: display node label instead of instance IP, update CPU query to group by node --- charts/infra-report/values.yaml | 2 +- src/app/api/metrics/[type]/route.ts | 4 ++-- src/app/api/report/route.ts | 2 +- src/lib/prometheus.ts | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/charts/infra-report/values.yaml b/charts/infra-report/values.yaml index ecac528..58e7437 100644 --- a/charts/infra-report/values.yaml +++ b/charts/infra-report/values.yaml @@ -31,7 +31,7 @@ config: REPORT_STEP: "5m" REPORT_RANGE_DAYS: "7" TZ: "Asia/Seoul" - QUERY_CPU: '100 - (avg by (instance)(rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)' + QUERY_CPU: '100 - (avg by (node)(rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)' QUERY_MEMORY: '(1 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) * 100' QUERY_DISK: 'sum by (mountpoint,fstype)((1 - node_filesystem_avail_bytes{fstype!~"tmpfs|overlay|nfs",mountpoint!~"/boot.*"} / node_filesystem_size_bytes{fstype!~"tmpfs|overlay|nfs",mountpoint!~"/boot.*"}) * 100)' QUERY_NAS: '((node_filesystem_size_bytes{fstype=~"nfs", node=~".*(bastion).*"} - node_filesystem_free_bytes{fstype=~"nfs", node=~".*(bastion).*"}) / node_filesystem_size_bytes{fstype=~"nfs", node=~".*(bastion).*"}) * 100' diff --git a/src/app/api/metrics/[type]/route.ts b/src/app/api/metrics/[type]/route.ts index ec5534d..fa38983 100644 --- a/src/app/api/metrics/[type]/route.ts +++ b/src/app/api/metrics/[type]/route.ts @@ -41,7 +41,7 @@ export async function GET( const process = (results: typeof rxResults) => results.map((r) => { const dataPoints = parsePrometheusValues(r.values); return { - instance: r.metric.instance || '', + instance: r.metric.node || r.metric.instance || '', dataPoints, stats: calculateStats(dataPoints), peaks: detectPeaks(dataPoints), @@ -60,7 +60,7 @@ export async function GET( const instances = results.map((r) => { const dataPoints = parsePrometheusValues(r.values); return { - instance: r.metric.instance || '', + instance: r.metric.node || r.metric.instance || '', metric: r.metric, dataPoints, stats: calculateStats(dataPoints), diff --git a/src/app/api/report/route.ts b/src/app/api/report/route.ts index b290c47..f4dd91a 100644 --- a/src/app/api/report/route.ts +++ b/src/app/api/report/route.ts @@ -11,7 +11,7 @@ function processResults(results: { metric: Record; values: [numb return results.map((r) => { const dataPoints = parseValues(r.values); return { - instance: r.metric.instance || '', + instance: r.metric.node || r.metric.instance || '', metric: r.metric, dataPoints, stats: calculateStats(dataPoints), diff --git a/src/lib/prometheus.ts b/src/lib/prometheus.ts index db9b967..276c134 100644 --- a/src/lib/prometheus.ts +++ b/src/lib/prometheus.ts @@ -41,7 +41,7 @@ export async function queryInstant(query: string): Promise