Request edge metrics only if prometheus metrics data is empty
Signed-off-by: zhu733756 <talonzhu@yunify.com>
This commit is contained in:
@@ -115,18 +115,27 @@ func (mo monitoringOperator) GetNamedMetrics(metrics []string, time time.Time, o
|
|||||||
ress := mo.prometheus.GetNamedMetrics(metrics, time, opt)
|
ress := mo.prometheus.GetNamedMetrics(metrics, time, opt)
|
||||||
|
|
||||||
if mo.metricsserver != nil {
|
if mo.metricsserver != nil {
|
||||||
mr := mo.metricsserver.GetNamedMetrics(metrics, time, opt)
|
|
||||||
|
|
||||||
//Merge edge node metrics data
|
//Merge edge node metrics data
|
||||||
edgeMetrics := make(map[string]monitoring.MetricData)
|
edgeMetrics := make(map[string]monitoring.MetricData)
|
||||||
for _, metric := range mr {
|
|
||||||
edgeMetrics[metric.MetricName] = metric.MetricData
|
|
||||||
}
|
|
||||||
|
|
||||||
for i, metric := range ress {
|
for i, ressMetric := range ress {
|
||||||
if val, ok := edgeMetrics[metric.MetricName]; ok {
|
metircName := ressMetric.MetricName
|
||||||
ress[i].MetricData.MetricValues = append(ress[i].MetricData.MetricValues, val.MetricValues...)
|
ressMetricValues := ressMetric.MetricData.MetricValues
|
||||||
|
if len(ressMetricValues) == 0 {
|
||||||
|
// this metric has no prometheus metrics data
|
||||||
|
if len(edgeMetrics) == 0 {
|
||||||
|
// start to request monintoring metricsApi data
|
||||||
|
mr := mo.metricsserver.GetNamedMetrics(metrics, time, opt)
|
||||||
|
for _, mrMetric := range mr {
|
||||||
|
edgeMetrics[mrMetric.MetricName] = mrMetric.MetricData
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if val, ok := edgeMetrics[metircName]; ok {
|
||||||
|
ress[i].MetricData.MetricValues = append(ress[i].MetricData.MetricValues, val.MetricValues...)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -137,17 +146,25 @@ func (mo monitoringOperator) GetNamedMetricsOverTime(metrics []string, start, en
|
|||||||
ress := mo.prometheus.GetNamedMetricsOverTime(metrics, start, end, step, opt)
|
ress := mo.prometheus.GetNamedMetricsOverTime(metrics, start, end, step, opt)
|
||||||
|
|
||||||
if mo.metricsserver != nil {
|
if mo.metricsserver != nil {
|
||||||
mr := mo.metricsserver.GetNamedMetricsOverTime(metrics, start, end, step, opt)
|
|
||||||
|
|
||||||
//Merge edge node metrics data
|
//Merge edge node metrics data
|
||||||
edgeMetrics := make(map[string]monitoring.MetricData)
|
edgeMetrics := make(map[string]monitoring.MetricData)
|
||||||
for _, metric := range mr {
|
|
||||||
edgeMetrics[metric.MetricName] = metric.MetricData
|
|
||||||
}
|
|
||||||
|
|
||||||
for i, metric := range ress {
|
for i, ressMetric := range ress {
|
||||||
if val, ok := edgeMetrics[metric.MetricName]; ok {
|
metircName := ressMetric.MetricName
|
||||||
ress[i].MetricData.MetricValues = append(ress[i].MetricData.MetricValues, val.MetricValues...)
|
ressMetricValues := ressMetric.MetricData.MetricValues
|
||||||
|
if len(ressMetricValues) == 0 {
|
||||||
|
// this metric has no prometheus metrics data
|
||||||
|
if len(edgeMetrics) == 0 {
|
||||||
|
// start to request monintoring metricsApi data
|
||||||
|
mr := mo.metricsserver.GetNamedMetricsOverTime(metrics, start, end, step, opt)
|
||||||
|
for _, mrMetric := range mr {
|
||||||
|
edgeMetrics[mrMetric.MetricName] = mrMetric.MetricData
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if val, ok := edgeMetrics[metircName]; ok {
|
||||||
|
ress[i].MetricData.MetricValues = append(ress[i].MetricData.MetricValues, val.MetricValues...)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user