mirror of
https://github.com/ClusterCockpit/cc-backend
synced 2025-03-04 22:15:55 +01:00
45 lines
894 B
Go
45 lines
894 B
Go
package config
|
|
|
|
import (
|
|
"encoding/json"
|
|
"os"
|
|
"strings"
|
|
)
|
|
|
|
type DefaultMetricsCluster struct {
|
|
Name string `json:"name"`
|
|
DefaultMetrics string `json:"default_metrics"`
|
|
}
|
|
|
|
type DefaultMetricsConfig struct {
|
|
Clusters []DefaultMetricsCluster `json:"clusters"`
|
|
}
|
|
|
|
func LoadDefaultMetricsConfig() (*DefaultMetricsConfig, error) {
|
|
filePath := "default_metrics.json"
|
|
if _, err := os.Stat(filePath); os.IsNotExist(err) {
|
|
return nil, nil
|
|
}
|
|
data, err := os.ReadFile(filePath)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
var cfg DefaultMetricsConfig
|
|
if err := json.Unmarshal(data, &cfg); err != nil {
|
|
return nil, err
|
|
}
|
|
return &cfg, nil
|
|
}
|
|
|
|
func ParseMetricsString(s string) []string {
|
|
parts := strings.Split(s, ",")
|
|
var metrics []string
|
|
for _, p := range parts {
|
|
trimmed := strings.TrimSpace(p)
|
|
if trimmed != "" {
|
|
metrics = append(metrics, trimmed)
|
|
}
|
|
}
|
|
return metrics
|
|
}
|