> For the complete documentation index, see [llms.txt](https://docs.pipekit.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.pipekit.io/why-pipekit/observability.md).

# Observability

Argo Workflows runs reliably; finding and debugging individual runs across many namespaces, clusters, and teams is the problem. Pipekit gives every Argo `Workflow` a Pipekit-side [Pipe](/concepts/pipe.md) and [Run](/concepts/run.md), aggregates them into one UI, and persists their state and logs beyond the lifetime of the underlying Kubernetes objects.

## What Pipekit observes

### A single UI for every Run, across every cluster

Submit from the [CLI](/reference/cli.md), the UI, a Git event, or a [cron schedule](/concepts/cron-and-externally-triggered.md). Every Run lands in the same Pipes view. [Externally triggered Workflows](/concepts/cron-and-externally-triggered.md#externally-triggered-workflows) submitted to your cluster outside Pipekit (via `kubectl`, Argo CLI, or Argo Events) can also be surfaced in Pipekit, so you can migrate to Pipekit without losing visibility into existing pipelines.

### Persisted Run history beyond pod lifecycle

Argo deletes completed pods on its own schedule. Pipekit captures Run status, the [workflow node graph](/using-pipekit/runs/run-graph.md), [pod logs](/using-pipekit/runs/pod-logs.md), [workflow logs](/using-pipekit/runs/workflow-logs.md), and the [submitted YAML](/using-pipekit/runs/workflow-yaml.md) when the Run starts, and keeps them indefinitely.

### Log search with structured-format detection

Pipekit auto-detects log levels from common formats (JSON, logfmt, syslog, bracketed, timestamp-prefixed) and color-codes them inline. You can filter by container, search across a Run with regex, and pivot from a failing pod to its workflow node graph in one click. For the full list of supported log formats, see [Pod Logs > Log Level Detection](/using-pipekit/runs/pod-logs.md#log-level-detection).

### Bring your own logging backend

By default Pipekit hosts your logs. If you'd rather keep them in your existing stack, point the [Pipekit Agent](/concepts/pipekit-agent.md) at your S3 / object storage and Pipekit will read from there. See [BYO Logging Backend](/organizations-and-access/byo-logs.md).

### OpenTelemetry workflow metrics

Pipekit collects OpenTelemetry workflow metrics from each registered [Cluster](/concepts/cluster.md) and surfaces them as dashboards. You see queue depth, scheduling latency, success and failure rates, and pod resource use per Pipe, without instrumenting your workflows. See [Metrics & Alerts](/using-pipekit/metrics-and-alerts.md).
