Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 

37 Zeilen
745 B

  1. package main
  2. import (
  3. "github.com/inhies/go-bytesize"
  4. "gopkg.in/yaml.v3"
  5. "os"
  6. )
  7. type Config struct {
  8. Listen string `yaml:"listen"`
  9. PromAddr string `yaml:"prometheus_address"`
  10. Targets []ServerSpec `yaml:"targets"`
  11. }
  12. type ServerSpec struct {
  13. Id string `yaml:"id"`
  14. Url string `yaml:"url"`
  15. MinimumFreeSpace bytesize.ByteSize `yaml:"free_space_min"`
  16. JobName string `yaml:"prom_job_name"`
  17. }
  18. func NewConfigFromFile(fn string) (Config, error) {
  19. var c Config
  20. yamlFile, err := os.ReadFile(fn)
  21. if err != nil {
  22. return c, err
  23. }
  24. err = yaml.Unmarshal(yamlFile, &c)
  25. if err != nil {
  26. return c, err
  27. }
  28. log.Infof("Loaded config: %v", c)
  29. return c, nil
  30. }