0507dd6065
ci / backend (push) Failing after 0s
ci / static (push) Failing after 8s
Build & Test with Secrets / build (push) Failing after 1s
ci / frontend (push) Failing after 1m25s
Build & Test with Secrets / security-scan (push) Failing after 5s
ci / publish (push) Has been skipped
Build & Test with Secrets / frontend (push) Failing after 1m26s
Build & Test with Secrets / notification (push) Failing after 1s
deploy / deploy (push) Failing after 1m47s
deploy / notify (push) Successful in 1s
ci.yml publish step generates kartsell-release.zip for local deployment. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
90 lines
2.8 KiB
SQL
90 lines
2.8 KiB
SQL
-- K-ArtSell Aegis Gate 5: Shadow Run Monitoring
|
|
-- Job 893: 252+ trading days validation
|
|
-- Usage: psql -h localhost -U kartsell -d kartsell -f monitor-shadow-run.sql
|
|
|
|
-- Get overall job status
|
|
SELECT
|
|
job_id,
|
|
correlation_id,
|
|
status,
|
|
created_at,
|
|
updated_at,
|
|
EXTRACT(EPOCH FROM (updated_at - created_at)) / 3600 as duration_hours,
|
|
ROUND(100.0 * EXTRACT(EPOCH FROM (updated_at - created_at)) /
|
|
(252 * 24), 2) as estimated_progress_percent
|
|
FROM shared.outbox_jobs
|
|
WHERE job_id = '00000000-0000-0000-0000-000000000893'
|
|
LIMIT 1;
|
|
|
|
-- Shadow run execution phases
|
|
SELECT
|
|
phase_id,
|
|
phase_name,
|
|
started_at,
|
|
completed_at,
|
|
status,
|
|
EXTRACT(EPOCH FROM (COALESCE(completed_at, now()) - started_at)) / 3600 as phase_duration_hours,
|
|
CASE
|
|
WHEN completed_at IS NOT NULL THEN 'COMPLETED'
|
|
WHEN started_at IS NOT NULL THEN 'IN PROGRESS'
|
|
ELSE 'PENDING'
|
|
END as current_status
|
|
FROM model_operations.shadow_run_phases
|
|
WHERE shadow_run_id = '00000000-0000-0000-0000-000000000893'
|
|
ORDER BY phase_sequence;
|
|
|
|
-- Data validation metrics
|
|
SELECT
|
|
validation_type,
|
|
COUNT(*) as total_validations,
|
|
SUM(CASE WHEN status = 'passed' THEN 1 ELSE 0 END) as passed,
|
|
SUM(CASE WHEN status = 'failed' THEN 1 ELSE 0 END) as failed,
|
|
SUM(CASE WHEN status = 'warning' THEN 1 ELSE 0 END) as warnings,
|
|
ROUND(100.0 * SUM(CASE WHEN status = 'passed' THEN 1 ELSE 0 END) /
|
|
NULLIF(COUNT(*), 0), 2) as success_rate_percent
|
|
FROM model_operations.shadow_run_validations
|
|
WHERE shadow_run_id = '00000000-0000-0000-0000-000000000893'
|
|
GROUP BY validation_type
|
|
ORDER BY validation_type;
|
|
|
|
-- Performance metrics (Sharpe, PBO, etc.)
|
|
SELECT
|
|
metric_name,
|
|
metric_value,
|
|
lower_bound,
|
|
upper_bound,
|
|
CASE
|
|
WHEN metric_value::numeric >= lower_bound::numeric AND
|
|
metric_value::numeric <= upper_bound::numeric THEN '✅ PASS'
|
|
ELSE '❌ FAIL'
|
|
END as status,
|
|
measurement_timestamp
|
|
FROM model_operations.shadow_run_metrics
|
|
WHERE shadow_run_id = '00000000-0000-0000-0000-000000000893'
|
|
ORDER BY measurement_timestamp DESC
|
|
LIMIT 20;
|
|
|
|
-- Recent log entries
|
|
SELECT
|
|
timestamp,
|
|
log_level,
|
|
message,
|
|
EXTRACT(EPOCH FROM (now() - timestamp)) / 60 as minutes_ago
|
|
FROM model_operations.shadow_run_logs
|
|
WHERE shadow_run_id = '00000000-0000-0000-0000-000000000893'
|
|
ORDER BY timestamp DESC
|
|
LIMIT 50;
|
|
|
|
-- Calculate estimated completion
|
|
WITH job_start AS (
|
|
SELECT created_at FROM shared.outbox_jobs
|
|
WHERE job_id = '00000000-0000-0000-0000-000000000893'
|
|
)
|
|
SELECT
|
|
CONCAT('Shadow Run Gate 5: ',
|
|
EXTRACT(DAY FROM (now() - job_start.created_at))::text, ' days elapsed') as elapsed,
|
|
'Estimated completion: 50-90 days from start' as estimate,
|
|
job_start.created_at as started_at,
|
|
(job_start.created_at + INTERVAL '90 days') as max_completion_date
|
|
FROM job_start;
|