diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchDynamicChartAggregatorInterface.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchDynamicChartAggregatorInterface.java index c5c58006f92..e7f6cc3f558 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchDynamicChartAggregatorInterface.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchDynamicChartAggregatorInterface.java @@ -317,7 +317,8 @@ public interface ElasticSearchDynamicChartAggregatorInterface { return new DataInsightCustomChartResult() .withCount(value) .withDay(Double.valueOf(key)) - .withGroup(group); + .withGroup(group) + .withMetric(metric); return new DataInsightCustomChartResult() .withCount(value) .withGroup(group) diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchLineChartAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchLineChartAggregator.java index ffbf4c55f91..21f3257b266 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchLineChartAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchLineChartAggregator.java @@ -145,11 +145,17 @@ public class ElasticSearchLineChartAggregator ParsedTerms parsedTerms = (ParsedTerms) arg; for (Terms.Bucket bucket : parsedTerms.getBuckets()) { for (Aggregation subArg : bucket.getAggregations()) { + String group; + if (lineChart.getMetrics().size() > 1) { + group = bucket.getKeyAsString() + " - " + getMetricName(lineChart, subArg.getName()); + } else { + group = bucket.getKeyAsString(); + } diChartResults.addAll( processAggregations( List.of(subArg), metricFormulaHolderInternal.get(subArg.getName()).formula, - bucket.getKeyAsString(), + group, metricFormulaHolderInternal.get(subArg.getName()).holders, getMetricName(lineChart, subArg.getName()))); } @@ -165,11 +171,15 @@ public class ElasticSearchLineChartAggregator metricFormulaHolder.get(aggregationList.get(i).getName()) == null ? new MetricFormulaHolder() : metricFormulaHolderInternal.get(aggregationList.get(i).getName()); + String group = null; + if (lineChart.getMetrics().size() > 1) { + group = getMetricName(lineChart, aggregationList.get(i).getName()); + } List results = processAggregations( List.of(aggregationList.get(i)), formulaHolder.formula, - null, + group, formulaHolder.holders, getMetricName(lineChart, aggregationList.get(i).getName())); diChartResults.addAll(results); diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchDynamicChartAggregatorInterface.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchDynamicChartAggregatorInterface.java index d23589ae22c..56ae550a08c 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchDynamicChartAggregatorInterface.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchDynamicChartAggregatorInterface.java @@ -316,7 +316,8 @@ public interface OpenSearchDynamicChartAggregatorInterface { return new DataInsightCustomChartResult() .withCount(value) .withDay(Double.valueOf(key)) - .withGroup(group); + .withGroup(group) + .withMetric(metric); return new DataInsightCustomChartResult() .withCount(value) .withGroup(group) diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchLineChartAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchLineChartAggregator.java index 0e432a4c4e5..9aecb9a7072 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchLineChartAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchLineChartAggregator.java @@ -144,11 +144,17 @@ public class OpenSearchLineChartAggregator implements OpenSearchDynamicChartAggr ParsedTerms parsedTerms = (ParsedTerms) arg; for (Terms.Bucket bucket : parsedTerms.getBuckets()) { for (Aggregation subArg : bucket.getAggregations()) { + String group; + if (lineChart.getMetrics().size() > 1) { + group = bucket.getKeyAsString() + " - " + getMetricName(lineChart, subArg.getName()); + } else { + group = bucket.getKeyAsString(); + } diChartResults.addAll( processAggregations( List.of(subArg), metricFormulaHolderInternal.get(subArg.getName()).formula, - bucket.getKeyAsString(), + group, metricFormulaHolderInternal.get(subArg.getName()).holders, getMetricName(lineChart, subArg.getName()))); } @@ -164,11 +170,15 @@ public class OpenSearchLineChartAggregator implements OpenSearchDynamicChartAggr metricFormulaHolderInternal.get(aggregationList.get(i).getName()) == null ? new MetricFormulaHolder() : metricFormulaHolderInternal.get(aggregationList.get(i).getName()); + String group = null; + if (lineChart.getMetrics().size() > 1) { + group = getMetricName(lineChart, aggregationList.get(i).getName()); + } List results = processAggregations( List.of(aggregationList.get(i)), formulaHolder.formula, - null, + group, formulaHolder.holders, getMetricName(lineChart, aggregationList.get(i).getName())); diChartResults.addAll(results);