metrics.go 568 B

1234567891011121314151617181920212223242526
  1. package conf
  2. import (
  3. "github.com/xtls/xray-core/app/metrics"
  4. "github.com/xtls/xray-core/common/errors"
  5. )
  6. type MetricsConfig struct {
  7. Tag string `json:"tag"`
  8. Listen string `json:"listen"`
  9. }
  10. func (c *MetricsConfig) Build() (*metrics.Config, error) {
  11. if c.Listen == "" && c.Tag == "" {
  12. return nil, errors.New("Metrics must have a tag or listen address.")
  13. }
  14. // If the tag is empty but have "listen" set a default "Metrics" for compatibility.
  15. if c.Tag == "" {
  16. c.Tag = "Metrics"
  17. }
  18. return &metrics.Config{
  19. Tag: c.Tag,
  20. Listen: c.Listen,
  21. }, nil
  22. }