Jae Wilson @DataCrew
Domo

DomoStats + Python - How much do parent tiles impact tile Performance?

December 11, 2023

Hook

When a Magic ETL dataflow is slow, the bottleneck usually isn't where you think it is — and without execution history data, you're guessing. This post walks through how to use Python and DomoLibrary to programmatically surface which tiles are slow and, more importantly, why.

Why It Matters

Knowing a dataflow is slow is easy. Knowing which tile is slow is harder. Knowing whether that tile is slow because of its own logic or because it's waiting on a slow parent tile is harder still. Without querying execution history across runs, you can't distinguish between a tile that's genuinely expensive and one that's just downstream of a problem. This approach lets you build a dataset that answers that question at scale — across every dataflow in your Domo instance.

What You'll Learn

  • Query Domo's dataflow execution history API to retrieve per-tile run durations
  • Traverse tile dependency graphs to identify parent-child relationships in Magic ETL
  • Differentiate between tile self-cost and inherited latency from upstream parents
  • Extend DomoLibrary's DomoDataflow class with new methods for versioning and history retrieval
  • Build a reusable dataset that ranks tiles by performance impact across multiple executions