wip
This commit is contained in:
parent
066157577d
commit
3da32c9540
4 changed files with 9 additions and 14 deletions
|
@ -1,7 +1,6 @@
|
||||||
package com.provectus.kafka.ui.service.graphs;
|
package com.provectus.kafka.ui.service.graphs;
|
||||||
|
|
||||||
import com.provectus.kafka.ui.exception.ValidationException;
|
import com.provectus.kafka.ui.exception.ValidationException;
|
||||||
import com.provectus.kafka.ui.service.metrics.prometheus.PromQueryTemplate;
|
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
|
@ -4,7 +4,6 @@ import com.google.common.base.Preconditions;
|
||||||
import com.provectus.kafka.ui.exception.NotFoundException;
|
import com.provectus.kafka.ui.exception.NotFoundException;
|
||||||
import com.provectus.kafka.ui.exception.ValidationException;
|
import com.provectus.kafka.ui.exception.ValidationException;
|
||||||
import com.provectus.kafka.ui.model.KafkaCluster;
|
import com.provectus.kafka.ui.model.KafkaCluster;
|
||||||
import com.provectus.kafka.ui.service.metrics.prometheus.PromQueryTemplate;
|
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.provectus.kafka.ui.service.metrics.prometheus;
|
package com.provectus.kafka.ui.service.graphs;
|
||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import org.antlr.v4.runtime.BailErrorStrategy;
|
import org.antlr.v4.runtime.BailErrorStrategy;
|
||||||
|
@ -26,9 +26,7 @@ class PromQueryLangGrammar {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static PromQLParser createParser(String str) {
|
private static PromQLParser createParser(String str) {
|
||||||
PromQLLexer lexer = new PromQLLexer(CharStreams.fromString(str));
|
var parser = new PromQLParser(new CommonTokenStream(new PromQLLexer(CharStreams.fromString(str))));
|
||||||
CommonTokenStream tokenStream = new CommonTokenStream(lexer);
|
|
||||||
var parser = new PromQLParser(tokenStream);
|
|
||||||
parser.removeErrorListeners();
|
parser.removeErrorListeners();
|
||||||
parser.setErrorHandler(new BailErrorStrategy());
|
parser.setErrorHandler(new BailErrorStrategy());
|
||||||
return parser;
|
return parser;
|
|
@ -1,29 +1,28 @@
|
||||||
package com.provectus.kafka.ui.service.metrics.prometheus;
|
package com.provectus.kafka.ui.service.graphs;
|
||||||
|
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
import com.provectus.kafka.ui.exception.ValidationException;
|
import com.provectus.kafka.ui.exception.ValidationException;
|
||||||
import com.provectus.kafka.ui.service.graphs.GraphDescription;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import org.apache.commons.lang3.text.StrSubstitutor;
|
import org.apache.commons.lang3.text.StrSubstitutor;
|
||||||
|
|
||||||
public class PromQueryTemplate {
|
class PromQueryTemplate {
|
||||||
|
|
||||||
private final String queryTemplate;
|
private final String queryTemplate;
|
||||||
private final Set<String> paramsNames;
|
private final Set<String> paramsNames;
|
||||||
|
|
||||||
public PromQueryTemplate(GraphDescription d) {
|
PromQueryTemplate(GraphDescription d) {
|
||||||
this(d.prometheusQuery(), d.params());
|
this(d.prometheusQuery(), d.params());
|
||||||
}
|
}
|
||||||
|
|
||||||
public PromQueryTemplate(String templateQueryString, Set<String> paramsNames) {
|
PromQueryTemplate(String templateQueryString, Set<String> paramsNames) {
|
||||||
this.queryTemplate = templateQueryString;
|
this.queryTemplate = templateQueryString;
|
||||||
this.paramsNames = paramsNames;
|
this.paramsNames = paramsNames;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getQuery(String clusterName, Map<String, String> paramValues) {
|
String getQuery(String clusterName, Map<String, String> paramValues) {
|
||||||
var missingParams = Sets.difference(paramsNames, paramValues.keySet());
|
var missingParams = Sets.difference(paramsNames, paramValues.keySet());
|
||||||
if (!missingParams.isEmpty()) {
|
if (!missingParams.isEmpty()) {
|
||||||
throw new ValidationException("Not all params set for query, missing: " + missingParams);
|
throw new ValidationException("Not all params set for query, missing: " + missingParams);
|
||||||
|
@ -33,12 +32,12 @@ public class PromQueryTemplate {
|
||||||
return replaceParams(replacements);
|
return replaceParams(replacements);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Optional<String> validateSyntax() {
|
Optional<String> validateSyntax() {
|
||||||
Map<String, String> fakeReplacements = new HashMap<>();
|
Map<String, String> fakeReplacements = new HashMap<>();
|
||||||
fakeReplacements.put("cluster", "1");
|
fakeReplacements.put("cluster", "1");
|
||||||
paramsNames.forEach(paramName -> fakeReplacements.put(paramName, "1"));
|
paramsNames.forEach(paramName -> fakeReplacements.put(paramName, "1"));
|
||||||
|
|
||||||
String prepared = replaceParams(fakeReplacements);
|
String prepared = replaceParams(fakeReplacements);
|
||||||
return PromQueryLangGrammar.validateExpression(prepared);
|
return PromQueryLangGrammar.validateExpression(prepared);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue