Back to blog
Guide
FalcovsTetragon
GuideSeptember 6, 2026Updated October 2, 20269 min read

Falco vs Tetragon (2026): detection vs enforcement

Pick Falco for rule-driven threat detection and alerting. Pick Cilium Tetragon when you need kernel-level eBPF observation and in-kernel enforcement.

Falco vs Tetragon, in short: pick Falco when you want a detection engine with a large default ruleset that raises alerts and never blocks a workload. Pick Tetragon when you need to watch specific kernel functions and their arguments, filtered in the kernel, and to stop an operation there with a signal or a return-value override. Teams run one, the other, or both. Beyond that, decide by requirement, not by ranking: the events you need, how you will maintain rules or tracing policies, how findings reach responders, and whether you need kernel enforcement. Test those requirements against your own workloads.

Open-source runtime detection engine driven by YAML rules

  • Open source · Apache-2.0
  • CNCF graduated
  • eBPF probe or kernel module

Open-source eBPF security observability and runtime enforcement

  • Open source · Apache-2.0
  • Cilium project · CNCF
  • eBPF with in-kernel filtering

01

Falco vs Tetragon at a glance

The short version, taken from each project's documentation. Neither column has overhead figures: both depend on your kernel, workloads, and configuration, so measure them on your own nodes.

DimensionFalcoTetragon
Detection modelEvaluates events, most commonly system calls, against rules in a userspace engine and emits an alert on a matchTracing policies select kernel functions or tracepoints, filter their arguments in the kernel, and emit JSON events
EnforcementNone built in: Falco alerts and never blocks a workload; response is left to external toolingIn-kernel actions set in the policy: send a signal such as SIGKILL, or override a function's return value so the operation fails
Rule languageYAML rules: conditions over event fields, with macros, lists, and exceptions; a large default rulesetTracingPolicy Kubernetes resources: hooks, argument selectors, and actions; a policy library of examples
OverheadScales with event volume, rule count, and driver; drops events under pressureScales with the hooks your policies select; in-kernel filtering reduces event volume
Kubernetes awarenessContainer and Kubernetes fields such as namespace and pod name, usable in rule conditions and alert outputEvents carry pod and namespace identity; namespaced policies and pod label selectors scope where a policy applies
Deployment without KubernetesLinux host packages or a container deployment; kernel-event collection requires host accessStandalone Linux packages or a container deployment; check kernel features, BTF, and host access
Project statusOpen source; a CNCF graduated projectOpen source; part of the Cilium project, hosted by the CNCF

02

Docker and Linux hosts without Kubernetes

Kubernetes is not required to evaluate either project. Falco documents Linux host packages and container deployment. Tetragon documents standalone packages and a container deployment without a Kubernetes cluster. Choose the installation method for the Linux host running your workloads, then check the project's current kernel and privilege requirements.

Running a sensor in Docker still requires access to the host for kernel-event collection. Review the documented capabilities, namespaces, and mounts rather than treating the sensor as an ordinary application container. Falco's requirements depend on the selected driver; Tetragon's installation also needs compatible eBPF features and BTF information.

Without Kubernetes, plan how responders will identify the host, container, image, and owning service; pod and namespace metadata will not be available. Use the same detection and investigation checks for standalone containers as for a cluster. If you are evaluating Primod, its deployment and coverage guidance covers supported Linux environments, including host mode without Kubernetes.

03

What each project is

Falco is a CNCF graduated runtime security project. It consumes events, most commonly system calls collected by a kernel driver or eBPF probe, and evaluates them against a rule set written in YAML: conditions built from fields, macros, and lists, with exceptions for legitimate cases. When a condition matches, Falco emits an alert with the fields named in the rule's output template, and downstream tooling routes it.

Tetragon is an eBPF-based security observability and runtime enforcement project from the Cilium community, also hosted by the CNCF. It is configured through tracing policies: Kubernetes resources that select kernel functions or tracepoints, filter their arguments in the kernel, and optionally attach actions. Events are emitted as JSON, enriched with process and Kubernetes identity, and some actions can enforce directly in the kernel.

The two are not interchangeable and not strictly competitors. Falco's center of gravity is a detection rule library with a large default set. Tetragon's center of gravity is precise kernel-level observation with the option to enforce. Teams run one, the other, or both, which is why Tetragon vs Falco is a question of requirements rather than a ranking.

04

Evaluation dimensions

Score nothing. Instead, write down what you need in each dimension, then run the practical test in the last column on a representative workload.

Evaluation dimensionFalcoTetragonPractical test
SensoreBPFor kernel moduleModern eBPF probe, legacy eBPF probe, or kernel module; plugins for other sourceseBPFeBPF programs on the kernel hooks your policies select; in-kernel argument filteringConfirm driver or BTF support on your kernel versions before anything else
Detection and policyRulesRule conditions with macros, lists, and exceptions; published rule maturity guidanceTracing policiesTracing policies with event selection and actionsExpress one relevant scenario and a benign look-alike
ResponseExternal toolingAssess the specific external response tooling you would deploy; do not label it universally incapableSignals · overridesSupports return-value overrides and signal actionsVerify whether the operation is prevented and how the application handles it
InvestigationOutput fieldsInspect fields emitted by the selected event source and rulesJSON eventsInspect fields emitted by the selected tracing policyCan responders identify workload and observed sequence?
Performance impactMeasure itScales with event volume, rule count, and driver; drops events under pressureMeasure itScales with the hooks selected; in-kernel filtering reduces volumeMeasure CPU, memory, and event loss on one representative node per class
System stability impactUserspace engineUserspace engine; never blocks a workload; kernel module carries more risk than eBPF probesIn-kernel enforcementIn-kernel enforcement can fail an operation the application did not expectRoll out any enforcement in observe or audit form first; test the failure path
OperationsYou operate itMaintain rules, exceptions, and output plumbingYou operate itMaintain tracing policies and kernel compatibilityValidate change rollout and rollback

Chips describe status and scope, not a score. Performance and stability rows are things to measure in your environment, not vendor figures.

05

When Falco fits

Falco is a candidate when the team wants a rule-driven detection workflow and is prepared to maintain the surrounding pipeline: the ruleset and its exceptions, the alert routing, and whatever response tooling the team chooses. The default ruleset gives a broad starting point, and the rule language is readable by analysts who do not work in the kernel.

Expect to spend the early weeks tuning. The published style guide and exceptions mechanism exist because tuning is part of operating Falco, not a sign that something is wrong.

06

When Tetragon fits

Tetragon is a candidate when kernel-level observability and policy-controlled enforcement are central requirements: when the team needs to see specific kernel functions with their arguments, filter at the source to control event volume, or deny an operation in the kernel rather than react after the fact.

Expect the policy authoring to require kernel knowledge. Selecting the right hook, understanding its arguments, and confirming that an override is safe on your kernel version are engineering tasks, and each policy should be tested for both detection and enforcement behavior.

07

What your SOC still needs to investigate

Neither project closes an investigation on its own. Both produce events with process and container identity; both leave the join to a request, the workload's owner, the image's vulnerability status, and the outcome of an attempted operation to the responder or to other systems.

Whichever you choose, plan for the questions that follow an alert: which service is this, which request caused it, did the attempted action succeed, what happened next, and what evidence might be missing. If those answers live in five tools, the sensor choice is only part of the design.

  • Workload ownership and image version: from your container runtime, deployment and CI metadata; add pod and namespace identity when using Kubernetes.
  • Request context: from application tracing or access logs, where instrumented.
  • Outcome of an attempted operation: from the event's return value where captured, otherwise from network or file-system logs.
  • Related events in order: joined by process tree and time, not by alert title.
app.primod.io / runtime / alerts / checkout-service
Runtime alert HighIllustrative scenario · Product UI preview

Web process launched a shell

Workload
checkout-service · Deployment
Namespace
production
Process chain
web worker → /bin/sh
Observed activity
Shell launch followed by a token read and an outbound connection attempt
Interpretation
Consistent with suspicious command execution and credential access
Response
Observe — no action blocked

Where it ran

Podcheckout-service-7d9f6c-x2k4p
Nodenode-pool-b-03
Containercheckout
Image digestsha256:9f2c…a1e0

Request context

Method · route: POST /api/upload

Trace · span: supplied by instrumentation

Detection details

Rule: rce-shell-web-ancestor · rev 3

Technique mapping: as provided by the rule

Evidence quality

Complete · Process ancestry complete for this alert

Limited · Some events may be missing: capture reported lost events on this node during the window

The questions after an alert, answered in one place: this is what a platform adds above either sensor. Illustrative scenario · Product UI preview.

08

A reproducible evaluation checklist

Run the same checklist against both projects on the same Linux hosts or Kubernetes cluster and the same workloads. Record versions, kernel, and dates so the comparison can be repeated after an upgrade.

  • Pin versions: project release, kernel version, driver or BTF availability, container runtime, and Kubernetes version when applicable.
  • Pick three scenarios that matter to you (for example a shell from a web process, a sensitive file read, an unexpected outbound connection) and one benign look-alike for each.
  • Write the rule or policy for each scenario; note how long it took and what knowledge it needed.
  • Run the attack case and the benign case; record fire / no-fire for each.
  • If you need enforcement, verify the operation is prevented and observe how the application behaves when it receives the error.
  • Measure CPU, memory, and event volume on a representative node before and during the test; do not extrapolate to the whole fleet from one node.
  • Send the output to your responders and ask them to identify the workload and the sequence without help.
  • Change one rule or policy and roll it out; confirm the change took effect where expected and nowhere else.

Frequently asked questions

Do Falco and Tetragon require Kubernetes?
No. Both document deployment on Linux hosts outside Kubernetes, including container installation. Check the current kernel, driver or BTF, and privilege requirements for the installation you choose. Without Kubernetes, use host and container identity instead of pod and namespace metadata in your investigation workflow.
Tetragon vs Falco: which one should I pick?
Pick Falco if you want rule-driven detection: a large default ruleset, a YAML rule language analysts can read, and alerts routed to your existing tools, with nothing blocked. Pick Tetragon if you need kernel-level observation filtered at the source, or need to stop an operation in the kernel with a signal or a return-value override. If you need both broad detection and targeted enforcement, you can run both.
Can Falco and Tetragon run together?
Yes. They are separate projects with separate sensors, and teams run one, the other, or both. Running both puts two sets of eBPF programs on each node, so measure CPU, memory, and event loss with both enabled, and give each a distinct job, for example Falco for broad detection rules and Tetragon for a few targeted enforcement policies.
Is Cilium Tetragon a replacement for Falco?
Not directly. Falco is built around a detection ruleset with a large default set. Tetragon is built around tracing policies you write for the kernel events you care about, starting from the examples in its policy library, with the option to enforce. Tetragon can replace Falco when your requirement is a small set of precise policies with enforcement; it does not replace a broad, maintained detection ruleset without that authoring work.

Sources and references

  1. Falco: deploy as a container

    Falco documentation

  2. Tetragon: deploy as a container without Kubernetes

    Tetragon documentation

  3. Tetragon: enforcement (signals and return-value overrides)

    Tetragon documentation

  4. Tetragon: tracing policies

    Tetragon documentation

  5. Falco rules reference

    Falco documentation

  6. Falco rules: basic elements

    Falco documentation

  7. Falco supported fields for conditions and outputs

    Falco documentation

  8. Tetragon: Kubernetes identity aware policies

    Tetragon documentation

  9. Tetragon policy library

    Tetragon documentation

Weekly email

Runtime Evidence

One email a week: a runtime finding worth understanding, how it was investigated, and what to check in your own clusters. No product pitches in disguise; unsubscribe in one click.

Keep reading

Related articles

All articles