Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

37 строки
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. }