master
md 160 KB

WARNING: THIS DOCUMENT IS NOT AUTHORITATIVE

This is an auto-generated snapshot captured at a single point in time. It is not official Netdata documentation, it is not kept up to date, and it must not be treated as a reliable reference for Netdata's configuration system. Refer to the official Netdata documentation for current and accurate information.

YAML/JSON Support for inicfg - Migration Guide (WIP)

This document outlines the complexities involved in adding YAML and JSON support to Netdata's inicfg configuration system, and the proposed solutions.

Overview

The goal is to enable Netdata to read configuration files in YAML and JSON formats in addition to the traditional INI format. This requires:

  1. Loading YAML/JSON files and converting them to the internal inicfg structure
  2. Converting inicfg structures back to YAML/JSON for API endpoints (e.g., http://localhost:19999/netdata.yaml)
  3. Maintaining full backward compatibility with existing INI configurations

Key Challenges and Solutions

1. Keys with Spaces vs Underscores

Problem: - INI format uses keys with spaces: "update every", "command options", "per cpu core utilization" - YAML/JSON with spaces in keys looks unnatural and requires quoting: yaml # Unnatural in YAML "update every": 1s "per cpu core utilization": yes

Analysis: - Most keys in netdata.conf use spaces (found only 2 with underscores: package_throttle_count, softnet_stat) - No conflicts exist when converting between spaces and underscores

Solution: - INI → YAML/JSON: Convert spaces to underscores for natural YAML appearance - YAML/JSON → INI: Convert underscores back to spaces for INI compatibility - Special handling: Preserve filesystem paths unchanged (e.g., /proc/net/dev)

# Natural YAML representation
update_every: 1s
per_cpu_core_utilization: yes
"/proc/net/dev": yes  # Filesystem paths unchanged

2. Hierarchical Structure with Colon Separators

Problem: - INI uses flat sections with colons to represent hierarchy: ```ini [plugin:proc] update every = 1s

[plugin:proc:/proc/net/dev] compressed packets for all interfaces = no ```

Solution: - INI → YAML/JSON: Parse colons to create nested objects - YAML/JSON → INI: Flatten nested objects to colon-separated section names

# YAML representation
plugin:
  proc:
    update_every: 1s
    _sections:  # Sub-sections for plugin:proc:xxx
      "/proc/net/dev":
        compressed_packets_for_all_interfaces: no

3. Special Sections (Enable/Disable Maps)

Problem: The [plugins] section has a unique behavior where keys represent plugin names and values control enablement:

[plugins]
proc = yes
ebpf = no
perf = yes

[plugin:proc]
update every = 1s

This creates ambiguity: proc appears both as a key in [plugins] and as part of section name [plugin:proc].

Solution Options:

Option A: Special Suffix Marker (@enable)

  • Rename special sections internally: [plugins][plugins@enable]
  • This makes the special behavior explicit and extensible
plugins@enable:
  proc: yes
  ebpf: no

plugin:
  proc:
    update_every: 1s

Option B: Hardcoded Special Sections

  • Maintain a hardcoded list of sections with special behavior
  • Currently only [plugins] needs this treatment
  • Simpler but less extensible
plugins:  # Hardcoded to know this is an enable/disable map
  proc: yes
  ebpf: no

plugin:
  proc:
    update_every: 1s

Recommendation: Option B (hardcoded) is simpler if [plugins] is truly the only case.

4. Bidirectional Conversion Requirements

Problem: - Users must be able to get configurations in any format - http://localhost:19999/netdata.conf (existing) - http://localhost:19999/netdata.yaml (new) - http://localhost:19999/netdata.json (new)

Solution: Implement bidirectional conversion functions: - inicfg_to_json(): Convert inicfg structure to JSON-C object - json_to_inicfg(): Convert JSON-C object to inicfg structure - YAML uses existing yaml.h functions to convert to/from JSON-C

Implementation Architecture

File Organization

src/libnetdata/inicfg/
├── inicfg.h                    # Public API
├── inicfg_internals.h          # Internal structures and functions
├── inicfg_conf_file.c          # Core INI loading (refactored)
├── inicfg_yaml.c              # YAML loading support (new)
├── inicfg_json.c              # JSON loading support (new)
├── inicfg_converter.c         # Bidirectional conversion logic (new)
└── MIGRATE_TO_YAML_WIP.md     # This document

Key Functions

// Private format-specific loaders
static int inicfg_load_ini(struct config *root, const char *filename, 
                          int overwrite_used, const char *section_name);
static int inicfg_load_yaml(struct config *root, const char *filename,
                           int overwrite_used, const char *section_name);
static int inicfg_load_json(struct config *root, const char *filename,
                           int overwrite_used, const char *section_name);

// Public orchestrator (auto-detects format)
int inicfg_load(struct config *root, char *filename, int overwrite_used,
               const char *section_name);

// Bidirectional conversion
struct json_object *inicfg_to_json(struct config *root);
int json_to_inicfg(struct config *root, struct json_object *json,
                  int overwrite_used, const char *section_name);

// Key normalization helpers
char *normalize_key_for_ini(const char *key);   // underscores → spaces
char *normalize_key_for_yaml(const char *key);  // spaces → underscores

Example Transformations

Simple Configuration

INI Format: ```ini [global] update every = 1s history = 3600

[web] bind to = * default port = 19999 ```

YAML Format: ```yaml global: update_every: 1s history: 3600

web: bind_to: "*" default_port: 19999 ```

Complex Plugin Configuration

INI Format: ```ini [plugins] proc = yes tc = yes

[plugin:proc] update every = 1s /proc/pagetypeinfo = yes

[plugin:proc:/proc/stat] per cpu core utilization = yes cpu idle states = yes ```

YAML Format: ```yaml plugins: # Special handling: enable/disable map proc: yes tc: yes

plugin: proc: update_every: 1s "/proc/pagetypeinfo": yes _sections: "/proc/stat": per_cpu_core_utilization: yes cpu_idle_states: yes ```

Testing Strategy

Unit Tests Required

  1. Key Normalization

    • Space ↔ underscore conversion
    • Filesystem path preservation
    • Edge cases (multiple spaces, leading/trailing spaces)
  2. Section Parsing

    • Colon separation parsing
    • Nested object creation/flattening
    • Deep nesting levels
  3. Special Sections

    • [plugins] enable/disable mapping
    • Conflict resolution between enable keys and section names
  4. Round-trip Conversion

    • INI → YAML → INI preservation
    • YAML → INI → YAML preservation
    • Data type preservation
  5. Error Handling

    • Invalid YAML/JSON syntax
    • Unsupported nesting levels
    • Conflicting keys

Test Files

Create test configurations in all formats: - tests/inicfg_test.conf - Traditional INI - tests/inicfg_test.yaml - Equivalent YAML - tests/inicfg_test.json - Equivalent JSON

Migration Path

  1. Phase 1: Implement core conversion logic with unit tests
  2. Phase 2: Add format auto-detection to inicfg_load()
  3. Phase 3: Add web API endpoints for YAML/JSON output
  4. Phase 4: Update documentation and examples
  5. Phase 5: Gradual migration of default configs to YAML

Phase 1: Complete Configuration Analysis Results

All Configuration Handles Found (Automated Analysis)

Based on comprehensive codebase scan using Python extraction tool, Netdata uses 17 unique configuration handles:

Configuration Handle Purpose Category Load Calls Usage Pattern
netdata_config Main system configuration Primary 4 500+ get calls, main config
stream_config Streaming/replication settings Primary 2 Extensive streaming config
cloud_config Netdata Cloud integration Primary 1 45+ get calls, cloud features
exporting_config Data export configuration Primary 2 134+ get calls, exporters
claim_config Cloud claiming configuration Primary 1 23+ get calls, cloud auth
collector_config eBPF collector settings Primary 2 200+ get calls, eBPF core
socket_config Socket/network configuration Active 0 eBPF networking module
sync_config Synchronization settings Active 0 eBPF sync module
fs_config Filesystem monitoring Active 0 eBPF filesystem module
cfg Generic eBPF configuration Utility 1 Multiple eBPF modules
config Generic configuration handle Utility 1 Various plugins
modules->cfg Module-specific eBPF config Derived 0 eBPF module references
sockets->config Socket-specific eBPF config Derived 0 eBPF socket references
tmp_config Temporary configuration Utility 0 Analysis/processing
root Configuration root reference Debug 0 Internal operations
sect Section reference Debug 0 Internal operations
opt Option reference Debug 0 Internal operations

Summary Statistics

  • Total Configuration Handles: 17
  • inicfg_load() calls: 14 across entire codebase
  • inicfg_get*() calls: 847+ total
  • inicfg_set*() calls: 98+ total
  • Primary configurations: 6 (actively loaded with config files)
  • Active configurations: 3 (runtime-created for specific modules)
  • Derived configurations: 2 (references to parent configs)
  • Utility/Debug configurations: 6 (temporary or development)

Phase 2: Configuration Usage Pattern Analysis

Primary Configuration Details

1. netdata_config (Main System Configuration)

  • Load Files: 4 calls across src/daemon/config/netdata-conf.c and src/database/rrdhost-labels.c
  • Primary Sections:
    • [cloud] - Cloud connectivity, proxy, SSL settings
    • [db] - Database engine, retention, replication, storage tiers
    • [directories] - System paths (home, plugins, etc.)
    • [global] - System-wide settings (update frequency, hostname, etc.)
    • [web] - Web server configuration
    • [health] - Health monitoring settings
    • [plugins] - Plugin enable/disable map (special handling needed)
    • [plugin:*] - Plugin-specific configuration sections

2. stream_config (Streaming/Replication)

  • Load Files: Multiple streaming configuration files
  • Primary Sections:
    • [stream] - Basic streaming settings
    • [*] - Stream destination configurations (by GUID/hostname)
  • Special Patterns: Dynamic section names based on machine GUIDs

3. cloud_config (Netdata Cloud Integration)

  • Load Files: Cloud-specific configuration file
  • Primary Sections:
    • [global] - Cloud URL, proxy, tokens, machine GUID
  • Usage: 45+ get calls for cloud connectivity features

4. exporting_config (Data Export)

  • Load Files: 2 load calls in src/exporting/read_config.c
  • Primary Sections:
    • [exporting:global] - Global export settings
    • [prometheus:*] - Prometheus exporter instances
    • [opentsdb:*] - OpenTSDB exporter instances
    • [*:*] - Various exporter type:instance combinations

5. claim_config (Cloud Claiming)

  • Load Files: 1 load call in src/claim/claim-with-api.c
  • Primary Sections:
    • [global] - Claiming tokens, URLs, proxy settings
  • Usage: Temporary configuration for claiming process

6. collector_config (eBPF Collectors)

  • Load Files: 2 load calls in eBPF plugin system
  • Primary Sections:
    • [global] - eBPF global settings (update frequency, map sizes)
    • [programs] - eBPF program enable/disable configuration
    • [network viewer] - Network monitoring specific settings

Phase 3: Special Patterns and Dynamic Construction Analysis

Critical Section Patterns for YAML Conversion

1. Plugin Hierarchy Pattern (Found in netdata_config)

[plugins]
proc = yes
python.d = yes
charts.d = no

[plugin:proc]
update every = 1s
/proc/stat = yes

[plugin:proc:/proc/stat]
per cpu core utilization = yes
cpu idle states = yes

YAML Conversion Challenge: The [plugins] section is an enable/disable map where keys are plugin names, but [plugin:proc] sections configure those same plugins. Need to avoid conflicts.

2. Exporter Instance Pattern (Found in exporting_config)

[exporting:global]
enabled = yes

[prometheus:server]
enabled = yes
destination = localhost:9090

[opentsdb:primary]
enabled = no
destination = localhost:4242

YAML Conversion: Clean hierarchical structure possible with exporter type as parent.

3. Dynamic Stream Destinations (Found in stream_config)

[stream]
enabled = yes

[11111111-2222-3333-4444-555555555555]
enabled = yes
destination = parent.example.com

YAML Conversion Challenge: Section names are dynamic machine GUIDs, not predictable keys.

4. eBPF Module Configuration (Found in collector_config)

[global]
update every = 1s
pid size = 32768

[programs]
process = yes
socket = yes
filesystem = no

[network viewer]
resolve hostname = no
resolve service = yes

YAML Conversion: Straightforward hierarchical structure.

Data Types and Usage Patterns

Primary Data Types:

  1. String (inicfg_get()) - 45% of calls

    • Paths, URLs, hostnames, text values
    • Example: inicfg_get(&netdata_config, "directories", "cache", "/var/cache/netdata")
  2. Number (inicfg_get_number()) - 30% of calls

    • Counts, timeouts, sizes in basic units
    • Example: inicfg_get_number(&netdata_config, "global", "cpu cores", system_cpu_cores)
  3. Boolean (inicfg_get_boolean()) - 15% of calls

    • Enable/disable flags using CONFIG_BOOLEAN_YES/NO/AUTO
    • Example: inicfg_get_boolean(&netdata_config, "health", "enabled", CONFIG_BOOLEAN_YES)
  4. Size (inicfg_get_size_bytes(), inicfg_get_size_mb()) - 5% of calls

    • Memory and disk sizes with human-readable formats
    • Example: inicfg_get_size_mb(&netdata_config, "db", "dbengine page cache size", 32)
  5. Duration (inicfg_get_duration_ms(), inicfg_get_duration_seconds()) - 5% of calls

    • Time intervals with unit suffixes
    • Example: inicfg_get_duration_seconds(&netdata_config, "db", "update every", 1)

Phase 4: Categorized Configuration Structure

Configuration Complexity Levels

Level 1: Simple Hierarchical (Easy YAML conversion)

  • cloud_config - Simple global section
  • claim_config - Temporary claiming configuration
  • Most eBPF collector configs - Clean section hierarchy

Level 2: Moderate Complexity (Manageable YAML conversion)

  • exporting_config - Clean type:instance hierarchy
  • Simple sections of netdata_config (db, directories, web)

Level 3: High Complexity (Requires special handling)

  • netdata_config plugin sections - [plugins] conflicts with [plugin:*]
  • stream_config - Dynamic GUID-based section names
  • Multi-level plugin hierarchies - [plugin:proc:/proc/stat] style nesting

Key Naming Patterns Found

Standard Patterns (Convert directly to YAML)

  • update everyupdate_every
  • default portdefault_port
  • bind tobind_to

Filesystem Paths (Preserve exactly)

  • /proc/net/dev"/proc/net/dev"
  • /sys/class/power_supply"/sys/class/power_supply"

Special Characters (Need careful handling)

  • per cpu core utilizationper_cpu_core_utilization
  • Spaces, colons, and dots in keys

Complex Section Patterns Discovered

1. Plugin Hierarchy Pattern

[plugins]
proc = yes
python.d = yes

[plugin:proc]
update every = 1s

[plugin:proc:/proc/net/dev]
compressed packets for all interfaces = no

[plugin:python.d:apache]
update every = 30s

2. Export Instance Pattern

[exporting:global]
enabled = yes

[prometheus:server]
enabled = yes
destination = localhost:9090

[opentsdb:primary]
enabled = no
destination = localhost:4242

3. Collector Sub-Module Pattern

[plugin:cgroups]
update every = 1s

[plugin:proc:/proc/stat]
per cpu core utilization = yes
cpu idle states = yes

Key Naming Conventions Found

Space-Separated Keys (Most Common):

  • update every
  • command options
  • per cpu core utilization
  • compressed packets for all interfaces

Underscore Keys (Rare):

  • package_throttle_count
  • softnet_stat per core

Filesystem Paths as Keys:

  • /proc/net/dev
  • /proc/pagetypeinfo
  • /sys/class/power_supply

Boolean Value Conventions:

  • yes/no (most common)
  • true/false
  • auto (for auto-detection)
  • on/off

Configuration Loading Patterns

  1. Standard Pattern: User config → Stock config → Internal defaults
  2. Override Pattern: Some configs support section-specific reloading
  3. Validation Pattern: Values are often normalized after loading
  4. Migration Pattern: Old key names are moved to new ones using inicfg_move()

YAML/JSON Conversion Implications

Data Type Preservation:

  • YAML/JSON can maintain proper types (boolean, number) vs INI strings
  • Duration/size suffixes need special handling (1s, 1MB)
  • AUTO values need mapping to proper YAML representation

Section Flattening Rules:

  • [plugin:proc:/proc/net/dev]plugin.proc["/proc/net/dev"]
  • [prometheus:server]prometheus.server or exporting.prometheus.server

Special Handling Required:

  • Filesystem paths as keys must be preserved exactly
  • Plugin enable/disable mapping in [plugins] section
  • Collector-specific configuration hierarchies

Updated Recommendations

Based on the comprehensive analysis:

  1. Hardcode Special Sections: Only [plugins] needs enable/disable mapping
  2. Preserve Type Information: Use YAML/JSON native types where possible
  3. Validate Conversion: Implement round-trip testing for all 1000+ configuration calls
  4. Gradual Migration: Start with read-only YAML/JSON support, then enable writing

Open Questions

  1. Should we support mixed formats (e.g., main config in YAML, includes in INI)?
  2. How deep should nesting be allowed in YAML/JSON?
  3. Should we validate against a schema for YAML/JSON configs?
  4. How to handle YAML-specific features (anchors, aliases)?
  5. Should duration/size values be parsed as strings or objects in YAML?

Risks and Mitigations

  1. Risk: Breaking existing configurations

    • Mitigation: Extensive testing with all 1000+ config calls, gradual rollout
  2. Risk: Performance impact from format detection

    • Mitigation: Use file extensions for quick detection
  3. Risk: Type conversion errors

    • Mitigation: Comprehensive type validation and error reporting
  4. Risk: Complex hierarchy mapping errors

    • Mitigation: Unit tests for all discovered section patterns
  5. Risk: Key naming conflicts with space/underscore conversion

    • Mitigation: Automated conflict detection across all found configurations

Phase 5: YAML Conversion Impact Analysis

Conversion Impact by Configuration

High Impact (Require immediate attention)

  1. netdata_config - 847+ get calls, most critical

    • Plugin section conflicts need resolution
    • Massive scope affecting entire system
    • Priority: CRITICAL
  2. stream_config - Dynamic sections

    • GUID-based section names challenge YAML structure
    • Essential for distributed setups
    • Priority: HIGH

Medium Impact (Manageable with planning)

  1. exporting_config - 134+ get calls

    • Clean hierarchy conversion possible
    • Well-defined type:instance pattern
    • Priority: MEDIUM
  2. collector_config - 200+ get calls

    • eBPF-specific but substantial usage
    • Clean section structure
    • Priority: MEDIUM

Low Impact (Straightforward conversion)

  1. cloud_config - 45+ get calls

    • Simple structure, limited scope
    • Priority: LOW
  2. claim_config - 23+ get calls

    • Temporary usage, simple structure
    • Priority: LOW

Implementation Roadmap

Phase A: Core Infrastructure (Foundation)

  1. Implement inicfg_load_yaml() and inicfg_load_json() functions
  2. Add format auto-detection to inicfg_load()
  3. Create key normalization functions (space ↔ underscore)
  4. Build bidirectional conversion (inicfg_to_json(), json_to_inicfg())

Phase B: Simple Configurations (Low Risk)

  1. Convert cloud_config and claim_config to YAML
  2. Test with existing eBPF collector configs
  3. Validate round-trip conversion accuracy

Phase C: Complex Configurations (High Risk)

  1. Special section handling for [plugins] conflicts
  2. Dynamic section support for stream GUID-based names
  3. Multi-level hierarchy for [plugin:proc:/proc/stat] patterns

Phase D: Full Integration (System-wide)

  1. Update all inicfg_load() calls to support auto-detection
  2. Add web API endpoints for YAML/JSON output
  3. Update documentation and migration guides

Critical Success Factors

Must Have

  1. 100% backward compatibility - All existing INI configs must work unchanged
  2. Round-trip accuracy - INI → YAML → INI must preserve all data
  3. Performance parity - YAML loading must not significantly slow boot time
  4. Error handling - Clear error messages for YAML syntax issues

Should Have

  1. Mixed format support - Allow YAML includes of INI files
  2. Configuration validation - Schema validation for YAML configs
  3. Migration tools - Automated conversion from INI to YAML

Nice to Have

  1. YAML features - Support for anchors, aliases, and multi-line strings
  2. Type preservation - Use native YAML booleans and numbers
  3. Comments preservation - Maintain comments during conversion

Testing Strategy

Unit Tests (Required for each phase)

  1. Key normalization - Space/underscore conversion edge cases
  2. Section parsing - Colon separation and nesting
  3. Data type conversion - String, number, boolean, size, duration
  4. Special patterns - Plugin conflicts, dynamic sections, multi-level hierarchy

Integration Tests (System-wide validation)

  1. Full configuration loading - All 17 config handles
  2. Web API compatibility - Existing endpoints continue working
  3. Plugin system - All collectors work with YAML configs
  4. Streaming - YAML stream configs work across nodes

Performance Tests (Ensure no degradation)

  1. Boot time impact - Measure startup time with YAML vs INI
  2. Memory usage - Compare memory footprint
  3. Configuration reload - Runtime configuration changes

Success Metrics

  1. Functional: All 847+ get calls work identically with YAML
  2. Performance: <5% increase in configuration loading time
  3. Compatibility: 100% existing INI configs continue working
  4. Adoption: New configurations prefer YAML format
  5. Maintainability: Reduced configuration complexity and improved readability

Implementation Complete

Total Analysis Coverage: - 17 configuration handles identified and categorized - 847+ configuration get calls analyzed - 14 inicfg_load() calls documented - 4 complexity levels established with conversion strategies - Multi-phase implementation roadmap with risk assessment

The comprehensive analysis provides the complete foundation needed for implementing YAML and JSON support in Netdata's inicfg configuration system.

Detailed Configuration Reference

Complete reference for all Netdata configuration files, sections, and keys.

Configuration: netdata.conf

Handle: netdata_config

Section CONFIG_SECTION_CLOUD

Netdata Cloud connectivity and integration settings

Key Type Comments
proxy string HTTP proxy server URL for Netdata Cloud connectivity. Special value "env" uses proxy environment variables (HTTP_PROXY, HTTPS_PROXY). Empty or unset disables proxy usage. This setting provides backwards compatibility with cloud.conf and is synchronized between netdata.conf and cloud.conf.
query threads number Number of worker threads dedicated to processing Netdata Cloud queries and data aggregation requests. Automatically calculated based on CPU cores: parent nodes get 2x threads per core (up to 256 cores), child nodes get 1x per core, minimum 6 threads, maximum half of libuv worker threads. Must be at least 1.

Section CONFIG_SECTION_DB

Database engine configuration, retention, and storage tiers

Key Type Comments
cleanup ephemeral hosts after duration Time after which ephemeral (short-lived) hosts are automatically removed from memory and disk. Ephemeral hosts are typically containers that come and go frequently. Default is 0 (disabled).
cleanup obsolete charts after duration Time after which obsolete charts (charts that stopped collecting data) are removed from memory. Minimum value is 10 seconds for safety. Default is 3600 seconds (1 hour).
cleanup orphan hosts after duration Time after which orphan hosts (hosts that haven't sent data) are moved to archive. Minimum value is 10 seconds. Default is 3600 seconds (1 hour).
db string Database storage mode. Options: "dbengine" (persistent storage), "ram" (memory only), "save" (memory with save/load), "map" (memory mapped), "none" (no storage). Default is "dbengine".
dbengine disk space MB number Maximum disk space for database storage (legacy setting, superseded by tier-specific settings)
dbengine enable journal integrity check boolean Enable integrity checks on database engine journal files at startup. Helps detect corruption but increases startup time. Default is "no".
dbengine extent cache size size Size of extent cache in MB for the database engine. Extents are compressed data blocks. Set to 0 to disable extent caching. Default is calculated based on system memory.
dbengine journal v2 unmount time duration Time after which inactive database journal files are unmounted to free file descriptors. Default is based on system configuration.
dbengine multihost disk space MB number Legacy multihost disk space setting, superseded by tier-specific retention settings
dbengine out of memory protection size Amount of system memory to keep free to prevent out-of-memory conditions. Database engine will limit its memory usage to leave this much RAM available. Default is 10% of total RAM (max 5GB).
dbengine page cache size size Size of page cache in MB for the database engine. Pages contain uncompressed metric data. Larger cache improves query performance. Minimum is 8MB. Default is calculated based on system memory.
dbengine page type string Compression algorithm for database pages. Options: "gorilla" (time-series optimized compression), "raw" (uncompressed). Default is "gorilla".
dbengine pages per extent number Number of pages grouped into each compressed extent. Higher values improve compression but increase memory usage. Valid range: 1-64. Default is 64.
dbengine tier 0 retention size size Maximum disk space in MB for tier 0 (highest resolution) data storage. Default varies by system but typically 256MB. Set to 0 for unlimited.
dbengine tier 0 retention time duration Maximum time to retain tier 0 data. Older data is automatically deleted. Default is 14 days. Set to 0 for unlimited retention.
dbengine tier 1 retention size size Maximum disk space in MB for tier 1 (medium resolution) data storage. Default varies by system.
dbengine tier 1 retention time duration Maximum time to retain tier 1 data. Default is 90 days.
dbengine tier 1 update every iterations number How many tier 0 points are aggregated into one tier 1 point. Minimum value is 2. Default is 60.
dbengine tier 2 retention size size Maximum disk space in MB for tier 2 (lower resolution) data storage. Default varies by system.
dbengine tier 2 retention time duration Maximum time to retain tier 2 data. Default is 2 years.
dbengine tier 2 update every iterations number How many tier 1 points are aggregated into one tier 2 point. Minimum value is 2. Default is 60.
dbengine tier 3 retention size size Maximum disk space in MB for tier 3 (lowest resolution) data storage. Default varies by system.
dbengine tier 3 retention time duration Maximum time to retain tier 3 data. Default is 2 years.
dbengine tier 3 update every iterations number How many tier 2 points are aggregated into one tier 3 point. Minimum value is 2. Default is 60.
dbengine tier 4 retention size size Maximum disk space in MB for tier 4 (lowest resolution) data storage. Default varies by system.
dbengine tier 4 retention time duration Maximum time to retain tier 4 data. Default is 2 years.
dbengine tier 4 update every iterations number How many tier 3 points are aggregated into one tier 4 point. Minimum value is 2. Default is 60.
dbengine tier backfill string Strategy for backfilling missing data when creating new tiers. Options: "new" (only new data), "full" (backfill all historical data), "none" (no backfill). Default is "new".
dbengine use all ram for caches boolean Allow database engine to use all available system RAM for caches, respecting only the out-of-memory protection limit. Default is "no".
dbengine use direct io boolean Use direct I/O for database files, bypassing OS page cache. Can improve performance on systems with limited RAM but may reduce performance on others. Default is "yes".
gap when lost iterations above number Number of consecutive missed data collection iterations above which a gap is inserted in the data instead of interpolation. Helps identify periods of data loss. Default varies by system.
memory deduplication (ksm) string Enable kernel same-page merging to reduce memory usage by sharing identical memory pages. Options: "yes", "no", "auto". Default is "auto".
retention duration For non-dbengine storage modes, the amount of data to keep in memory. Measured in seconds of historical data. Default varies by storage mode.
storage tiers number Number of storage tiers to use for different data resolutions. Each tier stores data at lower resolution but for longer periods. Maximum is 5, minimum is 1. Default is 5.
update every duration Global data collection frequency in seconds. All charts will collect data at this interval unless overridden. Minimum is 1 second, maximum is 86400 seconds (1 day). Default is 1 second.

Section CONFIG_SECTION_DIRECTORIES

System directory paths for configuration, logs, cache, etc.

Key Type Comments
cache string Directory where Netdata stores cache files including database files, temporary data, and runtime state. Default is "/var/cache/netdata" or "/opt/netdata/var/cache/netdata".
config string Directory where Netdata looks for user configuration files (netdata.conf, stream.conf, etc.). Default is "/etc/netdata" or "/opt/netdata/etc/netdata".
cloud.d string Subdirectory under lib directory for cloud-related files including claiming tokens and cloud configuration. Default is "cloud.d" under lib directory.
health config string Directory containing custom health configuration files (alerts, notifications). Default is "health.d" under config directory.
home string Netdata home directory, used as base for relative paths. Default varies by installation method ("/opt/netdata" for static builds, "/" for package installs).
lib string Directory for Netdata's variable state files, runtime data, and persistent storage. Default is "/var/lib/netdata" or "/opt/netdata/var/lib/netdata".
log string Directory where Netdata writes log files (access.log, error.log, debug.log). Default is "/var/log/netdata" or "/opt/netdata/var/log/netdata".
plugins string Directory containing plugin executables and scripts. Multiple paths can be configured. Default includes "/usr/libexec/netdata/plugins.d".
stock config string Directory containing default/stock configuration files that ship with Netdata. Used as fallback when user configs are missing. Default is distribution-specific.
stock health config string Directory containing default health configuration files (stock alerts). Default is "health.d" under stock config directory.
web string Directory containing web dashboard files (HTML, CSS, JavaScript). Default is "/usr/share/netdata/web" or "/opt/netdata/usr/share/netdata/web".

Section CONFIG_SECTION_DISKSPACE

Disk space monitoring and exclusion settings

Key Type Comments
update every duration How often to check disk space usage on monitored filesystems. Default is 1 second. Format: number with unit suffix (s/m/h).

Section CONFIG_SECTION_ENV_VARS

Environment variables used by Netdata

Key Type Comments
CURL_CA_BUNDLE string Path to custom CA certificate bundle for curl operations. Used by external plugins that make HTTPS requests. If not set, curl uses system default CA bundle.
PATH string System executable search path. Used to locate external programs and plugins. Should include directories containing required binaries. Default inherits from system.
PYTHONPATH string Python module search path. Used by Python-based collectors to find required modules. Can include custom collector directories. Default inherits from system.
SSL_CERT_FILE string Path to SSL certificate file for secure connections. Used by various components for TLS/SSL operations. If not set, uses system default certificates.
TZ string Timezone setting for time-related operations. Format: 'Region/City' (e.g., 'America/New_York'). Affects timestamps and time-based calculations. Default inherits from system.

Section CONFIG_SECTION_GETIFADDRS

FreeBSD network interface monitoring settings

Key Type Comments
bandwidth for all interfaces boolean Enable bandwidth monitoring (bytes/s in and out) for all network interfaces. Shows data transfer rates. Default is YES.
collisions for all interfaces boolean Enable collision monitoring for all interfaces. Shows packet collision counts on shared media networks. Default is YES.
disable by default interfaces matching string Pattern of interface names to exclude from monitoring. Supports wildcards and multiple patterns separated by space. Example: 'lo* docker* veth*'. Default is 'lo fireqos* *-ifb'.
drops for all interfaces boolean Enable packet drop monitoring for all interfaces. Shows packets dropped due to various reasons. Default is YES.
enable new interfaces detected at runtime boolean Automatically start monitoring new network interfaces that appear after Netdata starts. Useful for dynamic environments. Default is YES.
errors for all interfaces boolean Enable error monitoring for all interfaces. Shows transmission and reception errors. Default is YES.
packets for all interfaces boolean Enable packet rate monitoring (packets/s) for all interfaces. Shows packet counts regardless of size. Default is YES.
set physical interfaces for system.net string Space-separated list of interfaces to consider as physical for system-wide network statistics. Others are treated as virtual. Example: 'eth0 eth1'. Default auto-detects.
total bandwidth for ipv4 interfaces boolean Create aggregate bandwidth charts for all IPv4-capable interfaces. Shows total IPv4 traffic across the system. Default is YES.
total bandwidth for ipv6 interfaces boolean Create aggregate bandwidth charts for all IPv6-capable interfaces. Shows total IPv6 traffic across the system. Default is YES.
total bandwidth for physical interfaces boolean Create aggregate bandwidth charts for physical interfaces only, excluding virtual interfaces. Shows total physical network traffic. Default is YES.
total packets for physical interfaces boolean Create aggregate packet rate charts for physical interfaces only. Shows total packet rates on physical network connections. Default is YES.

Section CONFIG_SECTION_GETMNTINFO

FreeBSD mount point monitoring settings

Key Type Comments
enable new mount points detected at runtime boolean Automatically start monitoring new mount points that appear after Netdata starts. Useful for removable drives and dynamic mounts. Default is YES.
exclude space metrics on filesystems string Space-separated list of filesystem types to exclude from space monitoring. Common exclusions: 'devfs procfs tmpfs'. Default includes common virtual filesystems.
exclude space metrics on paths string Space-separated list of mount paths to exclude from space monitoring. Supports wildcards. Example: '/mnt/* /media/* /tmp/*'. Default excludes temporary and system paths.
inodes usage for all disks boolean Enable inode usage monitoring for all filesystems. Shows file/directory count capacity. Important for detecting 'out of inodes' conditions. Default is YES.
space usage for all disks boolean Enable disk space usage monitoring for all filesystems. Shows used/available storage capacity in bytes and percentages. Default is YES.

Section CONFIG_SECTION_GLOBAL

Global system-wide configuration settings

Key Type Comments
cpu cores number Number of CPU cores Netdata should use for calculations and thread spawning
glibc malloc arena max for plugins number Maximum malloc arenas for external plugins to prevent memory fragmentation
glibc malloc arena max for netdata number Maximum malloc arenas for the netdata process itself to control memory usage
pthread stack size size Stack size for pthread threads (e.g., "8MB")
libuv worker threads number Number of libuv worker threads for async I/O operations
host access prefix string Host access prefix for generating URLs (e.g., chroot prefix)
hostname string Hostname for this Netdata instance (overrides system hostname)
run as user string User account that netdata should run as for security
OOM score string Out-Of-Memory score adjustment (number or "keep")
process nice level number Process nice level (-20 to 19, lower means higher priority)
process scheduling policy string Process scheduling policy ("batch", "other", "nice", "idle", "rr", "fifo", "keep")
process scheduling priority number Process scheduling priority when using real-time policies
crash reports string Crash report generation ("all" or "off")
timezone string Timezone for the Netdata instance (e.g., "UTC", "America/New_York")
is ephemeral node boolean Marks if this is an ephemeral node (temporary/short-lived)
has unstable connection boolean Marks if this node has an unstable network connection
profile string Configuration profile to use for default settings

Section CONFIG_SECTION_HEALTH

Health monitoring and alerting settings

Key Type Comments
default repeat critical duration Default interval for repeating critical alert notifications. 0 means critical alerts are sent only once. Default is 0 (no repeat).
default repeat warning duration Default interval for repeating warning alert notifications. 0 means warning alerts are sent only once. Default is 0 (no repeat).
enabled boolean Enable or disable the health monitoring system entirely. When disabled, no alerts are processed or sent. Default is "yes".
enabled alarms string Pattern matching which alerts to enable. Use "" for all, specific names, or patterns with wildcards. Default is "" (all enabled).
enable stock health configuration boolean Whether to load the default health configuration files that ship with Netdata. Recommended to keep enabled. Default is "yes".
health log retention duration How long to keep health event history in memory and on disk. Used for alert state tracking and web dashboard history. Default is 432000 seconds (5 days).
in memory max health log entries number Maximum number of health log entries to keep in memory. Older entries are moved to disk. Minimum is 10. Default is 1000.
postpone alarms during hibernation for duration Delay alert processing after system hibernation/sleep to prevent false alerts during startup. Default is 60 seconds.
run at least every duration Minimum interval between health checks, even if no data updates occur. Ensures health system stays responsive. Minimum is 1 second. Default is 10 seconds.
script to execute on alarm string Path to the script that handles alert notifications (email, slack, etc.). Default is "alarm-notify.sh" in the plugins directory.
use summary for notifications boolean Whether to include a summary of alert status in notifications. Provides context about overall system health. Default is "yes".

Section CONFIG_SECTION_KERN_DEVSTAT

FreeBSD kernel device statistics monitoring for disk I/O performance

Key Type Comments
average completed i/o bandwidth for all disks boolean Whether to collect average I/O size charts (read/write/free KB per operation). Shows efficiency of disk operations. Default is "auto" (enabled when data available).
average completed i/o time for all disks boolean Whether to collect average I/O completion time charts (milliseconds per operation for read/write/other/free). Indicates disk latency. Default is "auto" (enabled when data available).
average service time for all disks boolean Whether to collect average service time charts (time from start to completion of I/O). Helps identify slow disks. Default is "auto" (enabled when data available).
bandwidth for all disks boolean Whether to collect disk bandwidth charts (read/write/free KB/s) for individual disks. Primary disk performance metric. Default is "auto" (enabled when data available).
disable by default disks matching string Pattern matching for disks to exclude from monitoring. Use simple patterns with wildcards. Useful for ignoring virtual or system disks. Default is "" (no exclusions).
enable new disks detected at runtime boolean Whether to automatically start monitoring newly detected disks. When "auto", inherits behavior from existing disks. Options: "yes", "no", "auto". Default is "auto".
i/o time for all disks boolean Whether to collect I/O time duration charts (milliseconds spent in read/write/other/free operations). Shows time distribution across operation types. Default is "auto" (enabled when data available).
operations for all disks boolean Whether to collect disk operations per second charts (read/write/other/free ops/s). Shows IOPS for each disk. Default is "auto" (enabled when data available).
performance metrics for pass devices boolean Whether to include SCSI passthrough devices in monitoring. These are raw SCSI devices that bypass the normal disk driver. Default is "auto" (enabled when detected).
queued operations for all disks boolean Whether to collect queue depth charts showing number of operations waiting. Indicates disk saturation. Default is "auto" (enabled when data available).
total bandwidth for all disks boolean Whether to collect system-wide aggregated disk I/O bandwidth chart. Shows total system disk activity. Default is "yes".
utilization percentage for all disks boolean Whether to collect disk utilization percentage charts (0-100% busy time). Key metric for identifying overloaded disks. Default is "auto" (enabled when data available).

Section CONFIG_SECTION_LOGS

Logging configuration and debugging settings

Key Type Comments
debug flags string Hexadecimal bitmask for enabling debug output for specific subsystems. Format: "0x0000000000000000". Used for troubleshooting and development. Default is "0x0000000000000000" (no debug).
facility string Syslog facility for log messages when using syslog output. Common values: "daemon", "local0-local7", "user". Default is "daemon".
level string Minimum log level to output. Options: "error", "warning", "info", "debug". Can be overridden by NETDATA_LOG_LEVEL environment variable. Default is "info".
logs flood protection period duration Time window for counting log messages to prevent log flooding. Messages exceeding the threshold within this period are suppressed. Default is 60 seconds.
logs to trigger flood protection number Maximum number of log messages allowed within the flood protection period before suppression kicks in. Default is 1000 messages.

Section CONFIG_SECTION_PLUGINS

Plugin management and control configuration

Key Type Comments
check for new plugins every duration How often to scan plugin directories for new plugin files. Default is 60 seconds. Set to 0 to disable automatic discovery.
enable running new plugins boolean Whether to automatically start newly discovered plugins. When enabled, new plugins found during directory scans will be started automatically. Default is "yes".
freeipmi boolean Enable or disable the FreeIPMI plugin for IPMI hardware monitoring (temperature, voltage, fan speeds). Requires FreeIPMI library. Default is "yes" if compiled with support.
slabinfo boolean Enable or disable the slabinfo plugin for kernel slab allocator monitoring. Provides memory usage details for kernel objects. Default is "yes" on supported systems.
statsd boolean Enable or disable the StatsD plugin for receiving metrics via the StatsD protocol. Allows external applications to send custom metrics to Netdata. Default is "yes".
[plugin_name] boolean Generic pattern for individual plugin enablement. Each plugin can be enabled ("yes") or disabled ("no") individually. Plugin names include: proc, diskspace, cgroups, tc, idlejitter, apps, python.d, charts.d, node.d, go.d, and others.

Section CONFIG_SECTION_PLUGIN_PROC_DISKSTATS

Disk I/O statistics monitoring from /proc/diskstats

Key Type Comments
backlog for all disks boolean Enable disk backlog monitoring (average time spent in I/O queue). Shows how long I/O operations wait before being serviced. Default is AUTO (enabled if metric exists).
bandwidth for all disks boolean Enable disk bandwidth monitoring (read/write throughput in bytes/second). Shows data transfer rates for disk I/O. Default is AUTO (enabled if available).
bcache for all disks boolean Enable bcache statistics monitoring. Bcache is a Linux kernel block layer cache that allows SSDs to act as a cache for slower HDDs. Default is AUTO (enabled if bcache devices exist).
bcache priority stats update every duration How often to update bcache priority statistics (cache priority distribution). These stats are expensive to collect. Default is 0 (disabled). Suggested value is 300s if enabled.
buffer boolean Enable monitoring of disk buffer statistics. Shows buffer cache utilization for disk operations. Default is NO.
enable new disks detected at runtime boolean Automatically start monitoring newly detected disks without restart. When enabled, Netdata will begin collecting metrics for disks that appear after startup. Default is YES.
exclude disks string Space-separated list of disk name patterns to exclude from monitoring. Supports wildcards. Default is "loop* ram*". Example: "loop* ram* zram* sr*".
extended operations for all disks boolean Enable extended I/O operation statistics (discards). Shows TRIM/discard operations for SSDs. Default is AUTO (enabled if discard stats exist).
filename to monitor string Path to diskstats file to monitor. Default is "/proc/diskstats". Can be overridden for containers or testing.
i/o time for all disks boolean Enable I/O time monitoring (time spent doing I/O). Shows actual time disks spend processing I/O requests. Default is AUTO (enabled if metric exists).
merged operations for all disks boolean Enable merged operations monitoring. Shows adjacent I/O requests that were merged for efficiency. Default is AUTO (enabled if available).
name disks by id boolean Use persistent /dev/disk/by-id names instead of kernel names (sda, sdb). Provides stable names across reboots. Default is NO.
operations for all disks boolean Enable basic I/O operations monitoring (reads/writes per second). Shows IOPS (Input/Output Operations Per Second). Default is AUTO (always enabled).
path to /dev/disk string Base path to disk device directory. Default is "/dev/disk/". Used for resolving disk names and attributes.
path to /dev/disk/by-id string Path to persistent disk ID directory. Default is "/dev/disk/by-id/". Used when "name disks by id" is enabled.
path to /dev/disk/by-label string Path to disk label directory. Default is "/dev/disk/by-label/". Used for resolving disk labels.
path to /dev/vx/dsk string Path to Veritas VxVM disk devices. Default is "/dev/vx/dsk/". Used for VxVM disk monitoring.
path to /sys/block string Path to sysfs block device directory. Default is "/sys/block/%s". Used for reading disk attributes and statistics.
path to device mapper string Path to device mapper directory. Default is "/dev/mapper/". Used for LVM and other mapped devices.
path to get block device string Path template for block device sysfs entries. Default is "/sys/block/%s". %s is replaced with device name.
path to get block device bcache string Path template for bcache sysfs entries. Default is "/sys/block/%s/bcache". Used for bcache statistics.
path to get block device infos string Path template for block device info in sysfs. Default is "/sys/block/%s/device". Used for device model/serial info.
path to get virtual block device string Path template for virtual block devices. Default is "/sys/devices/virtual/block/%s". Used for loop, ram, and other virtual devices.
performance metrics for partitions boolean Enable performance metrics for disk partitions (sda1, sda2, etc). Can generate many charts on systems with many partitions. Default is NO.
performance metrics for physical disks boolean Enable performance metrics for physical disks (sda, sdb, etc). This is the primary disk monitoring. Default is AUTO (always enabled).
performance metrics for virtual disks boolean Enable performance metrics for virtual disks (loop, ram, etc). Includes md-raid, LVM, and other virtual block devices. Default is AUTO.
preferred disk ids string Space-separated list of disk name patterns to prefer when multiple names exist. Supports wildcards. Default is "". Example: "wwn- ata-*".
queued operations for all disks boolean Enable queue depth monitoring (number of operations in progress). Shows disk queue utilization. Default is AUTO (enabled if available).
remove charts of removed disks boolean Automatically remove charts when disks disappear. When disabled, charts remain visible with last known values. Default is YES.
utilization percentage for all disks boolean Enable disk utilization percentage monitoring. Shows percentage of time disk was busy. 100% means disk is saturated. Default is AUTO (enabled if available).

Section CONFIG_SECTION_PLUGIN_PROC_DRM

Direct Rendering Manager (DRM) monitoring for GPU statistics

Key Type Comments
directory to monitor string Path to the DRM sysfs directory containing GPU device information. Default is "/sys/class/drm". Can be overridden for containers or systems with custom mount points. The collector scans this directory for AMD GPU devices and monitors metrics like GPU utilization, memory usage, clock frequencies, power consumption, and temperature.

Section CONFIG_SECTION_PLUGIN_PROC_INTERRUPTS

CPU interrupt monitoring from /proc/interrupts

Key Type Comments
filename to monitor string Path to the interrupts file to monitor. Default is "/proc/interrupts". Can be overridden for containers or testing. Shows interrupt counts by type and CPU.
interrupts per core boolean Whether to create separate charts for each CPU core showing per-core interrupt rates. Useful for identifying CPU imbalances and interrupt affinity issues. Default is "no" to reduce chart clutter on many-core systems.

Section CONFIG_SECTION_PLUGIN_PROC_LOADAVG

System load average and process count monitoring from /proc/loadavg

Key Type Comments
enable load average boolean Whether to collect system load average metrics (1, 5, and 15 minute averages). Load average represents the average number of processes waiting for CPU time. Default is "yes".
enable total processes boolean Whether to collect active process count metrics showing current vs maximum system processes. Helps monitor process limits and fork bombs. Default is "yes".
filename to monitor string Path to the loadavg file to monitor. Default is "/proc/loadavg". Can be overridden for containers or testing. Linux updates this file every 5 seconds.

Section CONFIG_SECTION_PLUGIN_PROC_MEMINFO

System memory statistics monitoring from /proc/meminfo

Key Type Comments
cma memory boolean Whether to collect Contiguous Memory Allocator (CMA) charts showing total and free CMA memory. CMA reserves memory for devices that need large contiguous blocks. Default is "auto" (enabled when CMA data is available).
committed memory boolean Whether to collect committed (allocated) memory chart showing total virtual memory committed by processes. Helps track memory overcommitment. Default is "yes".
direct maps boolean Whether to collect direct memory mapping charts showing page size distribution (4K, 2M, 4M, 1G pages). Useful for analyzing memory management efficiency. Default is "auto" (enabled when data available).
filename to monitor string Path to the meminfo file to monitor. Default is "/proc/meminfo". Can be overridden for containers or testing. Contains kernel memory statistics.
hardware corrupted ECC boolean Whether to collect ECC memory corruption detection chart. Shows amount of memory marked as corrupted by ECC hardware. Default is "auto" (enabled when ECC corruption detected).
high low memory boolean Whether to collect high/low memory area charts on systems with CONFIG_HIGHMEM. Shows memory split between high and low regions on 32-bit systems. Default is "auto" (enabled when high/low memory exists).
hugepages boolean Whether to collect dedicated hugepages charts showing total, free, reserved, and surplus hugepages. Monitors pre-allocated large memory pages. Default is "auto" (enabled when hugepages configured).
kernel memory boolean Whether to collect kernel memory usage charts showing slab, kernel stack, page tables, vmalloc, per-CPU, and reclaimable kernel memory. Default is "yes".
memory reclaiming boolean Whether to collect memory reclaiming charts showing active/inactive memory (anonymous and file-backed), unevictable, and mlocked memory. Helps understand memory pressure. Default is "auto".
slab memory boolean Whether to collect slab memory breakdown charts showing reclaimable vs unreclaimable kernel slab allocations. Useful for kernel memory leak detection. Default is "yes".
system ram boolean Whether to collect main system RAM chart showing used, free, cached, buffers, and available memory. This is the primary memory monitoring chart. Default is "yes".
system swap boolean Whether to collect swap memory charts including swap usage, swap cached in RAM, and zswap statistics. Monitors virtual memory overflow to disk. Default is "auto" (enabled when swap configured).
transparent hugepages boolean Whether to collect transparent hugepages charts showing anonymous and shared memory huge pages. THP automatically uses large pages for better performance. Default is "auto" (enabled when THP available).
writeback memory boolean Whether to collect writeback memory charts showing dirty pages waiting to be written to disk, pages currently being written back, and bounce buffers. Default is "yes".

Section CONFIG_SECTION_PLUGIN_PROC_NETDEV

Network interface statistics monitoring from /proc/net/dev

Key Type Comments
compressed packets for all interfaces boolean Whether to collect compressed packet statistics for network interfaces. Only relevant for CSLIP (Compressed Serial Line Internet Protocol) and PPP (Point-to-Point Protocol) connections. Disabled by default as it's rarely useful for modern Ethernet interfaces.
disable by default interfaces matching string Space-separated pattern list of interface names to automatically disable when first discovered. Default is "lo fireqos* -ifb fwpr fwbr* fwln* ifb4*" which excludes loopback, FireQOS traffic shaping, intermediate functional block, and firewall-related interfaces that are typically not relevant for general network monitoring.

Section CONFIG_SECTION_PLUGIN_PROC_NETSTAT

Advanced network statistics monitoring from /proc/net/netstat

Key Type Comments
ECN packets boolean Whether to collect Explicit Congestion Notification (ECN) packet statistics. Monitors InNoECTPkts, InECT1Pkts, InECT0Pkts, InCEPkts for congestion control analysis. Default is "auto" (enabled when ECN data available).
TCP SYN cookies boolean Whether to collect SYN cookie statistics (SyncookiesSent, SyncookiesRecv, SyncookiesFailed). SYN cookies prevent SYN flood attacks by encoding connection state in sequence numbers. Default is "auto".
TCP SYN queue boolean Whether to collect SYN queue overflow statistics (TCPReqQFullDrop, TCPReqQFullDoCookies). Monitors when incoming connection requests exceed listen queue capacity. Default is "auto".
TCP accept queue boolean Whether to collect accept queue statistics (ListenOverflows, ListenDrops). Monitors when applications can't accept connections fast enough, causing drops. Default is "auto".
TCP connection aborts boolean Whether to collect TCP connection abort statistics. Monitors various abort reasons: on data, close, memory pressure, timeout, linger, and failed aborts. Helps diagnose connection reliability issues. Default is "auto".
TCP memory pressures boolean Whether to collect TCP memory pressure statistics (TCPMemoryPressures). Tracks when TCP stack runs low on memory and starts dropping connections or reducing buffers. Default is "auto".
TCP out-of-order queue boolean Whether to collect TCP out-of-order packet statistics (TCPOFOQueue, TCPOFODrop, TCPOFOMerge, OfoPruned). Monitors handling of packets received out of sequence. Default is "auto".
TCP reorders boolean Whether to collect TCP packet reordering statistics. Monitors different reorder detection methods: FACK, SACK, Reno, and timestamp-based reordering. Helps identify network path issues. Default is "auto".
bandwidth boolean Whether to collect IP traffic bandwidth statistics (InOctets, OutOctets). Provides total network byte counts in/out for all IP traffic. Default is "auto".
broadcast bandwidth boolean Whether to collect broadcast traffic bandwidth statistics (InBcastOctets, OutBcastOctets). Monitors bytes sent/received via broadcast which can indicate network chattiness. Default is "auto".
broadcast packets boolean Whether to collect broadcast packet count statistics (InBcastPkts, OutBcastPkts). Tracks number of broadcast packets which can impact network performance. Default is "auto".
filename to monitor string Path to the netstat file to monitor. Default is "/proc/net/netstat". Can be overridden for containers or testing. Contains detailed network protocol statistics.
input errors boolean Whether to collect input error statistics (InNoRoutes, InTruncatedPkts). Monitors packets that couldn't be routed or were truncated due to insufficient buffer space. Default is "auto".
multicast bandwidth boolean Whether to collect multicast traffic bandwidth statistics (InMcastOctets, OutMcastOctets). Tracks bytes sent/received via multicast for applications like streaming media. Default is "auto".
multicast packets boolean Whether to collect multicast packet count statistics (InMcastPkts, OutMcastPkts). Monitors number of multicast packets for network efficiency analysis. Default is "auto".

Section CONFIG_SECTION_PLUGIN_PROC_NETWIRELESS

Linux wireless network interface monitoring configuration from /proc/net/wireless

Key Type Comments
filename to monitor string Path to wireless statistics file to read. Default is "/proc/net/wireless". Used to override the data source for wireless interface monitoring.
status for all interfaces boolean Whether to monitor internal status reported by wireless interfaces. Shows hardware-specific status codes. Default is "auto".
quality for all interfaces boolean Whether to monitor wireless signal quality metrics including link quality (aggregate value), signal level (dBm), and noise level (dBm). Essential for WiFi performance analysis. Default is "auto".
discarded packets for all interfaces boolean Whether to monitor packets discarded due to wireless-specific problems including wrong network ID (nwid), encryption errors (crypt), fragmentation issues (frag), retransmission failures (retry), and miscellaneous errors (misc). Default is "auto".
missed beacon for all interface boolean Whether to monitor missed beacon frames. Beacons are periodic signals from access points; missing them indicates connectivity issues or interference. Default is "auto".

Section CONFIG_SECTION_PLUGIN_PROC_NET_IPVS

IPVS (IP Virtual Server) load balancer monitoring configuration for Linux kernel-based load balancing

Key Type Comments
filename to monitor string Path to IPVS statistics file to read. Default is "/proc/net/ip_vs_stats". Used to override the data source for IPVS load balancer monitoring.
IPVS bandwidth boolean Whether to monitor IPVS bandwidth statistics showing bytes received/sent through the load balancer converted to kilobits/s. Essential for load balancer throughput analysis. Default is "yes".
IPVS connections boolean Whether to monitor IPVS new connection statistics showing connection entries created per second. Tracks load balancer activity and connection establishment rate. Default is "yes".
IPVS packets boolean Whether to monitor IPVS packet statistics showing packets received/sent through the load balancer per second. Provides detailed packet-level load balancer metrics. Default is "yes".

Section CONFIG_SECTION_PLUGIN_PROC_NFS

NFS (Network File System) client statistics monitoring configuration from /proc/net/rpc/nfs

Key Type Comments
filename to monitor string Path to NFS statistics file to read. Default is "/proc/net/rpc/nfs". Used to override the data source for NFS client monitoring.
network boolean Whether to monitor NFS network layer statistics including UDP/TCP packet counts. Shows network-level activity for NFS operations. Default is "yes".
rpc boolean Whether to monitor NFS Remote Procedure Call statistics including total calls, retransmissions, and authentication refreshes. Tracks reliability and performance of RPC layer. Default is "yes".
NFS v2 procedures boolean Whether to monitor individual NFSv2 procedure call counts (null, getattr, setattr, lookup, read, write, etc.). Provides detailed breakdown of legacy NFS operations. Default is "yes".
NFS v3 procedures boolean Whether to monitor individual NFSv3 procedure call counts (null, getattr, setattr, lookup, access, read, write, create, etc.). Tracks modern NFS operations with extended functionality. Default is "yes".
NFS v4 procedures boolean Whether to monitor individual NFSv4 procedure call counts including advanced operations (open, close, lock, delegation, ACLs, etc.) and NFSv4.1/4.2 features. Default is "yes".

Section CONFIG_SECTION_PLUGIN_PROC_PAGETYPEINFO

Memory page type and fragmentation monitoring from /proc/pagetypeinfo

Key Type Comments
enable detail per-type boolean Whether to create detailed charts per NUMA node, memory zone, and migration type combination. Shows granular memory fragmentation data like "pagetype_Node0_DMA_Unmovable". Default is "auto" (enabled when non-zero data exists).
enable system summary boolean Whether to create a global system summary chart aggregating memory page orders across all NUMA nodes, zones, and types. Shows overall memory fragmentation status. Default is "yes".
filename to monitor string Path to the pagetypeinfo file to monitor. Default is "/proc/pagetypeinfo". Can be overridden for containers or remote monitoring. Contains kernel memory page fragmentation data.
hide charts id matching string Pattern matching to hide specific detailed charts by their ID. Chart IDs follow format "pagetype_Node{N}{Zone}{Type}". Supports wildcards to reduce chart clutter. Default is "" (no filtering).

Section CONFIG_SECTION_PLUGIN_PROC_PRESSURE

Linux kernel Pressure Stall Information (PSI) monitoring from /proc/pressure

Key Type Comments
base path of pressure metrics string Base directory path where Linux kernel PSI files are located. Default is "/proc/pressure". Used to construct full paths for pressure metric files (cpu, memory, io, irq). Can be overridden for containers or testing.
enable cpu some pressure boolean Whether to monitor CPU "some" pressure metrics showing percentage of time some tasks were delayed due to CPU contention. Includes 10s, 60s, 300s averages plus total stall time. Default is "yes".
enable cpu full pressure boolean Whether to monitor CPU "full" pressure metrics showing percentage of time all tasks were delayed due to CPU contention. Disabled by default due to kernel limitations. Default is "no".
enable memory some pressure boolean Whether to monitor memory "some" pressure metrics showing percentage of time some tasks were delayed due to memory pressure. Indicates memory contention issues. Default is "yes".
enable memory full pressure boolean Whether to monitor memory "full" pressure metrics showing percentage of time all tasks were delayed due to memory pressure. Indicates severe memory shortage. Default is "yes".
enable io some pressure boolean Whether to monitor I/O "some" pressure metrics showing percentage of time some tasks were delayed due to I/O bottlenecks. Indicates storage performance issues. Default is "yes".
enable io full pressure boolean Whether to monitor I/O "full" pressure metrics showing percentage of time all tasks were delayed due to I/O bottlenecks. Indicates severe storage bottlenecks. Default is "yes".
enable irq some pressure boolean Whether to monitor IRQ "some" pressure metrics. Not available in current kernel versions. Default is "no".
enable irq full pressure boolean Whether to monitor IRQ "full" pressure metrics showing time spent handling interrupts. Available on newer kernels. Default varies by kernel support.

Section CONFIG_SECTION_PLUGIN_SYS_CLASS_INFINIBAND

InfiniBand network monitoring configuration

Key Type Comments
bandwidth counters boolean Enable monitoring of InfiniBand bandwidth (bytes transmitted/received). Shows data transfer rates for IB ports. Default is YES.
dirname to monitor string Directory path containing InfiniBand sysfs entries. Default is "/sys/class/infiniband". Can be overridden for containers or testing.
disable by default interfaces matching string Pattern matching for InfiniBand interfaces to exclude from monitoring. Supports wildcards. Default excludes no interfaces. Example: "ib0* mlx*".
errors counters boolean Enable monitoring of InfiniBand error counters (symbol errors, link recovery, etc). Tracks transmission problems. Default is YES.
hardware errors counters boolean Enable monitoring of InfiniBand hardware error counters (CRC errors, packet drops). Tracks hardware-level issues. Default is YES.
hardware packets counters boolean Enable monitoring of InfiniBand hardware packet counters. Shows low-level packet statistics. Default is YES.
monitor only active ports boolean Only monitor InfiniBand ports that are in active state. Reduces charts for inactive/down ports. Default is YES.
packets counters boolean Enable monitoring of InfiniBand packet counters (unicast/multicast transmitted/received). Shows packet rates. Default is YES.
refresh ports state every duration How often to check InfiniBand port states (active/down). Used to detect port state changes. Default is 30 seconds. Lower values detect changes faster but use more resources.

Section CONFIG_SECTION_PULSE

Netdata Agent internal pulse monitoring threads configuration

Key Type Comments
update every duration How often pulse monitoring threads collect statistics. Controls the update frequency for main pulse, sqlite3, workers, and memory extended threads. Default varies by thread type. Format: number with unit (s/m/h/d).

Section CONFIG_SECTION_REGISTRY

Netdata Agent Registry configuration for tracking dashboard usage and URLs across multiple Netdata agents

Key Type Comments
enabled boolean Enable/disable the Netdata registry feature. Only enabled when web server mode is not NONE. Default is 0 (disabled). The registry tracks browser sessions and URLs across multiple Netdata agents.
max URL length number Maximum allowed length for tracked URLs in characters. Must be at least 10. Default is 1024. URLs longer than this will be truncated or rejected to prevent memory issues.
max URL name length number Maximum allowed length for URL display names in characters. Must be at least 10. Default is 50. This controls the length of human-readable names for tracked URLs.

Section CONFIG_SECTION_SQLITE

SQLite database engine configuration for Netdata's metadata and metrics storage

Key Type Comments
auto vacuum string SQLite auto-vacuum mode. Controls automatic database file size management. Valid values: NONE, FULL, INCREMENTAL. FULL reclaims space immediately, INCREMENTAL does it gradually, NONE disables it. Applied via PRAGMA auto_vacuum.
cache size number SQLite page cache size in pages (negative values) or kilobytes (positive values). Default varies by system. Larger values improve performance but use more memory. Applied via PRAGMA cache_size.
journal mode string SQLite journaling mode for transaction safety. Valid values: DELETE, TRUNCATE, PERSIST, MEMORY, WAL, OFF. WAL provides better concurrency, DELETE is more compatible. Applied via PRAGMA journal_mode.
journal size limit number Maximum size of SQLite journal file in bytes. Default is 16777216 (16MB). Controls when WAL files are checkpointed to limit disk usage. Applied via PRAGMA journal_size_limit.
synchronous string SQLite synchronous mode for transaction durability. Valid values: OFF (0), NORMAL (1), FULL (2), EXTRA (3). NORMAL balances safety and performance, FULL ensures durability, OFF is fastest but risky. Default is NORMAL. Applied via PRAGMA synchronous.
temp store string SQLite temporary storage location. Valid values: DEFAULT (0), FILE (1), MEMORY (2). MEMORY stores temp tables in RAM for speed, FILE uses disk. Default is MEMORY. Applied via PRAGMA temp_store.

Section CONFIG_SECTION_STATSD

StatsD collector configuration for receiving and processing metrics from external applications via UDP and TCP

Key Type Comments
collector threads number Number of worker threads for collecting StatsD metrics. Defaults to number of CPU cores. Only available in multithreaded builds. Must be at least 1. More threads improve performance for high-volume StatsD traffic.
update every (flushInterval) duration How often to flush collected StatsD metrics to RRD charts in seconds. Must be at least equal to Netdata's global update frequency. Default matches Netdata's update interval. This is the StatsD flush interval equivalent.

Section CONFIG_SECTION_TIMEX

Timex plugin configuration for monitoring system clock synchronization and time offset metrics

Key Type Comments
update every duration Data collection frequency for timex metrics in seconds. Must be at least equal to Netdata's global update interval. Default is 10 seconds. Controls how often system clock status and time offset are checked.

Section CONFIG_SECTION_WEB

Web server and dashboard configuration

Key Type Comments
bind to string IP address(es) and port(s) to bind the web server to. Examples: ":19999" (all interfaces), "localhost:19999" (local only), "192.168.1.100:19999" (specific IP). Default is ":19999".
disconnect idle clients after seconds duration Time after which idle client connections are automatically closed to free up resources. Default varies by configuration.
enable gzip compression boolean Enable gzip compression for web responses to reduce bandwidth usage. Recommended for slow connections. Default is "yes".
mode string Web server operation mode. Options: "static-threaded" (multithreaded for better performance), "none" (disable web server entirely). Default is "static-threaded".
respect do not track policy boolean Honor browsers' "Do Not Track" headers by disabling web analytics and tracking features in the dashboard. Default is "no".
web files group string Group ownership for web-accessible files. Used for file permission management. Default varies by installation.
web files owner string User ownership for web-accessible files. Used for file permission management. Default varies by installation.
web server threads number Number of threads for handling web requests. More threads can handle more concurrent users but use more memory. Automatically calculated based on CPU cores, minimum 6. For systems with OpenSSL < 1.1.0, forced to 1.

Section CONFIG_SECTION_WEBRTC

WebRTC configuration for real-time communication features

Key Type Comments
bind address string IP address and port for WebRTC connections. Format: "address:port". Default varies by configuration.
enabled boolean Enable WebRTC functionality for real-time data streaming and remote debugging. Default is "yes" if WebRTC support is compiled in.
ice servers string Comma-separated list of ICE (Interactive Connectivity Establishment) servers for NAT traversal. Format: "stun:server:port,turn:server:port".
proxy server string Proxy server configuration for WebRTC connections when behind corporate firewalls. Format: "protocol://server:port".

Section HTTPD_CONFIG_SECTION

h2o HTTP server configuration for alternative high-performance web server implementation

Key Type Comments
bind to string IP address and optional port for h2o HTTP server to bind to. Format: "IP" or "IP:PORT" (e.g., "127.0.0.1" or "0.0.0.0:19998"). Default binds to all interfaces.
enabled boolean Enable/disable the h2o HTTP server as an alternative to the default web server. When enabled, h2o provides high-performance HTTP/2 support. Default is "no".
port number TCP port number for the h2o HTTP server to listen on. Default is 19998. Alternative high-performance web server implementation.
ssl boolean Whether to enable SSL/TLS encryption for the h2o HTTP server. When enabled, requires valid SSL certificate and key files. Default is "no".
ssl certificate string Path to SSL certificate file for h2o HTTPS server. Used when SSL is enabled to provide the public certificate for encrypted connections.
ssl key string Path to SSL private key file for h2o HTTPS server. Used when SSL is enabled to decrypt incoming encrypted connections. Must match the certificate.

Section buf

Windows plugin network interface monitoring configuration. The actual section name is dynamically generated as plugin:proc:/proc/net/dev:INTERFACE_NAME where INTERFACE_NAME is the network interface.

Key Type Comments
bandwidth boolean Enable bandwidth (bytes/s) monitoring for this interface. Shows data transfer rates. Default is YES.
carrier boolean Enable carrier state monitoring. Shows if the physical link is up or down. Default is YES.
compressed boolean Enable compressed packets monitoring. Shows compression statistics if supported by the interface. Default is YES.
drops boolean Enable packet drops monitoring. Shows packets dropped due to buffer overflows or errors. Default is YES.
duplex boolean Enable duplex mode monitoring. Shows if interface is in full or half duplex mode. Default is YES.
enabled boolean Enable/disable monitoring for this specific network interface. Default is YES.
errors boolean Enable error counters monitoring. Shows transmission and reception errors. Default is YES.
events boolean Enable interface events monitoring. Shows state change events. Default is YES.
fifo boolean Enable FIFO errors monitoring. Shows FIFO buffer overrun/underrun errors. Default is YES.
mtu boolean Enable MTU (Maximum Transmission Unit) monitoring. Shows the interface MTU size. Default is YES.
operstate boolean Enable operational state monitoring. Shows if interface is up, down, or in other states. Default is YES.
packets boolean Enable packet counters monitoring. Shows packets/s transmitted and received. Default is YES.
speed boolean Enable link speed monitoring. Shows the interface speed in Mbps. Default is YES.
update every duration Override data collection frequency for this network interface. Inherits from plugin setting if not specified. Format: number with unit (s/m/h/d).
virtual boolean Indicates if this is a virtual interface. Used to apply different monitoring policies. Default is NO.

Section buffer

InfiniBand/OmniPath device-specific monitoring configuration. The actual section name is dynamically generated as plugin:proc:/sys/class/infiniband:DEVICE_NAME where DEVICE_NAME is the InfiniBand device name.

Key Type Comments
bytes boolean Whether to monitor InfiniBand bandwidth counters showing bytes received/sent through the high-speed interconnect. Essential for HPC and storage cluster performance analysis. Default is "auto".
errors boolean Whether to monitor InfiniBand error counters including malformed packets, buffer overruns, link errors, and integrity errors. Critical for diagnosing interconnect issues. Default is "auto".
hwerrors boolean Whether to monitor hardware-specific InfiniBand error counters including RoCE ICRC errors, sequence errors, timeouts, and completion queue errors. Vendor-specific error tracking. Default is "auto".
hwpackets boolean Whether to monitor hardware-specific InfiniBand packet counters for advanced diagnostics. Vendor-specific metrics for detailed troubleshooting. Default is "auto".
packets boolean Whether to monitor InfiniBand packet counters including received/sent packets, multicast, and unicast traffic. Tracks network activity at packet level. Default is "auto".

Section instance_name

Exporting connector instance configuration

Key Type Comments
EXPORTING_UPDATE_EVERY_OPTION_NAME number Data collection frequency for this exporting instance in seconds. Lower values export more frequently. Default is 10 seconds.
hostname string Override hostname for this exporting instance. If not set, uses system hostname. Helps identify source in external systems.

Section section

Generic configuration section placeholder used in command-line tools

Key Type Comments
key string Generic configuration key used with -W get2 command for retrieving configuration values. The actual key name and type depend on the specific section and configuration being queried.

Section section_name

Database connection configuration section for external database drivers and connectors

Key Type Comments
additional instances number Maximum number of additional database connection instances to create. Enables connection pooling for better performance. Default is 0 (single connection).
address string Database server network address. Can be hostname, IP address, or Unix socket path. Format depends on database driver. Example: "localhost:3306", "192.168.1.100", "/var/run/mysql.sock".
config_name string Configuration identifier name. Used for referencing this database connection in logs and error messages. Should be unique across all database configurations.
driver string Database driver/connector type. Supported values: "mysql", "postgresql", "sqlite", "mongodb", "redis", "influxdb". Determines connection protocol and query syntax.
pwd string Database password for authentication. Should be stored securely. Consider using environment variables or secure credential storage instead of plain text.
server string Database server hostname or IP address. Primary connection endpoint when not using the address field. Default is "localhost".
uid string Database username for authentication. The user account that will connect to the database. Must have appropriate permissions for monitoring queries.
windows authentication boolean Whether to use Windows integrated authentication instead of username/password. Only applicable for SQL Server connections. Default is "no".

Section st->config_section

Static thread configuration section. The actual section name is dynamically set from the thread's config_section field (e.g., CONFIG_SECTION_PLUGINS, CONFIG_SECTION_PULSE).

Key Type Comments
st->config_name boolean Whether to enable/disable a specific thread or collector. The key name is dynamically set from the thread's config_name field (e.g., "idlejitter", "statsd.plugin"). When set to "no", the thread will not be started. Default is "yes".

Section string2str(cd->id)

External collector plugin configuration section. The actual section name is dynamically generated from the collector ID.

Key Type Comments
command options string Additional command-line options to pass to the external collector script. Can include parameters, flags, or arguments specific to the collector.
update every duration Override data collection frequency for this external collector. Determines how often the collector script is executed. Format: number with unit (s/m/h/d).

Section struct config *root

Generic configuration section parameter. Used in inicfg API functions where the section name is passed as a parameter to functions like inicfg_get(), inicfg_set(), etc.

Key Type Comments
const char *section string The section name parameter passed to inicfg functions. This represents any configuration section name (e.g., "global", "plugin:proc", "health", etc.) used when calling inicfg APIs to get/set configuration values.

Section var_name

Disk I/O and network interface monitoring configuration for device-specific metrics

Key Type Comments
average completed i/o bandwidth boolean Whether to monitor average I/O bandwidth for completed operations. Shows average throughput per I/O operation, useful for analyzing I/O efficiency. Default is "auto".
average completed i/o time boolean Whether to monitor average time for completed I/O operations. Shows latency per I/O operation, critical for performance analysis. Default is "auto".
average service time boolean Whether to monitor average service time for I/O requests. Shows time spent actively servicing I/O requests vs time spent waiting. Default is "auto".
backlog boolean Whether to monitor I/O backlog metrics. Shows number of I/O operations queued/pending, indicating I/O pressure and potential bottlenecks. Default is "auto".
bandwidth boolean Whether to monitor bandwidth/throughput metrics. Shows data transfer rates in bytes per second for read/write operations. Default is "auto".
bcache boolean Whether to monitor bcache (block layer cache) statistics. Shows SSD cache performance when used with slower HDDs. Default is "auto".
drops boolean Whether to monitor packet drop statistics. Shows packets discarded due to errors, buffer overruns, or rate limiting. Critical for network quality analysis. Default is "auto".
enable boolean Master enable/disable switch for this monitoring feature. When set to "no", completely disables data collection for this module. Default is "yes".
enable performance metrics boolean Whether to collect detailed performance metrics. Enables advanced performance counters with higher overhead but more detailed insights. Default is "auto".
enabled boolean Enable/disable monitoring for this specific device or interface. When set to "no", skips data collection for this particular disk or network interface. Default is "yes".
errors boolean Whether to monitor error counters. Shows error rates for I/O operations, network packets, or other subsystem-specific errors. Default is "auto".
events boolean Whether to monitor event counters. Tracks system events, interrupts, or state changes depending on the subsystem. Default is "auto".
extended operations boolean Whether to monitor extended I/O operations like discards/TRIM. Important for SSD performance monitoring and wear analysis. Default is "auto".
i/o time boolean Whether to monitor cumulative I/O time. Shows total time spent on I/O operations, helping identify I/O-bound processes. Default is "auto".
inodes usage boolean Whether to monitor filesystem inode usage. Shows used vs available inodes, critical for preventing "no space left" errors despite free disk space. Default is "auto".
merged operations boolean Whether to monitor merged I/O operations. Shows how efficiently the kernel combines adjacent I/O requests to improve performance. Default is "auto".
operations boolean Whether to monitor I/O operations per second (IOPS). Shows read/write operation rates, fundamental for storage performance analysis. Default is "auto".
packets boolean Whether to monitor network packet statistics. Shows packet rates for sent/received traffic, essential for network performance monitoring. Default is "auto".
queued operations boolean Whether to monitor I/O queue depth. Shows number of pending I/O operations in device queues, indicating storage saturation. Default is "auto".
space usage boolean Whether to monitor filesystem space usage. Shows used vs available disk space in bytes and percentage. Essential for capacity planning. Default is "auto".
utilization percentage boolean Whether to monitor device utilization percentage. Shows how much time the device is busy servicing I/O requests (0-100%). Default is "auto".

Section plugin:cgroups

Control groups (cgroups) monitoring plugin configuration

Key Type Comments
check for new cgroups every duration How frequently to scan for new cgroups appearing on the system. Default is 10 seconds. Lower values provide faster detection of new containers/cgroups but use more CPU.
update every duration Data collection frequency for cgroup metrics. Default is 1 second. Should match the global update_every for consistent behavior.
use unified cgroups string Control which cgroups version to use. Options: "auto" (detect automatically), "yes" (force unified/v2), "no" (force legacy/v1). Default is "auto".
max cgroups to allow number Maximum number of cgroups to monitor simultaneously. Prevents resource exhaustion on systems with many containers. Default is 1000.
max cgroups depth to monitor number Maximum depth in the cgroup hierarchy to monitor. Limits monitoring of deeply nested cgroups. Default is 0 (unlimited).
enable by default cgroups matching string Pattern matching rules (space-separated) to determine which cgroups to monitor. Supports wildcards. Default includes common container patterns.
enable by default cgroups names matching string Pattern matching on cgroup names after renaming. Allows filtering based on human-readable names. Supports wildcards.
search for cgroups in subpaths matching string Pattern matching for cgroup filesystem paths to search. Limits where the plugin looks for cgroups. Default is "*" (all paths).
script to get cgroup names string Path to external script that provides human-readable names for cgroups. Used to rename cgroups from IDs to meaningful names.
script to get cgroup network interfaces string Path to external script that determines network interfaces associated with each cgroup. Enables network metrics per container.
run script to rename cgroups matching string Pattern matching to determine which cgroups should be processed by the renaming script. Default is "*" (all cgroups).
cgroups to match as systemd services string Pattern matching to identify cgroups that represent systemd services. Enables special handling for systemd service monitoring.

Section plugin:freebsd

FreeBSD system monitoring plugin configuration

Key Type Comments
pm->name boolean Whether to enable specific FreeBSD kernel modules monitoring. The key name is dynamically set from the module name (e.g., "vm.stats.vm.v_swappgs", "kern.cp_time"). When set to "no", that specific module will not be monitored. Default is "yes".

Section [plugin:PLUGIN_NAME:MODULE]

FreeBSD/macOS firewall monitoring module configuration

Key Type Comments
allocated memory boolean Whether to monitor memory allocated by the firewall subsystem. Shows memory usage by firewall rules and state tables. Default is "yes".
counters for static rules boolean Whether to monitor counters for static firewall rules. Shows packet/byte counts matched by each static rule. Default is "yes".
number of dynamic rules boolean Whether to monitor the count of dynamic firewall rules. Shows stateful connection tracking entries. Default is "yes".

Section [plugin:PLUGIN_NAME:MODULE]

IPv4 ICMP monitoring module configuration

Key Type Comments
ipv4 ICMP errors boolean Whether to monitor ICMP error messages (destination unreachable, time exceeded, parameter problems). Essential for network troubleshooting. Default is "yes".
ipv4 ICMP messages boolean Whether to monitor ICMP message types breakdown (echo request/reply, timestamp, address mask, etc.). Shows ping and other ICMP activity. Default is "yes".
ipv4 ICMP packets boolean Whether to monitor total ICMP packets sent and received. Shows overall ICMP traffic volume. Default is "yes".

Section [plugin:PLUGIN_NAME:MODULE]

IPv4 protocol monitoring module configuration

Key Type Comments
ipv4 errors boolean Whether to monitor IPv4 protocol errors (header errors, checksum failures, invalid addresses). Critical for network health monitoring. Default is "yes".
ipv4 fragments assembly boolean Whether to monitor IPv4 fragment reassembly statistics. Shows fragmentation issues and reassembly failures. Default is "yes".
ipv4 fragments sent boolean Whether to monitor IPv4 packets fragmented for transmission. High fragmentation can indicate MTU issues. Default is "yes".
ipv4 packets boolean Whether to monitor total IPv4 packets sent, received, forwarded, and delivered. Core network traffic metrics. Default is "yes".

Section [plugin:PLUGIN_NAME:MODULE]

TCP protocol monitoring module configuration

Key Type Comments
ECN packets boolean Whether to monitor Explicit Congestion Notification (ECN) capable packets. Shows network congestion awareness. Default is "yes".
TCP SYN cookies boolean Whether to monitor TCP SYN cookie usage. Indicates SYN flood attack mitigation activity. Default is "yes".
TCP connection aborts boolean Whether to monitor TCP connection aborts (resets, timeouts). Shows connection stability issues. Default is "yes".
TCP listen issues boolean Whether to monitor TCP listen queue overflows and drops. Critical for server performance tuning. Default is "yes".
TCP out-of-order queue boolean Whether to monitor TCP out-of-order packet queuing. Indicates network path issues or packet loss. Default is "yes".
ipv4 TCP errors boolean Whether to monitor TCP protocol errors (invalid checksums, bad segments). Shows TCP stack health. Default is "yes".
ipv4 TCP handshake issues boolean Whether to monitor TCP handshake failures and retransmissions. Critical for connection establishment monitoring. Default is "yes".
ipv4 TCP packets boolean Whether to monitor TCP segment statistics (sent, received, retransmitted). Core TCP performance metrics. Default is "yes".

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for UDP protocol monitoring

Key Type Comments
ipv4 UDP errors boolean Whether to monitor UDP protocol errors (invalid checksums, no buffer space, socket buffer errors). Helps identify UDP-related issues. Default is "yes".
ipv4 UDP packets boolean Whether to monitor UDP datagram statistics (sent, received). Core UDP traffic monitoring. Default is "yes".

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for IPv6 ICMP monitoring

Key Type Comments
icmp boolean Whether to monitor overall ICMPv6 message statistics. Master control for all ICMPv6 monitoring. Default is "yes".
icmp echos boolean Whether to monitor ICMPv6 echo requests and replies (ping6). Used for IPv6 connectivity testing. Default is "yes".
icmp errors boolean Whether to monitor ICMPv6 error messages (destination unreachable, packet too big, time exceeded). Critical for IPv6 troubleshooting. Default is "yes".
icmp neighbor boolean Whether to monitor ICMPv6 neighbor discovery messages (solicitations, advertisements). Essential for IPv6 address resolution. Default is "yes".
icmp redirects boolean Whether to monitor ICMPv6 redirect messages. Important for IPv6 routing optimization detection. Default is "yes".
icmp router boolean Whether to monitor ICMPv6 router discovery messages (solicitations, advertisements). Critical for IPv6 autoconfiguration. Default is "yes".
icmp types boolean Whether to monitor all ICMPv6 message types by type code. Provides detailed ICMPv6 traffic breakdown. Default is "yes".

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for IPv6 protocol monitoring

Key Type Comments
ipv6 errors boolean Whether to monitor IPv6 protocol errors (header errors, no routes, address errors). Essential for IPv6 deployment troubleshooting. Default is "yes".
ipv6 fragments assembly boolean Whether to monitor IPv6 fragment reassembly statistics. Shows fragmentation-related performance issues. Default is "yes".
ipv6 fragments sent boolean Whether to monitor IPv6 fragments sent. Helps identify MTU and path issues. Default is "yes".
ipv6 packets boolean Whether to monitor IPv6 packet statistics (received, sent, forwarded, delivered). Core IPv6 traffic metrics. Default is "yes".

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for FreeBSD kernel network dispatch monitoring

Key Type Comments
netisr boolean Whether to monitor kernel network dispatch statistics (packets queued, handled, dropped). Critical for FreeBSD network performance tuning. Default is "yes".
netisr per core boolean Whether to monitor network dispatch statistics per CPU core. Essential for identifying CPU bottlenecks in network processing. Default is "yes".

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for system processes and memory monitoring

Key Type Comments
enable total processes boolean Whether to monitor total process count (running, sleeping, stopped, zombie). Essential system health metric. Default is "yes".
processes running boolean Whether to monitor count of runnable processes. Key indicator of system load and CPU contention. Default is "yes".
real memory boolean Whether to monitor physical memory usage (active, inactive, wired, free). Critical for memory management monitoring. Default is "yes".

Section plugin:idlejitter

CPU idle jitter monitoring plugin configuration

Key Type Comments
loop time duration Time between measurements in milliseconds. The plugin sleeps for this duration and measures how much the actual sleep time deviates from the requested time. Default is 20ms. Lower values provide more frequent measurements but use more CPU.

Section plugin:macos

macOS system monitoring plugin configuration

Key Type Comments
pm->name boolean Whether to enable specific macOS system monitoring modules. The key name is dynamically set from the module name (e.g., "sysctl", "iokit", "mach_smi"). When set to "no", that specific module will not be monitored. Default is "yes".

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for network interface and disk monitoring

Key Type Comments
disable by default network interfaces matching string Space-separated list of network interface patterns to exclude from monitoring by default. Supports wildcards (e.g., "lo* dummy*" to exclude loopback and dummy interfaces). Default is empty.
disk i/o boolean Whether to monitor disk I/O statistics (reads, writes, operations, bandwidth). Essential for storage performance monitoring. Default is "yes".
exclude mountpoints by path string Space-separated list of mountpoint paths to exclude from disk space monitoring. Use this to ignore temporary or virtual filesystems. Default is empty.

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for system resource monitoring

Key Type Comments
cpu utilization boolean Whether to monitor CPU usage statistics (user, system, idle, iowait, etc.). Core system performance metric. Default is "yes".
memory page faults boolean Whether to monitor memory page fault statistics (minor and major faults). Indicates memory pressure and disk I/O from swapping. Default is "yes".
swap i/o boolean Whether to monitor swap usage and I/O operations. Critical for detecting memory exhaustion. Default is "yes".
system ram boolean Whether to monitor system RAM usage (used, free, cached, buffers). Essential memory monitoring metric. Default is "yes".

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for comprehensive network protocol monitoring

Key Type Comments
ECN packets boolean Whether to monitor Explicit Congestion Notification (ECN) packet statistics. Used for advanced TCP congestion control. Default is "yes".
TCP SYN cookies boolean Whether to monitor TCP SYN cookies usage. SYN cookies are used to prevent SYN flood attacks when the TCP connection queue is full. Default is "yes".
TCP connection aborts boolean Whether to monitor TCP connection abort statistics (connection failures, timeouts, resets). Useful for diagnosing network connectivity issues. Default is "yes".
TCP out-of-order queue boolean Whether to monitor TCP out-of-order packet queue statistics. High values indicate network packet reordering or loss. Default is "yes".
bandwidth boolean Whether to monitor network interface bandwidth utilization (bytes sent/received). Core network performance metric. Default is "yes".
enable load average boolean Whether to monitor system load average metrics (1min, 5min, 15min averages). Indicates overall system utilization. Default is "yes".
icmp boolean Whether to monitor basic ICMP (Internet Control Message Protocol) statistics. Includes ICMP message counts and basic error reporting. Default is "yes".
icmp echos boolean Whether to monitor ICMP echo request/reply statistics (ping traffic). Useful for network connectivity diagnostics. Default is "yes".
icmp errors boolean Whether to monitor ICMP error message statistics (destination unreachable, time exceeded, etc.). Helps identify network routing issues. Default is "yes".
icmp neighbor boolean Whether to monitor ICMPv6 neighbor discovery messages (IPv6 equivalent of ARP). Critical for IPv6 network operation. Default is "yes".
icmp redirects boolean Whether to monitor ICMP redirect messages. These indicate suboptimal routing and potential security concerns. Default is "yes".
icmp router boolean Whether to monitor ICMPv6 router advertisement/solicitation messages. Essential for IPv6 router discovery. Default is "yes".
icmp types boolean Whether to monitor detailed ICMP message type breakdown. Provides granular analysis of ICMP traffic patterns. Default is "yes".
inodes usage for all disks boolean Whether to monitor inode usage statistics for all mounted filesystems. Inodes can be exhausted even when disk space is available. Default is "yes".
ipv4 ICMP messages boolean Whether to monitor IPv4 ICMP message statistics (control messages like destination unreachable, time exceeded). Essential for network troubleshooting. Default is "yes".
ipv4 ICMP packets boolean Whether to monitor IPv4 ICMP packet counts (total ICMP traffic volume). Useful for identifying ICMP-based network issues or attacks. Default is "yes".
ipv4 TCP errors boolean Whether to monitor IPv4 TCP error statistics (bad segments, failed connections, retransmissions). Critical for TCP performance analysis. Default is "yes".
ipv4 TCP handshake issues boolean Whether to monitor IPv4 TCP handshake problems (SYN retransmissions, failed connections). Indicates network connectivity or server load issues. Default is "yes".
ipv4 TCP packets boolean Whether to monitor IPv4 TCP packet statistics (segments sent/received). Core TCP traffic monitoring metric. Default is "yes".
ipv4 UDP errors boolean Whether to monitor IPv4 UDP error statistics (invalid checksums, no buffer space, socket buffer errors). Helps identify UDP-related issues. Default is "yes".
ipv4 UDP packets boolean Whether to monitor IPv4 UDP datagram statistics (sent, received). Core UDP traffic monitoring. Default is "yes".
ipv4 errors boolean Whether to monitor IPv4 protocol error statistics (header errors, address errors, unknown protocols). Critical for IP layer troubleshooting. Default is "yes".
ipv4 fragments assembly boolean Whether to monitor IPv4 packet fragmentation reassembly statistics (successful/failed reassembly). Indicates MTU issues or fragmentation attacks. Default is "yes".
ipv4 fragments sent boolean Whether to monitor IPv4 packet fragmentation transmission statistics (fragments created/sent). High values may indicate MTU configuration problems. Default is "yes".
ipv4 packets boolean Whether to monitor IPv4 packet statistics (total packets sent/received/forwarded). Core IP traffic monitoring metric. Default is "yes".
ipv6 errors boolean Whether to monitor IPv6 protocol error statistics (header errors, address errors, unknown protocols). Essential for IPv6 network troubleshooting. Default is "yes".
ipv6 fragments assembly boolean Whether to monitor IPv6 packet fragmentation reassembly statistics. IPv6 fragmentation is less common but still important for large packet analysis. Default is "yes".
ipv6 fragments sent boolean Whether to monitor IPv6 packet fragmentation transmission statistics. High fragmentation in IPv6 may indicate application or MTU issues. Default is "yes".
ipv6 packets boolean Whether to monitor IPv6 packet statistics (total IPv6 traffic). Critical for IPv6-enabled network monitoring. Default is "yes".
space usage for all disks boolean Whether to monitor disk space usage statistics for all mounted filesystems (used, free, available space). Essential for preventing disk full conditions. Default is "yes".
system swap boolean Whether to monitor system swap usage statistics (swap used, free, cached). Critical for detecting memory pressure and performance issues. Default is "yes".
system uptime boolean Whether to monitor system uptime statistics (time since boot, idle time). Basic system health and availability metric. Default is "yes".

Section plugin:proc

Linux /proc filesystem monitoring plugin configuration

Key Type Comments
/proc/net/dev boolean Whether to monitor network interface statistics from /proc/net/dev. Provides per-interface traffic, errors, and drops. Default is "yes".
/proc/pagetypeinfo boolean Whether to monitor memory page type information from /proc/pagetypeinfo. Shows memory fragmentation by page order and type. Default is "yes".
pm->name boolean Whether to enable specific proc modules. The key name is dynamically set from the module name (e.g., "/proc/stat", "/proc/meminfo"). When set to "no", that specific /proc file will not be monitored. Default is "yes".

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for file and directory monitoring

Key Type Comments
directory to monitor string Path to the directory to monitor for statistics or files. Module-specific, typically used for sysfs or procfs directories. Default varies by module.
filename to monitor string Path to the specific file to monitor for statistics. Module-specific, typically a proc or sysfs file containing metrics. Default varies by module.

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for RAID array monitoring

Key Type Comments
disk stats boolean Whether to monitor per-disk statistics within RAID arrays (reads, writes, errors). Default is "yes".
faulty devices boolean Whether to monitor and alert on faulty devices in RAID arrays. Critical for data integrity. Default is "yes".
filename to monitor string Path to the mdstat file to monitor (typically /proc/mdstat). Contains RAID array status and health. Default is "/proc/mdstat".
make charts obsolete boolean Whether to automatically hide charts for removed or inactive RAID arrays. Keeps dashboards clean. Default is "yes".
mismatch count boolean Whether to monitor RAID array mismatch counts. Indicates data inconsistencies needing attention. Default is "yes".
mismatch_cnt filename to monitor string Path pattern to mismatch_cnt files in sysfs (e.g., /sys/block/md*/md/mismatch_cnt). Default is "/sys/block/md*/md/mismatch_cnt".
nonredundant arrays availability boolean Whether to monitor availability of non-redundant arrays (RAID0, linear). Important as these have no fault tolerance. Default is "yes".
operation status boolean Whether to monitor RAID operation status (idle, resync, recovery, reshape). Shows array maintenance activities. Default is "yes".

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for NFS server monitoring

Key Type Comments
I/O boolean Whether to monitor NFS I/O statistics (read/write operations and throughput). Essential for NFS performance analysis. Default is "yes".
NFS v2 procedures boolean Whether to monitor NFSv2 procedure calls (getattr, read, write, etc.). Legacy protocol monitoring. Default is "yes".
NFS v3 procedures boolean Whether to monitor NFSv3 procedure calls. Common NFS protocol version monitoring. Default is "yes".
NFS v4 operations boolean Whether to monitor NFSv4 operations (compound operations, delegations, etc.). Modern NFS protocol monitoring. Default is "yes".
NFS v4 procedures boolean Whether to monitor NFSv4 procedure calls. Detailed NFSv4 activity tracking. Default is "yes".
file handles boolean Whether to monitor NFS file handle statistics (stale handles, lookups). Important for NFS reliability. Default is "yes".
filename to monitor string Path to the NFS statistics file to monitor (typically /proc/net/rpc/nfsd). Default is "/proc/net/rpc/nfsd".
network boolean Whether to monitor NFS network statistics (TCP/UDP connections, packet counts). Default is "yes".
read cache boolean Whether to monitor NFS read cache statistics (hits, misses). Important for cache efficiency. Default is "yes".
rpc boolean Whether to monitor RPC (Remote Procedure Call) statistics. Core NFS protocol metrics. Default is "yes".
threads boolean Whether to monitor NFS server thread utilization. Critical for NFS server tuning. Default is "yes".

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for SCTP protocol monitoring

Key Type Comments
association transitions boolean Whether to monitor SCTP association state transitions. Shows connection lifecycle events. Default is "yes".
chunk types boolean Whether to monitor SCTP chunk types distribution (DATA, INIT, HEARTBEAT, etc.). Protocol behavior analysis. Default is "yes".
established associations boolean Whether to monitor count of established SCTP associations. Active connection tracking. Default is "yes".
filename to monitor string Path to the SCTP statistics file to monitor (typically /proc/net/sctp/snmp). Default is "/proc/net/sctp/snmp".
fragmentation boolean Whether to monitor SCTP fragmentation statistics. Important for message size optimization. Default is "yes".
packet errors boolean Whether to monitor SCTP packet errors (checksums, invalid chunks). Protocol health indicator. Default is "yes".
packets boolean Whether to monitor SCTP packet statistics (sent, received). Core SCTP traffic metrics. Default is "yes".

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for IPv4 socket and connection monitoring

Key Type Comments
filename to monitor string Path to the socket statistics file to monitor (typically /proc/net/sockstat). Default is "/proc/net/sockstat".
ipv4 ICMP messages boolean Whether to monitor ICMP message types (echo, destination unreachable, etc.). Network diagnostics tool. Default is "yes".
ipv4 ICMP packets boolean Whether to monitor ICMP packet statistics (sent, received, errors). Ping and traceroute monitoring. Default is "yes".
ipv4 TCP connections boolean Whether to monitor TCP connection states (established, time-wait, close-wait, etc.). Connection health tracking. Default is "yes".
ipv4 TCP errors boolean Whether to monitor TCP errors (resets, invalid SYN, failed connections). Network problem detection. Default is "yes".
ipv4 TCP handshake issues boolean Whether to monitor TCP handshake problems (SYN timeouts, failed attempts). Connection establishment issues. Default is "yes".
ipv4 TCP opens boolean Whether to monitor TCP connection opens (active, passive). Connection rate monitoring. Default is "yes".
ipv4 TCP packets boolean Whether to monitor IPv4 TCP packet statistics (segments sent/received). Core TCP traffic monitoring metric. Default is "yes".
ipv4 UDP errors boolean Whether to monitor IPv4 UDP error statistics (invalid checksums, no buffer space, socket buffer errors). Helps identify UDP-related issues. Default is "yes".
ipv4 UDP packets boolean Whether to monitor IPv4 UDP datagram statistics (sent, received). Core UDP traffic monitoring. Default is "yes".
ipv4 UDPLite packets boolean Whether to monitor IPv4 UDP-Lite packet statistics. UDP-Lite allows partial checksum coverage for real-time applications. Default is "yes".
ipv4 errors boolean Whether to monitor IPv4 protocol error statistics (header errors, address errors, unknown protocols). Critical for IP layer troubleshooting. Default is "yes".
ipv4 fragments assembly boolean Whether to monitor IPv4 packet fragmentation reassembly statistics (successful/failed reassembly). Indicates MTU issues or fragmentation attacks. Default is "yes".
ipv4 fragments sent boolean Whether to monitor IPv4 packet fragmentation transmission statistics (fragments created/sent). High values may indicate MTU configuration problems. Default is "yes".
ipv4 packets boolean Whether to monitor IPv4 packet statistics (total packets sent/received/forwarded). Core IP traffic monitoring metric. Default is "yes".

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for IPv6 protocol and multicast monitoring

Key Type Comments
bandwidth boolean Whether to monitor IPv6 bandwidth usage (bytes/sec received and sent). Core network utilization metric. Default is "yes".
broadcast bandwidth boolean Whether to monitor IPv6 broadcast bandwidth separately. Important for broadcast storm detection. Default is "yes".
ect boolean Whether to monitor ECN (Explicit Congestion Notification) capable transport statistics. Advanced congestion control metric. Default is "yes".
filename to monitor string Path to the IPv6 statistics file to monitor (typically /proc/net/snmp6). Default is "/proc/net/snmp6".
icmp boolean Whether to monitor overall ICMPv6 statistics. Master control for all ICMPv6 monitoring. Default is "yes".
icmp echos boolean Whether to monitor ICMPv6 echo requests/replies (ping6). Connectivity testing metric. Default is "yes".
icmp errors boolean Whether to monitor ICMPv6 error messages. Essential for IPv6 troubleshooting. Default is "yes".
icmp group membership boolean Whether to monitor ICMPv6 multicast group membership messages. Important for multicast routing. Default is "yes".
icmp mldv2 boolean Whether to monitor MLDv2 (Multicast Listener Discovery v2) messages. Advanced multicast protocol monitoring. Default is "yes".
icmp neighbor boolean Whether to monitor ICMPv6 neighbor discovery messages. Critical for IPv6 address resolution. Default is "yes".
icmp redirects boolean Whether to monitor ICMPv6 redirect messages. Routing optimization indicator. Default is "yes".
icmp router boolean Whether to monitor ICMPv6 router discovery messages. Essential for IPv6 autoconfiguration. Default is "yes".
icmp types boolean Whether to monitor all ICMPv6 message types by code. Detailed ICMPv6 analysis. Default is "yes".
ipv6 UDP errors boolean Whether to monitor UDPv6 protocol errors. UDP reliability indicator. Default is "yes".
ipv6 UDP packets boolean Whether to monitor UDPv6 packet statistics. Core UDP traffic metric. Default is "yes".
ipv6 UDPlite errors boolean Whether to monitor UDP-Lite over IPv6 errors. Error-tolerant protocol monitoring. Default is "yes".
ipv6 UDPlite packets boolean Whether to monitor UDP-Lite over IPv6 packet statistics. Multimedia protocol monitoring. Default is "yes".
ipv6 errors boolean Whether to monitor IPv6 protocol errors. Essential network health metric. Default is "yes".
ipv6 fragments assembly boolean Whether to monitor IPv6 fragment reassembly. Fragmentation performance metric. Default is "yes".
ipv6 fragments sent boolean Whether to monitor IPv6 fragments sent. MTU and path issue indicator. Default is "yes".
ipv6 packets boolean Whether to monitor IPv6 packet statistics. Core IPv6 traffic metric. Default is "yes".
multicast bandwidth boolean Whether to monitor multicast bandwidth usage separately. Important for multicast-heavy environments. Default is "yes".
multicast packets boolean Whether to monitor multicast packet statistics. Multicast traffic analysis. Default is "yes".

Section plugin:proc:/proc/net/sockstat

Network socket statistics monitoring configuration

Key Type Comments
filename to monitor string Path to sockstat file to monitor. Default is "/proc/net/sockstat". Can be overridden for containers or testing.
ipv4 FRAG memory boolean Enable monitoring of IPv4 fragment reassembly memory usage. Shows memory used for packet fragmentation. Default is AUTO.
ipv4 FRAG sockets boolean Enable monitoring of IPv4 fragment reassembly pseudo-sockets. Shows count of fragments being reassembled. Default is AUTO.
ipv4 RAW sockets boolean Enable monitoring of IPv4 raw sockets count. Used by ping, traceroute and other low-level network tools. Default is AUTO.
ipv4 TCP memory boolean Enable monitoring of TCP memory usage. Shows memory allocated for TCP connections and buffers. Default is AUTO.
ipv4 TCP sockets boolean Enable monitoring of TCP socket counts by state (established, listen, etc). Essential for connection tracking. Default is AUTO.
ipv4 UDP memory boolean Enable monitoring of UDP memory usage. Shows memory allocated for UDP sockets and buffers. Default is AUTO.
ipv4 UDP sockets boolean Enable monitoring of UDP socket counts. Shows number of open UDP sockets. Default is AUTO.
ipv4 UDPLITE sockets boolean Enable monitoring of UDP-Lite socket counts. UDP-Lite is used for error-tolerant applications. Default is AUTO.
ipv4 sockets boolean Enable monitoring of total IPv4 sockets count. Shows overall socket usage across all protocols. Default is AUTO.
update constants every duration How often to update socket limit constants from /proc/sys. These change rarely. Default is 60 seconds.

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for IPv6 socket statistics monitoring

Key Type Comments
filename to monitor string Path to the IPv6 socket statistics file to monitor (typically /proc/net/sockstat6). Default is "/proc/net/sockstat6".
ipv6 FRAG sockets boolean Whether to monitor IPv6 fragment reassembly pseudo-sockets. Shows fragments being processed. Default is "yes".
ipv6 RAW sockets boolean Whether to monitor IPv6 raw socket counts. Used by ICMPv6 tools like ping6. Default is "yes".
ipv6 TCP sockets boolean Whether to monitor TCPv6 socket counts by state. Essential IPv6 connection tracking. Default is "yes".
ipv6 UDP sockets boolean Whether to monitor UDPv6 socket counts. Shows open UDP endpoints. Default is "yes".
ipv6 UDPLITE sockets boolean Whether to monitor UDP-Lite over IPv6 socket counts. Error-tolerant protocol usage. Default is "yes".

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for network softirq statistics monitoring

Key Type Comments
filename to monitor string Path to the softnet statistics file to monitor (typically /proc/net/softnet_stat). Default is "/proc/net/softnet_stat".
softnet_stat per core boolean Whether to monitor software network interrupt statistics per CPU core. Essential for identifying CPU bottlenecks in network processing. Default is "yes".

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for netfilter connection tracking monitoring

Key Type Comments
filename to monitor string Path to the netfilter conntrack statistics file to monitor (typically /proc/net/stat/nf_conntrack). Default is "/proc/net/stat/nf_conntrack".
netfilter connection changes boolean Whether to monitor connection state changes (new to established, etc.). Shows connection lifecycle. Default is "yes".
netfilter connection expectations boolean Whether to monitor connection expectations (for protocols like FTP that open additional connections). Default is "yes".
netfilter connection searches boolean Whether to monitor connection tracking table searches. Performance metric for conntrack efficiency. Default is "yes".
netfilter connections boolean Whether to monitor total connection count and table usage. Critical for capacity planning. Default is "yes".
netfilter errors boolean Whether to monitor connection tracking errors (table full, invalid packets). Important for firewall health. Default is "yes".
netfilter new connections boolean Whether to monitor new connection rate. Shows connection establishment patterns. Default is "yes".

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for SYNPROXY DDoS mitigation monitoring

Key Type Comments
SYNPROXY SYN received boolean Whether to monitor SYN packets received by SYNPROXY. Shows incoming connection attempts. Default is "yes".
SYNPROXY connections reopened boolean Whether to monitor connections reopened after SYNPROXY validation. Shows legitimate connections. Default is "yes".
SYNPROXY cookies boolean Whether to monitor SYN cookie usage by SYNPROXY. Indicates DDoS mitigation activity. Default is "yes".
filename to monitor string Path to the SYNPROXY statistics file to monitor (typically /proc/net/stat/synproxy). Default is "/proc/net/stat/synproxy".

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for system interrupts monitoring

Key Type Comments
filename to monitor string Path to the interrupts file to monitor (typically /proc/interrupts). Default is "/proc/interrupts".
interrupts per core boolean Whether to monitor interrupt counts per CPU core. Essential for identifying interrupt distribution issues. Default is "yes".

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for comprehensive CPU statistics monitoring

Key Type Comments
context switches boolean Whether to monitor CPU context switches. Shows process scheduling activity. Default is "yes".
core_throttle_count boolean Whether to monitor CPU core thermal throttling events. Critical for performance issues. Default is "yes".
core_throttle_count filename to monitor string Path pattern to core throttle count files (e.g., /sys/devices/system/cpu/cpu*/thermal_throttle/core_throttle_count). Default varies by system.
cpu frequency boolean Whether to monitor CPU frequency scaling. Shows power management and performance states. Default is "yes".
cpu idle states boolean Whether to monitor CPU idle state (C-state) usage. Power efficiency metric. Default is "yes".
cpu interrupts boolean Whether to monitor CPU interrupt counts. Shows interrupt handling load. Default is "yes".
cpu utilization boolean Whether to monitor overall CPU usage (user, system, idle, etc.). Core performance metric. Default is "yes".
cpuidle name filename to monitor string Path pattern to CPU idle state name files. Used for C-state identification. Default is "/sys/devices/system/cpu/cpu*/cpuidle/state*/name".
cpuidle time filename to monitor string Path pattern to CPU idle state time files. Shows C-state residence times. Default is "/sys/devices/system/cpu/cpu*/cpuidle/state*/time".
filename to monitor string Path to the main CPU statistics file (typically /proc/stat). Default is "/proc/stat".
keep cpuidle files open boolean Whether to keep CPU idle files open for better performance. Trade-off between file handles and speed. Default is "yes".
keep per core files open boolean Whether to keep per-core CPU files open. Improves performance on systems with many cores. Default is "yes".
package_throttle_count boolean Whether to monitor CPU package-level thermal throttling. Shows chip-wide thermal issues. Default is "yes".
package_throttle_count filename to monitor string Path pattern to package throttle count files. Default varies by system architecture.
per cpu core utilization boolean Whether to monitor CPU usage per individual core. Essential for multi-core performance analysis. Default is "yes".
processes running boolean Whether to monitor number of runnable processes. System load indicator. Default is "yes".
processes started boolean Whether to monitor process creation rate (forks). System activity metric. Default is "yes".
scaling_cur_freq filename to monitor string Path pattern to current CPU frequency files. Default is "/sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq".
schedstat filename to monitor string Path to scheduler statistics file for advanced scheduling metrics. Default is "/proc/schedstat".
time_in_state filename to monitor string Path pattern to CPU frequency time-in-state files. Shows time spent at each frequency. Default is "/sys/devices/system/cpu/cpu*/cpufreq/stats/time_in_state".

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for generic system file monitoring

Key Type Comments
filename to monitor string Path to the system statistics file to monitor. Module-specific, typically a /proc or /sys file containing metrics. Default varies by module.

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for kernel statistics monitoring

Key Type Comments
filename to monitor string Path to the kernel statistics file to monitor. Module-specific, often used for specialized kernel metrics. Default varies by module.

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for hardware statistics monitoring

Key Type Comments
filename to monitor string Path to the hardware statistics file to monitor. Module-specific, typically sysfs files for hardware metrics. Default varies by module.

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for periodic statistics monitoring

Key Type Comments
filename to monitor string Path to the statistics file to monitor. Module-specific, often used for metrics that change infrequently. Default varies by module.
read every seconds number How often to read this file in seconds. Useful for files that update less frequently to reduce I/O. Default is 1 second.

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for process statistics monitoring

Key Type Comments
filename to monitor string Path to the process statistics file to monitor. Module-specific, typically /proc files for process metrics. Default varies by module.

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for memory management monitoring

Key Type Comments
disk i/o boolean Whether to monitor disk I/O related to memory operations (swapping, paging). Shows memory pressure impact on storage. Default is "yes".
filename to monitor string Path to memory statistics file (typically /proc/vmstat or similar). Default is "/proc/vmstat".
kernel same memory boolean Whether to monitor kernel same-page merging (KSM) statistics. Shows memory deduplication efficiency. Default is "yes".
memory ballooning boolean Whether to monitor memory ballooning in virtualized environments. Important for VM memory management. Default is "yes".
memory page faults boolean Whether to monitor page fault statistics (minor/major). Essential memory performance metric. Default is "yes".
out of memory kills boolean Whether to monitor out-of-memory (OOM) killer activity. Critical for system stability monitoring. Default is "yes".
swap i/o boolean Whether to monitor swap in/out operations. Shows memory pressure and performance impact. Default is "yes".
system-wide numa metric summary boolean Whether to monitor NUMA (Non-Uniform Memory Access) statistics. Important for NUMA-aware systems. Default is "yes".
transparent huge pages boolean Whether to monitor transparent huge pages (THP) statistics. Shows large page usage and efficiency. Default is "yes".
zswap i/o boolean Whether to monitor compressed swap (zswap) statistics. Shows memory compression effectiveness. Default is "yes".

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for PCIe monitoring

Key Type Comments
enable pci slots boolean Whether to monitor individual PCIe slot statistics (bandwidth, errors). Important for PCIe device performance. Default is "yes".
enable root ports boolean Whether to monitor PCIe root port statistics. Shows PCIe hierarchy performance and errors. Default is "yes".

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for power supply and battery monitoring

Key Type Comments
battery capacity boolean Whether to monitor battery capacity percentage. Shows battery health and charge level. Default is "yes".
battery charge boolean Whether to monitor battery charge in Ah (Ampere-hours). Shows actual charge amount. Default is "yes".
battery energy boolean Whether to monitor battery energy in Wh (Watt-hours). Shows energy storage capacity. Default is "yes".
battery power boolean Whether to monitor battery power draw/charge rate in Watts. Shows charging/discharging rate. Default is "yes".
directory to monitor string Path to power supply sysfs directory (typically /sys/class/power_supply). Default is "/sys/class/power_supply".
keep files open boolean Whether to keep power supply files open for better performance. Reduces syscall overhead. Default is "yes".
power supply voltage boolean Whether to monitor power supply voltage levels. Important for power quality monitoring. Default is "yes".

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for thermal monitoring

Key Type Comments
directory to monitor string Path to thermal zone sysfs directory (typically /sys/class/thermal). Contains temperature sensors and cooling devices. Default is "/sys/class/thermal".

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for hardware monitoring

Key Type Comments
directory to monitor string Path to hardware monitoring sysfs directory (typically /sys/class/hwmon). Contains sensor data from various hardware monitoring chips. Default is "/sys/class/hwmon".

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for NUMA statistics monitoring

Key Type Comments
directory to monitor string Path to NUMA statistics directory (typically /sys/devices/system/node). Contains per-node memory and CPU statistics. Default is "/sys/devices/system/node".
enable per-node numa metrics boolean Whether to monitor detailed metrics for each NUMA node separately. Essential for NUMA performance optimization. Default is "yes".

Section plugin:proc:/sys/fs/btrfs

Btrfs filesystem monitoring configuration

Key Type Comments
check for btrfs changes every duration How often to scan for new/removed Btrfs filesystems. Btrfs mounts can appear/disappear dynamically. Default is 60 seconds. Lower values detect changes faster but use more CPU.
commit stats boolean Enable monitoring of Btrfs commit statistics (commit duration, max commit duration). Shows filesystem write performance. Default is YES.
data allocation boolean Enable monitoring of Btrfs data space allocation. Shows how much space is allocated/used for file data. Default is AUTO.
error stats boolean Enable monitoring of Btrfs error statistics (I/O errors, checksum failures, corruption). Critical for filesystem health. Default is AUTO.
metadata allocation boolean Enable monitoring of Btrfs metadata space allocation. Shows space used for filesystem structures. Default is AUTO.
path to monitor string Base path to Btrfs sysfs entries. Default is "/sys/fs/btrfs". Can be overridden for containers or testing.
physical disks allocation boolean Enable monitoring of physical device allocation in Btrfs. Shows how data is distributed across devices. Default is AUTO.
system allocation boolean Enable monitoring of Btrfs system chunk allocation. System chunks store critical filesystem metadata. Default is AUTO.

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for Kernel Same-page Merging (KSM) monitoring

Key Type Comments
/sys/kernel/mm/ksm/pages_shared string Path to KSM pages_shared file. Shows number of shared pages. Default is "/sys/kernel/mm/ksm/pages_shared".
/sys/kernel/mm/ksm/pages_sharing string Path to KSM pages_sharing file. Shows number of pages currently being shared. Default is "/sys/kernel/mm/ksm/pages_sharing".
/sys/kernel/mm/ksm/pages_to_scan string Path to KSM pages_to_scan file. Shows pages scanned per iteration. Default is "/sys/kernel/mm/ksm/pages_to_scan".
/sys/kernel/mm/ksm/pages_unshared string Path to KSM pages_unshared file. Shows unique pages that cannot be merged. Default is "/sys/kernel/mm/ksm/pages_unshared".
/sys/kernel/mm/ksm/pages_volatile string Path to KSM pages_volatile file. Shows pages that change too frequently to merge. Default is "/sys/kernel/mm/ksm/pages_volatile".

Section [plugin:PLUGIN_NAME:MODULE]

Plugin-specific configuration section for System V IPC monitoring

Key Type Comments
max dimensions in memory allowed number Maximum number of IPC objects to track in memory. Prevents excessive memory usage on systems with many IPC objects. Default is 1024.
message queues boolean Whether to monitor System V message queue statistics. Shows IPC message queue usage. Default is "yes".
msg filename to monitor string Path to message queue statistics file. Default is "/proc/sysvipc/msg".
semaphore totals boolean Whether to monitor System V semaphore statistics. Shows IPC semaphore usage. Default is "yes".
shared memory totals boolean Whether to monitor System V shared memory statistics. Shows IPC shared memory segments. Default is "yes".
shm filename to monitor string Path to shared memory statistics file. Default is "/proc/sysvipc/shm".

Section plugin:tc

Linux Traffic Control (tc) QoS monitoring plugin configuration

Key Type Comments
cleanup unused classes every number Interval in seconds to cleanup unused TC classes and qdiscs. Prevents memory leaks from temporary QoS configurations. Default is "300" (5 minutes).
enable ctokens charts for all interfaces boolean Whether to monitor TC committed token bucket charts for all network interfaces. Shows QoS token bucket depth for traffic shaping. Default is "yes".
enable show all classes and qdiscs for all interfaces boolean Whether to monitor all TC classes and queuing disciplines for all interfaces. Provides comprehensive QoS monitoring. Default is "yes".
enable tokens charts for all interfaces boolean Whether to monitor TC token bucket charts for all network interfaces. Essential for monitoring traffic shaping and rate limiting. Default is "yes".
script to run to get tc values string Path to script for retrieving TC statistics. Allows custom TC data collection methods. Default is system TC command.
var_name boolean Whether to enable TC variable name processing. Used for dynamic TC configuration parsing. Default is "yes".

Section plugin:windows

Windows system monitoring plugin configuration

Key Type Comments
pm->name boolean Whether to enable specific Windows performance counters and WMI monitoring modules. The key name is dynamically set from the module name (e.g., "PerflibProcessor", "PerflibMemory", "PerflibNetwork"). When set to "no", that specific module will not be monitored. Default is "yes".

Configuration: stream.conf

Handle: stream_config

Section CONFIG_SECTION_STREAM

Streaming configuration for parent-child node relationships

Key Type Comments
CAfile string Path to SSL certificate authority file for verifying parent node certificates. Used when streaming to parent with SSL/TLS enabled.
CApath string Path to directory containing SSL certificate authority files for verifying parent certificates. Alternative to CAfile for systems with multiple CA certificates.
api key string Authentication key for streaming to parent node. Must match a configured API key on the parent. Required for establishing streaming connections.
brotli compression level number Brotli compression level (0-11). Higher values provide better compression but use more CPU. Default is 3. 0=fastest, 11=best compression.
buffer size size Maximum size of the streaming buffer in bytes. Controls memory usage for outgoing data. Accepts units like MB, GB. Default is 10MB.
buffer size bytes number Legacy option for buffer size in bytes. Use 'buffer size' instead for better readability with units.
default port number Default port for connecting to parent node if not specified in destination. Default is 19999.
destination string Parent node destination in format 'host:port' or 'host'. Multiple destinations separated by spaces for failover. First available parent is used.
enable compression boolean Enable compression for streaming data. Reduces bandwidth but increases CPU usage. Default is yes. Negotiates best algorithm with parent.
enabled boolean Enable streaming to parent node. Set to 'yes' to send data to configured destination. Default is no.
gzip compression level number Gzip compression level (1-9). Higher values provide better compression but use more CPU. Default is 3. 1=fastest, 9=best compression.
initial clock resync iterations number Number of iterations to sync clocks between parent and child before streaming starts. Helps ensure accurate timestamps. Default is 60.
lz4 compression acceleration number LZ4 compression acceleration factor (1-9). Higher values mean faster compression but lower ratio. Default is 1. 9=fastest, 1=best compression.
parent using h2o boolean Set to 'yes' if parent is using H2O web server. Adjusts protocol handling for compatibility. Default is no.
reconnect delay duration Delay in seconds before attempting to reconnect to the parent node after a connection failure. Default is 15 seconds. Minimum is 5 seconds.
send charts matching string Pattern for selecting which charts to stream. Uses simple patterns with wildcards. Default is '' (all charts). Example: 'system. disk.*'
ssl skip certificate verification boolean Skip SSL certificate verification when connecting to parent. WARNING: Insecure, use only for testing. Default is no.
timeout duration Connection timeout in seconds for streaming operations. Applies to connection establishment and data transmission. Default is 300 seconds.
zstd compression level number Zstandard compression level (1-22). Provides excellent compression with good speed. Default is 3. 1=fastest, 22=best compression.

Section api_key

API key specific configuration for streaming receivers

Key Type Comments
allow from string IP addresses or hostnames allowed to connect with this API key. Supports simple patterns with wildcards. Default is '' (all). Example: '10.0.0. localhost'
compression algorithms order string Preferred compression algorithm order for negotiation. Space-separated list. Default is 'zstd lz4 brotli gzip'. First mutually supported algorithm is used.
db string Database engine to use for metrics storage. Options: 'dbengine', 'ram', 'alloc', 'none'. Default inherits from global setting. 'dbengine' is recommended.
enable compression boolean Enable compression for connections using this API key. Reduces bandwidth usage. Default is yes. Negotiates with child node capabilities.
enable replication boolean Enable database replication for child nodes using this API key. Allows child to request historical data. Default is yes.
enabled boolean Enable this API key for accepting streaming connections. Set to 'no' to temporarily disable without removing configuration. Default is yes.
health enabled boolean Enable health monitoring and alerts for nodes using this API key. Can be 'yes', 'no', or 'auto'. Default is 'auto' (enabled if health plugin is enabled).
health log retention duration How long to retain health log entries in seconds. Controls alert history visibility. Default is 432000 (5 days). Minimum is 3600 (1 hour).
postpone alerts on connect duration Time in seconds to postpone alerts after a child connects. Prevents false alerts during initial sync. Default is 60 seconds. 0 disables postponement.
proxy api key string API key to use when this receiver acts as proxy, forwarding data to another parent. Must match key on upstream parent. Empty disables proxying.
proxy destination string Destination to forward received metrics when acting as proxy. Format: 'host:port'. Empty disables proxying. Enables multi-level streaming architectures.
proxy enabled boolean Enable proxy mode for nodes using this API key. When enabled, received data is forwarded to proxy destination. Default is no.
proxy send charts matching string Pattern for selecting which charts to forward when proxying. Uses simple patterns. Default is '' (all). Example: 'system. apps.*'
replication period duration Maximum time window of historical data to replicate. Default is 86400 (1 day). Larger values increase memory usage and sync time.
replication step duration Time granularity for replication data transfer. Default is 3600 (1 hour). Smaller values mean more frequent but smaller transfers.
retention number Data retention period in seconds for nodes using this API key. Overrides global retention. Default is 3600 (1 hour). Use with care on parents.
type string Type identifier for this API key. Used for grouping and identifying connection types. Examples: 'production', 'development', 'testing'.

Section machine_guid

Per-machine streaming configuration section where machine_guid is replaced with the actual GUID of a specific child node

Key Type Comments
compression algorithms order string Preferred order of compression algorithms for streaming data (e.g., "zstd,lz4,gzip"). Client will negotiate best supported algorithm. Default is "zstd,lz4,gzip".
db string Database engine type for storing streamed data ("dbengine", "memory", "none"). Affects data persistence and memory usage. Default is "dbengine".
enable compression boolean Whether to enable data compression for streaming. Reduces bandwidth usage but increases CPU overhead. Default is "yes".
enable replication boolean Whether to enable historical data replication from child nodes. Allows parents to backfill missing data. Default is "yes".
health enabled boolean Whether to enable health monitoring and alerting for this streamed data source. Controls alert processing for child nodes. Default is "yes".
health log retention duration How long to keep health monitoring alerts and events in the log. Default is 5 days. Older entries are automatically removed. Format: number with unit (s/m/h/d).
postpone alerts on connect duration Delay sending alerts for this period after a child node connects to avoid false positives during initial synchronization. Default is 60 seconds. Format: number with unit (s/m/h/d).
proxy api key string API key for authenticating with the proxy destination. Required when proxy is enabled for authentication. Leave empty for no authentication.
proxy destination string Target proxy server URL for forwarding streaming data (e.g., "https://proxy.example.com:19999"). Used for data forwarding chains.
proxy enabled boolean Whether to enable proxy forwarding for this data stream. Allows creating data forwarding hierarchies. Default is "no".
proxy send charts matching string Pattern matching charts to forward via proxy (simple patterns supported). Use "" for all charts or specific patterns like "system.". Default is "*".
replication period duration Maximum historical data time window to replicate from child nodes. Default is 1 day (86400s). Larger values increase memory usage and initial sync time. Format: number with unit (s/m/h/d).
replication step duration Time interval for each replication batch. Default is 1 hour (3600s). Smaller values mean more frequent but smaller data transfers. Format: number with unit (s/m/h/d).
retention number Data retention period in seconds for this specific machine. Overrides API key and global retention settings. Default inherits from API key configuration.
update every duration Override data collection frequency for streamed metrics from this host. Inherits from global setting if not specified. Format: number with unit (s/m/h/d).

Configuration: cloud.conf

Handle: cloud_config

Section CONFIG_SECTION_GLOBAL

Global cloud connectivity configuration settings

Key Type Comments
claimed_id string Unique identifier assigned when node is claimed to Netdata Cloud. Auto-generated during claim process. Do not modify manually.
hostname string Hostname override for cloud identification. If not set, uses system hostname. Helps identify node in cloud interface.
insecure boolean Skip SSL certificate verification for cloud connections. WARNING: Only use for testing. Default is no.
machine_guid string Unique machine identifier for cloud registration. Auto-generated if not set. Must be unique across all nodes.
proxy string HTTP proxy URL for cloud connectivity. Format: 'http://proxy:port' or 'socks5://proxy:port'. Empty for direct connection.
rooms string Comma-separated list of cloud room IDs to join. Rooms organize nodes into groups. Can be updated after claiming.
token string Authentication token for Netdata Cloud connection. Obtained during claim process. Keep secret and do not share.
url string Netdata Cloud service URL endpoint. Default is 'https://api.netdata.cloud'. Only change for private cloud deployments.

Configuration: exporting.conf

Handle: exporting_config

Section CONFIG_SECTION_EXPORTING

Data export and external system integration

Key Type Comments
enabled boolean Enable/disable all exporting connectors globally. Individual connectors can override this. Default is no.
name boolean DEPRECATED: Legacy configuration option. This key is no longer used and will be ignored.

Configuration: claim.conf

Handle: claim_config

Section CONFIG_SECTION_GLOBAL

Global cloud claiming configuration settings

Key Type Comments
insecure boolean Skip SSL certificate verification during claim process. WARNING: Only use for testing. Default is no.
proxy string HTTP proxy URL for claim process. Format: 'http://proxy:port' or 'socks5://proxy:port'. Empty for direct connection.
rooms string Comma-separated list of cloud room IDs to join during claim. Rooms organize nodes into groups. Can be changed later.
token string One-time claim token from Netdata Cloud. Obtained from cloud interface when adding a new node. Expires after use.
url string Netdata Cloud claiming service URL. Default is 'https://api.netdata.cloud'. Only change for private cloud deployments.

Configuration: ebpf.conf

Handle: collector_config

Section EBPF_GLOBAL_SECTION

eBPF collector global settings

Key Type Comments
EBPF_CFG_APPLICATION boolean Enable per-application statistics collection. Groups metrics by application name. CPU intensive but provides detailed insights. Default is yes.
EBPF_CFG_CGROUP boolean Enable cgroup (container) statistics collection. Essential for container monitoring (Docker, Kubernetes). Default is yes.
EBPF_CFG_LIFETIME number Thread lifetime in seconds. After this period, eBPF threads exit and restart. Helps with memory management. Default is 300 (5 minutes).
EBPF_CFG_LOAD_MODE string eBPF loading mode: 'entry' (only function entry), 'return' (entry and return), 'update' (live update). Default is 'entry' for performance.
EBPF_CFG_MAPS_PER_CORE boolean Allocate eBPF maps per CPU core. Improves performance on multi-core systems but uses more memory. Default is yes.
EBPF_CFG_PID_SIZE number Maximum number of PIDs to monitor simultaneously. Higher values use more kernel memory. Default is 32768.
EBPF_CFG_PROGRAM_PATH string Custom path to eBPF programs. Leave empty to use bundled programs. Used for development or custom eBPF programs.
EBPF_CFG_TYPE_FORMAT string Output format for eBPF metrics: 'auto', 'legacy', or 'co-re'. Auto-detects best format. Default is 'auto'.
EBPF_CFG_UPDATE_EVERY number Data collection frequency in seconds. Lower values provide more granular data but increase CPU usage. Default is 1 second.
disable apps boolean Disable all application-level monitoring to reduce overhead. Overrides individual app settings. Default is no.
load string Legacy option for eBPF loading mode. Use EBPF_CFG_LOAD_MODE instead. Kept for backward compatibility.

Section EBPF_PROGRAMS_SECTION

eBPF program enable/disable configuration

Key Type Comments
cachestat boolean Whether to enable eBPF monitoring of page cache statistics. Tracks page cache hits/misses, helping identify I/O performance issues. Default is "auto".
dcstat boolean Whether to enable eBPF monitoring of directory cache (dcache) statistics. Shows directory lookup performance and cache efficiency. Default is "auto".
disk boolean Whether to enable eBPF monitoring of disk I/O operations. Provides detailed disk latency histograms and I/O patterns. Default is "auto".
ebpf_modules[EBPF_MODULE_PROCESS_IDX].info.config_name boolean Whether to enable eBPF process monitoring module. Tracks process creation, termination, and resource usage. Default is "auto".
ebpf_modules[EBPF_MODULE_SOCKET_IDX].info.config_name boolean Whether to enable eBPF socket monitoring module. Provides detailed socket-level metrics including TCP retransmissions and connection states. Default is "auto".
fd boolean Whether to enable eBPF monitoring of file descriptor operations. Tracks file opens, closes, and errors by process. Default is "auto".
filesystem boolean Whether to enable eBPF monitoring of filesystem operations. Shows VFS calls like read, write, open, and fsync by filesystem type. Default is "auto".
hardirq boolean Whether to enable eBPF monitoring of hardware interrupts. Tracks IRQ latencies and distribution across CPUs. Default is "auto".
mdflush boolean Whether to enable eBPF monitoring of MD (software RAID) flush operations. Tracks RAID array synchronization and performance. Default is "auto".
mount boolean Whether to enable eBPF monitoring of mount/umount operations. Tracks filesystem mounting activities and errors. Default is "auto".
network connection monitoring boolean Whether to enable comprehensive eBPF network connection monitoring. Provides detailed TCP/UDP connection tracking and statistics. Default is "auto".
network connections boolean Whether to enable basic eBPF network connection tracking. Shows active connections by protocol and state. Default is "auto".
network viewer boolean Whether to enable eBPF network viewer for real-time traffic visualization. Shows network flows between processes and remote endpoints. Default is "auto".
oomkill boolean Whether to enable eBPF monitoring of Out-Of-Memory killer events. Tracks which processes are killed due to memory pressure. Default is "auto".
shm boolean Whether to enable eBPF monitoring of shared memory operations. Tracks IPC shared memory usage and system calls. Default is "auto".
softirq boolean Whether to enable eBPF monitoring of software interrupts. Shows softirq processing time and distribution across CPUs. Default is "auto".
swap boolean Whether to enable eBPF monitoring of swap operations. Tracks swap in/out activity by process, critical for memory pressure analysis. Default is "auto".
sync boolean Whether to enable eBPF monitoring of sync system calls. Tracks filesystem synchronization operations like sync, fsync, and fdatasync. Default is "auto".
vfs boolean Whether to enable eBPF monitoring of Virtual File System operations. Shows detailed VFS call statistics across all filesystems. Default is "auto".

Section NETDATA_EBPF_IPC_SECTION

eBPF Inter-Process Communication monitoring configuration

Key Type Comments
NETDATA_EBPF_IPC_BACKLOG number Maximum queue size for IPC event backlog. Higher values prevent event loss but use more memory. Default is 4096.
NETDATA_EBPF_IPC_BIND_TO string IP address to bind IPC monitoring socket. Use '0.0.0.0' for all interfaces or specific IP. Default is 'localhost'.
NETDATA_EBPF_IPC_INTEGRATION string Integration mode for IPC monitoring: 'internal' (built-in) or 'external' (separate process). Default is 'internal'.

Configuration: cfg.conf

Handle: cfg

Section EBPF_GLOBAL_SECTION

eBPF collector global settings

Key Type Comments
EBPF_CONFIG_SOCKET_MONITORING_SIZE number Maximum number of socket connections to monitor simultaneously. Higher values provide more coverage but use more memory. Default is 8192.
EBPF_CONFIG_UDP_SIZE number Maximum number of UDP connections to track. UDP is connectionless, so this tracks recent packet flows. Default is 4096.

Section EBPF_NETWORK_VIEWER_SECTION

eBPF network monitoring specific settings

Key Type Comments
EBPF_CONFIG_HOSTNAMES string Space-separated list of hostnames to monitor in network viewer. Use patterns with wildcards. Empty means all hostnames. Example: '*.local *.mydomain.com'
EBPF_CONFIG_PORTS string Space-separated list of ports to monitor. Can use ranges with hyphen. Empty means all ports. Example: '80 443 8080-8090 3306'
EBPF_CONFIG_RESOLVE_HOSTNAME boolean Whether to resolve IP addresses to hostnames in network viewer. May impact performance on busy systems. Default is yes.
EBPF_CONFIG_RESOLVE_SERVICE boolean Whether to resolve port numbers to service names (e.g., 80→http). Uses /etc/services. Default is yes.
ips string Space-separated list of IP addresses or subnets to monitor. Supports CIDR notation. Empty means all IPs. Example: '10.0.0.0/8 192.168.1.1'

Configuration: config.conf

Handle: config

Configuration: ebpf_filesystem.conf

Handle: fs_config

Section NETDATA_FILESYSTEM_CONFIG_NAME

Filesystem monitoring configuration

Key Type Comments
dist boolean Enable monitoring for distributed/network filesystems (NFS, CIFS, etc). May cause performance issues if enabled. Default is no.

Configuration: modules->cfg.conf

Handle: modules->cfg

Section EBPF_GLOBAL_SECTION

eBPF collector global settings

Key Type Comments
EBPF_CFG_APPLICATION boolean Enable per-application statistics collection. Groups metrics by application name. CPU intensive but provides detailed insights. Default is yes.
EBPF_CFG_CGROUP boolean Enable cgroup (container) statistics collection. Essential for container monitoring (Docker, Kubernetes). Default is yes.
EBPF_CFG_COLLECT_PID string PID collection mode: 'real' (actual PIDs), 'user' (per-user), 'all' (everything). Default is 'all'.
EBPF_CFG_CORE_ATTACH string Core attachment method: 'trampoline' (newer, efficient) or 'probe' (legacy, compatible). Default is 'trampoline' if supported.
EBPF_CFG_LIFETIME number Thread lifetime in seconds. After this period, eBPF threads exit and restart. Helps with memory management. Default is 300 (5 minutes).
EBPF_CFG_LOAD_MODE string eBPF loading mode: 'entry' (only function entry), 'return' (entry and return), 'update' (live update). Default is 'entry' for performance.
EBPF_CFG_MAPS_PER_CORE boolean Allocate eBPF maps per CPU core. Improves performance on multi-core systems but uses more memory. Default is yes.
EBPF_CFG_PID_SIZE number Maximum number of PIDs to monitor simultaneously. Higher values use more kernel memory. Default is 32768.
EBPF_CFG_TYPE_FORMAT string Output format for eBPF metrics: 'auto', 'legacy', or 'co-re'. Auto-detects best format. Default is 'auto'.
EBPF_CFG_UPDATE_EVERY number Data collection frequency in seconds. Lower values provide more granular data but increase CPU usage. Default is 1 second.

Configuration: ebpf_socket.conf

Handle: socket_config

Section EBPF_NETWORK_VIEWER_SECTION

eBPF network monitoring specific settings

Key Type Comments
enabled boolean Enable/disable eBPF network viewer module for real-time network connection monitoring. Provides deep kernel-level visibility into network traffic patterns. Default is "auto" (enabled if eBPF is supported).

Configuration: sockets->config.conf

Handle: sockets->config

Section sockets->config_section

Web server socket configuration section for API and dashboard access endpoints

Key Type Comments
default port number Default web server port

Configuration: ebpf_sync.conf

Handle: sync_config

Section NETDATA_SYNC_CONFIG_NAME

eBPF sync syscall monitoring configuration

Key Type Comments
local_syscalls[i].syscall boolean Enable/disable monitoring for specific sync-related system calls. Key names are dynamically generated based on available syscalls (e.g., sync, fsync, fdatasync, syncfs, msync, sync_file_range). Default is yes for all.

Configuration: tmp_config.conf

Handle: tmp_config

Section section

Generic configuration section placeholder used in command-line tools

Key Type Comments
key string Generic configuration key used with -W get2 command for retrieving configuration values. The actual key name and type depend on the specific section and configuration being queried.

Section temp + offset + 1

Dynamically generated section name (internal use)

Key Type Comments
temp + offset2 + 1 string Dynamically generated key name. Used internally for parsing hierarchical configuration sections with colon separators. Not directly user-configurable.