From 60b115438a8a107b85b8dfc748333db53cf71450 Mon Sep 17 00:00:00 2001 From: wood chen Date: Wed, 4 Dec 2024 11:57:08 +0800 Subject: [PATCH] fix(metrics): update AvgLatency type and improve SQL query for metrics retrieval - Changed AvgLatency field type from int64 to float64 in HistoricalMetrics for better precision in latency measurements. - Updated SQL query in GetRecentMetrics to ensure proper averaging of AvgLatency by casting to float, enhancing accuracy in metrics reporting. - These changes improve the reliability of metrics data and ensure more accurate performance monitoring. --- internal/models/metrics.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/models/metrics.go b/internal/models/metrics.go index b7d06b9..c65a656 100644 --- a/internal/models/metrics.go +++ b/internal/models/metrics.go @@ -32,7 +32,7 @@ type HistoricalMetrics struct { TotalErrors int64 `json:"total_errors"` TotalBytes int64 `json:"total_bytes"` ErrorRate float64 `json:"error_rate"` - AvgLatency int64 `json:"avg_latency"` + AvgLatency float64 `json:"avg_latency"` } type PathMetrics struct { @@ -247,10 +247,10 @@ func (db *MetricsDB) GetRecentMetrics(hours int) ([]HistoricalMetrics, error) { SUM(total_requests) as total_requests, SUM(total_errors) as total_errors, SUM(total_bytes) as total_bytes, - AVG(avg_latency) as avg_latency + CAST(AVG(CAST(avg_latency AS FLOAT)) AS FLOAT) as avg_latency FROM metrics_history WHERE timestamp >= datetime('now', '-' || ?2 || ' hours') - GROUP BY group_time + GROUP BY group_time ORDER BY group_time DESC ) SELECT * FROM grouped_metrics