JSON Configuration Guide

Every setting in ezsnmp_data_logger — engine scheduling, ezsnmp SNMPv1/v2c/v3 credentials, MIB formatting flags, storage sinks, and cross-platform GUI preferences — is stored in a single JSON configuration document.

Generating Starter Templates & JSON Schema

Use the CLI to generate ready-to-edit JSON files or inspect the Draft 2020-12 JSON Schema:

ezsnmp-data-logger init-config --template minimal --output my_config.json
ezsnmp-data-logger init-config --template demo --output demo.json
ezsnmp-data-logger init-config --template snmpv3 --output snmpv3.json
ezsnmp-data-logger init-config --template enterprise --output enterprise.json
ezsnmp-data-logger schema > ezsnmp_data_logger.schema.json
ezsnmp-data-logger validate --config my_config.json

Top-Level JSON Structure

A configuration document contains four top-level JSON objects/arrays:

  1. logger — Polling cadence (poll_interval_ms), bounded queue capacity (queue_depth), worker_threads, stats_interval_ms, optional max_cycles / run_duration_seconds, and optional atomic status_file.

  2. duts — Array of Devices Under Test, each with name, dut_ip, enabled, optional per-DUT poll_interval_ms, an snmp object mapping all 24 ezsnmp::SessionBase parameters (mode "ezsnmp" or "stub", version "1"/"2c"/"3", community, port_number, timeout_seconds, retries, SNMPv3 USM security_level, security_username, auth_protocol, auth_passphrase, privacy_protocol, privacy_passphrase, context, load_mibs, mib_directories, print_oids_numerically, etc.), and a metrics array.

  3. sinks — Array of output sinks (sqlite3, csv, jsonl, psql, prometheus).

  4. gui — Cross-platform GUI settings stored directly in JSON (frontend: "auto" | "tk" | "web", theme: "dark" | "light", locale: "en" | "es", optional locale_file, window_width, window_height, refresh_interval_ms, host, port, open_browser, cli_executable, max_log_lines).