4b6817381b
Benchmark image — build + push to ECR (any adapter) / build + push (push) Waiting to run
CI / quality (ubuntu-latest) (push) Waiting to run
CI / test (tools-runtime) (push) Waiting to run
CI / test (e2e-general) (push) Waiting to run
CI / test (cli-runtime) (push) Waiting to run
CI / test (e2e-provider-and-openclaw) (push) Waiting to run
CI / test (integrations-and-misc) (push) Waiting to run
CI / coverage-report (push) Blocked by required conditions
CI / test-kubernetes (push) Waiting to run
CI / should-run-thorough (push) Waiting to run
CI / test-thorough (cloudwatch-demo) (push) Blocked by required conditions
CI / test-thorough (flink-ecs) (push) Blocked by required conditions
CI / test-thorough (upstream-lambda) (push) Blocked by required conditions
CI / test-thorough (prefect-ecs-fargate) (push) Blocked by required conditions
CodeQL / Analyze (python) (push) Waiting to run
Release / build-binaries (zip, opensre.exe, onefile, windows-latest, windows-x64) (push) Blocked by required conditions
Release / publish-release (push) Blocked by required conditions
Release / publish-main-release (push) Blocked by required conditions
Release / prepare (push) Waiting to run
Release / verify (push) Blocked by required conditions
Release / build-python-dist (push) Blocked by required conditions
Release / build-binaries (tar.gz, opensre, onedir, macos-15-intel, darwin-x64) (push) Blocked by required conditions
Release / build-binaries (tar.gz, opensre, onedir, macos-latest, darwin-arm64) (push) Blocked by required conditions
Release / build-binaries (tar.gz, opensre, onedir, ubuntu-22.04, linux-x64) (push) Blocked by required conditions
Release / build-binaries (tar.gz, opensre, onedir, ubuntu-22.04-arm, linux-arm64) (push) Blocked by required conditions
Synthetic Deterministic Tests / Synthetic offline (deterministic) (push) Waiting to run
Interactive Shell Live (PR + post-merge) / turn-checks (no-LLM) (push) Waiting to run
Interactive Shell Live (PR + post-merge) / turn-live shard ${{ matrix.shard_index }} (push) Waiting to run
CI (OpenClaw E2E) / openclaw test (push) Has been cancelled
112 lines
4.7 KiB
Plaintext
112 lines
4.7 KiB
Plaintext
---
|
|
title: 'How to use Tracer with Prometheus'
|
|
sidebarTitle: 'Prometheus'
|
|
description: 'Observed execution beneath scraped metrics'
|
|
---
|
|
|
|
Prometheus collects and stores time-series metrics emitted by applications, services, and system exporters. In bioinformatics and HPC environments, it is commonly used to record system- and application-reported metrics for compute-intensive pipelines.
|
|
|
|
Tracer complements Prometheus by observing how tasks, tools, and processes actually execute at runtime and organizing this behavior by pipeline, run, and execution unit.
|
|
|
|
<Note>
|
|
If you're new to Tracer or want a conceptual overview, see [How Tracer fits in your stack](/comparisons/overview).
|
|
</Note>
|
|
|
|
## What Prometheus does well
|
|
|
|
Prometheus is designed for metric collection and querying. It provides:
|
|
|
|
- Time-series storage for reported metrics
|
|
- Pull-based scraping from exporters and instrumented services
|
|
- Label-based querying and aggregation
|
|
- Integration with alerting systems
|
|
|
|
These capabilities make Prometheus effective for recording reported metrics over time across many systems.
|
|
|
|
## What Prometheus does not observe
|
|
|
|
Prometheus records metrics that are emitted and scraped at intervals. It does not observe execution directly and does not have inherent awareness of pipeline or task structure. It does not show:
|
|
|
|
- Execution behavior inside processes or containers
|
|
- CPU vs I/O vs memory contention during task execution
|
|
- Short-lived processes that start and finish between scrapes
|
|
- Idle time hidden by aggregated utilization
|
|
- How metrics relate to pipeline runs, tasks, or tools
|
|
- How cost maps to actual execution rather than to resource uptime
|
|
|
|
This information is not present in scraped metrics unless inferred through instrumentation and labels.
|
|
|
|
## Why this gap matters
|
|
|
|
Scientific pipelines often involve heterogeneous tools, nested execution, and short-lived subprocesses. When relying on scraped metrics alone, teams can see that resources were used, but not how work progressed.
|
|
|
|
As a result:
|
|
|
|
- Performance bottlenecks must be inferred from aggregates
|
|
- Idle or blocked execution may appear as normal utilization
|
|
- Cost is attributed to infrastructure time, not execution units
|
|
- Custom metrics and labels accumulate assumptions about runtime behavior
|
|
|
|
These approaches are useful, but they have limits when execution is not directly observed.
|
|
|
|
## What Tracer adds
|
|
|
|
Tracer observes execution directly from the host and container runtime and adds:
|
|
|
|
- Observed CPU, memory, disk, and network behavior
|
|
- Visibility into short-lived processes and nested tools
|
|
- Attribution by pipeline, run, task, or execution unit
|
|
- Cost mapping aligned with observed runtime activity
|
|
|
|
These insights are derived from observed execution, not from reported metrics.
|
|
|
|
## Example: scraped metrics versus observed execution
|
|
|
|
Prometheus shows sustained CPU utilization during a pipeline run. Tracer reveals that:
|
|
|
|
- CPU usage remains low for most tasks
|
|
- Execution is dominated by disk I/O wait
|
|
- Short-lived helper processes consume significant time
|
|
|
|
This indicates an I/O-bound workload rather than insufficient compute. The distinction is visible only when execution behavior is observed directly.
|
|
|
|
## Observability comparison
|
|
|
|
<iframe
|
|
src="https://vakisr.github.io/tracer-radar-chart/radar-chart-prometheus.html"
|
|
width="100%"
|
|
height="720"
|
|
style={{ border: 'none', borderRadius: '8px' }}
|
|
title="Prometheus vs Tracer+Prometheus capabilities comparison"
|
|
/>
|
|
|
|
This comparison highlights the difference between scraped metrics and execution-level observation.
|
|
|
|
## What Tracer does not replace
|
|
|
|
Tracer is not a general-purpose metrics backend.
|
|
|
|
- It does not replace Prometheus for collecting arbitrary application metrics
|
|
- It does not replace long-term storage for unrelated or user-defined metrics
|
|
- It does not replace metric-based alerting outside execution behavior
|
|
- It does not replace dashboards built from non-execution telemetry
|
|
|
|
Tracer stores and analyzes execution-derived metrics it observes, scoped to pipeline workloads.
|
|
|
|
## When to use Tracer with Prometheus
|
|
|
|
Tracer is most useful alongside Prometheus when teams need to:
|
|
|
|
- Understand pipeline behavior beyond scraped metrics
|
|
- Diagnose performance issues involving short-lived tasks
|
|
- Attribute resource usage and cost to workflows or tools
|
|
- Reduce manual metric instrumentation and correlation
|
|
|
|
Tracer focuses on execution behavior. Prometheus continues to provide metric collection and querying across broader systems.
|
|
|
|
## Summary
|
|
|
|
Prometheus records metrics that systems and applications report. Tracer adds execution-level visibility that shows how pipelines, tasks, and tools actually behave at runtime and how resource usage and cost map to real work. Together, they provide complementary perspectives without overlap.
|
|
|
|
<div style={{ height: '50vh' }}></div>
|