Skip to content

Repository files navigation

PTP Dashboard

Precision Time Protocol configuration and monitoring dashboard for OpenShift clusters.

Overview

PTP Dashboard is a Next.js web application for exploring and managing PTP (Precision Time Protocol) configurations on an OpenShift or Kubernetes cluster. Users upload a kubeconfig file to visually configure clock profiles, monitor sync status, view process relationships, and manage hardware configurations -- all from the browser.

Documentation

See docs/USER_GUIDE.md for a full walkthrough of every page, every built-in clock scenario/template, Configure workflow, and background probes.

Features

  • Dashboard -- Cluster overview, sync health score, scenario breakdown, node status, active alerts
  • Clock Topology -- Interactive React Flow graph of clock hierarchy with discovery overlays
  • Point-and-Click Configurator -- Wizard to create PtpConfig CRs with template selection, solver, and staged changes
  • SMA Topology / GM Filters -- Manual SMA cabling overrides and HW ntuple drops for non-responding GMs
  • Template Editor -- Built-in and custom clock templates with INI config editing
  • Software Entities -- Process relationship graph with integrated log viewer
  • Node Detail -- Per-node drill-down with hardware, processes, metrics, logs, and alerts
  • Metrics & Status -- Per-node and per-interface tables with offset/delay/clock-state data
  • Container Resources -- CPU and memory utilization per PTP container from Prometheus
  • Config Export/Import -- Bundle all PtpConfig + PtpOperatorConfig to JSON, import with validation

Supported Clock Scenarios

Scenario Description
Ordinary Clock (OC) Single interface, slaveOnly; syncs from an upstream GM
Boundary Clock (BC) Upstream slave + downstream master ports (same NIC for classic BC)
Dual-NIC Boundary Clock Dual-card WPC T-BC in the Configure picker today
Dual-NIC BC (HA) Two BC profiles with phc2sys HA failover (haProfiles)
Grandmaster (GM) Master-only GM for testing (not for production)
Telecom Grandmaster (T-GM) GNSS-referenced GM with ts2phc, DPLL, SyncE
Dual Follower Two slave ports on one NIC (active/standby), slaveOnly

Per-template variables, constraints, and telco-reference mappings are documented in the user guide.

Prerequisites

  • Node.js 18+ LTS
  • npm 9+
  • Access to an OpenShift cluster with the PTP operator installed

Commands

Command Description
npm install Install all dependencies
npm run dev Start development server with Turbopack (http://localhost:3000)
npm run build Create a production build
npm start Serve the production build
npm run lint Run ESLint

Technology Stack

  • Next.js 16 (App Router, Turbopack)
  • React 19 + TypeScript 5
  • Tailwind CSS 4 (CSS-first, oklch tokens)
  • shadcn/ui + Radix UI -- Accessible, composable UI components
  • @xyflow/react -- Interactive node-based graph visualization
  • Zustand 5 -- Lightweight client-state management
  • @kubernetes/client-node -- Kubernetes API access (server-side only)
  • Zod 4 -- Schema validation
  • next-themes -- Dark/light mode support

Acknowledgments

This project was developed with AI assistance from Cursor.

License

Licensed under the Apache License, Version 2.0.

About

PTP configuration and monitoring dashboard for OpenShift — visual clock topology, telco-reference templates, solver-assisted PtpConfig creation, and live metrics.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages