The only agent that thinks for itself

Autonomous Monitoring with self-learning AI built-in, operating independently across your entire stack.

Unlimited Metrics & Logs
Machine learning & MCP
5% CPU, 150MB RAM
3GB disk, >1 year retention
800+ integrations, zero config
Dashboards, alerts out of the box
> Discover Netdata Agents

Centralized metrics streaming and storage

Aggregate metrics from multiple agents into centralized Parent nodes for unified monitoring across your infrastructure.

Stream from unlimited agents
Long-term data retention
High availability clustering
Data replication & backup
Scalable architecture
Enterprise-grade security
> Learn about Parents

Fully managed cloud platform

Access your monitoring data from anywhere with our SaaS platform. No infrastructure to manage, automatic updates, and global availability.

Zero infrastructure management
99.9% uptime SLA
Global data centers
Automatic updates & patches
Enterprise SSO & RBAC
SOC2 & ISO certified
> Explore Netdata Cloud

Deploy Netdata Cloud in your infrastructure

Run the full Netdata Cloud platform on-premises for complete data sovereignty and compliance with your security policies.

Complete data sovereignty
Air-gapped deployment
Custom compliance controls
Private network integration
Dedicated support team
Kubernetes & Docker support
> Learn about Cloud On-Premises

Powerful, intuitive monitoring interface

Modern, responsive UI built for real-time troubleshooting with customizable dashboards and advanced visualization capabilities.

Real-time chart updates
Customizable dashboards
Dark & light themes
Advanced filtering & search
Responsive on all devices
Collaboration features
> Explore Netdata UI

Monitor on the go

Native iOS and Android apps bring full monitoring capabilities to your mobile device with real-time alerts and notifications.

iOS & Android apps
Push notifications
Touch-optimized interface
Offline data access
Biometric authentication
Widget support
> Download apps

The future of infrastructure observability

See our strategic direction across AI-native observability, full-stack signals, operational intelligence, and enterprise platform maturity.

AI-native observability
Full-stack signal coverage
Operational intelligence
Enterprise platform maturity
Agent releases every 6 weeks
Cloud continuous delivery
> Explore Product Roadmap

Best energy efficiency

True real-time per-second

100% automated zero config

Centralized observability

Multi-year retention

High availability built-in

Zero maintenance

Always up-to-date

Enterprise security

Complete data control

Air-gap ready

Compliance certified

Millisecond responsiveness

Infinite zoom & pan

Works on any device

Native performance

Instant alerts

Monitor anywhere

AI-native observability

Continuous delivery

Open source foundation

80% Faster Incident Resolution

AI-powered troubleshooting from detection, to root cause and blast radius identification, to reporting.

True Real-Time and Simple, even at Scale

Linearly and infinitely scalable full-stack observability, that can be deployed even mid-crisis.

90% Cost Reduction, Full Fidelity

Instead of centralizing the data, Netdata distributes the code, eliminating pipelines and complexity.

See and Map Your Entire Network

Live topology, flow analytics, and SNMP device and trap monitoring — unified with your full-stack observability.

Control Without Surrender

SOC 2 Type 2 certified with every metric kept on your infrastructure.

Integrations

800+ collectors and notification channels, auto-discovered and ready out of the box.

800+ data collectors
Auto-discovery & zero config
Cloud, infra, app protocols
Notifications out of the box
> Explore integrations
Real Results
46% Cost Reduction

Reduced monitoring costs by 46% while cutting staff overhead by 67%.

— Leonardo Antunez, Codyas

Zero Pipeline

No data shipping. No central storage costs. Query at the edge.

From Our Users
"Out-of-the-Box"

So many out-of-the-box features! I mostly don't have to develop anything.

— Simon Beginn, LANCOM Systems

No Query Language

Point-and-click troubleshooting. No PromQL, no LogQL, no learning curve.

Enterprise Ready
67% Less Staff, 46% Cost Cut

Enterprise efficiency without enterprise complexity—real ROI from day one.

— Leonardo Antunez, Codyas

SOC 2 Type 2 Certified

Zero data egress. Only metadata reaches the cloud. Your metrics stay on your infrastructure.

Full Coverage
800+ Collectors

Auto-discovered and configured. No manual setup required.

Any Notification Channel

Slack, PagerDuty, Teams, email, webhooks—all built-in.

Built for the People Who Get Paged

Because 3am alerts deserve instant answers, not hour-long hunts.

Every Industry Has Rules. We Master Them.

See how healthcare, finance, and government teams cut monitoring costs 90% while staying audit-ready.

Monitor Any Technology. Configure Nothing.

Install the agent. It already knows your stack.
From Our Users
"A Rare Unicorn"

Netdata gives more than you invest in it. A rare unicorn that obeys the Pareto rule.

— Eduard Porquet Mateu, TMB Barcelona

99% Downtime Reduction

Reduced website downtime by 99% and cloud bill by 30% using Netdata alerts.

— Falkland Islands Government

Real Savings
30% Cloud Cost Reduction

Optimized resource allocation based on Netdata alerts cut cloud spending by 30%.

— Falkland Islands Government

46% Cost Cut

Reduced monitoring staff by 67% while cutting operational costs by 46%.

— Codyas

Real Coverage
"Plugin for Everything"

Netdata has agent capacity or a plugin for everything, including Windows and Kubernetes.

— Eduard Porquet Mateu, TMB Barcelona

"Out-of-the-Box"

So many out-of-the-box features! I mostly don't have to develop anything.

— Simon Beginn, LANCOM Systems

Real Speed
Troubleshooting in 30 Seconds

From 2-3 minutes to 30 seconds—instant visibility into any node issue.

— Matthew Artist, Nodecraft

20% Downtime Reduction

20% less downtime and 40% budget optimization from out-of-the-box monitoring.

— Simon Beginn, LANCOM Systems

Pay per Node. Unlimited Everything Else.

One price per node. Unlimited metrics, logs, users, and retention. No per-GB surprises.

Free tier—forever
No metric limits or caps
Retention you control
Cancel anytime
> See pricing plans

What's Your Monitoring Really Costing You?

Most teams overpay by 40-60%. Let's find out why.

Expose hidden metric charges
Calculate tool consolidation
Customers report 30-67% savings
Results in under 60 seconds
> See what you're really paying

Your Infrastructure Is Unique. Let's Talk.

Because monitoring 10 nodes is different from monitoring 10,000.

On-prem & air-gapped deployment
Volume pricing & agreements
Architecture review for your scale
Compliance & security support
> Start a conversation

Monitoring That Sells Itself

Deploy in minutes. Impress clients in hours. Earn recurring revenue for years.

30-second live demos close deals
Zero config = zero support burden
Competitive margins & deal protection
Response in 48 hours
> Apply to partner

Per-Second Metrics at Homelab Prices

Same engine, same dashboards, same ML. Just priced for tinkerers.

Community: Free forever · 5 nodes · non-commercial
Homelab: $90/yr · unlimited nodes · fair usage
> Get the Homelab Plan

$1,000 Per Referral. Unlimited Referrals.

Your colleagues get 10% off. You get 10% commission. Everyone wins.

10% of subscriptions, up to $1,000 each
Track earnings inside Netdata Cloud
PayPal/Venmo payouts in 3-4 weeks
No caps, no complexity
> Get your referral link
Cost Proof
40% Budget Optimization

"Netdata's significant positive impact" — LANCOM Systems

Calculate Your Savings

Compare vs Datadog, Grafana, Dynatrace

Savings Proof
46% Cost Reduction

"Cut costs by 46%, staff by 67%" — Codyas

30% Cloud Bill Savings

"Reduced cloud bill by 30%" — Falkland Islands Gov

Enterprise Proof
"Better Than Combined Alternatives"

"Better observability with Netdata than combining other tools." — TMB Barcelona

Real Engineers, <24h Response

DPA, SLAs, on-prem, volume pricing

Why Partners Win
Demo Live Infrastructure

One command, 30 seconds, real data—no sandbox needed

Zero Tickets, High Margins

Auto-config + per-node pricing = predictable profit

Homelab Ready
Free Video Course

8-episode Netdata tutorial by LearnLinux.tv

76k+ GitHub Stars

3rd most starred monitoring project

Worth Recommending
Product That Delivers

Customers report 40-67% cost cuts, 99% downtime reduction

Zero Risk to Your Rep

Free tier lets them try before they buy

AI Support Assistant, Available 24/7

Nedi has access to all official documentation, source code, and resources. Ask any question about Netdata—responds in your language.

Deployment & configuration
Troubleshooting & sizing
Alerts & notifications
Evidence-based answers
> Ask Nedi now

Never Fight Fires Alone

Docs, community, and expert help—pick your path to resolution.

Learn.netdata.cloud docs
Discord, Forums, GitHub
Premium support available
> Get answers now

60 Seconds to First Dashboard

One command to install. Zero config. 850+ integrations documented.

Linux, Windows, K8s, Docker
Auto-discovers your stack
> Read our documentation

76,000+ Engineers Strong

615+ contributors. 1.5M daily downloads. One mission: simplify observability.

Per-Second. 90% Cheaper. Data Stays Home.

Side-by-side comparisons: costs, real-time granularity, and data sovereignty for every major tool.

See why teams switch from Datadog, Prometheus, Grafana, and more.

> Browse all comparisons
Edge-Native Observability, Born Open Source
Per-second visibility, ML on every metric, and data that never leaves your infrastructure.
Founded in 2016
615+ contributors worldwide
Remote-first, engineering-driven
Open source first
> Read our story
Promises We Publish—and Prove
12 principles backed by open code, independent validation, and measurable outcomes.
Open source, peer-reviewed
Zero config, instant value
Data sovereignty by design
Aligned pricing, no surprises
> See all 12 principles
Edge-Native, AI-Ready, 100% Open
76k+ stars. Full ML, AI, and automation—GPLv3+, not premium add-ons.
76,000+ GitHub stars
GPLv3+ licensed forever
ML on every metric, included
Zero vendor lock-in
> Explore our open source
Build Real-Time Observability for the World
Remote-first team shipping per-second monitoring with ML on every metric.
Remote-first, fully distributed
Open source (76k+ stars)
Challenging technical problems
Your code on millions of systems
> See open roles
Meet the Team Behind Netdata
Conferences, meetups, and tradeshows where you can see Netdata in action and talk to the engineers who build it.
Live demos and deep dives
Book 1-on-1 meetings
Talks and panel sessions
Event recaps and photos
> See all events
Talk to a Netdata Human in <24 Hours
Sales, partnerships, press, or professional services—real engineers, fast answers.
Discuss your observability needs
Pricing and volume discounts
Partnership opportunities
Media and press inquiries
> Book a conversation
Your Data. Your Rules.
On-prem data, cloud control plane, transparent terms.
Trust & Scale
76,000+ GitHub Stars

One of the most popular open-source monitoring projects

SOC 2 Type 2 Certified

Enterprise-grade security and compliance

Data Sovereignty

Your metrics stay on your infrastructure

Validated
University of Amsterdam

"Most energy-efficient monitoring solution" — ICSOC 2023, peer-reviewed

ADASTEC (Autonomous Driving)

"Doesn't miss alerts—mission-critical trust for safety software"

Community Stats
615+ Contributors

Global community improving monitoring for everyone

1.5M+ Downloads/Day

Trusted by teams worldwide

GPLv3+ Licensed

Free forever, fully open source agent

Why Join?
Remote-First

Work from anywhere, async-friendly culture

Impact at Scale

Your work helps millions of systems

$ guides / lvm / lvm-thin-vs-cow-snapshots ▌

Operations Guides

LVM thin snapshots vs old-style COW snapshots: which failure mode you inherit

LVM offers two snapshot mechanisms that look similar from the command line but fail in fundamentally different ways. The choice between them is about which failure mode you inherit when something goes wrong.

Old-style COW (copy-on-write) snapshots allocate a fixed exception store at creation time. When that store fills to 100%, the snapshot is invalidated permanently and silently. The origin volume continues running. You lose the snapshot and whatever backup or rollback point it represented, but production keeps going.

Thin snapshots share the thin pool and have no separate exception store. When the pool runs out of data or metadata space, every thin volume in the pool freezes at once. That includes the origin, every snapshot, and every other thin LV sharing the pool. The blast radius is wider, recovery is harder, and metadata exhaustion can corrupt the pool in ways that are not always recoverable.

How each snapshot type works

Old-style COW snapshots are created with --size:

# Create a COW snapshot with a 1 GiB exception store
lvcreate --snapshot --size 1G --name snap1 vg0/origin_lv

The --size argument allocates a fixed exception store from VG free extents. This store holds the original copy of every block overwritten in the origin after snapshot creation. Each write to the origin triggers a three-step copy-on-write operation: read the original block from the origin, write it to the exception store, then write the new data to the origin. This triples I/O per origin write while the snapshot exists.

Multiple snapshots on the same origin compound this overhead. Three snapshots on one origin means every origin write triggers three independent COW operations. Write latency doubles or more, and system I/O throughput drops until the snapshot is removed or invalidated.

Thin snapshots are created without --size:

# Create a thin snapshot (no --size)
lvcreate --snapshot --name snap1 vg0/thin_lv

The snapshot shares the thin pool’s data and metadata space with the origin and all other thin volumes in the pool. There is no separate exception store. Copy-on-write data lands in the same pool as everything else. The snapshot is effectively another thin LV that tracks divergent blocks from its origin.

Thin snapshots avoid the COW write amplification problem entirely. They also support snapshot-of-snapshot chains, since everything shares the same pool. Removing the origin of a thin snapshot does not destroy the snapshot: each snapshot becomes an independent thin-provisioned volume. This is different from old-style snapshots, where the origin cannot be removed while snapshots exist.

flowchart TD
  subgraph COW["Old-style COW snapshot"]
    A1["Write to origin"] --> A2["Copy old block to exception store"]
    A2 --> A3{"Exception store full?"}
    A3 -->|"No"| A4["Snapshot stays valid"]
    A3 -->|"Yes"| A5["Snapshot invalidated - permanent, silent"]
    A5 --> A6["Origin unaffected"]
  end
  subgraph Thin["Thin snapshot"]
    B1["Write to any thin LV"] --> B2["Allocate from shared pool"]
    B2 --> B3{"Pool has space?"}
    B3 -->|"Yes"| B4["All volumes normal"]
    B3 -->|"No data space"| B5["All thin LVs freeze (60s queue, then errors)"]
    B3 -->|"No metadata space"| B6["Pool may corrupt - recovery not guaranteed"]
  end

The failure mode COW snapshots inherit: silent invalidation

When the COW exception store fills to 100%, the snapshot is immediately and irreversibly invalidated. The kernel marks it invalid (the lv_attr field shows I in position 5). The snapshot does not disappear from lvs output; it remains listed but is dead.

Key characteristics:

  • Silent: No error reaches the application. The origin continues serving I/O. The kernel stops tracking changes for that snapshot.
  • Permanent: An invalidated snapshot cannot be repaired, extended, or recovered. The only option is to remove it with lvremove and recreate from scratch.
  • Scoped: Only the single snapshot is lost. Other snapshots on the same origin, the origin itself, and all other LVs in the VG are unaffected.
  • Driven by origin writes: The exception store fills based on writes to the origin, not writes to the snapshot. A snapshot of a quiescent volume can sit at 0% indefinitely. A snapshot of an active database can fill in minutes.

The practical consequence: if a backup process was reading from this snapshot, the backup silently becomes incomplete or corrupt. The backup process may not notice because the origin remains available. The first sign of trouble is often a failed restore months later.

snap_percent is the monitoring signal. It jumps in chunks because exception store allocation happens in blocks, so the value may advance several percent at once. You cannot precisely predict the exact moment of overflow.

The failure mode thin snapshots inherit: pool exhaustion

Thin snapshots do not have a fixed COW area, so they avoid the invalidation problem. But they inherit the thin pool’s exhaustion behavior, which is a different and potentially more severe failure mode.

When the thin pool’s data space fills to 100%, behavior depends on the pool’s “when full” policy:

The kernel default is queue_if_no_space (per the dm-thin kernel documentation), though LVM2 exposes the error_when_full lvm.conf setting to change this for new pools.

  • error_if_no_space: writes fail immediately.
  • queue_if_no_space: writes to all thin LVs in the pool are queued for up to 60 seconds, controlled by the kernel no_space_timeout parameter with a default of 60 combined with dm_thin_pool metadata. If space is not freed within that window, writes fail with errors.

You set the policy when creating the pool:

# Create thin pool with error mode (writes fail immediately when full)
lvcreate --type thin-pool --poolmetadatasize 1G --size 100G \
  --discards passdown vg0/thinpool
# Check or change the current policy on an existing pool
# The policy is stored in lvm.conf: activation/thin_pool_autoextend_threshold
# Verify current runtime policy:
dmsetup status vg0-thinpool
# Look for "queue_if_no_space" or "error_if_no_space" in the output

The dmsetup status output for thin-pool targets includes error_if_no_space or queue_if_no_space in the status line (per kernel documentation). Changing the policy requires dmsetup message or recreating the pool via LVM.

In queue mode, processes doing I/O to any thin LV in the pool enter D state (uninterruptible sleep). The system can appear completely hung. If the root filesystem is on a thin LV in the affected pool, the system may become unresponsive to all interaction, including SSH.

When the thin pool’s metadata space fills to 100%, the situation is worse. The man page warns that metadata space exhaustion can lead to inconsistent thin pool metadata and inconsistent filesystems, and that data from thin LVs may be unrecoverable. Recovery requires deactivation, lvconvert --repair (which uses thin_repair and the pmspare LV), and is not guaranteed to succeed.

Key characteristics:

  • Wide blast radius: Every thin LV in the pool is affected simultaneously. The origin, all snapshots, and all other thin volumes freeze or error together.
  • Two independent exhaustion dimensions: Data space and metadata space can fill independently. Metadata can reach 100% while data usage is under 50%. Operators monitoring only data_percent miss this entirely.
  • Metadata is not reclaimable: Unlike data space, which can be reclaimed via fstrim or discard on thin LV filesystems, metadata space does not decrease through normal operation. Metadata consumption depends on unique block writes, not data volume. High random I/O consumes metadata faster than sequential I/O.
  • Recovery is hard: Extending the pool requires VG free space. If the VG is also full, you need to add a PV first. If metadata exhaustion has already corrupted the pool, lvconvert --repair may fail.

Side-by-side: which failure mode you inherit

DimensionOld-style COW snapshotThin snapshot
What fills upFixed exception store (VG extents)Shared thin pool data and metadata
Failure at 100%Single snapshot invalidated permanentlyAll thin LVs in pool freeze or error
Origin impactNone after invalidationOrigin is in the pool, freezes too
Other LVs affectedNoYes, all thin LVs sharing the pool
RecoverabilitySnapshot is gone, recreate onlyExtend pool if VG has space; metadata corruption may not be repairable
Warning signalsnap_percent approaching 100%data_percent and metadata_percent approaching 100%
Speed of failureInstant invalidation at 100%60s write queue (if queued mode), then errors
Write amplification3x or more per origin write, per snapshotMinimal COW overhead on origin
Snapshot of snapshotNot supportedSupported, shares the same pool
Origin can be removedNo, not while snapshots existYes, snapshots become independent thin LVs

Which to choose

The decision depends on your workload and your tolerance for each failure mode.

Use old-style COW snapshots when:

  • Short-lived backup snapshots: You create, read, and remove within a known window. Size the exception store for the expected write volume during that window.
  • Isolation matters: If the snapshot dies, only the backup or restore point is lost. Production continues without interruption.
  • You can tolerate write amplification: The origin sees 3x or higher write overhead per snapshot during the snapshot’s lifetime.

Use thin snapshots when:

  • Long-lived snapshots: You need rollback points or test environments that persist for hours or days.
  • You already monitor the thin pool: You track both data_percent and metadata_percent and have auto-extend properly configured.
  • You can accept the blast radius: A full pool affects all thin volumes, not just the snapshot.
  • Multiple snapshots on one origin: Thin snapshots do not compound COW overhead the way old-style snapshots do.

Do not mix them unknowingly. The --size trap means a single command can create the wrong type. Verify with lvs what type each snapshot actually is before relying on it.

The creation trap: –size creates a COW snapshot

The most common operator mistake is passing --size when creating a snapshot of a thin LV. The lvmthin(7) man page is explicit: specifying -L or --size when creating a thin snapshot causes an old-style COW snapshot to be created instead.

# Correct: thin snapshot shares the pool, no --size
lvcreate --snapshot --name snap1 vg0/thin_lv

# Wrong: creates an old-style COW snapshot with a fixed exception store
lvcreate --snapshot --size 1G --name snap1 vg0/thin_lv

The wrong command succeeds without error or warning. You end up with a snapshot that has a fixed exception store allocated from VG extents and will be silently invalidated when it fills. You may believe you are using thin snapshots (which share the pool and do not invalidate) when you are actually running old-style snapshots that can die at any moment.

To verify which type you have, check whether the snapshot references a pool:

# Identify snapshot type - pool_lv presence indicates thin snapshot
lvs -o lv_name,origin,seg_type,pool_lv,snap_percent

A snapshot with a pool_lv value is a thin snapshot sharing a thin pool. A snapshot with no pool_lv and a seg_type of snapshot is an old-style COW snapshot with a fixed exception store and its own invalidation risk.

Signals to watch in production

SignalApplies toWhy it mattersWarning sign
snap_percentCOW snapshotsApproaches 100% means imminent invalidationAbove 80% on an active origin
lv_attr position 5 = ICOW snapshotsSnapshot already invalidated, backup lostAny I value
data_percent (thin pool)Thin snapshotsApproaches 100% means all thin LVs freezeAbove 85%
metadata_percent (thin pool)Thin snapshotsApproaches 100% means potential pool corruptionAbove 75%
lv_attr position 9 = DThin snapshotsPool out of data space, writes failing or queuedAny D value
lv_attr position 9 = FThin snapshotsPool in failed state, repair neededAny F value
lv_attr position 9 = MThin snapshotsMetadata read-only modeAny M value
Origin LV write latencyBoth (COW mainly)COW overhead from active snapshots2x baseline or higher
vg_free_percentBothLow VG space prevents extension or pool growthBelow 10%
thin_pool_autoextend_thresholdThin snapshotsDefault 100 means auto-extend is disabledVerify value is below 100
dmeventd runningThin snapshotsRequired for auto-extend to fireProcess absent

Two operational notes on these signals.

First, the thin pool auto-extend threshold defaults to 100, which means disabled. Many operators assume their thin pools will auto-grow, but the default configuration does nothing. The first test of auto-extend is usually the production incident. Verify explicitly in /etc/lvm/lvm.conf that thin_pool_autoextend_threshold is set below 100 and that thin_pool_autoextend_percent is greater than 0.

# Check current auto-extend configuration
grep -E 'thin_pool_autoextend' /etc/lvm/lvm.conf

Second, thin pool data usage is updated periodically by the kernel, not on every write. It can be tens of seconds behind actual state. This makes sub-second alerting unreliable for thin pool metrics. Trend-based alerting with rate-of-change calculation is more useful than instantaneous threshold checks for pool exhaustion. For old-style snapshots, snap_percent also jumps in chunks rather than climbing smoothly, because exception store allocation happens in blocks.

How Netdata helps

  • Per-second collection of thin pool data_percent and metadata_percent, giving earlier visibility into growth trends than periodic lvs polling.
  • snap_percent tracking for old-style snapshots with anomaly detection on growth rate, so a write burst on the origin triggers an alert before the exception store fills.
  • LV health attribute monitoring (lv_attr position 9: D, F, M flags) that surfaces pool failure states the moment they appear in kernel device-mapper.
  • Correlation of VG free space with thin pool usage, showing whether auto-extend can actually succeed when it fires.
  • D-state process count and dm device latency correlation, so you can distinguish snapshot COW overhead from thin pool exhaustion during an incident.
  • Kernel log (dmesg) event collection alongside LVM metrics, so invalidation messages and I/O errors appear in the same timeline as the metrics that explain them.