123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package collector
- import (
- "errors"
- "strings"
- "github.com/BurntSushi/toml"
- "github.com/go-kit/log/level"
- )
- // 定义一个包含默认指标配置的常量字符串
- const defaultMetricsConst = `
- `
- // DefaultMetrics 是一种加载默认指标的实现方式(稍显临时的方式)
- func (e *Exporter) DefaultMetrics() Metrics {
- var metricsToScrape Metrics // 用于存储需要抓取的指标
- var err error
- // 如果配置中指定了默认指标文件
- if e.config.DefaultMetricsFile != "" {
- // 根据文件后缀选择解析方法
- if strings.HasSuffix(e.config.DefaultMetricsFile, "toml") {
- // 加载 TOML 格式的指标配置
- err = loadTomlMetricsConfig(e.config.DefaultMetricsFile, &metricsToScrape)
- }
- // 如果加载成功,返回加载的指标
- if err == nil {
- return metricsToScrape
- }
- // 如果加载失败,记录错误并警告将使用默认指标
- level.Error(e.logger).Log("没有找到默认指标文件 defaultMetricsFile", e.config.DefaultMetricsFile, "msg", err)
- //level.Warn(e.logger).Log("msg", "将使用默认指标继续运行")
- }
- // 如果没有指定文件或加载失败,则从常量中加载默认指标
- if _, err := toml.Decode(defaultMetricsConst, &metricsToScrape); err != nil {
- // 如果加载失败,记录错误并触发 panic
- level.Error(e.logger).Log("msg", err.Error())
- panic(errors.New("加载默认指标时发生错误:" + defaultMetricsConst))
- }
- // 返回加载的默认指标
- return metricsToScrape
- }
|