Netdata logo

Netdata

Real-time infrastructure and application monitoring platform

Alternative to: Prometheus, Grafana, Nagios, Zabbix, Datadog, New Relic, Sensu, Dynatrace

Netdata screenshot

About Versions (109)

v2.10.0

2026-04-09

Table of Contents

Release Summary

Netdata v2.10.0 introduces secrets management, a Nagios plugins collector, Azure Monitor support, and broad stability improvements.

FeatureHighlightsDetails
Secrets Management4 resolver types, 4 backends• Environment variables, files, commands, and secretstore references
• AWS Secrets Manager, Azure Key Vault, GCP Secret Manager, HashiCorp Vault
Enhanced AI ConversationsReports and Alerts integration• Resume and expand generated AI reports
• Ask AI about active alerts or charts, their root causes, and recommended remediation steps
Advanced AlertingSilencing, Evaluation & Acknowledge• Complete support for recurrence rules for Alerts Silencing
• Test alert definitions against historical data before deploying
• Acknowledge alerts you’re working on
Improved Custom DashboardsComplete Customisation• Add Metrics, Logs, Events, Node List, Alerts, Live Functions and Text components
• Duplicate Custom Dashboards
Nagios Plugins CollectorRun any Nagios-compatible check• Automatic performance data charts
• Threshold-based alerting with soft/hard state logic
• Execution metrics (duration, CPU, memory)
Azure Monitor Collector38 service profiles, 1,300+ metrics• Automatic resource discovery via Azure Resource Graph
• Multi-subscription, flexible scoping by resource groups/regions/tags
Azure AD for Database CollectorsMSSQL, PostgreSQL, Generic SQL• Service principal, managed identity, and default credential chain
• Passwordless auth for Azure-hosted databases
New Storage CollectorsDell PowerStore, Dell PowerVault• Hardware health, performance, capacity, and sensor monitoring
• Built on V2 collector framework
Expanded Collector CoveragevSphere, MSSQL, SNMP, Docker• vSphere datastores/clusters/resource pools
• MSSQL Always On AG monitoring
• SNMP IPSec/VPN profiles for FortiGate, Juniper, MikroTik, Check Point
• Docker container listing function
OpenTelemetry ImprovementsMetrics pipeline overhaul• Proper slot-based aggregation with configurable intervals
• Multi-slot ingestion with out-of-order support
Stability & PerformanceProduction reliability• Faster agent startup
• ML prediction optimization
• Alerts API speedup
• Multiple crash and race condition fixes

Release Highlights

Secrets Management

Keep collector credentials out of plain-text configuration files. Netdata now lets you reference secrets in collector configurations instead of storing them directly. Passwords, tokens, and API keys are resolved at runtime from the source you choose.

Resolvers

Netdata provides four resolver types, from simple to enterprise-grade:

ResolverSyntaxBest For
Environment variable${env:VAR_NAME}Secrets already injected into the Netdata service environment
File${file:/absolute/path}Secrets stored in local files on disk (Docker Secrets, Kubernetes Secrets mounted as volumes)
Command${cmd:/absolute/path args}Secrets returned by a trusted local command (e.g., 1Password CLI, custom scripts)
Secretstore${store:<kind>:<name>:<operand>}Secrets managed centrally in cloud providers or Vault

Supported Secretstore Backends

For organizations managing secrets centrally, Netdata integrates with four secretstore backends:

BackendKindOperand FormatAuthentication Modes
AWS Secrets Manageraws-smsecret-name[#key]Environment credentials, ECS task role, EC2 instance profile
Azure Key Vaultazure-kvvault-name/secret-nameService principal, Managed identity, Default credential chain
Google Secret Managergcp-smproject/secret[/version]Metadata server, Service account file
HashiCorp Vaultvaultpath#keyToken, Token file

Configure secretstores through the Netdata Dynamic Configuration UI (Collectors → go.d → SecretStores) or via configuration files under /etc/netdata/go.d/ss/.

Example

A MySQL collector referencing its password from HashiCorp Vault:

# /etc/netdata/go.d/mysql.conf
jobs:
  - name: mysql_prod
    dsn: "netdata:${store:vault:vault_prod:secret/data/netdata/mysql#password}@tcp(127.0.0.1:3306)/"

You can mix resolver types freely. For example, read the username from an environment variable and the password from a secretstore in the same config value:

jobs:
  - name: mysql_prod
    dsn: "${env:MYSQL_USER}:${store:vault:vault_prod:secret/data/netdata/mysql#password}@tcp(127.0.0.1:3306)/"

How It Works

  • Secrets are resolved each time a collector job starts or restarts.
  • Updating a secretstore automatically restarts collector jobs that use it so they pick up new credentials.
  • Secretstore configuration values themselves also support ${env:...}, ${file:...}, and ${cmd:...} resolvers, so backend credentials don’t need to be stored in plain text either.

[!TIP] For detailed setup, backend-specific authentication guides, and troubleshooting, see the Secrets Management documentation.

Enhanced AI Conversations

Netdata AI Conversations are now more powerful. You can now add Active Alerts, Charts or AI-generated reports to start an AI conversation to provide better, more meaningful responses to your conversations.

Image

Advanced Alerting

With this release, Netdata provides our users with the ability to:

  • Graphically Evaluate Alerts on historical data before they are deployed Image

  • Create complex recurrence rules on Alerts Silencing to manage your maintenance windows Image

  • Acknowledge Alerts that your teams are working on Image

Improved Custom Dashboards

With this release, we have improved our custom dashboards support to:

  • Add metrics charts, logs, live functions, events feeds, active alerts counts, node list, etc.
  • Duplicate Dashboards to help create new custom dashboards from existing ones
Image

Nagios Plugins Collector

Run Nagios-compatible plugins and custom scripts directly inside Netdata with the new Nagios Plugins collector. Any executable that follows the Nagios plugin output format works out of the box: packaged Nagios plugins, custom shell scripts, or compiled binaries.

What You Get

FeatureDetails
Check State MonitoringTracks OK, WARNING, CRITICAL, and UNKNOWN states from the process exit code
Automatic Performance Data ChartsNagios performance data values are parsed and charted automatically
Threshold-Based AlertingWhen perfdata includes warning/critical thresholds, Netdata derives a threshold state chart (ok/warning/critical) and creates built-in alerts
Execution MetricsMeasures run duration, CPU time, and memory usage of each check
Nagios-Style SchedulingConfigurable check intervals, retry intervals, max check attempts, and time periods
Soft/Hard State LogicNon-OK results retry at retry_interval up to max_check_attempts before triggering alerts, preventing false alarms from transient failures

Built-in Alerts

The collector ships with four stock alerts:

AlertTriggers When
nagios_job_execution_state_warnA check is in WARNING hard state
nagios_job_execution_state_critA check is in CRITICAL hard state
nagios_job_perfdata_threshold_state_warnA perfdata metric exceeds its warning threshold
nagios_job_perfdata_threshold_state_critA perfdata metric exceeds its critical threshold

All stock alerts suppress soft retry states. Alerts fire only after the configured max_check_attempts consecutive failures.

Example

# /usr/local/lib/netdata/checks/check_api.sh
#!/bin/sh
resp=$(curl -s -o /dev/null -w "%{http_code} %{time_total}" --max-time 5 "$1" 2>/dev/null)
code=$(echo "$resp" | cut -d' ' -f1)
time=$(echo "$resp" | cut -d' ' -f2)

[ "$code" -ge 500 ] && echo "CRITICAL - HTTP $code | response_time=${time}s;~:2;~:5" && exit 2
[ "$code" -ne 200 ] && echo "WARNING - HTTP $code | response_time=${time}s;~:2;~:5" && exit 1
echo "OK - HTTP $code | response_time=${time}s;~:2;~:5"
exit 0
# /etc/netdata/scripts.d/nagios.conf
jobs:
  - name: api_health
    plugin: /bin/sh
    args: ["/usr/local/lib/netdata/checks/check_api.sh", "http://localhost:8080/health"]
    check_interval: 1m
    retry_interval: 15s
    max_check_attempts: 3

This produces check state charts, execution metrics, and because the script emits perfdata with thresholds (response_time with warn >2s / crit >5s), an automatic response time chart with a threshold state chart and built-in alerts.

[!TIP] For the full setup guide, custom scripts walkthrough, and time period configuration, see the Nagios Plugins collector documentation.

Azure Monitor Collector

Monitor your entire Azure infrastructure from Netdata with the new Azure Monitor collector. It collects platform metrics from the Azure Monitor Metrics API with automatic resource discovery: point it at your subscriptions, and it finds your resources, matches them to built-in profiles (preconfigured sets of metrics), and starts collecting metrics.

[!IMPORTANT] This is an alpha feature. The configuration format may change in upcoming releases.

What You Get

FeatureDetails
38 Built-in Service Profiles1,300+ metrics across compute, databases, networking, storage, AI/ML, analytics, containers, and more
Automatic DiscoveryDiscovers resources via Azure Resource Graph and enables matching profiles without per-resource configuration
Multi-SubscriptionMonitor resources across multiple Azure subscriptions in a single collector job
Flexible Discovery ScopingNarrow discovery by resource groups, regions, or tags, or use a custom Azure Resource Graph KQL query
Built-in AlertsPre-configured alerts for critical Azure resource conditions
UI ConfigurationConfigure through the Netdata Dynamic Configuration UI without file editing

Supported Services

CategoryServices via Profiles
ComputeVirtual Machine, Virtual Machine Scale Set, App Service (incl. Functions), Container Apps, Container Instances
KubernetesAKS
DatabasesSQL Database, SQL Elastic Pool, SQL Managed Instance, MySQL Flexible, PostgreSQL Flexible, Cosmos DB, Cache for Redis
NetworkingLoad Balancer, Application Gateway, Front Door, Firewall, NAT Gateway, VPN Gateway, ExpressRoute Circuit, ExpressRoute Gateway
Storage & AnalyticsStorage Account, Data Explorer, Data Factory, Stream Analytics, Synapse Analytics, Log Analytics
MessagingEvent Hubs, Service Bus, Event Grid, IoT Hub
AI & MLCognitive Services, Machine Learning, Application Insights
IntegrationAPI Management, Logic Apps, Key Vault, Container Registry

[!TIP] For detailed setup instructions, authentication options, custom profiles, and tuning, see the Azure Monitor collector setup guide.

Acknowledgments

  • @kiwixz for increasing statsd UDP buffer size to match localhost MTU, preventing packet truncation.
  • @DarkByteZero for fixing MongoDB top-queries timeout, netdev_mutex deadlock, and apps.plugin use-after-free crash.

Contributions

Collectors

Improvements
  • Overhauled OpenTelemetry metrics pipeline with proper slot-based aggregation, multi-slot ingestion with out-of-order support, configurable intervals, and optimized JSON handling (otel.plugin). (#21771, #21893, #21896, #22085, @vkalintiris)
  • Added secrets management support, allowing collector credentials to be stored in external secret stores like AWS Secrets Manager, Azure Key Vault, GCP Secret Manager, and HashiCorp Vault (go.d). (#21951, #22081, #22083, @ilyam8)
  • Rewrote scripts.d collector to V2 framework with alertable state support for Nagios-style custom scripts (go.d/scripts.d). (#21908, #22008, @ilyam8)
  • Added Azure Monitor collector for monitoring Azure cloud resources with built-in alerts (go.d/azure_monitor). (#21993, #22007, #22095, @ilyam8)
  • Added Azure AD authentication support for MSSQL, PostgreSQL, and generic SQL collectors (go.d). (#21905, #21995, @ktsaou, @ilyam8)
  • Added Dell PowerVault ME4/ME5 storage array collector with system health, hardware status, performance, and capacity monitoring (go.d/powervault). (#21936, @ktsaou)
  • Added Dell PowerStore storage array collector with cluster, appliance, volume, node, and hardware monitoring (go.d/powerstore). (#21929, @ktsaou)
  • Added Always On Availability Group monitoring to MSSQL collector with AG health, replica states, sync metrics, and WSFC cluster status (go.d/mssql). (#21927, @ktsaou)
  • Added IPSec/VPN monitoring profiles for FortiGate, Juniper, MikroTik, and Check Point (go.d/snmp). (#21926, @ktsaou)
  • Added per-Windows-service process tree grouping to apps.plugin with auto-discovery via Service Control Manager (apps.plugin). (#21925, @ktsaou)
  • Added datastore, cluster, and resource pool monitoring to vSphere collector with capacity, IOPS, and latency metrics (go.d/vsphere). (#21924, @ktsaou)
  • Added Docker container listi1ng function for interactive container overview in the dashboard (go.d/docker). (#21868, @ilyam8)
  • Increased statsd UDP buffer size to match localhost MTU, preventing packet truncation (statsd). (#21822, @kiwixz)
  • Improved Windows plugin with CPU temperature chart visibility and Control Panel enhancements (windows.plugin). (#21797, @thiagoftsm)
Bug Fixes
  • Fixed dynamic configuration rollback for non-disruptive Service Discovery update failures (go.d). (#21861, @ilyam8)
  • Fixed Service Discovery pipeline name derivation from source context (go.d). (#22105, @ilyam8)
  • Fixed collector static functions not registering on first job start (go.d). (#21894, @ilyam8)
  • Fixed MongoDB top-queries function timeout due to incorrect default timeout (go.d/mongodb). (#21860, @DarkByteZero)
  • Fixed smartctl collector treating non-fatal exit codes as errors when disk health data is still valid (go.d/smartctl). (#21858, @ilyam8)
  • Fixed netdev_mutex deadlock when /proc/net/dev reading fails, permanently blocking network interfaces (proc.plugin). (#21839, @DarkByteZero)
  • Fixed apps.plugin use-after-free crash on parent pointer dereference during process collection (apps.plugin). (#21838, @DarkByteZero)
  • Fixed service discovery to skip unsupported discoverer configurations instead of failing (go.d). (#21818, @ilyam8)
  • Fixed DCGM exporter service discovery (go.d). (#21800, @ilyam8)
Other
  • Refactored Azure Monitor discovery and profile selection with proper configuration modes (go.d/azure_monitor). (#22088, #22095, @ilyam8)
  • Improved Windows plugin codebase with internal improvements and fixes (windows.plugin). (#22039, @thiagoftsm)
  • Introduced V2 metrics collection framework with float dimension support, structured family handling, and redesigned function management (go.d). (#21769, #21825, #21850, #21851, #21859, #21909, #21979, @ilyam8)
  • Changed “no instances configured” function response code to 422 (go.d). (#21903, @ilyam8)
  • Removed legacy MSSQL collector from Windows plugin, completing migration to go.d (windows.plugin). (#21876, #21886, @thiagoftsm)
  • Restructured go.d agent internals with improved dyncfg lifecycle, logger attribution, and codebase organization (go.d). (#21803, #21808, #21817, #21821, #21830, #21833, #21840, #21842, @ilyam8)
  • Added conditional and rate-limited logging to go.d logger (go.d). (#21813, @ilyam8)

Packaging/Installation

All changes
  • Optimized release build profile for runtime speed with fat LTO and opt-level=3 (build). (#22046, @vkalintiris)
  • Fixed Windows config editor default in installer (packaging). (#21957, @stelfrag)
  • Fixed systemd-journal.plugin permissions on offline installs (packaging). (#21953, @ralphm)
  • Added Fedora 44 to CI and package builds (CI). (#21943, @Ferroin)
  • Fixed control files for DEB packages causing uninstallation issues (packaging). (#21940, @Ferroin)
  • Added Ubuntu 26.04 to CI and package builds (CI). (#21939, @Ferroin)
  • Fixed Windows installer driver installation across different Windows versions (packaging). (#21911, @thiagoftsm)
  • Updated Go toolchain to v1.26.0 (build). (#21866, @ilyam8)
  • Dropped Ubuntu 20.04 from CI and package builds after upstream EOL (CI). (#21647, @Ferroin)
  • Increased minimum language standards to C17 and C++17 with updated Protobuf and Abseil (build). (#21574, @Ferroin)
  • Updated libbpf and synced eBPF repositories (build). (#21982, @thiagoftsm)

Documentation

All changes

Other Notable Changes

Improvements
  • Optimized ML prediction performance with circular buffer, improved model loading, and safer cluster center handling (ML). (#21795, #22042, #22073, #22104, @stelfrag)
  • Sped up alerts API filtering with host status snapshots for efficient prefiltering (health). (#21984, @stelfrag)
  • Improved streaming stability by reducing shutdown timing issues (streaming). (#21992, @thiagoftsm)
  • Improved netdatacli ping to properly report agent readiness with distinct exit codes (0=ready, 1=initializing, 255=unreachable) (daemon). (#21965, @stelfrag)
  • Added periodic timezone refresh for correct DST handling across all components (daemon). (#21944, @stelfrag)
  • Improved logger by removing spinlock during I/O to prevent deadlocks (daemon). (#21928, @stelfrag)
  • Improved agent startup and restart time with optimized mmap settings and prefetching (dbengine). (#21891, @stelfrag)
  • Added rejection of incoming streaming connections for locally collected vnodes (streaming). (#21889, @stelfrag)
  • Enforced Pushover API field length limits to prevent notification failures on long URLs (health/notifications). (#21882, @Copilot)
  • Added SOCKS5 and SOCKS5H proxy support to ACLK for environments requiring SOCKS proxies (ACLK). (#21831, @stelfrag)
  • Added environment variable expansion in host labels with ${VAR} and ${VAR:-default} syntax (daemon). (#21796, @ktsaou)
  • Added SNI support for streaming SSL/TLS connections, enabling reverse proxy compatibility (streaming). (#21715, @Copilot)
  • Preserved UTF-8 characters in RRD string fields instead of replacing them with underscores (daemon). (#21694, @ktsaou)
  • Added YAML support to libnetdata and migrated log2journal to shared YAML parser (libnetdata). (#20544, @ktsaou)
Bug Fixes
  • Fixed eBPF PID cleanup to avoid use-after-free during iteration (ebpf.plugin). (#22098, @stelfrag)
  • Fixed undefined behavior in timezone TZif 64-bit parsing (daemon). (#22097, @stelfrag)
  • Fixed ACLK SIGABRT during shutdown that could lead to database corruption (ACLK). (#22051, @thiagoftsm)
  • Fixed cache SIGSEGV in aral during journal v2 processing (dbengine). (#22026, @thiagoftsm)
  • Fixed SIGSEGV in context dimension entry lookup (dbengine). (#22025, @thiagoftsm)
  • Fixed clock handling in eBPF and other plugins to prevent crashes (ebpf.plugin). (#22009, @thiagoftsm)
  • Fixed lock order during context processing to avoid deadlock (dbengine). (#21996, @stelfrag)
  • Fixed uninitialized vnode stale timeout leaking between host definitions (streaming). (#21983, @stelfrag)
  • Fixed thread safety and initialization handling in Windows hardware info collection (windows.plugin). (#21885, #21958, @stelfrag)
  • Fixed health API to properly acquire and release RRD instances (health). (#21952, @stelfrag)
  • Fixed data race in ML training during host stop (ML). (#21844, @stelfrag)
  • Fixed context hub cleanup with queue bounding and stale entry handling (dbengine). (#21832, @stelfrag)
  • Fixed potential use-after-free in RAM mode metric release (dbengine). (#21809, @stelfrag)
  • Fixed URL validation in cloud config that incorrectly rejected valid URLs (ACLK). (#21805, @stelfrag)
  • Fixed crash when processing corrupted journal files (dbengine). (#21794, @stelfrag)
  • Fixed cache page queue race condition with revalidation under lock (dbengine). (#21793, @stelfrag)
  • Fixed FreeBSD 15.0 build failure due to ipfw structure changes (daemon). (#21843, @Copilot)
  • Fixed race condition during pluginsd dimension array operations (plugins.d). (#21628, @stelfrag)
Other
  • Removed compilation warnings across Linux, Windows, BSD platforms and removed variable-length arrays for C11+ compatibility (build). (#21827, #21961, #22024, #22066, #22091, #22103, @thiagoftsm, @stelfrag)
  • Improved DBENGINE log messages with structured identifiers, tier prefixes, and correct file names (dbengine). (#22045, #22047, #22053, #22086, @stelfrag)
  • Optimized eBPF memory handling with inline Judy storage and reduced fragmentation (ebpf.plugin). (#22050, @stelfrag)
  • Added ML unit tests for anomaly detection features (ML). (#22043, @stelfrag)
  • Added dictionary benchmark tool (libnetdata). (#22041, @stelfrag)
  • Created journal directory if missing before inotify watch setup (otel.plugin). (#22019, @vkalintiris)
  • Fixed various Coverity issues across timezone, ML, and health modules (various). (#21777, #21878, #21971, #21986, #22054, #22094, @thiagoftsm, @stelfrag)
  • Changed missing user configuration directory log to info level (daemon). (#21969, @vkalintiris)
  • Refactored stream connection definition parsing for reusability (streaming). (#21921, @stelfrag)
  • Optimized UID/GID cache updates in apps plugin to once per cycle (apps.plugin). (#21864, @stelfrag)
  • Added input validation for socket connection definitions (libnetdata). (#21881, @stelfrag)
  • Reduced log noise for journal indexing limit warnings on online files (journal-viewer). (#21816, @vkalintiris)
  • Improved ACLK proxy logging with protocol details and credential status (ACLK). (#21789, @stelfrag)
  • Fixed potential crash in expression evaluation print function (libnetdata). (#21790, @stelfrag)
  • Improved datafile deletion with retry mechanism and synchronization (dbengine). (#21781, @stelfrag)
  • Adjusted eBPF user ring buffer handling (ebpf.plugin). (#21676, @thiagoftsm)
  • Improved metadata storage with prepared statements for chart and host labels (dbengine). (#21492, @stelfrag)
  • Added float dimension support to plugins.d protocol and go.d framework (plugins.d, go.d). (#21349, #21825, @ktsaou, @ilyam8)

Deprecation notice

Changed in this release

Important Changes in Next Minor Release

Important Changes in Next Major Release

Deprecated Components

Component TypeVersions Being Deprecated
APIsv1, v2

What This Means

Only the v3 API and v3 Dashboard will be supported starting with the next major release. These newer versions offer improved performance, enhanced features, and better security.

Support options

As we grow, we stay committed to providing the best support ever seen from an open-source solution. Should you encounter an issue with any of the changes made in this release or any feature in the Netdata Agent, feel free to contact us through one of the following channels:

  • Premium Support: Customers who wish to have a direct channel with Netdata and prioritized support with defined SLAs can contact us.
  • Netdata Learn: Find documentation, guides, and reference material for monitoring and troubleshooting your systems with Netdata.
  • GitHub Issues: Use the Netdata repository to report bugs or open a new feature request.
  • GitHub Discussions: Join the conversation around the Netdata development process and be a part of it.
  • Community Forums: Visit the Community Forums and contribute to the collaborative knowledge base.
  • Discord Server: Jump into the Netdata Discord and hang out with like-minded sysadmins, DevOps, SREs, and other troubleshooters. More than 2000 engineers are already using it!