This commit is contained in:
illustris
2026-03-11 15:01:20 +05:30
commit d8f4a77657
30 changed files with 3164 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
package config
import (
"flag"
"time"
)
type Config struct {
Port int
Host string
CollectRunningVMs bool
CollectStorage bool
MetricsPrefix string
LogLevel string
QMTerminalTimeout time.Duration
QMMaxTTL time.Duration
QMRand time.Duration
QMMonitorDeferClose bool
ShowVersion bool
}
func Parse() Config {
c := Config{}
flag.IntVar(&c.Port, "port", 9116, "HTTP server listen port")
flag.StringVar(&c.Host, "host", "0.0.0.0", "HTTP server bind address")
flag.BoolVar(&c.CollectRunningVMs, "collect-running-vms", true, "collect KVM VM metrics")
flag.BoolVar(&c.CollectStorage, "collect-storage", true, "collect storage pool metrics")
flag.StringVar(&c.MetricsPrefix, "metrics-prefix", "pve", "metric name prefix")
flag.StringVar(&c.LogLevel, "loglevel", "INFO", "log level (DEBUG, INFO, WARNING, ERROR)")
flag.DurationVar(&c.QMTerminalTimeout, "qm-terminal-timeout", 10*time.Second, "qm monitor command timeout")
flag.DurationVar(&c.QMMaxTTL, "qm-max-ttl", 600*time.Second, "cache TTL for qm monitor data")
flag.DurationVar(&c.QMRand, "qm-rand", 60*time.Second, "randomness for qm cache expiry")
flag.BoolVar(&c.QMMonitorDeferClose, "qm-monitor-defer-close", true, "defer closing unresponsive qm sessions")
flag.BoolVar(&c.ShowVersion, "version", false, "print the version and exit")
flag.Parse()
return c
}