in apis/v1alpha1/instrumentation_webhook.go [275:304]
func validateJaegerRemoteSamplerArgument(argument string) error {
parts := strings.Split(argument, ",")
for _, part := range parts {
kv := strings.Split(part, "=")
if len(kv) != 2 {
return fmt.Errorf("invalid argument: %s, the argument should be in the form of key=value", part)
}
switch kv[0] {
case "endpoint":
if kv[1] == "" {
return fmt.Errorf("endpoint cannot be empty")
}
case "pollingIntervalMs":
if _, err := strconv.Atoi(kv[1]); err != nil {
return fmt.Errorf("invalid pollingIntervalMs: %s", kv[1])
}
case "initialSamplingRate":
rate, err := strconv.ParseFloat(kv[1], 64)
if err != nil {
return fmt.Errorf("invalid initialSamplingRate: %s", kv[1])
}
if rate < 0 || rate > 1 {
return fmt.Errorf("initialSamplingRate should be in rage [0..1]: %s", kv[1])
}
}
}
return nil
}