Created
September 4, 2026 05:26
-
-
Save fuyi/ec87ea1e9f06d34ae2e082412184dd18 to your computer and use it in GitHub Desktop.
heavy_marts Production Gantt — 55 models, ~29 min (pod hyperion-dbt-heavy-marts-29807975)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <meta charset="utf-8"> | |
| <title>heavy_marts Production Gantt</title> | |
| <style> | |
| body { font-family: monospace; background: #1a1a2e; color: #eee; margin: 20px; } | |
| h2 { color: #a0c4ff; margin-bottom: 4px; } | |
| .subtitle { color: #666; font-size: 12px; margin-bottom: 16px; } | |
| svg { overflow: visible; } | |
| .bar-ok { fill: #4cc9f0; opacity: 0.88; } | |
| .bar-error { fill: #ff4444; opacity: 0.88; } | |
| .bar:hover { opacity: 1; cursor: default; } | |
| .dep-line { stroke: #555; stroke-width: 1; fill: none; stroke-dasharray: 3,3; } | |
| .model-label { font-size: 11px; fill: #aaa; text-anchor: end; } | |
| .time-label { font-size: 10px; fill: #555; } | |
| </style> | |
| </head> | |
| <body> | |
| <h2>heavy_marts — Production execution (2026-09-03 23:42 UTC)</h2> | |
| <div class="subtitle">55 models · ~29 min wall-clock</div> | |
| <canvas id="tooltip-canvas" style="display:none"></canvas> | |
| <div id="chart"></div> | |
| <p style="font-size:11px;color:#666"> | |
| <span style="color:#4cc9f0">■</span> success | |
| <span style="color:#ff4444">■</span> error | |
| <span style="color:#555">- - -</span> dependency | |
| </p> | |
| <script> | |
| const data = [{"model": "qc_data", "start": "2026-09-03T23:42:44.888000+00:00", "end": "2026-09-03T23:44:42.928000+00:00", "dur": 118.04, "status": "ok"}, {"model": "qc_reviewed_lead_results", "start": "2026-09-03T23:42:44.889000+00:00", "end": "2026-09-03T23:44:24.209000+00:00", "dur": 99.32, "status": "ok"}, {"model": "coaching_session_analysis_v3", "start": "2026-09-03T23:42:44.891000+00:00", "end": "2026-09-03T23:59:29.291000+00:00", "dur": 1004.4, "status": "ok"}, {"model": "int_axo_daily_user_core_skills_metric", "start": "2026-09-03T23:59:34.004000+00:00", "end": "2026-09-03T23:59:39.974000+00:00", "dur": 5.97, "status": "ok"}, {"model": "int_bonnier_daily_user_metrics", "start": "2026-09-03T23:59:34.007000+00:00", "end": "2026-09-03T23:59:35.537000+00:00", "dur": 1.53, "status": "ok"}, {"model": "int_cloudgruppen_daily_user_metrics", "start": "2026-09-03T23:59:34.009000+00:00", "end": "2026-09-04T00:01:58.419000+00:00", "dur": 144.41, "status": "ok"}, {"model": "int_axo_daily_user_disbursements", "start": "2026-09-03T23:59:34.010000+00:00", "end": "2026-09-03T23:59:45.250000+00:00", "dur": 11.24, "status": "ok"}, {"model": "int_aisa_daily_user_hitrate_metrics", "start": "2026-09-03T23:59:34.010000+00:00", "end": "2026-09-03T23:59:45.920000+00:00", "dur": 11.91, "status": "ok"}, {"model": "int_axo_daily_user_project_metrics", "start": "2026-09-03T23:59:34.010000+00:00", "end": "2026-09-04T00:00:10.370000+00:00", "dur": 36.36, "status": "ok"}, {"model": "int_daily_user_total_calls_metric", "start": "2026-09-03T23:59:34.012000+00:00", "end": "2026-09-04T00:00:13.132000+00:00", "dur": 39.12, "status": "ok"}, {"model": "int_axo_daily_user_order_percent_metric", "start": "2026-09-03T23:59:34.012000+00:00", "end": "2026-09-04T00:00:18.382000+00:00", "dur": 44.37, "status": "ok"}, {"model": "int_elskling_daily_user_metrics", "start": "2026-09-03T23:59:34.013000+00:00", "end": "2026-09-03T23:59:50.773000+00:00", "dur": 16.76, "status": "ok"}, {"model": "int_daily_user_offer_rate_mobil_metric", "start": "2026-09-03T23:59:34.013000+00:00", "end": "2026-09-04T00:02:31.863000+00:00", "dur": 177.85, "status": "ok"}, {"model": "int_daily_user_efficiency_metric", "start": "2026-09-03T23:59:34.013000+00:00", "end": "2026-09-04T00:07:25.443000+00:00", "dur": 471.43, "status": "ok"}, {"model": "int_axo_commission_score_per_session", "start": "2026-09-03T23:59:34.014000+00:00", "end": "2026-09-04T00:00:18.894000+00:00", "dur": 44.88, "status": "ok"}, {"model": "int_daily_user_sales_rate_metric", "start": "2026-09-03T23:59:34.014000+00:00", "end": "2026-09-04T00:01:35.264000+00:00", "dur": 121.25, "status": "ok"}, {"model": "int_innovative_sales_daily_user_metrics", "start": "2026-09-03T23:59:34.015000+00:00", "end": "2026-09-03T23:59:35.885000+00:00", "dur": 1.87, "status": "ok"}, {"model": "int_enklare_daily_user_metrics", "start": "2026-09-03T23:59:34.015000+00:00", "end": "2026-09-03T23:59:59.765000+00:00", "dur": 25.75, "status": "ok"}, {"model": "int_daily_user_offer_rate_metric", "start": "2026-09-03T23:59:34.015000+00:00", "end": "2026-09-04T00:01:05.195000+00:00", "dur": 91.18, "status": "ok"}, {"model": "int_daily_user_offer_rate_fixed_metric", "start": "2026-09-03T23:59:34.015000+00:00", "end": "2026-09-04T00:03:36.895000+00:00", "dur": 242.88, "status": "ok"}, {"model": "int_guldbrev_daily_user_metrics", "start": "2026-09-03T23:59:34.016000+00:00", "end": "2026-09-03T23:59:37.476000+00:00", "dur": 3.46, "status": "ok"}, {"model": "int_daily_user_qa_score_metric", "start": "2026-09-03T23:59:34.016000+00:00", "end": "2026-09-04T00:03:57.096000+00:00", "dur": 263.08, "status": "ok"}, {"model": "int_daily_user_revenue_rate_metric", "start": "2026-09-03T23:59:34.017000+00:00", "end": "2026-09-03T23:59:35.537000+00:00", "dur": 1.52, "status": "ok"}, {"model": "int_daily_user_solution_rate_metric", "start": "2026-09-03T23:59:34.017000+00:00", "end": "2026-09-04T00:02:34.547000+00:00", "dur": 180.53, "status": "ok"}, {"model": "int_fortis_adversus_lead_closures", "start": "2026-09-03T23:59:34.018000+00:00", "end": "2026-09-03T23:59:37.008000+00:00", "dur": 2.99, "status": "ok"}, {"model": "int_lendo_daily_user_metrics", "start": "2026-09-03T23:59:34.018000+00:00", "end": "2026-09-03T23:59:37.708000+00:00", "dur": 3.69, "status": "ok"}, {"model": "int_foundever_daily_user_underkpi_metrics", "start": "2026-09-03T23:59:34.018000+00:00", "end": "2026-09-03T23:59:52.748000+00:00", "dur": 18.73, "status": "ok"}, {"model": "int_lendo_daily_user_csat_metric", "start": "2026-09-03T23:59:34.018000+00:00", "end": "2026-09-04T00:00:26.338000+00:00", "dur": 52.32, "status": "ok"}, {"model": "int_elvy_daily_user_metrics", "start": "2026-09-03T23:59:34.018000+00:00", "end": "2026-09-04T00:00:34.858000+00:00", "dur": 60.84, "status": "ok"}, {"model": "int_fonero_daily_user_metrics", "start": "2026-09-03T23:59:34.021000+00:00", "end": "2026-09-04T00:01:06.781000+00:00", "dur": 92.76, "status": "ok"}, {"model": "int_foundever_daily_user_kpi_metrics", "start": "2026-09-03T23:59:34.022000+00:00", "end": "2026-09-03T23:59:51.092000+00:00", "dur": 17.07, "status": "ok"}, {"model": "int_enevo_daily_user_metrics", "start": "2026-09-03T23:59:34.022000+00:00", "end": "2026-09-04T00:00:26.702000+00:00", "dur": 52.68, "status": "ok"}, {"model": "int_foundever_daily_user_metrics", "start": "2026-09-03T23:59:34.022000+00:00", "end": "2026-09-04T00:00:52.112000+00:00", "dur": 78.09, "status": "ok"}, {"model": "int_foundever_sox_daily_user_metrics", "start": "2026-09-03T23:59:34.026000+00:00", "end": "2026-09-03T23:59:55.196000+00:00", "dur": 21.17, "status": "ok"}, {"model": "int_fjordkraft_daily_user_metrics", "start": "2026-09-03T23:59:34.497000+00:00", "end": "2026-09-04T00:00:16.457000+00:00", "dur": 41.96, "status": "ok"}, {"model": "int_maskineriet_telia_fwa_rate_metric", "start": "2026-09-03T23:59:35.540000+00:00", "end": "2026-09-04T00:00:17.600000+00:00", "dur": 42.06, "status": "ok"}, {"model": "int_neas_daily_user_metrics", "start": "2026-09-03T23:59:35.891000+00:00", "end": "2026-09-03T23:59:36.781000+00:00", "dur": 0.89, "status": "ok"}, {"model": "int_maskineriet_daily_user_metrics", "start": "2026-09-03T23:59:36.218000+00:00", "end": "2026-09-04T00:00:16.458000+00:00", "dur": 40.24, "status": "ok"}, {"model": "int_reducero_daily_user_metrics", "start": "2026-09-03T23:59:36.781000+00:00", "end": "2026-09-04T00:11:21.791000+00:00", "dur": 705.01, "status": "ok"}, {"model": "int_sambla_daily_user_metrics", "start": "2026-09-03T23:59:37.012000+00:00", "end": "2026-09-03T23:59:43.712000+00:00", "dur": 6.7, "status": "ok"}, {"model": "int_silentium_daily_user_metrics", "start": "2026-09-03T23:59:37.482000+00:00", "end": "2026-09-03T23:59:41.912000+00:00", "dur": 4.43, "status": "ok"}, {"model": "int_tele2_daily_user_metrics", "start": "2026-09-03T23:59:37.710000+00:00", "end": "2026-09-04T00:00:30.460000+00:00", "dur": 52.75, "status": "ok"}, {"model": "int_telenor_daily_user_metrics", "start": "2026-09-03T23:59:39.979000+00:00", "end": "2026-09-03T23:59:58.909000+00:00", "dur": 18.93, "status": "ok"}, {"model": "int_vkb_daily_user_metrics", "start": "2026-09-03T23:59:41.918000+00:00", "end": "2026-09-04T00:00:15.208000+00:00", "dur": 33.29, "status": "ok"}, {"model": "int_yabie_daily_user_metrics", "start": "2026-09-03T23:59:43.712000+00:00", "end": "2026-09-04T00:00:13.802000+00:00", "dur": 30.09, "status": "ok"}, {"model": "int_fortis_daily_user_metrics", "start": "2026-09-03T23:59:45.253000+00:00", "end": "2026-09-04T00:06:48.953000+00:00", "dur": 423.7, "status": "ok"}, {"model": "int_axo_daily_user_commission_score_metric", "start": "2026-09-04T00:00:18.896000+00:00", "end": "2026-09-04T00:00:19.066000+00:00", "dur": 0.17, "status": "ok"}, {"model": "session_qna_question_user_day", "start": "2026-09-04T00:11:26.441000+00:00", "end": "2026-09-04T00:11:41.371000+00:00", "dur": 14.93, "status": "ok"}, {"model": "qc_questions", "start": "2026-09-04T00:11:26.442000+00:00", "end": "2026-09-04T00:11:28.232000+00:00", "dur": 1.79, "status": "ok"}, {"model": "daily_user_metrics", "start": "2026-09-04T00:11:26.444000+00:00", "end": "2026-09-04T00:11:55.394000+00:00", "dur": 28.95, "status": "ok"}, {"model": "qc_question_flagged_report", "start": "2026-09-04T00:11:26.447000+00:00", "end": "2026-09-04T00:12:01.207000+00:00", "dur": 34.76, "status": "ok"}, {"model": "daily_team_metrics", "start": "2026-09-04T00:11:55.396000+00:00", "end": "2026-09-04T00:12:01.256000+00:00", "dur": 5.86, "status": "ok"}, {"model": "daily_organization_metrics", "start": "2026-09-04T00:11:55.397000+00:00", "end": "2026-09-04T00:11:57.277000+00:00", "dur": 1.88, "status": "ok"}, {"model": "organization_metric_info", "start": "2026-09-04T00:11:57.284000+00:00", "end": "2026-09-04T00:11:57.734000+00:00", "dur": 0.45, "status": "ok"}, {"model": "aa_organization_metric_info", "start": "2026-09-04T00:11:57.738000+00:00", "end": "2026-09-04T00:11:57.838000+00:00", "dur": 0.1, "status": "ok"}]; | |
| const deps = {"daily_organization_metrics": ["daily_user_metrics"], "int_axo_daily_user_commission_score_metric": ["int_axo_commission_score_per_session"], "int_fortis_daily_user_metrics": ["int_fortis_adversus_lead_closures"], "daily_team_metrics": ["daily_user_metrics"], "aa_organization_metric_info": ["organization_metric_info"], "daily_user_metrics": ["int_daily_user_offer_rate_metric", "int_daily_user_offer_rate_mobil_metric", "int_daily_user_offer_rate_fixed_metric", "int_daily_user_total_calls_metric", "int_daily_user_qa_score_metric", "int_daily_user_revenue_rate_metric", "int_daily_user_sales_rate_metric", "int_axo_daily_user_order_percent_metric", "int_axo_daily_user_project_metrics", "int_axo_daily_user_disbursements", "int_axo_daily_user_core_skills_metric", "int_axo_daily_user_commission_score_metric", "int_daily_user_efficiency_metric", "int_daily_user_solution_rate_metric", "int_innovative_sales_daily_user_metrics", "int_sambla_daily_user_metrics", "int_vkb_daily_user_metrics", "int_guldbrev_daily_user_metrics", "int_bonnier_daily_user_metrics", "int_lendo_daily_user_metrics", "int_enklare_daily_user_metrics", "int_elskling_daily_user_metrics", "int_lendo_daily_user_csat_metric", "int_maskineriet_daily_user_metrics", "int_maskineriet_telia_fwa_rate_metric", "int_neas_daily_user_metrics", "int_fjordkraft_daily_user_metrics", "int_foundever_daily_user_metrics", "int_foundever_sox_daily_user_metrics", "int_foundever_daily_user_kpi_metrics", "int_foundever_daily_user_underkpi_metrics", "int_yabie_daily_user_metrics", "int_telenor_daily_user_metrics", "int_elvy_daily_user_metrics", "int_fonero_daily_user_metrics", "int_aisa_daily_user_hitrate_metrics", "int_cloudgruppen_daily_user_metrics", "int_reducero_daily_user_metrics", "int_enevo_daily_user_metrics", "int_silentium_daily_user_metrics", "int_tele2_daily_user_metrics", "int_fortis_daily_user_metrics"], "organization_metric_info": ["daily_organization_metrics"]}; | |
| data.sort((a,b) => new Date(a.start)-new Date(b.start)); | |
| const runStart = new Date(data[0].start).getTime(); | |
| const runEnd = Math.max(...data.map(d=>new Date(d.end).getTime())); | |
| const totalMs = runEnd - runStart; | |
| const LABEL_W = 340, BAR_H = 16, ROW_H = 20, TOP = 30, PX = 1200/(totalMs/1000); | |
| const W = LABEL_W + 1200 + 20; | |
| const H = TOP + data.length * ROW_H + 10; | |
| // map model -> row index | |
| const rowIndex = {}; | |
| data.forEach((d,i) => rowIndex[d.model] = i); | |
| const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); | |
| svg.setAttribute('width', W); | |
| svg.setAttribute('height', H); | |
| svg.style.display = 'block'; | |
| // Time ticks | |
| for (let s = 0; s <= totalMs/1000; s += 300) { | |
| const x = LABEL_W + s*PX; | |
| const tick = document.createElementNS('http://www.w3.org/2000/svg','line'); | |
| tick.setAttribute('x1', x); tick.setAttribute('y1', TOP-10); | |
| tick.setAttribute('x2', x); tick.setAttribute('y2', H); | |
| tick.setAttribute('stroke','#222'); tick.setAttribute('stroke-width','1'); | |
| svg.appendChild(tick); | |
| const lbl = document.createElementNS('http://www.w3.org/2000/svg','text'); | |
| lbl.setAttribute('x', x); lbl.setAttribute('y', TOP-14); | |
| lbl.setAttribute('class','time-label'); lbl.setAttribute('text-anchor','middle'); | |
| lbl.textContent = Math.round(s/60)+'m'; | |
| svg.appendChild(lbl); | |
| } | |
| // Dependency lines | |
| Object.entries(deps).forEach(([model, parents]) => { | |
| const toRow = rowIndex[model]; | |
| if (toRow === undefined) return; | |
| const toY = TOP + toRow*ROW_H + BAR_H/2; | |
| const toX = LABEL_W + ((new Date(data[toRow].start).getTime()-runStart)/1000)*PX; | |
| parents.forEach(parent => { | |
| const fromRow = rowIndex[parent]; | |
| if (fromRow === undefined) return; | |
| const fromY = TOP + fromRow*ROW_H + BAR_H/2; | |
| const fromX = LABEL_W + ((new Date(data[fromRow].end).getTime()-runStart)/1000)*PX; | |
| const path = document.createElementNS('http://www.w3.org/2000/svg','path'); | |
| const mx = (fromX + toX)/2; | |
| path.setAttribute('d', `M${fromX},${fromY} C${mx},${fromY} ${mx},${toY} ${toX},${toY}`); | |
| path.setAttribute('class','dep-line'); | |
| svg.appendChild(path); | |
| }); | |
| }); | |
| // Bars and labels | |
| data.forEach((d,i) => { | |
| const y = TOP + i*ROW_H; | |
| const x = LABEL_W + ((new Date(d.start).getTime()-runStart)/1000)*PX; | |
| const w = Math.max(3, ((new Date(d.end).getTime()-new Date(d.start).getTime())/1000)*PX); | |
| const lbl = document.createElementNS('http://www.w3.org/2000/svg','text'); | |
| lbl.setAttribute('x', LABEL_W-4); lbl.setAttribute('y', y+BAR_H-3); | |
| lbl.setAttribute('class','model-label'); | |
| lbl.textContent = d.model; | |
| svg.appendChild(lbl); | |
| const rect = document.createElementNS('http://www.w3.org/2000/svg','rect'); | |
| rect.setAttribute('x', x); rect.setAttribute('y', y); | |
| rect.setAttribute('width', w); rect.setAttribute('height', BAR_H); | |
| rect.setAttribute('rx', 2); | |
| rect.setAttribute('class', 'bar bar-' + d.status); | |
| rect.innerHTML = `<title>${d.model} — ${d.dur.toFixed(1)}s</title>`; | |
| svg.appendChild(rect); | |
| }); | |
| document.getElementById('chart').appendChild(svg); | |
| </script> | |
| </body> | |
| </html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment