Training jobs are short-lived K8s Jobs that can't be reliably scraped by Prometheus. This adds a TrainingMetricsPusher that pushes epoch-level metrics (loss, accuracy, throughput, gradient health, checkpoints) to the Pushgateway so they persist for Prometheus to scrape. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>