mirror of
https://github.com/kubernetes-sigs/prometheus-adapter.git
synced 2026-04-05 17:27:51 +00:00
32 lines
838 B
Go
32 lines
838 B
Go
package config
|
|
|
|
import (
|
|
"fmt"
|
|
"io"
|
|
"os"
|
|
|
|
yaml "gopkg.in/yaml.v2"
|
|
)
|
|
|
|
// FromFile loads the configuration from a particular file.
|
|
func FromFile(filename string) (*MetricsDiscoveryConfig, error) {
|
|
file, err := os.Open(filename)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("unable to load metrics discovery config file: %v", err)
|
|
}
|
|
defer file.Close()
|
|
contents, err := io.ReadAll(file)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("unable to load metrics discovery config file: %v", err)
|
|
}
|
|
return FromYAML(contents)
|
|
}
|
|
|
|
// FromYAML loads the configuration from a blob of YAML.
|
|
func FromYAML(contents []byte) (*MetricsDiscoveryConfig, error) {
|
|
var cfg MetricsDiscoveryConfig
|
|
if err := yaml.UnmarshalStrict(contents, &cfg); err != nil {
|
|
return nil, fmt.Errorf("unable to parse metrics discovery config: %v", err)
|
|
}
|
|
return &cfg, nil
|
|
}
|