Files
atlantis/server/core/config/raw/metrics.go
2022-03-18 15:18:13 -07:00

45 lines
955 B
Go

package raw
import (
validation "github.com/go-ozzo/ozzo-validation"
"github.com/go-ozzo/ozzo-validation/is"
"github.com/runatlantis/atlantis/server/core/config/valid"
)
type Metrics struct {
Statsd *Statsd `yaml:"statsd" json:"statsd"`
}
type Statsd struct {
Port string `yaml:"port" json:"port"`
Host string `yaml:"host" json:"host"`
}
func (s *Statsd) Validate() error {
return validation.ValidateStruct(s,
validation.Field(&s.Host, validation.Required),
validation.Field(&s.Port, validation.Required),
validation.Field(&s.Host, is.IP),
validation.Field(&s.Port, is.Int))
}
func (m Metrics) Validate() error {
return validation.ValidateStruct(&m,
validation.Field(&m.Statsd),
)
}
func (m Metrics) ToValid() valid.Metrics {
// we've already validated at this point
if m.Statsd != nil {
return valid.Metrics{
Statsd: &valid.Statsd{
Host: m.Statsd.Host,
Port: m.Statsd.Port,
},
}
}
return valid.Metrics{}
}