--- title: 'How to use Tracer with Flyte' sidebarTitle: 'Flyte' description: 'Execution insight beneath tasks and workflows' --- Flyte orchestrates data and ML workflows by defining tasks, workflows, and launch plans. It determines how tasks are scheduled, retried, and executed across compute environments, but it does not observe how code behaves once a task is running inside a container or node. Tracer complements Flyte by exposing execution behavior: CPU, memory, disk, and network usage, during task execution, without modifying Flyte task definitions, container images, or execution semantics. For a conceptual overview, see [How Tracer fits in your stack](/comparisons/overview). ## What Flyte does well Flyte provides strong guarantees around workflow structure and execution, including: - Task and workflow definitions with typed inputs and outputs - Deterministic execution and reproducibility - Scheduling, retries, and failure handling - Execution metadata, logs, and lineage - Environment isolation via containers These capabilities make Flyte particularly effective for ML pipelines and data workflows where correctness, versioning, and reproducibility matter. ## What Flyte does not see at runtime Flyte tracks task state and execution outcomes, but it does not observe what happens inside the running task container. It does not show: - CPU utilization during task execution - Memory pressure, spikes, or over-allocation - Disk and network I/O contention - Subprocesses launched inside tasks (e.g. Python tools, CLIs, native binaries) - Idle time while tasks wait on data, storage, or external systems This execution behavior occurs below the Flyte control plane and is not visible through task metadata or logs alone. ## Why this gap matters in practice Flyte tasks often wrap complex workloads: model training, feature generation, data transformation, or external tools invoked from Python. Resource requests are typically set conservatively to avoid retries or failures. Without execution-level visibility, teams struggle to answer: - Why a task runtime increased without code changes - Whether requested CPU or memory is actually used - Whether performance is limited by compute, I/O, or memory - Why infrastructure cost grows while workflows appear stable As a result, workflows remain correct and reproducible, but inefficient. ## What Tracer adds Tracer observes execution directly from the host and container runtime and adds: - Observed CPU, memory, disk, and network usage per task execution - Visibility into subprocesses and nested tools invoked within tasks - Detection of stalls, idle time, and resource contention - Attribution of resource usage to workflows, tasks, and execution attempts These insights are derived from observed runtime behavior, not from task configuration or declared resource requests.