Back to Netdata

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

src/libnetdata/inicfg/MIGRATE_TO_YAML_WIP.md

2.10.3160.2 KB
Original Source

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)
yaml
# 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
# 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:

ini
[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
yaml
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
yaml
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

c
// 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 HandlePurposeCategoryLoad CallsUsage Pattern
netdata_configMain system configurationPrimary4500+ get calls, main config
stream_configStreaming/replication settingsPrimary2Extensive streaming config
cloud_configNetdata Cloud integrationPrimary145+ get calls, cloud features
exporting_configData export configurationPrimary2134+ get calls, exporters
claim_configCloud claiming configurationPrimary123+ get calls, cloud auth
collector_configeBPF collector settingsPrimary2200+ get calls, eBPF core
socket_configSocket/network configurationActive0eBPF networking module
sync_configSynchronization settingsActive0eBPF sync module
fs_configFilesystem monitoringActive0eBPF filesystem module
cfgGeneric eBPF configurationUtility1Multiple eBPF modules
configGeneric configuration handleUtility1Various plugins
modules->cfgModule-specific eBPF configDerived0eBPF module references
sockets->configSocket-specific eBPF configDerived0eBPF socket references
tmp_configTemporary configurationUtility0Analysis/processing
rootConfiguration root referenceDebug0Internal operations
sectSection referenceDebug0Internal operations
optOption referenceDebug0Internal 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)

ini
[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)

ini
[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)

ini
[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)

ini
[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

ini
[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

ini
[exporting:global]
enabled = yes

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

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

3. Collector Sub-Module Pattern

ini
[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

KeyTypeComments
proxystringHTTP 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 threadsnumberNumber 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

KeyTypeComments
cleanup ephemeral hosts afterdurationTime 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 afterdurationTime 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 afterdurationTime 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).
dbstringDatabase 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 MBnumberMaximum disk space for database storage (legacy setting, superseded by tier-specific settings)
dbengine enable journal integrity checkbooleanEnable integrity checks on database engine journal files at startup. Helps detect corruption but increases startup time. Default is "no".
dbengine extent cache sizesizeSize 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 timedurationTime after which inactive database journal files are unmounted to free file descriptors. Default is based on system configuration.
dbengine multihost disk space MBnumberLegacy multihost disk space setting, superseded by tier-specific retention settings
dbengine out of memory protectionsizeAmount 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 sizesizeSize 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 typestringCompression algorithm for database pages. Options: "gorilla" (time-series optimized compression), "raw" (uncompressed). Default is "gorilla".
dbengine pages per extentnumberNumber 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 sizesizeMaximum 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 timedurationMaximum 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 sizesizeMaximum disk space in MB for tier 1 (medium resolution) data storage. Default varies by system.
dbengine tier 1 retention timedurationMaximum time to retain tier 1 data. Default is 90 days.
dbengine tier 1 update every iterationsnumberHow many tier 0 points are aggregated into one tier 1 point. Minimum value is 2. Default is 60.
dbengine tier 2 retention sizesizeMaximum disk space in MB for tier 2 (lower resolution) data storage. Default varies by system.
dbengine tier 2 retention timedurationMaximum time to retain tier 2 data. Default is 2 years.
dbengine tier 2 update every iterationsnumberHow many tier 1 points are aggregated into one tier 2 point. Minimum value is 2. Default is 60.
dbengine tier 3 retention sizesizeMaximum disk space in MB for tier 3 (lowest resolution) data storage. Default varies by system.
dbengine tier 3 retention timedurationMaximum time to retain tier 3 data. Default is 2 years.
dbengine tier 3 update every iterationsnumberHow many tier 2 points are aggregated into one tier 3 point. Minimum value is 2. Default is 60.
dbengine tier 4 retention sizesizeMaximum disk space in MB for tier 4 (lowest resolution) data storage. Default varies by system.
dbengine tier 4 retention timedurationMaximum time to retain tier 4 data. Default is 2 years.
dbengine tier 4 update every iterationsnumberHow many tier 3 points are aggregated into one tier 4 point. Minimum value is 2. Default is 60.
dbengine tier backfillstringStrategy 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 cachesbooleanAllow database engine to use all available system RAM for caches, respecting only the out-of-memory protection limit. Default is "no".
dbengine use direct iobooleanUse 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 abovenumberNumber 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)stringEnable kernel same-page merging to reduce memory usage by sharing identical memory pages. Options: "yes", "no", "auto". Default is "auto".
retentiondurationFor non-dbengine storage modes, the amount of data to keep in memory. Measured in seconds of historical data. Default varies by storage mode.
storage tiersnumberNumber 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 everydurationGlobal 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.

KeyTypeComments
cachestringDirectory where Netdata stores cache files including database files, temporary data, and runtime state. Default is "/var/cache/netdata" or "/opt/netdata/var/cache/netdata".
configstringDirectory where Netdata looks for user configuration files (netdata.conf, stream.conf, etc.). Default is "/etc/netdata" or "/opt/netdata/etc/netdata".
cloud.dstringSubdirectory under lib directory for cloud-related files including claiming tokens and cloud configuration. Default is "cloud.d" under lib directory.
health configstringDirectory containing custom health configuration files (alerts, notifications). Default is "health.d" under config directory.
homestringNetdata home directory, used as base for relative paths. Default varies by installation method ("/opt/netdata" for static builds, "/" for package installs).
libstringDirectory for Netdata's variable state files, runtime data, and persistent storage. Default is "/var/lib/netdata" or "/opt/netdata/var/lib/netdata".
logstringDirectory where Netdata writes log files (access.log, error.log, debug.log). Default is "/var/log/netdata" or "/opt/netdata/var/log/netdata".
pluginsstringDirectory containing plugin executables and scripts. Multiple paths can be configured. Default includes "/usr/libexec/netdata/plugins.d".
stock configstringDirectory containing default/stock configuration files that ship with Netdata. Used as fallback when user configs are missing. Default is distribution-specific.
stock health configstringDirectory containing default health configuration files (stock alerts). Default is "health.d" under stock config directory.
webstringDirectory 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

KeyTypeComments
update everydurationHow 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

KeyTypeComments
CURL_CA_BUNDLEstringPath 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.
PATHstringSystem executable search path. Used to locate external programs and plugins. Should include directories containing required binaries. Default inherits from system.
PYTHONPATHstringPython module search path. Used by Python-based collectors to find required modules. Can include custom collector directories. Default inherits from system.
SSL_CERT_FILEstringPath to SSL certificate file for secure connections. Used by various components for TLS/SSL operations. If not set, uses system default certificates.
TZstringTimezone 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

KeyTypeComments
bandwidth for all interfacesbooleanEnable bandwidth monitoring (bytes/s in and out) for all network interfaces. Shows data transfer rates. Default is YES.
collisions for all interfacesbooleanEnable collision monitoring for all interfaces. Shows packet collision counts on shared media networks. Default is YES.
disable by default interfaces matchingstringPattern 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 interfacesbooleanEnable packet drop monitoring for all interfaces. Shows packets dropped due to various reasons. Default is YES.
enable new interfaces detected at runtimebooleanAutomatically start monitoring new network interfaces that appear after Netdata starts. Useful for dynamic environments. Default is YES.
errors for all interfacesbooleanEnable error monitoring for all interfaces. Shows transmission and reception errors. Default is YES.
packets for all interfacesbooleanEnable packet rate monitoring (packets/s) for all interfaces. Shows packet counts regardless of size. Default is YES.
set physical interfaces for system.netstringSpace-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 interfacesbooleanCreate aggregate bandwidth charts for all IPv4-capable interfaces. Shows total IPv4 traffic across the system. Default is YES.
total bandwidth for ipv6 interfacesbooleanCreate aggregate bandwidth charts for all IPv6-capable interfaces. Shows total IPv6 traffic across the system. Default is YES.
total bandwidth for physical interfacesbooleanCreate aggregate bandwidth charts for physical interfaces only, excluding virtual interfaces. Shows total physical network traffic. Default is YES.
total packets for physical interfacesbooleanCreate 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

KeyTypeComments
enable new mount points detected at runtimebooleanAutomatically start monitoring new mount points that appear after Netdata starts. Useful for removable drives and dynamic mounts. Default is YES.
exclude space metrics on filesystemsstringSpace-separated list of filesystem types to exclude from space monitoring. Common exclusions: 'devfs procfs tmpfs'. Default includes common virtual filesystems.
exclude space metrics on pathsstringSpace-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 disksbooleanEnable 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 disksbooleanEnable 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

KeyTypeComments
cpu coresnumberNumber of CPU cores Netdata should use for calculations and thread spawning
glibc malloc arena max for pluginsnumberMaximum malloc arenas for external plugins to prevent memory fragmentation
glibc malloc arena max for netdatanumberMaximum malloc arenas for the netdata process itself to control memory usage
pthread stack sizesizeStack size for pthread threads (e.g., "8MB")
libuv worker threadsnumberNumber of libuv worker threads for async I/O operations
host access prefixstringHost access prefix for generating URLs (e.g., chroot prefix)
hostnamestringHostname for this Netdata instance (overrides system hostname)
run as userstringUser account that netdata should run as for security
OOM scorestringOut-Of-Memory score adjustment (number or "keep")
process nice levelnumberProcess nice level (-20 to 19, lower means higher priority)
process scheduling policystringProcess scheduling policy ("batch", "other", "nice", "idle", "rr", "fifo", "keep")
process scheduling prioritynumberProcess scheduling priority when using real-time policies
crash reportsstringCrash report generation ("all" or "off")
timezonestringTimezone for the Netdata instance (e.g., "UTC", "America/New_York")
is ephemeral nodebooleanMarks if this is an ephemeral node (temporary/short-lived)
has unstable connectionbooleanMarks if this node has an unstable network connection
profilestringConfiguration profile to use for default settings

Section CONFIG_SECTION_HEALTH

Health monitoring and alerting settings

KeyTypeComments
default repeat criticaldurationDefault interval for repeating critical alert notifications. 0 means critical alerts are sent only once. Default is 0 (no repeat).
default repeat warningdurationDefault interval for repeating warning alert notifications. 0 means warning alerts are sent only once. Default is 0 (no repeat).
enabledbooleanEnable or disable the health monitoring system entirely. When disabled, no alerts are processed or sent. Default is "yes".
enabled alarmsstringPattern matching which alerts to enable. Use "" for all, specific names, or patterns with wildcards. Default is "" (all enabled).
enable stock health configurationbooleanWhether to load the default health configuration files that ship with Netdata. Recommended to keep enabled. Default is "yes".
health log retentiondurationHow 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 entriesnumberMaximum 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 fordurationDelay alert processing after system hibernation/sleep to prevent false alerts during startup. Default is 60 seconds.
run at least everydurationMinimum 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 alarmstringPath to the script that handles alert notifications (email, slack, etc.). Default is "alarm-notify.sh" in the plugins directory.
use summary for notificationsbooleanWhether 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

KeyTypeComments
average completed i/o bandwidth for all disksbooleanWhether 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 disksbooleanWhether 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 disksbooleanWhether 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 disksbooleanWhether 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 matchingstringPattern 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 runtimebooleanWhether 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 disksbooleanWhether 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 disksbooleanWhether 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 devicesbooleanWhether 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 disksbooleanWhether to collect queue depth charts showing number of operations waiting. Indicates disk saturation. Default is "auto" (enabled when data available).
total bandwidth for all disksbooleanWhether to collect system-wide aggregated disk I/O bandwidth chart. Shows total system disk activity. Default is "yes".
utilization percentage for all disksbooleanWhether 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

KeyTypeComments
debug flagsstringHexadecimal bitmask for enabling debug output for specific subsystems. Format: "0x0000000000000000". Used for troubleshooting and development. Default is "0x0000000000000000" (no debug).
facilitystringSyslog facility for log messages when using syslog output. Common values: "daemon", "local0-local7", "user". Default is "daemon".
levelstringMinimum log level to output. Options: "error", "warning", "info", "debug". Can be overridden by NETDATA_LOG_LEVEL environment variable. Default is "info".
logs flood protection perioddurationTime 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 protectionnumberMaximum 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

KeyTypeComments
check for new plugins everydurationHow often to scan plugin directories for new plugin files. Default is 60 seconds. Set to 0 to disable automatic discovery.
enable running new pluginsbooleanWhether to automatically start newly discovered plugins. When enabled, new plugins found during directory scans will be started automatically. Default is "yes".
freeipmibooleanEnable or disable the FreeIPMI plugin for IPMI hardware monitoring (temperature, voltage, fan speeds). Requires FreeIPMI library. Default is "yes" if compiled with support.
slabinfobooleanEnable or disable the slabinfo plugin for kernel slab allocator monitoring. Provides memory usage details for kernel objects. Default is "yes" on supported systems.
statsdbooleanEnable 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]booleanGeneric 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

KeyTypeComments
backlog for all disksbooleanEnable 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 disksbooleanEnable 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 disksbooleanEnable 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 everydurationHow 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.
bufferbooleanEnable monitoring of disk buffer statistics. Shows buffer cache utilization for disk operations. Default is NO.
enable new disks detected at runtimebooleanAutomatically start monitoring newly detected disks without restart. When enabled, Netdata will begin collecting metrics for disks that appear after startup. Default is YES.
exclude disksstringSpace-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 disksbooleanEnable extended I/O operation statistics (discards). Shows TRIM/discard operations for SSDs. Default is AUTO (enabled if discard stats exist).
filename to monitorstringPath to diskstats file to monitor. Default is "/proc/diskstats". Can be overridden for containers or testing.
i/o time for all disksbooleanEnable 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 disksbooleanEnable merged operations monitoring. Shows adjacent I/O requests that were merged for efficiency. Default is AUTO (enabled if available).
name disks by idbooleanUse persistent /dev/disk/by-id names instead of kernel names (sda, sdb). Provides stable names across reboots. Default is NO.
operations for all disksbooleanEnable basic I/O operations monitoring (reads/writes per second). Shows IOPS (Input/Output Operations Per Second). Default is AUTO (always enabled).
path to /dev/diskstringBase path to disk device directory. Default is "/dev/disk/". Used for resolving disk names and attributes.
path to /dev/disk/by-idstringPath to persistent disk ID directory. Default is "/dev/disk/by-id/". Used when "name disks by id" is enabled.
path to /dev/disk/by-labelstringPath to disk label directory. Default is "/dev/disk/by-label/". Used for resolving disk labels.
path to /dev/vx/dskstringPath to Veritas VxVM disk devices. Default is "/dev/vx/dsk/". Used for VxVM disk monitoring.
path to /sys/blockstringPath to sysfs block device directory. Default is "/sys/block/%s". Used for reading disk attributes and statistics.
path to device mapperstringPath to device mapper directory. Default is "/dev/mapper/". Used for LVM and other mapped devices.
path to get block devicestringPath template for block device sysfs entries. Default is "/sys/block/%s". %s is replaced with device name.
path to get block device bcachestringPath template for bcache sysfs entries. Default is "/sys/block/%s/bcache". Used for bcache statistics.
path to get block device infosstringPath template for block device info in sysfs. Default is "/sys/block/%s/device". Used for device model/serial info.
path to get virtual block devicestringPath template for virtual block devices. Default is "/sys/devices/virtual/block/%s". Used for loop, ram, and other virtual devices.
performance metrics for partitionsbooleanEnable performance metrics for disk partitions (sda1, sda2, etc). Can generate many charts on systems with many partitions. Default is NO.
performance metrics for physical disksbooleanEnable performance metrics for physical disks (sda, sdb, etc). This is the primary disk monitoring. Default is AUTO (always enabled).
performance metrics for virtual disksbooleanEnable performance metrics for virtual disks (loop, ram, etc). Includes md-raid, LVM, and other virtual block devices. Default is AUTO.
preferred disk idsstringSpace-separated list of disk name patterns to prefer when multiple names exist. Supports wildcards. Default is "". Example: "wwn- ata-*".
queued operations for all disksbooleanEnable queue depth monitoring (number of operations in progress). Shows disk queue utilization. Default is AUTO (enabled if available).
remove charts of removed disksbooleanAutomatically remove charts when disks disappear. When disabled, charts remain visible with last known values. Default is YES.
utilization percentage for all disksbooleanEnable 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

KeyTypeComments
directory to monitorstringPath 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

KeyTypeComments
filename to monitorstringPath 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 corebooleanWhether 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

KeyTypeComments
enable load averagebooleanWhether 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 processesbooleanWhether to collect active process count metrics showing current vs maximum system processes. Helps monitor process limits and fork bombs. Default is "yes".
filename to monitorstringPath 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

KeyTypeComments
cma memorybooleanWhether 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 memorybooleanWhether to collect committed (allocated) memory chart showing total virtual memory committed by processes. Helps track memory overcommitment. Default is "yes".
direct mapsbooleanWhether 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 monitorstringPath to the meminfo file to monitor. Default is "/proc/meminfo". Can be overridden for containers or testing. Contains kernel memory statistics.
hardware corrupted ECCbooleanWhether 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 memorybooleanWhether 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).
hugepagesbooleanWhether 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 memorybooleanWhether to collect kernel memory usage charts showing slab, kernel stack, page tables, vmalloc, per-CPU, and reclaimable kernel memory. Default is "yes".
memory reclaimingbooleanWhether 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 memorybooleanWhether to collect slab memory breakdown charts showing reclaimable vs unreclaimable kernel slab allocations. Useful for kernel memory leak detection. Default is "yes".
system rambooleanWhether 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 swapbooleanWhether 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 hugepagesbooleanWhether 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 memorybooleanWhether 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

KeyTypeComments
compressed packets for all interfacesbooleanWhether 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 matchingstringSpace-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

KeyTypeComments
ECN packetsbooleanWhether 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 cookiesbooleanWhether 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 queuebooleanWhether to collect SYN queue overflow statistics (TCPReqQFullDrop, TCPReqQFullDoCookies). Monitors when incoming connection requests exceed listen queue capacity. Default is "auto".
TCP accept queuebooleanWhether to collect accept queue statistics (ListenOverflows, ListenDrops). Monitors when applications can't accept connections fast enough, causing drops. Default is "auto".
TCP connection abortsbooleanWhether 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 pressuresbooleanWhether 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 queuebooleanWhether to collect TCP out-of-order packet statistics (TCPOFOQueue, TCPOFODrop, TCPOFOMerge, OfoPruned). Monitors handling of packets received out of sequence. Default is "auto".
TCP reordersbooleanWhether 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".
bandwidthbooleanWhether to collect IP traffic bandwidth statistics (InOctets, OutOctets). Provides total network byte counts in/out for all IP traffic. Default is "auto".
broadcast bandwidthbooleanWhether to collect broadcast traffic bandwidth statistics (InBcastOctets, OutBcastOctets). Monitors bytes sent/received via broadcast which can indicate network chattiness. Default is "auto".
broadcast packetsbooleanWhether to collect broadcast packet count statistics (InBcastPkts, OutBcastPkts). Tracks number of broadcast packets which can impact network performance. Default is "auto".
filename to monitorstringPath to the netstat file to monitor. Default is "/proc/net/netstat". Can be overridden for containers or testing. Contains detailed network protocol statistics.
input errorsbooleanWhether 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 bandwidthbooleanWhether to collect multicast traffic bandwidth statistics (InMcastOctets, OutMcastOctets). Tracks bytes sent/received via multicast for applications like streaming media. Default is "auto".
multicast packetsbooleanWhether 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

KeyTypeComments
filename to monitorstringPath to wireless statistics file to read. Default is "/proc/net/wireless". Used to override the data source for wireless interface monitoring.
status for all interfacesbooleanWhether to monitor internal status reported by wireless interfaces. Shows hardware-specific status codes. Default is "auto".
quality for all interfacesbooleanWhether 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 interfacesbooleanWhether 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 interfacebooleanWhether 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

KeyTypeComments
filename to monitorstringPath 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 bandwidthbooleanWhether 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 connectionsbooleanWhether to monitor IPVS new connection statistics showing connection entries created per second. Tracks load balancer activity and connection establishment rate. Default is "yes".
IPVS packetsbooleanWhether 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

KeyTypeComments
filename to monitorstringPath to NFS statistics file to read. Default is "/proc/net/rpc/nfs". Used to override the data source for NFS client monitoring.
networkbooleanWhether to monitor NFS network layer statistics including UDP/TCP packet counts. Shows network-level activity for NFS operations. Default is "yes".
rpcbooleanWhether 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 proceduresbooleanWhether 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 proceduresbooleanWhether 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 proceduresbooleanWhether 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

KeyTypeComments
enable detail per-typebooleanWhether 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 summarybooleanWhether 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 monitorstringPath 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 matchingstringPattern 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

KeyTypeComments
base path of pressure metricsstringBase 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 pressurebooleanWhether 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 pressurebooleanWhether 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 pressurebooleanWhether 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 pressurebooleanWhether 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 pressurebooleanWhether 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 pressurebooleanWhether 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 pressurebooleanWhether to monitor IRQ "some" pressure metrics. Not available in current kernel versions. Default is "no".
enable irq full pressurebooleanWhether 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

KeyTypeComments
bandwidth countersbooleanEnable monitoring of InfiniBand bandwidth (bytes transmitted/received). Shows data transfer rates for IB ports. Default is YES.
dirname to monitorstringDirectory path containing InfiniBand sysfs entries. Default is "/sys/class/infiniband". Can be overridden for containers or testing.
disable by default interfaces matchingstringPattern matching for InfiniBand interfaces to exclude from monitoring. Supports wildcards. Default excludes no interfaces. Example: "ib0* mlx*".
errors countersbooleanEnable monitoring of InfiniBand error counters (symbol errors, link recovery, etc). Tracks transmission problems. Default is YES.
hardware errors countersbooleanEnable monitoring of InfiniBand hardware error counters (CRC errors, packet drops). Tracks hardware-level issues. Default is YES.
hardware packets countersbooleanEnable monitoring of InfiniBand hardware packet counters. Shows low-level packet statistics. Default is YES.
monitor only active portsbooleanOnly monitor InfiniBand ports that are in active state. Reduces charts for inactive/down ports. Default is YES.
packets countersbooleanEnable monitoring of InfiniBand packet counters (unicast/multicast transmitted/received). Shows packet rates. Default is YES.
refresh ports state everydurationHow 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

KeyTypeComments
update everydurationHow 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

KeyTypeComments
enabledbooleanEnable/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 lengthnumberMaximum 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 lengthnumberMaximum 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

KeyTypeComments
auto vacuumstringSQLite 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 sizenumberSQLite 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 modestringSQLite 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 limitnumberMaximum 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.
synchronousstringSQLite 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 storestringSQLite 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

KeyTypeComments
collector threadsnumberNumber 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)durationHow 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

KeyTypeComments
update everydurationData 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

KeyTypeComments
bind tostringIP 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 secondsdurationTime after which idle client connections are automatically closed to free up resources. Default varies by configuration.
enable gzip compressionbooleanEnable gzip compression for web responses to reduce bandwidth usage. Recommended for slow connections. Default is "yes".
modestringWeb server operation mode. Options: "static-threaded" (multithreaded for better performance), "none" (disable web server entirely). Default is "static-threaded".
respect do not track policybooleanHonor browsers' "Do Not Track" headers by disabling web analytics and tracking features in the dashboard. Default is "no".
web files groupstringGroup ownership for web-accessible files. Used for file permission management. Default varies by installation.
web files ownerstringUser ownership for web-accessible files. Used for file permission management. Default varies by installation.
web server threadsnumberNumber 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

KeyTypeComments
bind addressstringIP address and port for WebRTC connections. Format: "address:port". Default varies by configuration.
enabledbooleanEnable WebRTC functionality for real-time data streaming and remote debugging. Default is "yes" if WebRTC support is compiled in.
ice serversstringComma-separated list of ICE (Interactive Connectivity Establishment) servers for NAT traversal. Format: "stun:server:port,turn:server:port".
proxy serverstringProxy 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

KeyTypeComments
bind tostringIP 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.
enabledbooleanEnable/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".
portnumberTCP port number for the h2o HTTP server to listen on. Default is 19998. Alternative high-performance web server implementation.
sslbooleanWhether to enable SSL/TLS encryption for the h2o HTTP server. When enabled, requires valid SSL certificate and key files. Default is "no".
ssl certificatestringPath to SSL certificate file for h2o HTTPS server. Used when SSL is enabled to provide the public certificate for encrypted connections.
ssl keystringPath 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.

KeyTypeComments
bandwidthbooleanEnable bandwidth (bytes/s) monitoring for this interface. Shows data transfer rates. Default is YES.
carrierbooleanEnable carrier state monitoring. Shows if the physical link is up or down. Default is YES.
compressedbooleanEnable compressed packets monitoring. Shows compression statistics if supported by the interface. Default is YES.
dropsbooleanEnable packet drops monitoring. Shows packets dropped due to buffer overflows or errors. Default is YES.
duplexbooleanEnable duplex mode monitoring. Shows if interface is in full or half duplex mode. Default is YES.
enabledbooleanEnable/disable monitoring for this specific network interface. Default is YES.
errorsbooleanEnable error counters monitoring. Shows transmission and reception errors. Default is YES.
eventsbooleanEnable interface events monitoring. Shows state change events. Default is YES.
fifobooleanEnable FIFO errors monitoring. Shows FIFO buffer overrun/underrun errors. Default is YES.
mtubooleanEnable MTU (Maximum Transmission Unit) monitoring. Shows the interface MTU size. Default is YES.
operstatebooleanEnable operational state monitoring. Shows if interface is up, down, or in other states. Default is YES.
packetsbooleanEnable packet counters monitoring. Shows packets/s transmitted and received. Default is YES.
speedbooleanEnable link speed monitoring. Shows the interface speed in Mbps. Default is YES.
update everydurationOverride data collection frequency for this network interface. Inherits from plugin setting if not specified. Format: number with unit (s/m/h/d).
virtualbooleanIndicates 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.

KeyTypeComments
bytesbooleanWhether 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".
errorsbooleanWhether to monitor InfiniBand error counters including malformed packets, buffer overruns, link errors, and integrity errors. Critical for diagnosing interconnect issues. Default is "auto".
hwerrorsbooleanWhether 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".
hwpacketsbooleanWhether to monitor hardware-specific InfiniBand packet counters for advanced diagnostics. Vendor-specific metrics for detailed troubleshooting. Default is "auto".
packetsbooleanWhether 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

KeyTypeComments
EXPORTING_UPDATE_EVERY_OPTION_NAMEnumberData collection frequency for this exporting instance in seconds. Lower values export more frequently. Default is 10 seconds.
hostnamestringOverride 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

KeyTypeComments
keystringGeneric 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

KeyTypeComments
additional instancesnumberMaximum number of additional database connection instances to create. Enables connection pooling for better performance. Default is 0 (single connection).
addressstringDatabase 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_namestringConfiguration identifier name. Used for referencing this database connection in logs and error messages. Should be unique across all database configurations.
driverstringDatabase driver/connector type. Supported values: "mysql", "postgresql", "sqlite", "mongodb", "redis", "influxdb". Determines connection protocol and query syntax.
pwdstringDatabase password for authentication. Should be stored securely. Consider using environment variables or secure credential storage instead of plain text.
serverstringDatabase server hostname or IP address. Primary connection endpoint when not using the address field. Default is "localhost".
uidstringDatabase username for authentication. The user account that will connect to the database. Must have appropriate permissions for monitoring queries.
windows authenticationbooleanWhether 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).

KeyTypeComments
st->config_namebooleanWhether 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.

KeyTypeComments
command optionsstringAdditional command-line options to pass to the external collector script. Can include parameters, flags, or arguments specific to the collector.
update everydurationOverride 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.

KeyTypeComments
const char *sectionstringThe 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

KeyTypeComments
average completed i/o bandwidthbooleanWhether 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 timebooleanWhether to monitor average time for completed I/O operations. Shows latency per I/O operation, critical for performance analysis. Default is "auto".
average service timebooleanWhether to monitor average service time for I/O requests. Shows time spent actively servicing I/O requests vs time spent waiting. Default is "auto".
backlogbooleanWhether to monitor I/O backlog metrics. Shows number of I/O operations queued/pending, indicating I/O pressure and potential bottlenecks. Default is "auto".
bandwidthbooleanWhether to monitor bandwidth/throughput metrics. Shows data transfer rates in bytes per second for read/write operations. Default is "auto".
bcachebooleanWhether to monitor bcache (block layer cache) statistics. Shows SSD cache performance when used with slower HDDs. Default is "auto".
dropsbooleanWhether to monitor packet drop statistics. Shows packets discarded due to errors, buffer overruns, or rate limiting. Critical for network quality analysis. Default is "auto".
enablebooleanMaster enable/disable switch for this monitoring feature. When set to "no", completely disables data collection for this module. Default is "yes".
enable performance metricsbooleanWhether to collect detailed performance metrics. Enables advanced performance counters with higher overhead but more detailed insights. Default is "auto".
enabledbooleanEnable/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".
errorsbooleanWhether to monitor error counters. Shows error rates for I/O operations, network packets, or other subsystem-specific errors. Default is "auto".
eventsbooleanWhether to monitor event counters. Tracks system events, interrupts, or state changes depending on the subsystem. Default is "auto".
extended operationsbooleanWhether to monitor extended I/O operations like discards/TRIM. Important for SSD performance monitoring and wear analysis. Default is "auto".
i/o timebooleanWhether to monitor cumulative I/O time. Shows total time spent on I/O operations, helping identify I/O-bound processes. Default is "auto".
inodes usagebooleanWhether 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 operationsbooleanWhether to monitor merged I/O operations. Shows how efficiently the kernel combines adjacent I/O requests to improve performance. Default is "auto".
operationsbooleanWhether to monitor I/O operations per second (IOPS). Shows read/write operation rates, fundamental for storage performance analysis. Default is "auto".
packetsbooleanWhether to monitor network packet statistics. Shows packet rates for sent/received traffic, essential for network performance monitoring. Default is "auto".
queued operationsbooleanWhether to monitor I/O queue depth. Shows number of pending I/O operations in device queues, indicating storage saturation. Default is "auto".
space usagebooleanWhether to monitor filesystem space usage. Shows used vs available disk space in bytes and percentage. Essential for capacity planning. Default is "auto".
utilization percentagebooleanWhether 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

KeyTypeComments
check for new cgroups everydurationHow 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 everydurationData collection frequency for cgroup metrics. Default is 1 second. Should match the global update_every for consistent behavior.
use unified cgroupsstringControl which cgroups version to use. Options: "auto" (detect automatically), "yes" (force unified/v2), "no" (force legacy/v1). Default is "auto".
max cgroups to allownumberMaximum number of cgroups to monitor simultaneously. Prevents resource exhaustion on systems with many containers. Default is 1000.
max cgroups depth to monitornumberMaximum depth in the cgroup hierarchy to monitor. Limits monitoring of deeply nested cgroups. Default is 0 (unlimited).
enable by default cgroups matchingstringPattern matching rules (space-separated) to determine which cgroups to monitor. Supports wildcards. Default includes common container patterns.
enable by default cgroups names matchingstringPattern matching on cgroup names after renaming. Allows filtering based on human-readable names. Supports wildcards.
search for cgroups in subpaths matchingstringPattern matching for cgroup filesystem paths to search. Limits where the plugin looks for cgroups. Default is "*" (all paths).
script to get cgroup namesstringPath to external script that provides human-readable names for cgroups. Used to rename cgroups from IDs to meaningful names.
script to get cgroup network interfacesstringPath to external script that determines network interfaces associated with each cgroup. Enables network metrics per container.
run script to rename cgroups matchingstringPattern matching to determine which cgroups should be processed by the renaming script. Default is "*" (all cgroups).
cgroups to match as systemd servicesstringPattern matching to identify cgroups that represent systemd services. Enables special handling for systemd service monitoring.

Section plugin:freebsd

FreeBSD system monitoring plugin configuration

KeyTypeComments
pm->namebooleanWhether 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

KeyTypeComments
allocated memorybooleanWhether to monitor memory allocated by the firewall subsystem. Shows memory usage by firewall rules and state tables. Default is "yes".
counters for static rulesbooleanWhether to monitor counters for static firewall rules. Shows packet/byte counts matched by each static rule. Default is "yes".
number of dynamic rulesbooleanWhether 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

KeyTypeComments
ipv4 ICMP errorsbooleanWhether to monitor ICMP error messages (destination unreachable, time exceeded, parameter problems). Essential for network troubleshooting. Default is "yes".
ipv4 ICMP messagesbooleanWhether to monitor ICMP message types breakdown (echo request/reply, timestamp, address mask, etc.). Shows ping and other ICMP activity. Default is "yes".
ipv4 ICMP packetsbooleanWhether 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

KeyTypeComments
ipv4 errorsbooleanWhether to monitor IPv4 protocol errors (header errors, checksum failures, invalid addresses). Critical for network health monitoring. Default is "yes".
ipv4 fragments assemblybooleanWhether to monitor IPv4 fragment reassembly statistics. Shows fragmentation issues and reassembly failures. Default is "yes".
ipv4 fragments sentbooleanWhether to monitor IPv4 packets fragmented for transmission. High fragmentation can indicate MTU issues. Default is "yes".
ipv4 packetsbooleanWhether 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

KeyTypeComments
ECN packetsbooleanWhether to monitor Explicit Congestion Notification (ECN) capable packets. Shows network congestion awareness. Default is "yes".
TCP SYN cookiesbooleanWhether to monitor TCP SYN cookie usage. Indicates SYN flood attack mitigation activity. Default is "yes".
TCP connection abortsbooleanWhether to monitor TCP connection aborts (resets, timeouts). Shows connection stability issues. Default is "yes".
TCP listen issuesbooleanWhether to monitor TCP listen queue overflows and drops. Critical for server performance tuning. Default is "yes".
TCP out-of-order queuebooleanWhether to monitor TCP out-of-order packet queuing. Indicates network path issues or packet loss. Default is "yes".
ipv4 TCP errorsbooleanWhether to monitor TCP protocol errors (invalid checksums, bad segments). Shows TCP stack health. Default is "yes".
ipv4 TCP handshake issuesbooleanWhether to monitor TCP handshake failures and retransmissions. Critical for connection establishment monitoring. Default is "yes".
ipv4 TCP packetsbooleanWhether 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

KeyTypeComments
ipv4 UDP errorsbooleanWhether to monitor UDP protocol errors (invalid checksums, no buffer space, socket buffer errors). Helps identify UDP-related issues. Default is "yes".
ipv4 UDP packetsbooleanWhether 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

KeyTypeComments
icmpbooleanWhether to monitor overall ICMPv6 message statistics. Master control for all ICMPv6 monitoring. Default is "yes".
icmp echosbooleanWhether to monitor ICMPv6 echo requests and replies (ping6). Used for IPv6 connectivity testing. Default is "yes".
icmp errorsbooleanWhether to monitor ICMPv6 error messages (destination unreachable, packet too big, time exceeded). Critical for IPv6 troubleshooting. Default is "yes".
icmp neighborbooleanWhether to monitor ICMPv6 neighbor discovery messages (solicitations, advertisements). Essential for IPv6 address resolution. Default is "yes".
icmp redirectsbooleanWhether to monitor ICMPv6 redirect messages. Important for IPv6 routing optimization detection. Default is "yes".
icmp routerbooleanWhether to monitor ICMPv6 router discovery messages (solicitations, advertisements). Critical for IPv6 autoconfiguration. Default is "yes".
icmp typesbooleanWhether 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

KeyTypeComments
ipv6 errorsbooleanWhether to monitor IPv6 protocol errors (header errors, no routes, address errors). Essential for IPv6 deployment troubleshooting. Default is "yes".
ipv6 fragments assemblybooleanWhether to monitor IPv6 fragment reassembly statistics. Shows fragmentation-related performance issues. Default is "yes".
ipv6 fragments sentbooleanWhether to monitor IPv6 fragments sent. Helps identify MTU and path issues. Default is "yes".
ipv6 packetsbooleanWhether 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

KeyTypeComments
netisrbooleanWhether to monitor kernel network dispatch statistics (packets queued, handled, dropped). Critical for FreeBSD network performance tuning. Default is "yes".
netisr per corebooleanWhether 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

KeyTypeComments
enable total processesbooleanWhether to monitor total process count (running, sleeping, stopped, zombie). Essential system health metric. Default is "yes".
processes runningbooleanWhether to monitor count of runnable processes. Key indicator of system load and CPU contention. Default is "yes".
real memorybooleanWhether 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

KeyTypeComments
loop timedurationTime 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

KeyTypeComments
pm->namebooleanWhether 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

KeyTypeComments
disable by default network interfaces matchingstringSpace-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/obooleanWhether to monitor disk I/O statistics (reads, writes, operations, bandwidth). Essential for storage performance monitoring. Default is "yes".
exclude mountpoints by pathstringSpace-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

KeyTypeComments
cpu utilizationbooleanWhether to monitor CPU usage statistics (user, system, idle, iowait, etc.). Core system performance metric. Default is "yes".
memory page faultsbooleanWhether to monitor memory page fault statistics (minor and major faults). Indicates memory pressure and disk I/O from swapping. Default is "yes".
swap i/obooleanWhether to monitor swap usage and I/O operations. Critical for detecting memory exhaustion. Default is "yes".
system rambooleanWhether 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

KeyTypeComments
ECN packetsbooleanWhether to monitor Explicit Congestion Notification (ECN) packet statistics. Used for advanced TCP congestion control. Default is "yes".
TCP SYN cookiesbooleanWhether 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 abortsbooleanWhether to monitor TCP connection abort statistics (connection failures, timeouts, resets). Useful for diagnosing network connectivity issues. Default is "yes".
TCP out-of-order queuebooleanWhether to monitor TCP out-of-order packet queue statistics. High values indicate network packet reordering or loss. Default is "yes".
bandwidthbooleanWhether to monitor network interface bandwidth utilization (bytes sent/received). Core network performance metric. Default is "yes".
enable load averagebooleanWhether to monitor system load average metrics (1min, 5min, 15min averages). Indicates overall system utilization. Default is "yes".
icmpbooleanWhether to monitor basic ICMP (Internet Control Message Protocol) statistics. Includes ICMP message counts and basic error reporting. Default is "yes".
icmp echosbooleanWhether to monitor ICMP echo request/reply statistics (ping traffic). Useful for network connectivity diagnostics. Default is "yes".
icmp errorsbooleanWhether to monitor ICMP error message statistics (destination unreachable, time exceeded, etc.). Helps identify network routing issues. Default is "yes".
icmp neighborbooleanWhether to monitor ICMPv6 neighbor discovery messages (IPv6 equivalent of ARP). Critical for IPv6 network operation. Default is "yes".
icmp redirectsbooleanWhether to monitor ICMP redirect messages. These indicate suboptimal routing and potential security concerns. Default is "yes".
icmp routerbooleanWhether to monitor ICMPv6 router advertisement/solicitation messages. Essential for IPv6 router discovery. Default is "yes".
icmp typesbooleanWhether to monitor detailed ICMP message type breakdown. Provides granular analysis of ICMP traffic patterns. Default is "yes".
inodes usage for all disksbooleanWhether to monitor inode usage statistics for all mounted filesystems. Inodes can be exhausted even when disk space is available. Default is "yes".
ipv4 ICMP messagesbooleanWhether to monitor IPv4 ICMP message statistics (control messages like destination unreachable, time exceeded). Essential for network troubleshooting. Default is "yes".
ipv4 ICMP packetsbooleanWhether to monitor IPv4 ICMP packet counts (total ICMP traffic volume). Useful for identifying ICMP-based network issues or attacks. Default is "yes".
ipv4 TCP errorsbooleanWhether to monitor IPv4 TCP error statistics (bad segments, failed connections, retransmissions). Critical for TCP performance analysis. Default is "yes".
ipv4 TCP handshake issuesbooleanWhether to monitor IPv4 TCP handshake problems (SYN retransmissions, failed connections). Indicates network connectivity or server load issues. Default is "yes".
ipv4 TCP packetsbooleanWhether to monitor IPv4 TCP packet statistics (segments sent/received). Core TCP traffic monitoring metric. Default is "yes".
ipv4 UDP errorsbooleanWhether to monitor IPv4 UDP error statistics (invalid checksums, no buffer space, socket buffer errors). Helps identify UDP-related issues. Default is "yes".
ipv4 UDP packetsbooleanWhether to monitor IPv4 UDP datagram statistics (sent, received). Core UDP traffic monitoring. Default is "yes".
ipv4 errorsbooleanWhether to monitor IPv4 protocol error statistics (header errors, address errors, unknown protocols). Critical for IP layer troubleshooting. Default is "yes".
ipv4 fragments assemblybooleanWhether to monitor IPv4 packet fragmentation reassembly statistics (successful/failed reassembly). Indicates MTU issues or fragmentation attacks. Default is "yes".
ipv4 fragments sentbooleanWhether to monitor IPv4 packet fragmentation transmission statistics (fragments created/sent). High values may indicate MTU configuration problems. Default is "yes".
ipv4 packetsbooleanWhether to monitor IPv4 packet statistics (total packets sent/received/forwarded). Core IP traffic monitoring metric. Default is "yes".
ipv6 errorsbooleanWhether to monitor IPv6 protocol error statistics (header errors, address errors, unknown protocols). Essential for IPv6 network troubleshooting. Default is "yes".
ipv6 fragments assemblybooleanWhether to monitor IPv6 packet fragmentation reassembly statistics. IPv6 fragmentation is less common but still important for large packet analysis. Default is "yes".
ipv6 fragments sentbooleanWhether to monitor IPv6 packet fragmentation transmission statistics. High fragmentation in IPv6 may indicate application or MTU issues. Default is "yes".
ipv6 packetsbooleanWhether to monitor IPv6 packet statistics (total IPv6 traffic). Critical for IPv6-enabled network monitoring. Default is "yes".
space usage for all disksbooleanWhether to monitor disk space usage statistics for all mounted filesystems (used, free, available space). Essential for preventing disk full conditions. Default is "yes".
system swapbooleanWhether to monitor system swap usage statistics (swap used, free, cached). Critical for detecting memory pressure and performance issues. Default is "yes".
system uptimebooleanWhether 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

KeyTypeComments
/proc/net/devbooleanWhether to monitor network interface statistics from /proc/net/dev. Provides per-interface traffic, errors, and drops. Default is "yes".
/proc/pagetypeinfobooleanWhether to monitor memory page type information from /proc/pagetypeinfo. Shows memory fragmentation by page order and type. Default is "yes".
pm->namebooleanWhether 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

KeyTypeComments
directory to monitorstringPath to the directory to monitor for statistics or files. Module-specific, typically used for sysfs or procfs directories. Default varies by module.
filename to monitorstringPath 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

KeyTypeComments
disk statsbooleanWhether to monitor per-disk statistics within RAID arrays (reads, writes, errors). Default is "yes".
faulty devicesbooleanWhether to monitor and alert on faulty devices in RAID arrays. Critical for data integrity. Default is "yes".
filename to monitorstringPath to the mdstat file to monitor (typically /proc/mdstat). Contains RAID array status and health. Default is "/proc/mdstat".
make charts obsoletebooleanWhether to automatically hide charts for removed or inactive RAID arrays. Keeps dashboards clean. Default is "yes".
mismatch countbooleanWhether to monitor RAID array mismatch counts. Indicates data inconsistencies needing attention. Default is "yes".
mismatch_cnt filename to monitorstringPath 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 availabilitybooleanWhether to monitor availability of non-redundant arrays (RAID0, linear). Important as these have no fault tolerance. Default is "yes".
operation statusbooleanWhether 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

KeyTypeComments
I/ObooleanWhether to monitor NFS I/O statistics (read/write operations and throughput). Essential for NFS performance analysis. Default is "yes".
NFS v2 proceduresbooleanWhether to monitor NFSv2 procedure calls (getattr, read, write, etc.). Legacy protocol monitoring. Default is "yes".
NFS v3 proceduresbooleanWhether to monitor NFSv3 procedure calls. Common NFS protocol version monitoring. Default is "yes".
NFS v4 operationsbooleanWhether to monitor NFSv4 operations (compound operations, delegations, etc.). Modern NFS protocol monitoring. Default is "yes".
NFS v4 proceduresbooleanWhether to monitor NFSv4 procedure calls. Detailed NFSv4 activity tracking. Default is "yes".
file handlesbooleanWhether to monitor NFS file handle statistics (stale handles, lookups). Important for NFS reliability. Default is "yes".
filename to monitorstringPath to the NFS statistics file to monitor (typically /proc/net/rpc/nfsd). Default is "/proc/net/rpc/nfsd".
networkbooleanWhether to monitor NFS network statistics (TCP/UDP connections, packet counts). Default is "yes".
read cachebooleanWhether to monitor NFS read cache statistics (hits, misses). Important for cache efficiency. Default is "yes".
rpcbooleanWhether to monitor RPC (Remote Procedure Call) statistics. Core NFS protocol metrics. Default is "yes".
threadsbooleanWhether 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

KeyTypeComments
association transitionsbooleanWhether to monitor SCTP association state transitions. Shows connection lifecycle events. Default is "yes".
chunk typesbooleanWhether to monitor SCTP chunk types distribution (DATA, INIT, HEARTBEAT, etc.). Protocol behavior analysis. Default is "yes".
established associationsbooleanWhether to monitor count of established SCTP associations. Active connection tracking. Default is "yes".
filename to monitorstringPath to the SCTP statistics file to monitor (typically /proc/net/sctp/snmp). Default is "/proc/net/sctp/snmp".
fragmentationbooleanWhether to monitor SCTP fragmentation statistics. Important for message size optimization. Default is "yes".
packet errorsbooleanWhether to monitor SCTP packet errors (checksums, invalid chunks). Protocol health indicator. Default is "yes".
packetsbooleanWhether 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

KeyTypeComments
filename to monitorstringPath to the socket statistics file to monitor (typically /proc/net/sockstat). Default is "/proc/net/sockstat".
ipv4 ICMP messagesbooleanWhether to monitor ICMP message types (echo, destination unreachable, etc.). Network diagnostics tool. Default is "yes".
ipv4 ICMP packetsbooleanWhether to monitor ICMP packet statistics (sent, received, errors). Ping and traceroute monitoring. Default is "yes".
ipv4 TCP connectionsbooleanWhether to monitor TCP connection states (established, time-wait, close-wait, etc.). Connection health tracking. Default is "yes".
ipv4 TCP errorsbooleanWhether to monitor TCP errors (resets, invalid SYN, failed connections). Network problem detection. Default is "yes".
ipv4 TCP handshake issuesbooleanWhether to monitor TCP handshake problems (SYN timeouts, failed attempts). Connection establishment issues. Default is "yes".
ipv4 TCP opensbooleanWhether to monitor TCP connection opens (active, passive). Connection rate monitoring. Default is "yes".
ipv4 TCP packetsbooleanWhether to monitor IPv4 TCP packet statistics (segments sent/received). Core TCP traffic monitoring metric. Default is "yes".
ipv4 UDP errorsbooleanWhether to monitor IPv4 UDP error statistics (invalid checksums, no buffer space, socket buffer errors). Helps identify UDP-related issues. Default is "yes".
ipv4 UDP packetsbooleanWhether to monitor IPv4 UDP datagram statistics (sent, received). Core UDP traffic monitoring. Default is "yes".
ipv4 UDPLite packetsbooleanWhether to monitor IPv4 UDP-Lite packet statistics. UDP-Lite allows partial checksum coverage for real-time applications. Default is "yes".
ipv4 errorsbooleanWhether to monitor IPv4 protocol error statistics (header errors, address errors, unknown protocols). Critical for IP layer troubleshooting. Default is "yes".
ipv4 fragments assemblybooleanWhether to monitor IPv4 packet fragmentation reassembly statistics (successful/failed reassembly). Indicates MTU issues or fragmentation attacks. Default is "yes".
ipv4 fragments sentbooleanWhether to monitor IPv4 packet fragmentation transmission statistics (fragments created/sent). High values may indicate MTU configuration problems. Default is "yes".
ipv4 packetsbooleanWhether 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

KeyTypeComments
bandwidthbooleanWhether to monitor IPv6 bandwidth usage (bytes/sec received and sent). Core network utilization metric. Default is "yes".
broadcast bandwidthbooleanWhether to monitor IPv6 broadcast bandwidth separately. Important for broadcast storm detection. Default is "yes".
ectbooleanWhether to monitor ECN (Explicit Congestion Notification) capable transport statistics. Advanced congestion control metric. Default is "yes".
filename to monitorstringPath to the IPv6 statistics file to monitor (typically /proc/net/snmp6). Default is "/proc/net/snmp6".
icmpbooleanWhether to monitor overall ICMPv6 statistics. Master control for all ICMPv6 monitoring. Default is "yes".
icmp echosbooleanWhether to monitor ICMPv6 echo requests/replies (ping6). Connectivity testing metric. Default is "yes".
icmp errorsbooleanWhether to monitor ICMPv6 error messages. Essential for IPv6 troubleshooting. Default is "yes".
icmp group membershipbooleanWhether to monitor ICMPv6 multicast group membership messages. Important for multicast routing. Default is "yes".
icmp mldv2booleanWhether to monitor MLDv2 (Multicast Listener Discovery v2) messages. Advanced multicast protocol monitoring. Default is "yes".
icmp neighborbooleanWhether to monitor ICMPv6 neighbor discovery messages. Critical for IPv6 address resolution. Default is "yes".
icmp redirectsbooleanWhether to monitor ICMPv6 redirect messages. Routing optimization indicator. Default is "yes".
icmp routerbooleanWhether to monitor ICMPv6 router discovery messages. Essential for IPv6 autoconfiguration. Default is "yes".
icmp typesbooleanWhether to monitor all ICMPv6 message types by code. Detailed ICMPv6 analysis. Default is "yes".
ipv6 UDP errorsbooleanWhether to monitor UDPv6 protocol errors. UDP reliability indicator. Default is "yes".
ipv6 UDP packetsbooleanWhether to monitor UDPv6 packet statistics. Core UDP traffic metric. Default is "yes".
ipv6 UDPlite errorsbooleanWhether to monitor UDP-Lite over IPv6 errors. Error-tolerant protocol monitoring. Default is "yes".
ipv6 UDPlite packetsbooleanWhether to monitor UDP-Lite over IPv6 packet statistics. Multimedia protocol monitoring. Default is "yes".
ipv6 errorsbooleanWhether to monitor IPv6 protocol errors. Essential network health metric. Default is "yes".
ipv6 fragments assemblybooleanWhether to monitor IPv6 fragment reassembly. Fragmentation performance metric. Default is "yes".
ipv6 fragments sentbooleanWhether to monitor IPv6 fragments sent. MTU and path issue indicator. Default is "yes".
ipv6 packetsbooleanWhether to monitor IPv6 packet statistics. Core IPv6 traffic metric. Default is "yes".
multicast bandwidthbooleanWhether to monitor multicast bandwidth usage separately. Important for multicast-heavy environments. Default is "yes".
multicast packetsbooleanWhether to monitor multicast packet statistics. Multicast traffic analysis. Default is "yes".

Section plugin:proc:/proc/net/sockstat

Network socket statistics monitoring configuration

KeyTypeComments
filename to monitorstringPath to sockstat file to monitor. Default is "/proc/net/sockstat". Can be overridden for containers or testing.
ipv4 FRAG memorybooleanEnable monitoring of IPv4 fragment reassembly memory usage. Shows memory used for packet fragmentation. Default is AUTO.
ipv4 FRAG socketsbooleanEnable monitoring of IPv4 fragment reassembly pseudo-sockets. Shows count of fragments being reassembled. Default is AUTO.
ipv4 RAW socketsbooleanEnable monitoring of IPv4 raw sockets count. Used by ping, traceroute and other low-level network tools. Default is AUTO.
ipv4 TCP memorybooleanEnable monitoring of TCP memory usage. Shows memory allocated for TCP connections and buffers. Default is AUTO.
ipv4 TCP socketsbooleanEnable monitoring of TCP socket counts by state (established, listen, etc). Essential for connection tracking. Default is AUTO.
ipv4 UDP memorybooleanEnable monitoring of UDP memory usage. Shows memory allocated for UDP sockets and buffers. Default is AUTO.
ipv4 UDP socketsbooleanEnable monitoring of UDP socket counts. Shows number of open UDP sockets. Default is AUTO.
ipv4 UDPLITE socketsbooleanEnable monitoring of UDP-Lite socket counts. UDP-Lite is used for error-tolerant applications. Default is AUTO.
ipv4 socketsbooleanEnable monitoring of total IPv4 sockets count. Shows overall socket usage across all protocols. Default is AUTO.
update constants everydurationHow 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

KeyTypeComments
filename to monitorstringPath to the IPv6 socket statistics file to monitor (typically /proc/net/sockstat6). Default is "/proc/net/sockstat6".
ipv6 FRAG socketsbooleanWhether to monitor IPv6 fragment reassembly pseudo-sockets. Shows fragments being processed. Default is "yes".
ipv6 RAW socketsbooleanWhether to monitor IPv6 raw socket counts. Used by ICMPv6 tools like ping6. Default is "yes".
ipv6 TCP socketsbooleanWhether to monitor TCPv6 socket counts by state. Essential IPv6 connection tracking. Default is "yes".
ipv6 UDP socketsbooleanWhether to monitor UDPv6 socket counts. Shows open UDP endpoints. Default is "yes".
ipv6 UDPLITE socketsbooleanWhether 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

KeyTypeComments
filename to monitorstringPath to the softnet statistics file to monitor (typically /proc/net/softnet_stat). Default is "/proc/net/softnet_stat".
softnet_stat per corebooleanWhether 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

KeyTypeComments
filename to monitorstringPath to the netfilter conntrack statistics file to monitor (typically /proc/net/stat/nf_conntrack). Default is "/proc/net/stat/nf_conntrack".
netfilter connection changesbooleanWhether to monitor connection state changes (new to established, etc.). Shows connection lifecycle. Default is "yes".
netfilter connection expectationsbooleanWhether to monitor connection expectations (for protocols like FTP that open additional connections). Default is "yes".
netfilter connection searchesbooleanWhether to monitor connection tracking table searches. Performance metric for conntrack efficiency. Default is "yes".
netfilter connectionsbooleanWhether to monitor total connection count and table usage. Critical for capacity planning. Default is "yes".
netfilter errorsbooleanWhether to monitor connection tracking errors (table full, invalid packets). Important for firewall health. Default is "yes".
netfilter new connectionsbooleanWhether 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

KeyTypeComments
SYNPROXY SYN receivedbooleanWhether to monitor SYN packets received by SYNPROXY. Shows incoming connection attempts. Default is "yes".
SYNPROXY connections reopenedbooleanWhether to monitor connections reopened after SYNPROXY validation. Shows legitimate connections. Default is "yes".
SYNPROXY cookiesbooleanWhether to monitor SYN cookie usage by SYNPROXY. Indicates DDoS mitigation activity. Default is "yes".
filename to monitorstringPath 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

KeyTypeComments
filename to monitorstringPath to the interrupts file to monitor (typically /proc/interrupts). Default is "/proc/interrupts".
interrupts per corebooleanWhether 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

KeyTypeComments
context switchesbooleanWhether to monitor CPU context switches. Shows process scheduling activity. Default is "yes".
core_throttle_countbooleanWhether to monitor CPU core thermal throttling events. Critical for performance issues. Default is "yes".
core_throttle_count filename to monitorstringPath pattern to core throttle count files (e.g., /sys/devices/system/cpu/cpu*/thermal_throttle/core_throttle_count). Default varies by system.
cpu frequencybooleanWhether to monitor CPU frequency scaling. Shows power management and performance states. Default is "yes".
cpu idle statesbooleanWhether to monitor CPU idle state (C-state) usage. Power efficiency metric. Default is "yes".
cpu interruptsbooleanWhether to monitor CPU interrupt counts. Shows interrupt handling load. Default is "yes".
cpu utilizationbooleanWhether to monitor overall CPU usage (user, system, idle, etc.). Core performance metric. Default is "yes".
cpuidle name filename to monitorstringPath 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 monitorstringPath pattern to CPU idle state time files. Shows C-state residence times. Default is "/sys/devices/system/cpu/cpu*/cpuidle/state*/time".
filename to monitorstringPath to the main CPU statistics file (typically /proc/stat). Default is "/proc/stat".
keep cpuidle files openbooleanWhether to keep CPU idle files open for better performance. Trade-off between file handles and speed. Default is "yes".
keep per core files openbooleanWhether to keep per-core CPU files open. Improves performance on systems with many cores. Default is "yes".
package_throttle_countbooleanWhether to monitor CPU package-level thermal throttling. Shows chip-wide thermal issues. Default is "yes".
package_throttle_count filename to monitorstringPath pattern to package throttle count files. Default varies by system architecture.
per cpu core utilizationbooleanWhether to monitor CPU usage per individual core. Essential for multi-core performance analysis. Default is "yes".
processes runningbooleanWhether to monitor number of runnable processes. System load indicator. Default is "yes".
processes startedbooleanWhether to monitor process creation rate (forks). System activity metric. Default is "yes".
scaling_cur_freq filename to monitorstringPath pattern to current CPU frequency files. Default is "/sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq".
schedstat filename to monitorstringPath to scheduler statistics file for advanced scheduling metrics. Default is "/proc/schedstat".
time_in_state filename to monitorstringPath 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

KeyTypeComments
filename to monitorstringPath 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

KeyTypeComments
filename to monitorstringPath 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

KeyTypeComments
filename to monitorstringPath 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

KeyTypeComments
filename to monitorstringPath to the statistics file to monitor. Module-specific, often used for metrics that change infrequently. Default varies by module.
read every secondsnumberHow 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

KeyTypeComments
filename to monitorstringPath 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

KeyTypeComments
disk i/obooleanWhether to monitor disk I/O related to memory operations (swapping, paging). Shows memory pressure impact on storage. Default is "yes".
filename to monitorstringPath to memory statistics file (typically /proc/vmstat or similar). Default is "/proc/vmstat".
kernel same memorybooleanWhether to monitor kernel same-page merging (KSM) statistics. Shows memory deduplication efficiency. Default is "yes".
memory ballooningbooleanWhether to monitor memory ballooning in virtualized environments. Important for VM memory management. Default is "yes".
memory page faultsbooleanWhether to monitor page fault statistics (minor/major). Essential memory performance metric. Default is "yes".
out of memory killsbooleanWhether to monitor out-of-memory (OOM) killer activity. Critical for system stability monitoring. Default is "yes".
swap i/obooleanWhether to monitor swap in/out operations. Shows memory pressure and performance impact. Default is "yes".
system-wide numa metric summarybooleanWhether to monitor NUMA (Non-Uniform Memory Access) statistics. Important for NUMA-aware systems. Default is "yes".
transparent huge pagesbooleanWhether to monitor transparent huge pages (THP) statistics. Shows large page usage and efficiency. Default is "yes".
zswap i/obooleanWhether 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

KeyTypeComments
enable pci slotsbooleanWhether to monitor individual PCIe slot statistics (bandwidth, errors). Important for PCIe device performance. Default is "yes".
enable root portsbooleanWhether 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

KeyTypeComments
battery capacitybooleanWhether to monitor battery capacity percentage. Shows battery health and charge level. Default is "yes".
battery chargebooleanWhether to monitor battery charge in Ah (Ampere-hours). Shows actual charge amount. Default is "yes".
battery energybooleanWhether to monitor battery energy in Wh (Watt-hours). Shows energy storage capacity. Default is "yes".
battery powerbooleanWhether to monitor battery power draw/charge rate in Watts. Shows charging/discharging rate. Default is "yes".
directory to monitorstringPath to power supply sysfs directory (typically /sys/class/power_supply). Default is "/sys/class/power_supply".
keep files openbooleanWhether to keep power supply files open for better performance. Reduces syscall overhead. Default is "yes".
power supply voltagebooleanWhether 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

KeyTypeComments
directory to monitorstringPath 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

KeyTypeComments
directory to monitorstringPath 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

KeyTypeComments
directory to monitorstringPath 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 metricsbooleanWhether 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

KeyTypeComments
check for btrfs changes everydurationHow 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 statsbooleanEnable monitoring of Btrfs commit statistics (commit duration, max commit duration). Shows filesystem write performance. Default is YES.
data allocationbooleanEnable monitoring of Btrfs data space allocation. Shows how much space is allocated/used for file data. Default is AUTO.
error statsbooleanEnable monitoring of Btrfs error statistics (I/O errors, checksum failures, corruption). Critical for filesystem health. Default is AUTO.
metadata allocationbooleanEnable monitoring of Btrfs metadata space allocation. Shows space used for filesystem structures. Default is AUTO.
path to monitorstringBase path to Btrfs sysfs entries. Default is "/sys/fs/btrfs". Can be overridden for containers or testing.
physical disks allocationbooleanEnable monitoring of physical device allocation in Btrfs. Shows how data is distributed across devices. Default is AUTO.
system allocationbooleanEnable 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

KeyTypeComments
/sys/kernel/mm/ksm/pages_sharedstringPath to KSM pages_shared file. Shows number of shared pages. Default is "/sys/kernel/mm/ksm/pages_shared".
/sys/kernel/mm/ksm/pages_sharingstringPath 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_scanstringPath 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_unsharedstringPath 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_volatilestringPath 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

KeyTypeComments
max dimensions in memory allowednumberMaximum number of IPC objects to track in memory. Prevents excessive memory usage on systems with many IPC objects. Default is 1024.
message queuesbooleanWhether to monitor System V message queue statistics. Shows IPC message queue usage. Default is "yes".
msg filename to monitorstringPath to message queue statistics file. Default is "/proc/sysvipc/msg".
semaphore totalsbooleanWhether to monitor System V semaphore statistics. Shows IPC semaphore usage. Default is "yes".
shared memory totalsbooleanWhether to monitor System V shared memory statistics. Shows IPC shared memory segments. Default is "yes".
shm filename to monitorstringPath to shared memory statistics file. Default is "/proc/sysvipc/shm".

Section plugin:tc

Linux Traffic Control (tc) QoS monitoring plugin configuration

KeyTypeComments
cleanup unused classes everynumberInterval 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 interfacesbooleanWhether 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 interfacesbooleanWhether to monitor all TC classes and queuing disciplines for all interfaces. Provides comprehensive QoS monitoring. Default is "yes".
enable tokens charts for all interfacesbooleanWhether 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 valuesstringPath to script for retrieving TC statistics. Allows custom TC data collection methods. Default is system TC command.
var_namebooleanWhether to enable TC variable name processing. Used for dynamic TC configuration parsing. Default is "yes".

Section plugin:windows

Windows system monitoring plugin configuration

KeyTypeComments
pm->namebooleanWhether 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

KeyTypeComments
CAfilestringPath to SSL certificate authority file for verifying parent node certificates. Used when streaming to parent with SSL/TLS enabled.
CApathstringPath to directory containing SSL certificate authority files for verifying parent certificates. Alternative to CAfile for systems with multiple CA certificates.
api keystringAuthentication key for streaming to parent node. Must match a configured API key on the parent. Required for establishing streaming connections.
brotli compression levelnumberBrotli compression level (0-11). Higher values provide better compression but use more CPU. Default is 3. 0=fastest, 11=best compression.
buffer sizesizeMaximum size of the streaming buffer in bytes. Controls memory usage for outgoing data. Accepts units like MB, GB. Default is 10MB.
buffer size bytesnumberLegacy option for buffer size in bytes. Use 'buffer size' instead for better readability with units.
default portnumberDefault port for connecting to parent node if not specified in destination. Default is 19999.
destinationstringParent node destination in format 'host:port' or 'host'. Multiple destinations separated by spaces for failover. First available parent is used.
enable compressionbooleanEnable compression for streaming data. Reduces bandwidth but increases CPU usage. Default is yes. Negotiates best algorithm with parent.
enabledbooleanEnable streaming to parent node. Set to 'yes' to send data to configured destination. Default is no.
gzip compression levelnumberGzip compression level (1-9). Higher values provide better compression but use more CPU. Default is 3. 1=fastest, 9=best compression.
initial clock resync iterationsnumberNumber of iterations to sync clocks between parent and child before streaming starts. Helps ensure accurate timestamps. Default is 60.
lz4 compression accelerationnumberLZ4 compression acceleration factor (1-9). Higher values mean faster compression but lower ratio. Default is 1. 9=fastest, 1=best compression.
parent using h2obooleanSet to 'yes' if parent is using H2O web server. Adjusts protocol handling for compatibility. Default is no.
reconnect delaydurationDelay in seconds before attempting to reconnect to the parent node after a connection failure. Default is 15 seconds. Minimum is 5 seconds.
send charts matchingstringPattern for selecting which charts to stream. Uses simple patterns with wildcards. Default is '' (all charts). Example: 'system. disk.*'
ssl skip certificate verificationbooleanSkip SSL certificate verification when connecting to parent. WARNING: Insecure, use only for testing. Default is no.
timeoutdurationConnection timeout in seconds for streaming operations. Applies to connection establishment and data transmission. Default is 300 seconds.
zstd compression levelnumberZstandard 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

KeyTypeComments
allow fromstringIP 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 orderstringPreferred compression algorithm order for negotiation. Space-separated list. Default is 'zstd lz4 brotli gzip'. First mutually supported algorithm is used.
dbstringDatabase engine to use for metrics storage. Options: 'dbengine', 'ram', 'alloc', 'none'. Default inherits from global setting. 'dbengine' is recommended.
enable compressionbooleanEnable compression for connections using this API key. Reduces bandwidth usage. Default is yes. Negotiates with child node capabilities.
enable replicationbooleanEnable database replication for child nodes using this API key. Allows child to request historical data. Default is yes.
enabledbooleanEnable this API key for accepting streaming connections. Set to 'no' to temporarily disable without removing configuration. Default is yes.
health enabledbooleanEnable 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 retentiondurationHow 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 connectdurationTime in seconds to postpone alerts after a child connects. Prevents false alerts during initial sync. Default is 60 seconds. 0 disables postponement.
proxy api keystringAPI key to use when this receiver acts as proxy, forwarding data to another parent. Must match key on upstream parent. Empty disables proxying.
proxy destinationstringDestination to forward received metrics when acting as proxy. Format: 'host:port'. Empty disables proxying. Enables multi-level streaming architectures.
proxy enabledbooleanEnable proxy mode for nodes using this API key. When enabled, received data is forwarded to proxy destination. Default is no.
proxy send charts matchingstringPattern for selecting which charts to forward when proxying. Uses simple patterns. Default is '' (all). Example: 'system. apps.*'
replication perioddurationMaximum time window of historical data to replicate. Default is 86400 (1 day). Larger values increase memory usage and sync time.
replication stepdurationTime granularity for replication data transfer. Default is 3600 (1 hour). Smaller values mean more frequent but smaller transfers.
retentionnumberData retention period in seconds for nodes using this API key. Overrides global retention. Default is 3600 (1 hour). Use with care on parents.
typestringType 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

KeyTypeComments
compression algorithms orderstringPreferred order of compression algorithms for streaming data (e.g., "zstd,lz4,gzip"). Client will negotiate best supported algorithm. Default is "zstd,lz4,gzip".
dbstringDatabase engine type for storing streamed data ("dbengine", "memory", "none"). Affects data persistence and memory usage. Default is "dbengine".
enable compressionbooleanWhether to enable data compression for streaming. Reduces bandwidth usage but increases CPU overhead. Default is "yes".
enable replicationbooleanWhether to enable historical data replication from child nodes. Allows parents to backfill missing data. Default is "yes".
health enabledbooleanWhether to enable health monitoring and alerting for this streamed data source. Controls alert processing for child nodes. Default is "yes".
health log retentiondurationHow 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 connectdurationDelay 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 keystringAPI key for authenticating with the proxy destination. Required when proxy is enabled for authentication. Leave empty for no authentication.
proxy destinationstringTarget proxy server URL for forwarding streaming data (e.g., "https://proxy.example.com:19999"). Used for data forwarding chains.
proxy enabledbooleanWhether to enable proxy forwarding for this data stream. Allows creating data forwarding hierarchies. Default is "no".
proxy send charts matchingstringPattern matching charts to forward via proxy (simple patterns supported). Use "" for all charts or specific patterns like "system.". Default is "*".
replication perioddurationMaximum 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 stepdurationTime 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).
retentionnumberData retention period in seconds for this specific machine. Overrides API key and global retention settings. Default inherits from API key configuration.
update everydurationOverride 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

KeyTypeComments
claimed_idstringUnique identifier assigned when node is claimed to Netdata Cloud. Auto-generated during claim process. Do not modify manually.
hostnamestringHostname override for cloud identification. If not set, uses system hostname. Helps identify node in cloud interface.
insecurebooleanSkip SSL certificate verification for cloud connections. WARNING: Only use for testing. Default is no.
machine_guidstringUnique machine identifier for cloud registration. Auto-generated if not set. Must be unique across all nodes.
proxystringHTTP proxy URL for cloud connectivity. Format: 'http://proxy:port' or 'socks5://proxy:port'. Empty for direct connection.
roomsstringComma-separated list of cloud room IDs to join. Rooms organize nodes into groups. Can be updated after claiming.
tokenstringAuthentication token for Netdata Cloud connection. Obtained during claim process. Keep secret and do not share.
urlstringNetdata 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

KeyTypeComments
enabledbooleanEnable/disable all exporting connectors globally. Individual connectors can override this. Default is no.
namebooleanDEPRECATED: 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

KeyTypeComments
insecurebooleanSkip SSL certificate verification during claim process. WARNING: Only use for testing. Default is no.
proxystringHTTP proxy URL for claim process. Format: 'http://proxy:port' or 'socks5://proxy:port'. Empty for direct connection.
roomsstringComma-separated list of cloud room IDs to join during claim. Rooms organize nodes into groups. Can be changed later.
tokenstringOne-time claim token from Netdata Cloud. Obtained from cloud interface when adding a new node. Expires after use.
urlstringNetdata 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

KeyTypeComments
EBPF_CFG_APPLICATIONbooleanEnable per-application statistics collection. Groups metrics by application name. CPU intensive but provides detailed insights. Default is yes.
EBPF_CFG_CGROUPbooleanEnable cgroup (container) statistics collection. Essential for container monitoring (Docker, Kubernetes). Default is yes.
EBPF_CFG_LIFETIMEnumberThread lifetime in seconds. After this period, eBPF threads exit and restart. Helps with memory management. Default is 300 (5 minutes).
EBPF_CFG_LOAD_MODEstringeBPF loading mode: 'entry' (only function entry), 'return' (entry and return), 'update' (live update). Default is 'entry' for performance.
EBPF_CFG_MAPS_PER_COREbooleanAllocate eBPF maps per CPU core. Improves performance on multi-core systems but uses more memory. Default is yes.
EBPF_CFG_PID_SIZEnumberMaximum number of PIDs to monitor simultaneously. Higher values use more kernel memory. Default is 32768.
EBPF_CFG_PROGRAM_PATHstringCustom path to eBPF programs. Leave empty to use bundled programs. Used for development or custom eBPF programs.
EBPF_CFG_TYPE_FORMATstringOutput format for eBPF metrics: 'auto', 'legacy', or 'co-re'. Auto-detects best format. Default is 'auto'.
EBPF_CFG_UPDATE_EVERYnumberData collection frequency in seconds. Lower values provide more granular data but increase CPU usage. Default is 1 second.
disable appsbooleanDisable all application-level monitoring to reduce overhead. Overrides individual app settings. Default is no.
loadstringLegacy option for eBPF loading mode. Use EBPF_CFG_LOAD_MODE instead. Kept for backward compatibility.

Section EBPF_PROGRAMS_SECTION

eBPF program enable/disable configuration

KeyTypeComments
cachestatbooleanWhether to enable eBPF monitoring of page cache statistics. Tracks page cache hits/misses, helping identify I/O performance issues. Default is "auto".
dcstatbooleanWhether to enable eBPF monitoring of directory cache (dcache) statistics. Shows directory lookup performance and cache efficiency. Default is "auto".
diskbooleanWhether 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_namebooleanWhether to enable eBPF process monitoring module. Tracks process creation, termination, and resource usage. Default is "auto".
ebpf_modules[EBPF_MODULE_SOCKET_IDX].info.config_namebooleanWhether to enable eBPF socket monitoring module. Provides detailed socket-level metrics including TCP retransmissions and connection states. Default is "auto".
fdbooleanWhether to enable eBPF monitoring of file descriptor operations. Tracks file opens, closes, and errors by process. Default is "auto".
filesystembooleanWhether to enable eBPF monitoring of filesystem operations. Shows VFS calls like read, write, open, and fsync by filesystem type. Default is "auto".
hardirqbooleanWhether to enable eBPF monitoring of hardware interrupts. Tracks IRQ latencies and distribution across CPUs. Default is "auto".
mdflushbooleanWhether to enable eBPF monitoring of MD (software RAID) flush operations. Tracks RAID array synchronization and performance. Default is "auto".
mountbooleanWhether to enable eBPF monitoring of mount/umount operations. Tracks filesystem mounting activities and errors. Default is "auto".
network connection monitoringbooleanWhether to enable comprehensive eBPF network connection monitoring. Provides detailed TCP/UDP connection tracking and statistics. Default is "auto".
network connectionsbooleanWhether to enable basic eBPF network connection tracking. Shows active connections by protocol and state. Default is "auto".
network viewerbooleanWhether to enable eBPF network viewer for real-time traffic visualization. Shows network flows between processes and remote endpoints. Default is "auto".
oomkillbooleanWhether to enable eBPF monitoring of Out-Of-Memory killer events. Tracks which processes are killed due to memory pressure. Default is "auto".
shmbooleanWhether to enable eBPF monitoring of shared memory operations. Tracks IPC shared memory usage and system calls. Default is "auto".
softirqbooleanWhether to enable eBPF monitoring of software interrupts. Shows softirq processing time and distribution across CPUs. Default is "auto".
swapbooleanWhether to enable eBPF monitoring of swap operations. Tracks swap in/out activity by process, critical for memory pressure analysis. Default is "auto".
syncbooleanWhether to enable eBPF monitoring of sync system calls. Tracks filesystem synchronization operations like sync, fsync, and fdatasync. Default is "auto".
vfsbooleanWhether 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

KeyTypeComments
NETDATA_EBPF_IPC_BACKLOGnumberMaximum queue size for IPC event backlog. Higher values prevent event loss but use more memory. Default is 4096.
NETDATA_EBPF_IPC_BIND_TOstringIP address to bind IPC monitoring socket. Use '0.0.0.0' for all interfaces or specific IP. Default is 'localhost'.
NETDATA_EBPF_IPC_INTEGRATIONstringIntegration 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

KeyTypeComments
EBPF_CONFIG_SOCKET_MONITORING_SIZEnumberMaximum number of socket connections to monitor simultaneously. Higher values provide more coverage but use more memory. Default is 8192.
EBPF_CONFIG_UDP_SIZEnumberMaximum 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

KeyTypeComments
EBPF_CONFIG_HOSTNAMESstringSpace-separated list of hostnames to monitor in network viewer. Use patterns with wildcards. Empty means all hostnames. Example: '*.local *.mydomain.com'
EBPF_CONFIG_PORTSstringSpace-separated list of ports to monitor. Can use ranges with hyphen. Empty means all ports. Example: '80 443 8080-8090 3306'
EBPF_CONFIG_RESOLVE_HOSTNAMEbooleanWhether to resolve IP addresses to hostnames in network viewer. May impact performance on busy systems. Default is yes.
EBPF_CONFIG_RESOLVE_SERVICEbooleanWhether to resolve port numbers to service names (e.g., 80→http). Uses /etc/services. Default is yes.
ipsstringSpace-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

KeyTypeComments
distbooleanEnable 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

KeyTypeComments
EBPF_CFG_APPLICATIONbooleanEnable per-application statistics collection. Groups metrics by application name. CPU intensive but provides detailed insights. Default is yes.
EBPF_CFG_CGROUPbooleanEnable cgroup (container) statistics collection. Essential for container monitoring (Docker, Kubernetes). Default is yes.
EBPF_CFG_COLLECT_PIDstringPID collection mode: 'real' (actual PIDs), 'user' (per-user), 'all' (everything). Default is 'all'.
EBPF_CFG_CORE_ATTACHstringCore attachment method: 'trampoline' (newer, efficient) or 'probe' (legacy, compatible). Default is 'trampoline' if supported.
EBPF_CFG_LIFETIMEnumberThread lifetime in seconds. After this period, eBPF threads exit and restart. Helps with memory management. Default is 300 (5 minutes).
EBPF_CFG_LOAD_MODEstringeBPF loading mode: 'entry' (only function entry), 'return' (entry and return), 'update' (live update). Default is 'entry' for performance.
EBPF_CFG_MAPS_PER_COREbooleanAllocate eBPF maps per CPU core. Improves performance on multi-core systems but uses more memory. Default is yes.
EBPF_CFG_PID_SIZEnumberMaximum number of PIDs to monitor simultaneously. Higher values use more kernel memory. Default is 32768.
EBPF_CFG_TYPE_FORMATstringOutput format for eBPF metrics: 'auto', 'legacy', or 'co-re'. Auto-detects best format. Default is 'auto'.
EBPF_CFG_UPDATE_EVERYnumberData 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

KeyTypeComments
enabledbooleanEnable/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

KeyTypeComments
default portnumberDefault web server port

Configuration: ebpf_sync.conf

Handle: sync_config

Section NETDATA_SYNC_CONFIG_NAME

eBPF sync syscall monitoring configuration

KeyTypeComments
local_syscalls[i].syscallbooleanEnable/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

KeyTypeComments
keystringGeneric 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)

KeyTypeComments
temp + offset2 + 1stringDynamically generated key name. Used internally for parsing hierarchical configuration sections with colon separators. Not directly user-configurable.