in src/main/java/com/google/cloud/run/kafkascaler/scalingconfig/MetricTarget.java [53:81]
static MetricTarget fromYamlMap(Map<String, Object> input, String resourcePath) {
MetricTarget.Builder builder = new AutoValue_MetricTarget.Builder();
Validation.checkKeyExists(input, "type", resourcePath);
switch ((String) input.get("type")) {
case "AverageValue":
builder.type(Type.AVERAGE);
Validation.checkKeyExists(input, "averageValue", resourcePath);
builder.averageValue((int) input.get("averageValue"));
break;
case "Utilization":
builder.type(Type.UTILIZATION);
Validation.checkKeyExists(input, "averageUtilization", resourcePath);
builder.averageUtilization((int) input.get("averageUtilization"));
break;
default:
throw new IllegalArgumentException(
String.format("Unsupported %s.metric.type: %s", resourcePath, input.get("type")));
}
return builder
.activationThreshold(
(int) input.getOrDefault("activationThreshold", DEFAULT_ACTIVATION_THRESHOLD))
.tolerance((double) input.getOrDefault("tolerance", DEFAULT_SCALING_TOLERANCE))
.windowSeconds(
Duration.ofSeconds((int) input.getOrDefault("windowSeconds", DEFAULT_WINDOW_SECONDS)))
.build();
}