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.
This commit is contained in:
wood chen 2024-12-04 11:57:08 +08:00
parent a009dd04a8
commit 60b115438a

View File

@ -32,7 +32,7 @@ type HistoricalMetrics struct {
TotalErrors int64 `json:"total_errors"` TotalErrors int64 `json:"total_errors"`
TotalBytes int64 `json:"total_bytes"` TotalBytes int64 `json:"total_bytes"`
ErrorRate float64 `json:"error_rate"` ErrorRate float64 `json:"error_rate"`
AvgLatency int64 `json:"avg_latency"` AvgLatency float64 `json:"avg_latency"`
} }
type PathMetrics struct { type PathMetrics struct {
@ -247,7 +247,7 @@ func (db *MetricsDB) GetRecentMetrics(hours int) ([]HistoricalMetrics, error) {
SUM(total_requests) as total_requests, SUM(total_requests) as total_requests,
SUM(total_errors) as total_errors, SUM(total_errors) as total_errors,
SUM(total_bytes) as total_bytes, 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 FROM metrics_history
WHERE timestamp >= datetime('now', '-' || ?2 || ' hours') WHERE timestamp >= datetime('now', '-' || ?2 || ' hours')
GROUP BY group_time GROUP BY group_time