Files
wehub-resource-sync 4b6817381b
CI (OpenClaw E2E) / openclaw test (push) Has been cancelled
CI / coverage-report (push) Has been cancelled
CI / test-kubernetes (push) Has been cancelled
CI / should-run-thorough (push) Has been cancelled
CI / test-thorough (cloudwatch-demo) (push) Has been cancelled
CI / test-thorough (flink-ecs) (push) Has been cancelled
CI / test-thorough (upstream-lambda) (push) Has been cancelled
CI / test-thorough (prefect-ecs-fargate) (push) Has been cancelled
Release / build-binaries (zip, opensre.exe, onefile, windows-latest, windows-x64) (push) Has been cancelled
Benchmark image — build + push to ECR (any adapter) / build + push (push) Has been cancelled
CI / quality (ubuntu-latest) (push) Has been cancelled
CI / test (tools-runtime) (push) Has been cancelled
CI / test (e2e-general) (push) Has been cancelled
CI / test (cli-runtime) (push) Has been cancelled
CI / test (e2e-provider-and-openclaw) (push) Has been cancelled
CI / test (integrations-and-misc) (push) Has been cancelled
Release / verify (push) Has been cancelled
Release / build-python-dist (push) Has been cancelled
Release / build-binaries (tar.gz, opensre, onedir, macos-15-intel, darwin-x64) (push) Has been cancelled
Release / build-binaries (tar.gz, opensre, onedir, macos-latest, darwin-arm64) (push) Has been cancelled
Release / build-binaries (tar.gz, opensre, onedir, ubuntu-22.04, linux-x64) (push) Has been cancelled
Release / publish-release (push) Has been cancelled
Release / publish-main-release (push) Has been cancelled
Interactive Shell Live (PR + post-merge) / turn-checks (no-LLM) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Interactive Shell Live (PR + post-merge) / turn-live shard ${{ matrix.shard_index }} (push) Has been cancelled
Release / prepare (push) Has been cancelled
Release / build-binaries (tar.gz, opensre, onedir, ubuntu-22.04-arm, linux-arm64) (push) Has been cancelled
Synthetic Deterministic Tests / Synthetic offline (deterministic) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:10:45 +08:00

225 lines
7.5 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: 'Data model'
sidebarTitle: 'Data model'
description: 'How Tracer structures execution data'
---
Tracer organizes execution data into a small set of core entities that reflect how real workloads run: runs, tasks, tools, containers, and hosts.
This data model allows Tracer to map low-level execution signals to the way teams reason about pipelines and infrastructure, without relying on workflow metadata, logs, or application instrumentation.
This page describes those entities and how they relate to each other.
## Overview
At a high level:
- Tracer/collect observes execution events at the operating system level
- These events are correlated into structured entities
- Higher-level products (Tracer/tune and Tracer/sweep) operate on this shared model
<CardGroup cols={3}>
<Card title="Workflow-agnostic" icon="puzzle-piece">
Works with any orchestrator or scheduler
</Card>
<Card title="Stable" icon="shield-check">
Consistent across environments
</Card>
<Card title="Expressive" icon="diagram-project">
Represents complex, multi-process execution
</Card>
</CardGroup>
## Core entities
### Runs
A run represents a single execution of a pipeline or workload.
A run typically corresponds to:
- A workflow execution (for example, a Nextflow or Snakemake run)
- A batch job or experiment
- A repeated invocation of the same pipeline configuration
Runs provide the top-level boundary for grouping execution data and comparing behavior across executions.
### Tasks
A task represents a logical unit of work within a run.
Tasks often correspond to:
- Workflow steps or processes
- Batch jobs or array jobs
- Scheduled units of execution
A task may:
- Run on one or multiple hosts
- Execute sequentially or in parallel
- Spawn multiple tools and subprocesses
Tasks are the primary unit used for performance comparison and tuning.
### Tools
A tool represents an executable program invoked during a task.
Examples include:
- Native binaries (for example, bwa, samtools)
- Interpreters and scripts (python, bash)
- JVM-based tools
- Short-lived helper binaries and child processes
Tracer identifies tools based on observed process execution, not logs or configuration. Even tools that produce no logs are captured as first-class entities.
### Containers
A container represents an execution context defined by container runtimes or Linux namespaces.
Containers:
- Group related processes
- Provide isolation boundaries
- May contain multiple tools and subprocesses
Tracer does not require containers to be present, but when they are used, container context is preserved and reflected in the data model.
### Hosts
A host represents a physical or virtual machine where execution occurs.
Hosts include:
- Cloud instances (for example, EC2)
- On-premises nodes
- Batch or HPC worker nodes
Host-level data provides the infrastructure context needed to understand scheduling behavior, resource contention, and idle time.
## Relationships between entities
The entities form a hierarchy:
- A run contains one or more tasks
- A task invokes one or more tools
- Tools execute within a container or directly on a host
- All execution ultimately occurs on a host
This structure allows Tracer to:
- Attribute resource usage accurately
- Compare behavior across runs and tasks
- Correlate infrastructure behavior with pipeline execution
## How correlation works
Tracer correlates execution events using identifiers exposed by the operating system, including:
- Process IDs and parentchild relationships
- Cgroups and namespaces
- Container runtime metadata (when available)
This correlation happens automatically and does not require:
- Workflow engine integration
- Application instrumentation
- Explicit tagging
The result is a consistent execution model across heterogeneous environments.
## What the data model enables
This data model is the foundation for Tracer's higher-level capabilities.
It enables:
- Execution timelines organized by run, task, and tool
- Resource usage attribution at meaningful boundaries
- Detection of idle execution and contention
- Cost attribution aligned with real execution behavior
- Cross-run comparison and regression detection
Tracer/tune and Tracer/sweep operate on this shared structure rather than raw telemetry.
## What the data model does not represent
<Warning>
**The data model intentionally excludes:**
- Application payloads or scientific input/output data
- Source code, function calls, or language-level execution traces
- Domain-specific semantics or correctness
</Warning>
Tracer models how workloads execute, not what they compute.
## Orchestrator terminology mapping (reference)
Tracer's data model is framework- and language-agnostic. The table below shows how Tracer entities typically align with common orchestrator concepts. Exact mappings may vary by workflow engine and configuration.
<CardGroup cols={5}>
<Card title="Run" icon="play">
Workflow run, DAG run, execution
</Card>
<Card title="Task" icon="list-check">
Process, step, task, op, node
</Card>
<Card title="Tool" icon="wrench">
Binary, script, container entrypoint
</Card>
<Card title="Container" icon="cube">
Pod, container, namespace
</Card>
<Card title="Host" icon="server">
Worker node, instance, executor host
</Card>
</CardGroup>
| Tracer concept | Common equivalents |
| --- | --- |
| Run | Workflow run, DAG run, execution |
| Task | Process, step, task, op, node |
| Tool | Binary, script, container entrypoint |
| Container | Pod, container, namespace |
| Host | Worker node, instance, executor host |
<Tip>This mapping is provided for orientation only. Tracer does not depend on orchestrator metadata to build its execution model.</Tip>
## When to read this page
This page is most useful if you:
- Want to understand how Tracer structures execution data
- Are integrating Tracer data into external systems
- Need clarity on attribution boundaries and terminology
- Are evaluating Tracer for complex or regulated environments
<CardGroup cols={3}>
<Card href="/technology/tracer-collect">
<span style={{ fontSize: '1.25rem', fontWeight: '500' }}>
<span style={{ background: 'linear-gradient(135deg, #FCFCFC, #C4C4C4)', WebkitBackgroundClip: 'text', WebkitTextFillColor: 'transparent', backgroundClip: 'text' }}>Tracer/</span><span style={{ background: 'linear-gradient(135deg, #FB68E1, #953E96)', WebkitBackgroundClip: 'text', WebkitTextFillColor: 'transparent', backgroundClip: 'text' }}>collect</span>
</span>
<br />
Execution capture details
</Card>
<Card href="/technology/tracer-tune">
<span style={{ fontSize: '1.25rem', fontWeight: '500' }}>
<span style={{ background: 'linear-gradient(135deg, #FCFCFC, #C4C4C4)', WebkitBackgroundClip: 'text', WebkitTextFillColor: 'transparent', backgroundClip: 'text' }}>Tracer/</span><span style={{ background: 'linear-gradient(135deg, #38BDA4, #76E9D3)', WebkitBackgroundClip: 'text', WebkitTextFillColor: 'transparent', backgroundClip: 'text' }}>tune</span>
</span>
<br />
Optimization and analysis
</Card>
<Card href="/technology/tracer-sweep">
<span style={{ fontSize: '1.25rem', fontWeight: '500' }}>
<span style={{ background: 'linear-gradient(135deg, #FCFCFC, #C4C4C4)', WebkitBackgroundClip: 'text', WebkitTextFillColor: 'transparent', backgroundClip: 'text' }}>Tracer/</span><span style={{ background: 'linear-gradient(135deg, #4436BD, #5646E2)', WebkitBackgroundClip: 'text', WebkitTextFillColor: 'transparent', backgroundClip: 'text' }}>sweep</span>
</span>
<br />
Cloud waste discovery
</Card>
</CardGroup>
<div style={{ height: '50vh' }}></div>