Freedom251 › eBPF Observability Tools
Mermin

What Mermin is
Mermin is a free, open-source network traffic tool for Linux. It uses eBPF to aggregate packets into bidirectional flows with connection state tracking, then exports OpenTelemetry Flow Traces over OTLP. It does not record packet payloads and provides L3/L4 visibility, not L7 visibility. It supports TCP, UDP, and ICMP traffic, and lists VXLAN, Geneve, and WireGuard among common tunneling protocols. Operators can deploy it as a Kubernetes DaemonSet with one pod per node, or as a privileged container on bare metal. Flow records can include Kubernetes Pod, Service, Deployment, and label metadata; configurable filters control what is captured and exported. Listed observability destinations include Elastic, Grafana Tempo, and Jaeger. Mermin captures traffic without application changes, sidecars, or a service mesh. It requires Linux kernel 5.14 or newer with eBPF and BTF support; Kubernetes deployments require Kubernetes 1.20 or newer. Privileged mode is needed to load eBPF programs and access network interfaces. The documentation identifies a gap for tunneled or encapsulated traffic on physical interfaces.
Who it suits
Mermin suits Linux and Kubernetes operators who need network flow visibility without changing applications or adding sidecars. It is not intended for L7 visibility or packet payload capture.
What it does well
- Exports OpenTelemetry Flow Traces over OTLP
- Captures traffic without application changes or sidecars
- Adds Kubernetes metadata to flows
- Configurable filters control captured and exported flows
- Runs as a DaemonSet or privileged bare-metal container
What to know first
- Requires Linux kernel 5.14 or newer
- Kubernetes deployment requires Kubernetes 1.20 or newer
- Requires privileged mode
- Does not provide L7 visibility
Verdict
Mermin offers configurable L3/L4 flow collection for Linux, with Kubernetes metadata and OTLP export. Its kernel, Kubernetes, and privilege requirements—and the physical-interface tunneling gap—are worth checking against your environment.
Facts from Mermin's own pages
- Bare metal
- Mermin can run as a privileged container on bare metal. · github.com, 8 Oct 2026
- Code changes
- Mermin captures traffic without application changes, sidecars, or a service mesh. · docs.mermin.dev, 8 Oct 2026
- Data detail
- Mermin aggregates packets into bidirectional flows with connection state tracking and does not capture packet payloads. · docs.mermin.dev, 8 Oct 2026
- Deployment
- Mermin runs as a Kubernetes DaemonSet with one pod per node, or as a privileged container on bare metal. · docs.mermin.dev, 8 Oct 2026
- Export and integrations
- Mermin exports through OTLP to observability backends including Elastic, Grafana Tempo, and Jaeger. · github.com, 8 Oct 2026
- Filtering
- Mermin supports configurable fine-grained filters to control which flows are captured and exported. · docs.mermin.dev, 8 Oct 2026
- Integrations
- Its native OTLP output can send Flow Traces to observability platforms such as Tempo, Jaeger, and Elastic. · docs.mermin.dev, 8 Oct 2026
- Kubernetes enrichment
- Flows can include Kubernetes Pod, Service, Deployment, and label metadata. · docs.mermin.dev, 8 Oct 2026
- Layer coverage
- The documentation describes Mermin as providing L3/L4 visibility, not L7 visibility. · docs.mermin.dev, 8 Oct 2026
- License
- Mermin is Apache 2.0 licensed except for its eBPF code, which is GPL-2.0 licensed. · github.com, 8 Oct 2026
- Licensing
- The repository says Mermin is distributed under Apache License 2.0 except for eBPF code, which is under GNU GPL version 2. · github.com, 8 Oct 2026
- Maker
- ElastiFlow says its project was created by Rob Cowart, who started it on GitHub in May 2017. · elastiflow.com, 8 Oct 2026
- Maker history
- ElastiFlow’s About page says founder Rob Cowart started the GitHub project in May 2017. · elastiflow.com, 8 Oct 2026
- Metadata
- Flows can include Kubernetes Pod, Service, Deployment, and label metadata. · docs.mermin.dev, 8 Oct 2026
- Network layer limit
- Mermin provides L3/L4 visibility rather than L7 visibility. · docs.mermin.dev, 8 Oct 2026
- No application changes
- Mermin captures traffic without sidecars, application modifications, or a service mesh. · docs.mermin.dev, 8 Oct 2026
- Privileges
- Mermin requires privileged mode to load eBPF programs and access network interfaces. · docs.mermin.dev, 8 Oct 2026
- Protocols
- Mermin supports TCP, UDP, and ICMP traffic and lists VXLAN, Geneve, and WireGuard as common tunneling protocols. · docs.mermin.dev, 8 Oct 2026
- Purpose
- Mermin captures network traffic with eBPF and exports network flows as OpenTelemetry Flow Traces. · github.com, 8 Oct 2026
- Requirements
- Mermin requires Linux kernel 5.14 or newer with eBPF and BTF support, and Kubernetes 1.20 or newer for Kubernetes deployments. · docs.mermin.dev, 8 Oct 2026
- Support
- Mermin directs users to GitHub Issues, GitHub Discussions, Slack, and its troubleshooting guide for help. · docs.mermin.dev, 8 Oct 2026
- Traffic visibility limit
- The documentation says Mermin currently lacks support for tunneled or encapsulated traffic on physical interfaces. · docs.mermin.dev, 8 Oct 2026
Where Mermin stands on Freedom251
- eBPF Observability Tools#28 of 29