1.装置yaml.v2

go get gopkg.in/yaml.v2

2.复制yaml文件到另外一个文件

config/prometheus.yml

global:  scrape_interval:     15s  evaluation_interval: 15salerting:  alertmanagers:  - static_configs:    - targets:       - "localhost:9093"rule_files:   - "rules/*.yml"scrape_configs:  - job_name: 'prometheus'    static_configs:    - targets: ['localhost:9090']  - job_name: 'node'    basic_auth:      username: prometheus      password: 123456    static_configs:    - targets: ['localhost:9100']

程序

package maintype PrometheusConfig struct{    Global interface{} `yaml:"global"`                 //具体节点能够具体定义,此处都有空接口进行定义    Alerting interface{} `yaml:"alerting"`    RuleRiles []string `yaml:"rule_files"`    ScrapeConfigs []interface{} `yaml:"scrape_configs"`}func main(){    f,err := os.Open("config/prometheus.yml")    if err != nil {        log.Fatal("open file err;",err)    }    defer f.Close()    dec := yaml.NewDecoder(f)    var prometheusConfig PrometheusConfig    err = dec.Decode(&prometheusConfig)    if err != nil {        log.Fatal("transfer prometheus config err:",err)    }    log.Printf("prometheus config:%s \n",prometheusConfig)    premetheusV2, err := os.Create("config/prometheus2.yml")    if err != nil {        log.Fatal("create premetheusV2 err:",err)    }    defer premetheusV2.Close()    encoder := yaml.NewEncoder(premetheusV2)    err = encoder.Encode(prometheusConfig)    if err != nil {        log.Fatal("save prometheus err:",err)    }}

3.应用例子

官网文档 https://pkg.go.dev/gopkg.in/y...