Skip to content

Commit d3c2b44

Browse files
feat(monitoring): add enhanced monitoring features and API endpoints
- Add new API endpoints for K6 success rate and pod logs retrieval - Enhance monitoring UI with pod details modal, YAML viewing, and improved Kafka metrics charts - Update ClickHouse configurations with admin client and truncate operations - Modify Kafka manager for table truncation and EPS distribution updates - Remove outdated planning documents and binary file BREAKING CHANGE: Updated monitoring UI structure may require frontend cache refresh
1 parent a32c63b commit d3c2b44

28 files changed

+1809
-1289
lines changed

File structure.md

Lines changed: 0 additions & 431 deletions
This file was deleted.

auto_add_nodes_plan.md

Lines changed: 0 additions & 72 deletions
This file was deleted.

k6_integration_design.md

Lines changed: 0 additions & 198 deletions
This file was deleted.

logs/vuDataSim.log

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7866,3 +7866,17 @@
78667866
{"level":"error","error":"Get \"http://216.48.185.179:8086/api/system/metrics\": dial tcp 216.48.185.179:8086: connect: connection refused","node":"e2e-102-179","url":"http://216.48.185.179:8086/api/system/metrics","time":"2025-10-29T19:12:28+05:30","message":"Failed to fetch metrics from metrics API server"}
78677867
{"level":"error","error":"Get \"http://216.48.185.179:8086/api/system/metrics\": dial tcp 216.48.185.179:8086: connect: connection refused","node":"e2e-102-179","url":"http://216.48.185.179:8086/api/system/metrics","time":"2025-10-29T19:12:31+05:30","message":"Failed to fetch metrics from metrics API server"}
78687868
{"level":"error","error":"Get \"http://216.48.185.179:8086/api/system/metrics\": dial tcp 216.48.185.179:8086: connect: connection refused","node":"e2e-102-179","url":"http://216.48.185.179:8086/api/system/metrics","time":"2025-10-29T19:12:34+05:30","message":"Failed to fetch metrics from metrics API server"}
7869+
{"level":"info","version":"1.0.0","time":"2025-10-30T13:54:08+05:30","message":"Starting vuDataSim Cluster Manager"}
7870+
{"level":"info","static_dir":"./static","time":"2025-10-30T13:54:08+05:30","message":"Serving static files"}
7871+
{"level":"info","node":"System","module":"ClickHouse","type":"info","time":"2025-10-30T13:54:08+05:30","message":"Configuration loaded successfully"}
7872+
{"level":"info","node":"System","module":"ClickHouse","type":"info","time":"2025-10-30T13:54:08+05:30","message":"Initializing ClickHouse client connection"}
7873+
{"level":"info","node":"System","module":"ClickHouse","type":"success","time":"2025-10-30T13:54:08+05:30","message":"ClickHouse client initialized successfully"}
7874+
{"level":"info","node":"System","module":"ClickHouse","type":"info","time":"2025-10-30T13:54:08+05:30","message":"Initializing ClickHouse client connection"}
7875+
{"level":"info","node":"System","module":"ClickHouse","type":"success","time":"2025-10-30T13:54:08+05:30","message":"ClickHouse client initialized successfully"}
7876+
{"level":"info","node":"System","module":"ClickHouse","type":"success","time":"2025-10-30T13:54:08+05:30","message":"Monitoring DB client initialized successfully"}
7877+
{"level":"info","node":"System","module":"ClickHouse","type":"success","time":"2025-10-30T13:54:08+05:30","message":"ClickHouse client initialized successfully"}
7878+
{"level":"info","time":"2025-10-30T13:54:08+05:30","message":"ClickHouse client initialized successfully"}
7879+
{"level":"info","port":"216.48.189.75:8086","time":"2025-10-30T13:54:08+05:30","message":"Server starting"}
7880+
{"level":"info","url":"http://216.48.189.75:8086","time":"2025-10-30T13:54:08+05:30","message":"Open in browser"}
7881+
{"level":"info","node":"System","module":"ClickHouse","type":"info","time":"2025-10-30T13:54:23+05:30","message":"Fetched 78 pods for namespace vsmaps"}
7882+
{"level":"info","node":"System","module":"ClickHouse","type":"info","time":"2025-10-30T13:54:29+05:30","message":"Fetched 78 pods for namespace vsmaps"}

src/clickhouse/clickhouse.go

Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,10 @@ type ClickHouseConfig struct {
2323

2424
// AppConfig holds the entire application configuration
2525
type AppConfig struct {
26-
ClickHouse ClickHouseConfig `yaml:"clickhouse"`
27-
MonitoredNodes []string `yaml:"monitored_nodes"`
28-
MonitoringDB ClickHouseConfig `yaml:"monitoring_db"`
26+
ClickHouse ClickHouseConfig `yaml:"clickhouse"`
27+
MonitoredNodes []string `yaml:"monitored_nodes"`
28+
MonitoringDB ClickHouseConfig `yaml:"monitoring_db"`
29+
ClickHouseAdmin ClickHouseConfig `yaml:"truncate_db"`
2930
}
3031

3132
// ClickHouseClient wraps the ClickHouse connection and config
@@ -38,6 +39,12 @@ type ClickHouseClient struct {
3839
func NewClickHouseClient(config ClickHouseConfig) (*ClickHouseClient, error) {
3940
logger.LogWithNode("System", "ClickHouse", "Initializing ClickHouse client connection", "info")
4041

42+
// Use higher timeout for truncate operations
43+
maxExecutionTime := 300 // 5 minutes for truncate operations
44+
if config.Username != "truncate_db" {
45+
maxExecutionTime = 60 // 1 minute for other operations
46+
}
47+
4148
conn, err := clickhouse.Open(&clickhouse.Options{
4249
Addr: []string{fmt.Sprintf("%s:%d", config.Host, config.Port)},
4350
Auth: clickhouse.Auth{
@@ -46,7 +53,7 @@ func NewClickHouseClient(config ClickHouseConfig) (*ClickHouseClient, error) {
4653
Password: config.Password,
4754
},
4855
Settings: clickhouse.Settings{
49-
"max_execution_time": 60,
56+
"max_execution_time": maxExecutionTime,
5057
},
5158
Compression: &clickhouse.Compression{
5259
Method: clickhouse.CompressionLZ4,
@@ -87,6 +94,8 @@ var clickHouseClient *ClickHouseClient
8794
var clickHouseConfig ClickHouseConfig
8895
var monitoringDBClient *ClickHouseClient
8996
var monitoringDBConfig ClickHouseConfig
97+
var clickHouseAdminClient *ClickHouseClient
98+
var clickHouseAdminConfig ClickHouseConfig
9099
var monitoredNodes []string
91100

92101
// LoadConfig loads configuration from YAML file
@@ -104,6 +113,7 @@ func LoadConfig(configPath string) error {
104113

105114
clickHouseConfig = config.ClickHouse
106115
monitoringDBConfig = config.MonitoringDB
116+
clickHouseAdminConfig = config.ClickHouseAdmin
107117
monitoredNodes = config.MonitoredNodes
108118

109119
logger.LogWithNode("System", "ClickHouse", "Configuration loaded successfully", "info")
@@ -135,6 +145,17 @@ func InitClickHouse(configPath string) error {
135145
}
136146
}
137147

148+
// Initialize admin client if configured
149+
if clickHouseAdminConfig.Host != "" {
150+
adminClient, err := NewClickHouseClient(clickHouseAdminConfig)
151+
if err != nil {
152+
logger.LogWarning("System", "ClickHouse", fmt.Sprintf("Failed to initialize ClickHouse admin client: %v", err))
153+
} else {
154+
clickHouseAdminClient = adminClient
155+
logger.LogSuccess("System", "ClickHouse", "ClickHouse admin client initialized successfully")
156+
}
157+
}
158+
138159
logger.LogSuccess("System", "ClickHouse", "ClickHouse client initialized successfully")
139160
return nil
140161
}
@@ -171,3 +192,13 @@ func GetMonitoredNodes() []string {
171192
func GetClickHouseClient() *ClickHouseClient {
172193
return clickHouseClient
173194
}
195+
196+
// GetClickHouseAdminClient returns the global ClickHouse admin client
197+
func GetClickHouseAdminClient() *ClickHouseClient {
198+
return clickHouseAdminClient
199+
}
200+
201+
// GetMonitoringDBClient returns the global monitoring DB client
202+
func GetMonitoringDBClient() *ClickHouseClient {
203+
return monitoringDBClient
204+
}

0 commit comments

Comments
 (0)