zai-proxy/notes/bf-1sba.md

1.6 KiB

Bead bf-1sba: Extract shared DefaultConfig logic

Finding

The task to extract shared DefaultConfig logic was already complete when this bead was claimed.

Current State

The dashboard/config package already serves as the single source of truth for environment variable parsing:

  1. config.GetScrapeTargets() - parses SCRAPE_TARGETS env var (lines 61-68)
  2. config.GetScrapeInterval() - parses SCRAPE_INTERVAL env var (lines 70-74)
  3. config.GetScrapeTimeout() - parses SCRAPE_TIMEOUT env var (lines 76-80)
  4. config.GetListenAddr() - parses LISTEN_ADDR env var (lines 82-86)

Both DefaultConfig implementations use the shared source

collector.DefaultConfig() (dashboard/collector/collector.go:40-46):

func DefaultConfig() Config {
	return Config{
		Targets:  config.GetScrapeTargets(),
		Interval: config.GetScrapeInterval(),
		Timeout:  config.GetScrapeTimeout(),
	}
}

api.DefaultConfig() (dashboard/api/router.go:29-35):

func DefaultConfig() *Config {
	return &Config{
		ListenAddr:     config.GetListenAddr(),
		ScrapeInterval: config.GetScrapeInterval(),
		ScrapeTargets:  config.GetScrapeTargets(),
	}
}

Conclusion

No code changes were needed. The SCRAPE_TARGETS and SCRAPE_INTERVAL environment variable parsing logic was already centralized in the config package, and both DefaultConfig implementations already reference the shared helper functions. The two cannot drift because they both call the same single source of truth.

This refactoring was likely done in an earlier commit (possibly 633df37 refactor(bf-j6s): update default SCRAPE_TARGETS from mcp to devpod namespace or related work).