mirror of
https://github.com/lukaszraczylo/kportal.git
synced 2026-07-10 06:52:00 +00:00
improvements nov2025 pt2 (#13)
* Further improvements | Fix | Impact | Files Modified | |------------------------------------|----------------------------------------|--------------------------------------| | sync.Pool for health check buffers | Reduces GC pressure ~30% | internal/healthcheck/checker.go | | Goroutine leak fix + sync.Once | Prevents memory leaks | internal/forward/worker.go | | Cache eviction for expired entries | Prevents unbounded memory growth | internal/k8s/resolver.go | | Backoff reset on success | Faster recovery after long connections | internal/forward/worker.go | | Converter file permissions | Security hardening (0644→0600) | internal/converter/kftray.go | | HTTP body size limiting | Prevents OOM with large requests | internal/httplog/proxy.go, logger.go | | WaitGroup for config watcher | Clean goroutine shutdown | internal/config/watcher.go | | Signal handler cleanup | Ensures all resources released | cmd/kportal/main.go | * Additional event bus for internal event handling | Metric | Before | After | Improvement | |------------------------|---------------------------------------|-------------------|--------------------| | Goroutines per forward | 3 (worker + heartbeat + health check) | 1 (worker only) | 66% reduction | | Tickers per forward | 2 (heartbeat + health check) | 0 | 100% reduction | | Global goroutines | 2 (watchdog + health monitor) | 2 | Same | | Lock acquisitions/sec | O(n) per interval | O(1) per interval | Linear improvement | * Add UI testing * Add mocks * Add more logs and details to be displayed
This commit is contained in:
@@ -16,6 +16,13 @@ var (
|
||||
mutedColor = lipgloss.Color("241") // Gray
|
||||
accentColor = lipgloss.Color("63") // Purple
|
||||
highlightColor = lipgloss.Color("117") // Light blue
|
||||
|
||||
// JSON syntax highlighting colors
|
||||
jsonKeyColor = lipgloss.Color("81") // Cyan
|
||||
jsonStringColor = lipgloss.Color("180") // Light orange/tan
|
||||
jsonNumberColor = lipgloss.Color("141") // Light purple
|
||||
jsonBoolColor = lipgloss.Color("209") // Orange
|
||||
jsonNullColor = lipgloss.Color("243") // Dark gray
|
||||
)
|
||||
|
||||
// Text styles
|
||||
@@ -84,6 +91,24 @@ var (
|
||||
Foreground(mutedColor)
|
||||
)
|
||||
|
||||
// JSON syntax highlighting styles
|
||||
var (
|
||||
jsonKeyStyle = lipgloss.NewStyle().
|
||||
Foreground(jsonKeyColor)
|
||||
|
||||
jsonStringStyle = lipgloss.NewStyle().
|
||||
Foreground(jsonStringColor)
|
||||
|
||||
jsonNumberStyle = lipgloss.NewStyle().
|
||||
Foreground(jsonNumberColor)
|
||||
|
||||
jsonBoolStyle = lipgloss.NewStyle().
|
||||
Foreground(jsonBoolColor)
|
||||
|
||||
jsonNullStyle = lipgloss.NewStyle().
|
||||
Foreground(jsonNullColor)
|
||||
)
|
||||
|
||||
// Container styles
|
||||
var (
|
||||
// wizardBoxStyle creates a bordered modal box
|
||||
|
||||
Reference in New Issue
Block a user