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 / postgres / postgres-tablespace-management

Operations Guides

PostgreSQL tablespace management: moving data without downtime

PostgreSQL tablespaces map relations to specific filesystem paths. Moving data between tablespaces is not an online operation in core PostgreSQL: ALTER TABLE SET TABLESPACE copies the relation’s data files while holding an ACCESS EXCLUSIVE lock for the entire duration. For a large relation, reads and writes block for minutes or hours. This guide covers three operational paths: the built-in offline move for small or maintenance-tolerant relations, offline symlink relocation for entire tablespace directories, and near-zero-downtime workarounds for heavy tables.

What tablespace moves enable

Operators use tablespaces to tier storage (NVMe for hot partitions, cold disk for archives), evacuate a full volume, or isolate high-churn relations onto dedicated spindles. Moving a relation changes its physical backing file under $PGDATA/pg_tblspc/<oid> without rewriting SQL references. Unlike VACUUM FULL or CLUSTER, a tablespace move does not reorder tuples; it only changes the filesystem location. The operation is bounded by raw copy speed plus WAL logging, not by table rewrite complexity. Plan for the lock window, destination disk space, and the extra WAL volume generated during the copy.

Prerequisites

  • Superuser or ownership of the target relations.
  • Destination free space greater than or equal to the relation size. If the destination filesystem also holds WAL or pg_repack work tables, add corresponding headroom.
  • Schedule built-in ALTER TABLE moves during a maintenance window. SET TABLESPACE has no ONLINE or CONCURRENTLY modifier in any current PostgreSQL version.
  • Symlink relocation requires stopping the entire cluster. Never update $PGDATA/pg_tblspc/<oid> while PostgreSQL is running.
  • For large tables under continuous load, use pg_repack or a logical-replication cutover instead of the built-in command. pg_repack requires a primary key or unique NOT NULL index and roughly 2x the table size in free disk space.

Procedure

Move a single table or index (built-in, offline)

This is the simplest path and the only one built into core PostgreSQL. It is fully blocking.

  1. Check the relation size.

    SELECT pg_size_pretty(pg_total_relation_size('schema.table'));
    
  2. Move the table.

    -- WARNING: blocks reads and writes for the entire copy
    ALTER TABLE schema.table SET TABLESPACE new_tablespace;
    

    The command acquires an ACCESS EXCLUSIVE lock. All queries queue behind it until the copy finishes.

  3. Move indexes separately. ALTER TABLE SET TABLESPACE moves the table and its TOAST data automatically, but it does not move indexes.

    ALTER INDEX schema.idx1 SET TABLESPACE new_tablespace;
    ALTER INDEX schema.idx2 SET TABLESPACE new_tablespace;
    
  4. Verify the move.

    -- reltablespace = 0 means pg_default
    SELECT relname, reltablespace
    FROM pg_class
    WHERE relnamespace = 'schema'::regnamespace
      AND relname IN ('table', 'idx1', 'idx2');
    

Move all user tables in a tablespace at once

If you are evacuating an old tablespace and can tolerate downtime, use the bulk form. It operates within the current database only, excludes system catalogs, and moves only tables and materialized views. Indexes remain behind and must be relocated separately.

ALTER TABLE ALL IN TABLESPACE old_tablespace
SET TABLESPACE new_tablespace;

Append NOWAIT to fail immediately if any relation cannot acquire the lock:

ALTER TABLE ALL IN TABLESPACE old_tablespace
SET TABLESPACE new_tablespace NOWAIT;

Relocate a tablespace directory (cluster offline)

When the underlying mount point or directory must change (for example, storage migration or filesystem reorganization), relocate the backing directory and update the symlink. PostgreSQL backends cache open file descriptors and path metadata, so the cluster must be stopped before any filesystem change.

  1. Identify the tablespace OID.

    SELECT oid, spcname FROM pg_tablespace WHERE spcname = 'mytablespace';
    
  2. Stop PostgreSQL.

    pg_ctl stop -D $PGDATA -m fast
    
  3. Move the physical directory. If the old and new paths are on the same mount, mv is atomic. If you are crossing filesystems, use cp -a or rsync, then remove the source only after confirming the cluster starts.

    cp -a /old/mount/tablespace_data /new/mount/tablespace_data
    
  4. Update the symlink in pg_tblspc. The symlink name is the tablespace OID.

    # WARNING: verify the OID and path before running
    ln -snf /new/mount/tablespace_data "$PGDATA/pg_tblspc/<oid>"
    
  5. Start PostgreSQL and confirm the new location.

    SELECT spcname, pg_tablespace_location(oid) AS location
    FROM pg_tablespace
    WHERE spcname = 'mytablespace';
    
  6. After confirming the cluster is healthy and the tablespace is accessible, remove the old source directory if you used a copy-based method.

Near-zero-downtime alternatives for large tables

For large tables where an exclusive lock is unacceptable, the built-in command is not viable. The two common workarounds are:

  • pg_repack. Rebuilds the table online with only a brief ACCESS EXCLUSIVE lock at the final swap. It requires a primary key or unique NOT NULL index and roughly 2x disk space. Native tablespace targeting in pg_repack depends on version-specific CLI options; consult the pg_repack documentation for your release before planning the move.
  • Logical replication cutover. Create a publication on the source, a subscription on a target cluster where the table already lives in the desired tablespace, and switch application traffic once the subscriber catches up. This avoids locking the source table but requires managing schema, sequences, and slot cleanup.

Configure temporary tablespaces

temp_tablespaces is a comma-separated list of tablespace names PostgreSQL uses for temporary objects. If unset, temp objects land in pg_default. Setting it helps isolate sort and hash spill I/O from your main data directory.

SET temp_tablespaces = 'fast_ssd, fallback_disk';

PostgreSQL picks one entry at random for each temp object. List tablespaces in order of preference, but remember that random selection means load spreads rather than strictly tiers.

Verifying the move

After any tablespace change, confirm that the catalog and filesystem agree.

  • Query pg_class.reltablespace to confirm the relation points to the new tablespace OID. A value of 0 means pg_default.
  • For symlink relocations, pg_tablespace_location(oid) must return the new absolute path.
  • Check that filesystem usage on the destination volume grew by the expected amount and that the source volume dropped after the old files were unlinked.
  • If you moved indexes, verify each one individually. Missing an index move is the most common oversight.

Common pitfalls

  • Indexes stay behind. ALTER TABLE SET TABLESPACE moves the table and its TOAST data, but indexes remain on the old tablespace unless moved separately. The bulk ALL IN TABLESPACE form behaves the same way for tables and materialized views.
  • WAL amplification. The move generates WAL for every copied block. On replicas, this appears as replication lag proportional to the relation size. Do not disable archiving to speed up the move; that endangers point-in-time recovery and replicas.
  • Mid-copy disk exhaustion. The old file is not removed until the new copy is complete. The destination volume must have room for the full relation. If the old and new tablespaces share a filesystem, that filesystem must hold both copies until the move commits.
  • Symlink updates while running. Updating $PGDATA/pg_tblspc/<oid> while PostgreSQL is running risks data corruption and crash recovery failure because backends cache open file descriptors. Always stop the cluster first.
  • ALL IN TABLESPACE skips system catalogs. It only moves user relations in the current database. You cannot use it to relocate global objects.

Signals to monitor during a move

SignalWhy it mattersWarning sign
pg_stat_activity where wait_event_type = 'Lock'Shows sessions blocked by the ACCESS EXCLUSIVE lockQueue depth growing behind the move operation
pg_wal_lsn_diff(sent_lsn, replay_lsn) or replay_lagThe move generates WAL that replicas must replayLag increasing linearly with relation size
Destination filesystem free space (df -h or pg_tablespace_size)The copy requires room for the full relationSpace dropping below relation size mid-operation
pg_stat_database.xact_commit rateMeasures throughput collapse on the databaseCommit rate near zero during the lock window

How Netdata helps

  • Chart PostgreSQL lock waits alongside disk I/O on the destination volume to confirm copy progress and estimate completion.
  • Track replication lag to quantify WAL impact on streaming replicas.
  • Alert on long-running ALTER TABLE queries that exceed the expected maintenance window.
  • Alert on filesystem capacity for source and destination tablespace paths.
  • Chart transaction rate drops during the lock window to communicate impact to stakeholders.
The Netdata solution

PostgreSQL monitoring with Netdata

Netdata monitors PostgreSQL with per-second metrics, pre-built dashboards, and ML-powered anomaly detection. Correlate connection saturation, lock waits, autovacuum progress, replication lag, and checkpoint I/O against the rest of your stack so you catch the incidents in these runbooks before they page anyone.