{ "opencollection": "1.0.0", "info": { "name": "Netdata agent config API", "version": "v1-rolling" }, "items": [ { "info": { "name": "config", "type": "folder" }, "items": [ { "info": { "name": "Manage Netdata dynamic configuration", "type": "http" }, "http": { "method": "GET", "url": "https://registry.my-netdata.io/api/v3/config", "params": [ { "name": "action", "value": "tree", "type": "query", "description": "Configuration action to perform. Different actions require different additional parameters.\n\n**Available Actions:**\n\n- **`tree`** (default): Browse configuration hierarchy\n - Additional params: `path` (optional, default \"/\"), `id` (optional)\n - Returns: Tree structure of configurable components\n\n- **`get`**: Retrieve current configuration\n - Required params: `id`\n - Returns: Current active configuration\n\n- **`schema`**: Get configuration schema/template\n - Required params: `id`\n - Returns: Schema defining valid configuration structure\n\n- **`update`**: Modify existing configuration\n - Required params: `id`\n - Request body: JSON with configuration changes\n - Returns: Success/error status\n\n- **`add`**: Create new job/instance\n - Required params: `id`, `name`\n - Request body: JSON with initial configuration\n - Returns: Success/error status\n\n- **`remove`**: Delete job/instance\n - Required params: `id`\n - Returns: Success/error status\n\n- **`enable`**: Activate disabled component\n - Required params: `id`\n - Returns: Success/error status\n\n- **`disable`**: Deactivate component without removing\n - Required params: `id`\n - Returns: Success/error status\n\n- **`test`**: Validate configuration without applying\n - Required params: `id`, `name`\n - Request body: JSON with configuration to test\n - Returns: Validation results\n\n- **`restart`**: Restart component with new configuration\n - Required params: `id`\n - Returns: Success/error status\n\n- **`userconfig`**: Get user-editable configuration file\n - Required params: `id`\n - Returns: Configuration in user-editable format\n" }, { "name": "path", "value": "/collectors", "type": "query", "description": "Path in configuration tree when using `action=tree`.\nSpecifies which branch of the configuration hierarchy to explore.\n\n**Path Format:**\n- Root: `/`\n- Collectors: `/collectors`\n- Specific plugin: `/collectors/go.d`\n- Health: `/health`\n\n**Examples:**\n- `/` - Root level (all categories)\n- `/collectors` - All collectors\n- `/collectors/go.d` - Go collectors\n" }, { "name": "id", "value": "collectors:go.d:prometheus", "type": "query", "description": "Configuration component ID using colon-separated hierarchical notation.\nRequired for most actions except `tree`.\n\n**ID Format:**\n`category:plugin:collector[:job-name]`\n\n**Examples:**\n- `collectors:go.d:prometheus` - Prometheus collector\n- `collectors:go.d:prometheus:local` - Specific Prometheus job \"local\"\n- `collectors:python.d:nginx` - Nginx Python collector\n- `health:notifications` - Health notification settings\n\n**ID Validation:**\n- Alphanumeric characters, dots, underscores, hyphens\n- Colons separate hierarchy levels\n- Invalid IDs return 400 Bad Request\n" }, { "name": "name", "value": "my-app", "type": "query", "description": "Name for new job/instance when using `action=add` or `action=test`.\n\n**Name Requirements:**\n- Alphanumeric characters, dots, underscores, hyphens\n- Must be unique within the collector/plugin\n- Will be appended to `id` to form full configuration path\n\n**Examples:**\n- If `id=collectors:go.d:prometheus` and `name=my-app`\n- Full config ID becomes: `collectors:go.d:prometheus:my-app`\n\n**Invalid Names:**\n- Empty or missing (when required): Returns 400 Bad Request\n- Special characters: Returns 400 Bad Request\n- Duplicate name: May return error or override behavior depends on action\n" }, { "name": "timeout", "value": "60", "type": "query", "description": "Maximum time in seconds to wait for configuration operation to complete.\n\n**Timeout Guidelines:**\n- Read operations (get, schema, tree): 10-30 seconds\n- Write operations (update, add, remove): 30-120 seconds\n- Test operations: 60-120 seconds (may involve validation checks)\n- Restart operations: 120-300 seconds (component restart time)\n\n**Minimum:** 10 seconds (enforced by code)\n**Default:** 120 seconds\n" } ] }, "docs": "Provides access to Netdata's dynamic configuration system, allowing retrieval, modification,\nand management of configuration across plugins and data collectors.\n\n**Dynamic Configuration System:**\nNetdata's dyncfg system allows runtime configuration management without restarting the agent:\n- **View configuration tree**: Browse all configurable components\n- **Get current config**: Retrieve active configuration for any component\n- **Update configuration**: Modify settings on-the-fly\n- **Add/remove " }, { "info": { "name": "Manage Netdata configuration with request body data", "type": "http" }, "http": { "method": "POST", "url": "https://registry.my-netdata.io/api/v3/config", "params": [ { "name": "action", "value": "update", "type": "query", "description": "Configuration action to perform (see GET method for details)" }, { "name": "path", "value": "/collectors", "type": "query", "description": "Path in configuration tree (see GET method for details)" }, { "name": "id", "value": "collectors:go.d:prometheus", "type": "query", "description": "Configuration component ID (see GET method for details)" }, { "name": "name", "value": "my-app", "type": "query", "description": "Name for new job/instance (see GET method for details)" }, { "name": "timeout", "value": "60", "type": "query", "description": "Maximum timeout in seconds (see GET method for details)" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Same as GET /api/v3/config, but allows passing configuration data via request body\nfor actions like `update`, `add`, and `test`.\n\nUse this method when:\n- Updating existing configuration (`action=update`)\n- Adding new jobs/instances (`action=add`)\n- Testing configuration before applying (`action=test`)\n\nSee GET /api/v3/config for complete documentation on actions, parameters, and responses.\n" } ] } ], "bundled": true }