Skip to content

Node Resource Monitoring Page #1220

Description

@rugved099

Node Resource Monitoring Page

Overview

The dashboard currently provides visibility into Jobs, Queues, Pods, and PodGroups, but there is no dedicated node-level resource monitoring view.

Kubernetes operators need a way to monitor node health and resource availability, including:

  • CPU capacity and allocatable resources
  • Memory capacity and allocatable resources
  • Node conditions and health status
  • Resource utilization across nodes

The Kubernetes client (k8s.ts) already has CoreV1Api configured, so retrieving node information should require only a listNode() API call.

Motivation

A node-level monitoring page would provide operators with a more complete view of cluster health and resource availability.

This would also complement the existing workload-level views and make it easier to identify resource bottlenecks or unhealthy nodes.

Proposed Scope

1. Navigation

Add a new Nodes navigation item in:

constants/index.ts

2. Backend

Create a new tRPC router under:

packages/trpc/server/router/nodes/

The router should expose the necessary node information from the Kubernetes API, including:

  • Node name
  • CPU capacity
  • CPU allocatable
  • Memory capacity
  • Memory allocatable
  • Node conditions
  • Other useful node metadata where appropriate

The existing CoreV1Api configuration in k8s.ts should be reused.

3. Frontend

Create a new dashboard page at:

apps/web/src/app/[locale]/(dashboard)/nodes/

The page should include:

  • Node list/table
  • CPU resource information
  • Memory resource information
  • Resource utilization visualizations/bar charts
  • Node health/condition status

The UI should follow the existing dashboard's design patterns and components wherever possible.

4. Internationalization

Add the required translation messages for:

  • en
  • zh-CN

All newly introduced user-facing text should use the existing i18n system.

Acceptance Criteria

  • A Nodes item is available in the dashboard navigation.
  • The Nodes page is accessible through the dashboard.
  • Node data is fetched from the Kubernetes API through a dedicated tRPC router.
  • The page displays node CPU and memory capacity/allocatable resources.
  • Node conditions/health status are visible.
  • Resource utilization is represented using clear visualizations.
  • The implementation works with the existing CoreV1Api setup.
  • English (en) translations are added.
  • Chinese (zh-CN) translations are added.
  • Existing dashboard functionality is not affected.
  • The implementation follows the project's existing architecture and UI conventions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions