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.

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

Level Up Your Monitoring

Real problems. Real solutions. 112+ guides from basic monitoring to AI observability.

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

Static Metadata icon

Static Metadata

Static Metadata

Plugin: netflow-plugin Module: static-metadata

Overview

Annotate network flows with operator-defined labels for exporters, interfaces, networks, and sampling rates. Static Metadata is a YAML-defined enrichment source that lives entirely in netflow.yaml. Use it when there is no IPAM, no CMDB, and no MMDB to query – you simply know your own networks, your own routers, and what the interfaces on those routers do, and you want those labels visible on the Network Flows view.

Three independent surfaces are configured under this card, each populating a different set of flow-record fields:

  • enrichment.metadata_static.exporters.<ip-or-cidr> – per-exporter labels (matched against the source IP of the UDP datagram) and per-interface labels (matched against the ifIndex from the flow record).
  • enrichment.networks.<cidr> – labels for arbitrary CIDR blocks (your own corp ranges, customer ranges, public blocks you operate). Matched against the flow’s source and destination IPs.
  • enrichment.override_sampling_rate.<cidr> – per-prefix sampling-rate substitution for exporters that do not communicate their rate (e.g. NetFlow v7, which has no sampling field, or a v9 exporter that never sends a Sampling Options Template).

Fields populated:

  • From metadata_static.exporters (per-exporter): EXPORTER_NAME, EXPORTER_GROUP, EXPORTER_ROLE, EXPORTER_SITE, EXPORTER_REGION, EXPORTER_TENANT.
  • From metadata_static.exporters.if_indexes (per-interface): IN_IF_NAME / OUT_IF_NAME, IN_IF_DESCRIPTION / OUT_IF_DESCRIPTION, IN_IF_SPEED / OUT_IF_SPEED (in bits per second), IN_IF_PROVIDER / OUT_IF_PROVIDER, IN_IF_CONNECTIVITY / OUT_IF_CONNECTIVITY, IN_IF_BOUNDARY / OUT_IF_BOUNDARY (1 = external, 2 = internal, 0/omitted = removed from output).
  • From enrichment.networks (per-CIDR): SRC_NET_NAME / DST_NET_NAME, SRC_NET_ROLE / DST_NET_ROLE, SRC_NET_SITE / DST_NET_SITE, SRC_NET_REGION / DST_NET_REGION, SRC_NET_TENANT / DST_NET_TENANT, plus overrides for the GeoIP-derived SRC_COUNTRY / DST_COUNTRY, SRC_GEO_STATE / DST_GEO_STATE, SRC_GEO_CITY / DST_GEO_CITY, SRC_GEO_LATITUDE / DST_GEO_LATITUDE, SRC_GEO_LONGITUDE / DST_GEO_LONGITUDE. Setting asn: on a networks entry overrides the AS number via the same merge path; the AS name still comes from the ASN database (see “Composition with dynamic sources” below).
  • From override_sampling_rate (longest-prefix match against the exporter IP): SAMPLING_RATE is set unconditionally when an override prefix matches. This is different from default_sampling_rate, which only applies when the flow does not already carry a rate.

For the cross-cutting Enrichment concept (provider chains, merge order rules, how static composes with dynamic sources, the static-blocks-classifiers interaction, and shared failure modes), see Enrichment.

Edit netflow.yaml, restart the plugin, and the YAML-defined data is loaded into the same in-memory tries the GeoIP, IPAM, and BGP enrichment paths read from. There is no network access, no file watching, and no hot reload – changes take effect on the next plugin startup.

This integration is only supported on the following platforms:

  • Linux

This integration runs as a single instance per Netdata Agent.

Default Behavior

Auto-Detection

Disabled by default. Add entries under enrichment.metadata_static, enrichment.networks, and / or enrichment.override_sampling_rate to populate it.

Limits

Resource use scales with the number of exporter, interface, network, and sampling-override entries. Keep CIDR ranges and interface maps specific enough to match the routers you actually export.

Performance Impact

Static lookups are local map/trie lookups during enrichment. Cost is usually small compared with flow decode and journal writes, but very large maps add memory and lookup work.

Setup

Prerequisites

An understanding of your own topology

You need to know which IP addresses your routers / switches / firewalls export from, the integer ifIndex values they use for each interface, and the CIDR ranges that belong to each of your sites / tenants / roles. None of this is auto-discovered – this card is the “I will tell you” path. For sources that auto-discover the same data, see Generic IPAM, NetBox, and the cloud IP-range cards.

Persistent ifIndex values

if_indexes keys are the integer ifIndex the router puts in the flow record. Some platforms reassign ifIndex on line-card reseat or stack rebuild. After hardware changes, audit the labels – a stale ifIndex entry silently no longer applies. The default interface block is used instead, or no labels are written when skip_missing_interfaces: true is set.

Configuration

Options

All keys live under enrichment: in netflow.yaml. Unknown keys fail config load with a parse error.

OptionDescriptionDefaultRequired
enrichment.metadata_static.exportersMap keyed by exporter IP or CIDR. Longest-prefix match wins. A /32 key and a bare IP are equivalent. Each entry holds exporter-level labels (name, group, role, site, region, tenant), an optional default interface block, an if_indexes map keyed by integer ifIndex, and skip_missing_interfaces.{}no
enrichment.metadata_static.exporters.<key>.if_indexesMap keyed by integer ifIndex (the value the router puts in the flow record). Each entry holds name, description, speed (bits per second), provider, connectivity, and boundary.{}no
enrichment.metadata_static.exporters.<key>.defaultInterface block applied to flow records whose ifIndex is not present in if_indexes. Same shape as an if_indexes entry. Ignored when skip_missing_interfaces: true is set.{}no
enrichment.metadata_static.exporters.<key>.skip_missing_interfacesWhen true, flow records whose ifIndex is not in if_indexes get no interface labels at all (not even from default). Useful when you only care about a known set of WAN interfaces and want unknown ones to stay blank instead of inheriting a placeholder.falseno
enrichment.metadata_static.exporters.<key>.if_indexes.<n>.boundaryInterface boundary marker. Accepts the integers 0 (undefined), 1 (external – faces the outside world: Internet, peer, transit), 2 (internal – faces your own infrastructure), or the case-insensitive strings "undefined", "external", "internal". Any other value fails config load. Filtering for IN_IF_BOUNDARY=1 cleanly gives you “traffic that arrived from outside”.0no
enrichment.metadata_static.exporters.<key>.if_indexes.<n>.speedInterface speed in bits per second. A 1 Gbps interface is 1000000000, not 1000 and not 1000000. Operators thinking in megabits get the value wrong by a factor of 1000 to 1000000. A 0 value means “not set” and removes the field from the output.0no
enrichment.networksMap keyed by CIDR. Longest-prefix match contributes the most-specific fields; less-specific containing prefixes contribute their non-empty fields too. The same merge rule is used by network_sources. Each value is either a string (shorthand for name:) or a map with name, role, site, region, country, state, city, latitude, longitude, tenant, asn.{}no
enrichment.networks.<cidr>.asnForces the AS number for traffic in this prefix, overriding whatever the asn_providers chain computed. The AS name is still resolved from the ASN MMDB – there is no asn_name config field. See the ASN section of Enrichment.0no
enrichment.networks.<cidr>.latitude / longitudePer-CIDR coordinate override. Out-of-range values (latitude not in [-90, 90] or longitude not in [-180, 180]) and non-finite values are silently coerced to empty strings – the field is dropped, no error. Validate input out of band if your data matters.nullno
enrichment.default_sampling_rateGlobal fallback applied only when the flow record does not already carry a sampling rate. Either a single integer or a CIDR-keyed map (longest-prefix match against the exporter IP).0no
enrichment.override_sampling_ratePer-exporter substitution that always wins when its prefix matches the exporter IP, regardless of what the flow record carried. Either a single integer or a CIDR-keyed map.{}no

via File

The configuration file name for this integration is netflow.yaml.

You can edit the configuration file using the edit-config script from the Netdata config directory.

cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
sudo ./edit-config netflow.yaml
Examples
Naming exporters and their interfaces

One edge router and one spine. The default block applies to any ifIndex not listed under if_indexes – handy when you only care about a few WAN ports and want everything else to inherit a placeholder.

enrichment:
  metadata_static:
    exporters:
      192.0.2.10:                    # bare IP == /32
        name: edge-router-1
        site: par1
        region: eu-west
        role: edge
        tenant: tenant-a
        default:
          description: unclassified port
        if_indexes:
          1:
            name: Gi0/0/1
            description: uplink to ISP-A
            speed: 10000000000        # 10 Gbps in bits per second
            provider: isp-a
            connectivity: transit
            boundary: external
          2:
            name: Gi0/0/2
            description: LAN core
            speed: 1000000000
            connectivity: lan
            boundary: internal
      198.51.100.0/24:                # all routers in this subnet
        site: dc-fra1
        region: eu-central
        role: spine
        default:
          connectivity: lan
          boundary: internal
Tagging your own networks

The shorthand form (203.0.113.0/24: transit-a) sets only the name. The map form takes any subset of the schema fields. Less-specific supernets contribute non-empty fields to more-specific subnets via ascending-prefix-length merge – declare RFC1918 once at /8 and a /24 inherits everything you did not override.

enrichment:
  networks:
    10.0.0.0/8:
      name: corp-internal
      role: internal
      tenant: tenant-a
    198.51.100.0/24:                  # a public block you operate
      name: customer-acme
      role: customer
      site: par1
      country: FR
      city: Paris
      latitude: 48.8566
      longitude: 2.3522
      asn: 64500
    203.0.113.0/24: transit-a         # shorthand: name only
Skipping interfaces you have not labelled

With skip_missing_interfaces: true, an ifIndex that is not in if_indexes produces no interface labels at all – the default block is ignored. Useful when you want clearly-blank values for unmodelled interfaces instead of a placeholder description.

enrichment:
  metadata_static:
    exporters:
      192.0.2.10:
        name: edge-router-1
        skip_missing_interfaces: true
        if_indexes:
          1:
            name: Gi0/0/1
            description: uplink to ISP-A
            connectivity: transit
            boundary: external
Sampling rate override for old or silent exporters

NetFlow v7 has no sampling field; some v9 exporters never send a Sampling Options Template. Without an override, the bytes/packets stored in the journal are exporter-side sampled counters with no scaling factor. override_sampling_rate always wins; default_sampling_rate is the fallback used only when the flow did not carry a rate.

enrichment:
  default_sampling_rate: 1            # global fallback
  override_sampling_rate:
    10.1.0.0/16: 1024                 # an old NetFlow v7 stack
    192.0.2.10/32: 4096               # one specific exporter

Metrics

Tags flow records with operator-defined labels and (optionally) substitutes the sampling rate; produces no metrics of its own. Verify on the Network Flows tab via the EXPORTER_*, IN_IF_*, OUT_IF_*, *_NET_*, *_COUNTRY, *_GEO_*, and SAMPLING_RATE columns.

Alerts

There are no alerts configured by default for this integration.

A more-specific entry inherits the wrong field from its supernet

enrichment.networks merges containing prefixes from least-specific to most-specific. Leaving a field blank on a /24 does not clear the /16’s value for that field – you must explicitly set the field on the more-specific entry to overwrite. The same merge rule applies to entries from network_sources, which interleave at the same prefix lengths.

GeoIP returns spurious data for an internal range

Until you declare your RFC1918 / RFC6598 / link-local ranges as enrichment.networks entries, the GeoIP-derived country / city / coord fields can pick up junk for those addresses. Adding a networks entry for the range overrides the GeoIP layer at the merge step.

ifIndex changed after a hardware swap

if_indexes keys are the numeric ifIndex sent in the flow record. A line-card reseat or stack rebuild can renumber the interfaces; the old ifIndex no longer matches and the per-interface block silently no longer applies. Audit after hardware changes.

speed shows up wrong by a factor of 1000

speed: is in bits per second. speed: 1000 means 1 kbps, not 1 Mbps. A 1 Gbps interface is 1000000000. speed: 0 means “not set” and removes the field from the output.

An interface block silently no longer applies

When the configured ifIndex is not present in the flow record, the default block is used instead – unless skip_missing_interfaces: true is set, in which case no interface labels are written at all. If you expected your block to apply but the labels are blank, the router is sending a different ifIndex.

Coordinates dropped silently

Out-of-range latitude / longitude (latitude: 91.5) and non-finite values become empty strings without an error. The map quietly stops drawing the marker. Validate input externally if the data matters.

Static labels block the classifiers

When static metadata sets any of group, role, site, region, tenant for an exporter, the exporter_classifiers rule chain does not run for that exporter at all. The same is true for an interface: any of provider, connectivity, boundary set by static metadata short-circuits interface_classifiers. If you want classifiers to run on top of static metadata, drop the static fields they are supposed to set.

A typo fails config load

The schema is deny_unknown_fields at every level. A typo such as if_index (the canonical key is if_indexes; aliases ifindexes, if-indexes are accepted) or a misspelt attribute (teannt:) fails plugin start with a YAML parse error rather than being silently ignored.

Sampling override looks ignored

override_sampling_rate always wins when its prefix matches; if the field still looks unset, check that the exporter IP – not the flow’s source / destination IP – falls under the configured prefix. default_sampling_rate is only consulted when the flow did not already carry a rate.

Changes do not take effect

Static metadata is loaded at plugin startup and there is no file-change watcher. Restart the plugin (or the agent) after editing netflow.yaml.

The observability platform companies need to succeed

Sign up for free

Want a personalised demo of Netdata for your use case?

Contact Sales