private static StringBuilder addGroupByQuery(StringBuilder queryBuilder, PrometheusCanaryMetricSetQueryConfig queryConfig) { List<String> groupByFields = queryConfig.getGroupByFields(); if (!CollectionUtils.isEmpty(groupByFields)) { queryBuilder.append(" by ("); String sep = ""; for (String elem : groupByFields) { queryBuilder.append(sep); queryBuilder.append(elem); sep = ","; } queryBuilder.append(")"); } return queryBuilder; }
String projectId = prometheusCanaryScope.getProject(); String location = prometheusCanaryScope.getLocation(); List<String> filters = queryConfig.getLabelBindings(); if (filters == null) { filters = new ArrayList<>();
@Override public String buildQuery(String metricsAccountName, CanaryConfig canaryConfig, CanaryMetricConfig canaryMetricConfig, CanaryScope canaryScope) throws IOException { PrometheusCanaryMetricSetQueryConfig queryConfig = (PrometheusCanaryMetricSetQueryConfig)canaryMetricConfig.getQuery(); PrometheusCanaryScope prometheusCanaryScope = (PrometheusCanaryScope)canaryScope; String resourceType = StringUtils.hasText(queryConfig.getResourceType()) ? queryConfig.getResourceType() : prometheusCanaryScope.getResourceType(); String customFilter = QueryConfigUtils.expandCustomFilter( canaryConfig, queryConfig, prometheusCanaryScope, new String[]{"project", "resourceType", "scope", "location"}); if (!StringUtils.isEmpty(customFilter) && customFilter.startsWith("PromQL:")) { String promQlExpr = customFilter.substring(7); log.debug("Detected complete PromQL expression: {}", promQlExpr); return promQlExpr; } else { StringBuilder queryBuilder = new StringBuilder(queryConfig.getMetricName()); queryBuilder = addScopeFilter(queryBuilder, prometheusCanaryScope, resourceType, queryConfig, customFilter); queryBuilder = addAvgQuery(queryBuilder); queryBuilder = addGroupByQuery(queryBuilder, queryConfig); log.debug("query={}", queryBuilder); return queryBuilder.toString(); } }
.builder() .metricName(metricName) .labelBindings(labelBindings)
.builder() .metricName(metricName) .labelBindings(labelBindings)
@Override public String buildQuery(String metricsAccountName, CanaryConfig canaryConfig, CanaryMetricConfig canaryMetricConfig, CanaryScope canaryScope) throws IOException { PrometheusCanaryMetricSetQueryConfig queryConfig = (PrometheusCanaryMetricSetQueryConfig)canaryMetricConfig.getQuery(); PrometheusCanaryScope prometheusCanaryScope = (PrometheusCanaryScope)canaryScope; String resourceType = StringUtils.hasText(queryConfig.getResourceType()) ? queryConfig.getResourceType() : prometheusCanaryScope.getResourceType(); String customFilter = QueryConfigUtils.expandCustomFilter( canaryConfig, queryConfig, prometheusCanaryScope, new String[]{"project", "resourceType", "scope", "location"}); if (!StringUtils.isEmpty(customFilter) && customFilter.startsWith("PromQL:")) { String promQlExpr = customFilter.substring(7); log.debug("Detected complete PromQL expression: {}", promQlExpr); return promQlExpr; } else { StringBuilder queryBuilder = new StringBuilder(queryConfig.getMetricName()); queryBuilder = addScopeFilter(queryBuilder, prometheusCanaryScope, resourceType, queryConfig, customFilter); queryBuilder = addAvgQuery(queryBuilder); queryBuilder = addGroupByQuery(queryBuilder, queryConfig); log.debug("query={}", queryBuilder); return queryBuilder.toString(); } }
private static StringBuilder addGroupByQuery(StringBuilder queryBuilder, PrometheusCanaryMetricSetQueryConfig queryConfig) { List<String> groupByFields = queryConfig.getGroupByFields(); if (!CollectionUtils.isEmpty(groupByFields)) { queryBuilder.append(" by ("); String sep = ""; for (String elem : groupByFields) { queryBuilder.append(sep); queryBuilder.append(elem); sep = ","; } queryBuilder.append(")"); } return queryBuilder; }
String projectId = prometheusCanaryScope.getProject(); String location = prometheusCanaryScope.getLocation(); List<String> filters = queryConfig.getLabelBindings(); if (filters == null) { filters = new ArrayList<>();