fix(metrics): casting is the name of the game
This commit is contained in:
parent
1b4573f658
commit
4b5ee94724
|
|
@ -482,14 +482,14 @@ impl Database {
|
||||||
COALESCE(COUNT(*)::INTEGER, 0) as total_sessions,
|
COALESCE(COUNT(*)::INTEGER, 0) as total_sessions,
|
||||||
COALESCE(COUNT(*) FILTER (WHERE s.status = 'completed')::INTEGER, 0) as successful_sessions,
|
COALESCE(COUNT(*) FILTER (WHERE s.status = 'completed')::INTEGER, 0) as successful_sessions,
|
||||||
COALESCE(COUNT(*) FILTER (WHERE s.status = 'failed')::INTEGER, 0) as failed_sessions,
|
COALESCE(COUNT(*) FILTER (WHERE s.status = 'failed')::INTEGER, 0) as failed_sessions,
|
||||||
COALESCE(SUM(s.files_processed), 0)::BIGINT as total_files_processed,
|
COALESCE(SUM(s.files_processed)::BIGINT, 0) as total_files_processed,
|
||||||
COALESCE(SUM(s.total_bytes_processed), 0)::BIGINT as total_bytes_processed,
|
COALESCE(SUM(s.total_bytes_processed)::BIGINT, 0) as total_bytes_processed,
|
||||||
COALESCE(AVG(s.duration_ms / 1000.0), 0.0)::DOUBLE PRECISION as avg_session_duration_sec,
|
COALESCE(AVG(s.duration_ms / 1000.0)::DOUBLE PRECISION, 0.0) as avg_session_duration_sec,
|
||||||
COALESCE(AVG(s.processing_rate_files_per_sec), 0.0)::DOUBLE PRECISION as avg_processing_rate,
|
COALESCE(AVG(s.processing_rate_files_per_sec)::DOUBLE PRECISION, 0.0) as avg_processing_rate,
|
||||||
COALESCE(SUM(s.total_http_requests), 0)::BIGINT as total_http_requests,
|
COALESCE(SUM(s.total_http_requests)::BIGINT, 0) as total_http_requests,
|
||||||
CASE
|
CASE
|
||||||
WHEN SUM(s.total_http_requests) > 0
|
WHEN SUM(s.total_http_requests)::BIGINT > 0
|
||||||
THEN (SUM(s.successful_requests)::DOUBLE PRECISION / SUM(s.total_http_requests) * 100.0)
|
THEN (SUM(s.successful_requests)::BIGINT::DOUBLE PRECISION / SUM(s.total_http_requests)::BIGINT * 100.0)
|
||||||
ELSE 0.0
|
ELSE 0.0
|
||||||
END as request_success_rate,
|
END as request_success_rate,
|
||||||
COALESCE((SELECT AVG(duration_ms) FROM webdav_request_metrics r
|
COALESCE((SELECT AVG(duration_ms) FROM webdav_request_metrics r
|
||||||
|
|
|
||||||
|
|
@ -670,20 +670,20 @@ async fn collect_webdav_metrics(state: &Arc<AppState>) -> Result<WebDAVMetrics,
|
||||||
COUNT(*) as total_sessions,
|
COUNT(*) as total_sessions,
|
||||||
COUNT(*) FILTER (WHERE status = 'completed') as successful_sessions,
|
COUNT(*) FILTER (WHERE status = 'completed') as successful_sessions,
|
||||||
COUNT(*) FILTER (WHERE status = 'failed') as failed_sessions,
|
COUNT(*) FILTER (WHERE status = 'failed') as failed_sessions,
|
||||||
COALESCE(SUM(files_processed), 0) as total_files_processed,
|
COALESCE(SUM(files_processed)::BIGINT, 0) as total_files_processed,
|
||||||
COALESCE(SUM(total_bytes_processed), 0) as total_bytes_processed,
|
COALESCE(SUM(total_bytes_processed)::BIGINT, 0) as total_bytes_processed,
|
||||||
COALESCE(AVG(duration_ms / 1000.0), 0) as avg_session_duration_sec,
|
COALESCE(AVG(duration_ms / 1000.0)::DOUBLE PRECISION, 0) as avg_session_duration_sec,
|
||||||
COALESCE(AVG(processing_rate_files_per_sec), 0) as avg_processing_rate,
|
COALESCE(AVG(processing_rate_files_per_sec)::DOUBLE PRECISION, 0) as avg_processing_rate,
|
||||||
COALESCE(SUM(total_http_requests), 0) as total_http_requests,
|
COALESCE(SUM(total_http_requests)::BIGINT, 0) as total_http_requests,
|
||||||
CASE
|
CASE
|
||||||
WHEN SUM(total_http_requests) > 0
|
WHEN SUM(total_http_requests)::BIGINT > 0
|
||||||
THEN (SUM(successful_requests)::DECIMAL / SUM(total_http_requests) * 100)
|
THEN (SUM(successful_requests)::BIGINT::DECIMAL / SUM(total_http_requests)::BIGINT * 100)::DOUBLE PRECISION
|
||||||
ELSE 0
|
ELSE 0::DOUBLE PRECISION
|
||||||
END as request_success_rate,
|
END as request_success_rate,
|
||||||
COALESCE(
|
COALESCE(
|
||||||
(SELECT AVG(duration_ms) FROM webdav_request_metrics
|
(SELECT AVG(duration_ms)::DOUBLE PRECISION FROM webdav_request_metrics
|
||||||
WHERE started_at > NOW() - INTERVAL '24 hours'),
|
WHERE started_at > NOW() - INTERVAL '24 hours'),
|
||||||
0
|
0::DOUBLE PRECISION
|
||||||
) as avg_request_duration_ms
|
) as avg_request_duration_ms
|
||||||
FROM webdav_sync_sessions
|
FROM webdav_sync_sessions
|
||||||
WHERE started_at > NOW() - INTERVAL '24 hours'
|
WHERE started_at > NOW() - INTERVAL '24 hours'
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue