| 1 | // SPDX-License-Identifier: GPL-3.0-or-later |
| 2 | |
| 3 | #include "netdata-conf-backwards-compatibility.h" |
| 4 | #include "database/engine/rrdengineapi.h" |
| 5 | |
| 6 | void netdata_conf_backwards_compatibility(void) { |
| 7 | FUNCTION_RUN_ONCE(); |
| 8 | |
| 9 | // move [global] options to the [web] section |
| 10 | |
| 11 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "http port listen backlog", |
| 12 | CONFIG_SECTION_WEB, "listen backlog"); |
| 13 | |
| 14 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "bind socket to IP", |
| 15 | CONFIG_SECTION_WEB, "bind to"); |
| 16 | |
| 17 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "bind to", |
| 18 | CONFIG_SECTION_WEB, "bind to"); |
| 19 | |
| 20 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "port", |
| 21 | CONFIG_SECTION_WEB, "default port"); |
| 22 | |
| 23 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "default port", |
| 24 | CONFIG_SECTION_WEB, "default port"); |
| 25 | |
| 26 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "disconnect idle web clients after seconds", |
| 27 | CONFIG_SECTION_WEB, "disconnect idle clients after seconds"); |
| 28 | |
| 29 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "respect web browser do not track policy", |
| 30 | CONFIG_SECTION_WEB, "respect do not track policy"); |
| 31 | |
| 32 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "web x-frame-options header", |
| 33 | CONFIG_SECTION_WEB, "x-frame-options response header"); |
| 34 | |
| 35 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "enable web responses gzip compression", |
| 36 | CONFIG_SECTION_WEB, "enable gzip compression"); |
| 37 | |
| 38 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "web compression strategy", |
| 39 | CONFIG_SECTION_WEB, "gzip compression strategy"); |
| 40 | |
| 41 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "web compression level", |
| 42 | CONFIG_SECTION_WEB, "gzip compression level"); |
| 43 | |
| 44 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "config directory", |
| 45 | CONFIG_SECTION_DIRECTORIES, "config"); |
| 46 | |
| 47 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "stock config directory", |
| 48 | CONFIG_SECTION_DIRECTORIES, "stock config"); |
| 49 | |
| 50 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "stock data directory", |
| 51 | CONFIG_SECTION_DIRECTORIES, "stock data"); |
| 52 | |
| 53 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "log directory", |
| 54 | CONFIG_SECTION_DIRECTORIES, "log"); |
| 55 | |
| 56 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "web files directory", |
| 57 | CONFIG_SECTION_DIRECTORIES, "web"); |
| 58 | |
| 59 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "cache directory", |
| 60 | CONFIG_SECTION_DIRECTORIES, "cache"); |
| 61 | |
| 62 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "lib directory", |
| 63 | CONFIG_SECTION_DIRECTORIES, "lib"); |
| 64 | |
| 65 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "home directory", |
| 66 | CONFIG_SECTION_DIRECTORIES, "home"); |
| 67 | |
| 68 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "lock directory", |
| 69 | CONFIG_SECTION_DIRECTORIES, "lock"); |
| 70 | |
| 71 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "plugins directory", |
| 72 | CONFIG_SECTION_DIRECTORIES, "plugins"); |
| 73 | |
| 74 | inicfg_move(&netdata_config, CONFIG_SECTION_HEALTH, "health configuration directory", |
| 75 | CONFIG_SECTION_DIRECTORIES, "health config"); |
| 76 | |
| 77 | inicfg_move(&netdata_config, CONFIG_SECTION_HEALTH, "stock health configuration directory", |
| 78 | CONFIG_SECTION_DIRECTORIES, "stock health config"); |
| 79 | |
| 80 | inicfg_move(&netdata_config, CONFIG_SECTION_REGISTRY, "registry db directory", |
| 81 | CONFIG_SECTION_DIRECTORIES, "registry"); |
| 82 | |
| 83 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "debug log", |
| 84 | CONFIG_SECTION_LOGS, "debug"); |
| 85 | |
| 86 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "error log", |
| 87 | CONFIG_SECTION_LOGS, "error"); |
| 88 | |
| 89 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "access log", |
| 90 | CONFIG_SECTION_LOGS, "access"); |
| 91 | |
| 92 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "facility log", |
| 93 | CONFIG_SECTION_LOGS, "facility"); |
| 94 | |
| 95 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "errors flood protection period", |
| 96 | CONFIG_SECTION_LOGS, "errors flood protection period"); |
| 97 | |
| 98 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "errors to trigger flood protection", |
| 99 | CONFIG_SECTION_LOGS, "errors to trigger flood protection"); |
| 100 | |
| 101 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "debug flags", |
| 102 | CONFIG_SECTION_LOGS, "debug flags"); |
| 103 | |
| 104 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "TZ environment variable", |
| 105 | CONFIG_SECTION_ENV_VARS, "TZ"); |
| 106 | |
| 107 | inicfg_move(&netdata_config, CONFIG_SECTION_PLUGINS, "PATH environment variable", |
| 108 | CONFIG_SECTION_ENV_VARS, "PATH"); |
| 109 | |
| 110 | inicfg_move(&netdata_config, CONFIG_SECTION_PLUGINS, "PYTHONPATH environment variable", |
| 111 | CONFIG_SECTION_ENV_VARS, "PYTHONPATH"); |
| 112 | |
| 113 | inicfg_move(&netdata_config, CONFIG_SECTION_STATSD, "enabled", |
| 114 | CONFIG_SECTION_PLUGINS, "statsd"); |
| 115 | |
| 116 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "memory mode", |
| 117 | CONFIG_SECTION_DB, "db"); |
| 118 | |
| 119 | inicfg_move(&netdata_config, CONFIG_SECTION_DB, "mode", |
| 120 | CONFIG_SECTION_DB, "db"); |
| 121 | |
| 122 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "history", |
| 123 | CONFIG_SECTION_DB, "retention"); |
| 124 | |
| 125 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "update every", |
| 126 | CONFIG_SECTION_DB, "update every"); |
| 127 | |
| 128 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "page cache size", |
| 129 | CONFIG_SECTION_DB, "dbengine page cache size"); |
| 130 | |
| 131 | inicfg_move(&netdata_config, CONFIG_SECTION_DB, "dbengine page cache size MB", |
| 132 | CONFIG_SECTION_DB, "dbengine page cache size"); |
| 133 | |
| 134 | inicfg_move(&netdata_config, CONFIG_SECTION_DB, "dbengine extent cache size MB", |
| 135 | CONFIG_SECTION_DB, "dbengine extent cache size"); |
| 136 | |
| 137 | inicfg_move(&netdata_config, CONFIG_SECTION_DB, "page cache size", |
| 138 | CONFIG_SECTION_DB, "dbengine page cache size MB"); |
| 139 | |
| 140 | // inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "page cache uses malloc", |
| 141 | // CONFIG_SECTION_DB, "dbengine page cache with malloc"); |
| 142 | // |
| 143 | // inicfg_move(&netdata_config, CONFIG_SECTION_DB, "page cache with malloc", |
| 144 | // CONFIG_SECTION_DB, "dbengine page cache with malloc"); |
| 145 | |
| 146 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "memory deduplication (ksm)", |
| 147 | CONFIG_SECTION_DB, "memory deduplication (ksm)"); |
| 148 | |
| 149 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "dbengine page fetch timeout", |
| 150 | CONFIG_SECTION_DB, "dbengine page fetch timeout secs"); |
| 151 | |
| 152 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "dbengine page fetch retries", |
| 153 | CONFIG_SECTION_DB, "dbengine page fetch retries"); |
| 154 | |
| 155 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "dbengine extent pages", |
| 156 | CONFIG_SECTION_DB, "dbengine pages per extent"); |
| 157 | |
| 158 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "cleanup obsolete charts after seconds", |
| 159 | CONFIG_SECTION_DB, "cleanup obsolete charts after"); |
| 160 | |
| 161 | inicfg_move(&netdata_config, CONFIG_SECTION_DB, "cleanup obsolete charts after secs", |
| 162 | CONFIG_SECTION_DB, "cleanup obsolete charts after"); |
| 163 | |
| 164 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "gap when lost iterations above", |
| 165 | CONFIG_SECTION_DB, "gap when lost iterations above"); |
| 166 | |
| 167 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "cleanup orphan hosts after seconds", |
| 168 | CONFIG_SECTION_DB, "cleanup orphan hosts after"); |
| 169 | |
| 170 | inicfg_move(&netdata_config, CONFIG_SECTION_DB, "cleanup orphan hosts after secs", |
| 171 | CONFIG_SECTION_DB, "cleanup orphan hosts after"); |
| 172 | |
| 173 | inicfg_move(&netdata_config, CONFIG_SECTION_DB, "cleanup ephemeral hosts after secs", |
| 174 | CONFIG_SECTION_DB, "cleanup ephemeral hosts after"); |
| 175 | |
| 176 | inicfg_move(&netdata_config, CONFIG_SECTION_DB, "seconds to replicate", |
| 177 | CONFIG_SECTION_DB, "replication period"); |
| 178 | |
| 179 | inicfg_move(&netdata_config, CONFIG_SECTION_DB, "seconds per replication step", |
| 180 | CONFIG_SECTION_DB, "replication step"); |
| 181 | |
| 182 | inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "enable zero metrics", |
| 183 | CONFIG_SECTION_DB, "enable zero metrics"); |
| 184 | |
| 185 | inicfg_move(&netdata_config, CONFIG_SECTION_CLOUD, "query thread count", |
| 186 | CONFIG_SECTION_CLOUD, "query threads"); |
| 187 | |
| 188 | // ---------------------------------------------------------------------------------------------------------------- |
| 189 | // global statistics -> telemetry -> pulse |
| 190 | |
| 191 | inicfg_move(&netdata_config, CONFIG_SECTION_PLUGINS, "netdata monitoring", |
| 192 | CONFIG_SECTION_PLUGINS, "netdata pulse"); |
| 193 | |
| 194 | inicfg_move(&netdata_config, CONFIG_SECTION_PLUGINS, "netdata telemetry", |
| 195 | CONFIG_SECTION_PLUGINS, "netdata pulse"); |
| 196 | |
| 197 | inicfg_move(&netdata_config, CONFIG_SECTION_PLUGINS, "netdata monitoring extended", |
| 198 | CONFIG_SECTION_PULSE, "extended"); |
| 199 | |
| 200 | inicfg_move(&netdata_config, "telemetry", "extended telemetry", |
| 201 | CONFIG_SECTION_PULSE, "extended"); |
| 202 | |
| 203 | inicfg_move(&netdata_config, "global statistics", "update every", |
| 204 | CONFIG_SECTION_PULSE, "update every"); |
| 205 | |
| 206 | inicfg_move(&netdata_config, "telemetry", "update every", |
| 207 | CONFIG_SECTION_PULSE, "update every"); |
| 208 | |
| 209 | |
| 210 | // ---------------------------------------------------------------------------------------------------------------- |
| 211 | |
| 212 | bool found_old_config = false; |
| 213 | |
| 214 | if(inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "dbengine disk space", |
| 215 | CONFIG_SECTION_DB, "dbengine tier 0 retention size") != -1) |
| 216 | found_old_config = true; |
| 217 | |
| 218 | if(inicfg_move(&netdata_config, CONFIG_SECTION_GLOBAL, "dbengine multihost disk space", |
| 219 | CONFIG_SECTION_DB, "dbengine tier 0 retention size") != -1) |
| 220 | found_old_config = true; |
| 221 | |
| 222 | if(inicfg_move(&netdata_config, CONFIG_SECTION_DB, "dbengine disk space MB", |
| 223 | CONFIG_SECTION_DB, "dbengine tier 0 retention size") != -1) |
| 224 | found_old_config = true; |
| 225 | |
| 226 | for(size_t tier = 0; tier < RRD_STORAGE_TIERS ;tier++) { |
| 227 | char old_config[128], new_config[128]; |
| 228 | |
| 229 | snprintfz(old_config, sizeof(old_config), "dbengine tier %zu retention days", tier); |
| 230 | snprintfz(new_config, sizeof(new_config), "dbengine tier %zu retention time", tier); |
| 231 | inicfg_move(&netdata_config, CONFIG_SECTION_DB, old_config, |
| 232 | CONFIG_SECTION_DB, new_config); |
| 233 | |
| 234 | if(tier == 0) |
| 235 | snprintfz(old_config, sizeof(old_config), "dbengine multihost disk space MB"); |
| 236 | else |
| 237 | snprintfz(old_config, sizeof(old_config), "dbengine tier %zu multihost disk space MB", tier); |
| 238 | snprintfz(new_config, sizeof(new_config), "dbengine tier %zu retention size", tier); |
| 239 | if(inicfg_move(&netdata_config, CONFIG_SECTION_DB, old_config, |
| 240 | CONFIG_SECTION_DB, new_config) != -1 && tier == 0) |
| 241 | found_old_config = true; |
| 242 | |
| 243 | snprintfz(old_config, sizeof(old_config), "dbengine tier %zu disk space MB", tier); |
| 244 | snprintfz(new_config, sizeof(new_config), "dbengine tier %zu retention size", tier); |
| 245 | if(inicfg_move(&netdata_config, CONFIG_SECTION_DB, old_config, |
| 246 | CONFIG_SECTION_DB, new_config) != -1 && tier == 0) |
| 247 | found_old_config = true; |
| 248 | } |
| 249 | |
| 250 | #ifdef ENABLE_DBENGINE |
| 251 | legacy_multihost_db_space = found_old_config; |
| 252 | #endif |
| 253 | |
| 254 | // ---------------------------------------------------------------------------------------------------------------- |
| 255 | |
| 256 | inicfg_move(&netdata_config, CONFIG_SECTION_LOGS, "error", |
| 257 | CONFIG_SECTION_LOGS, "daemon"); |
| 258 | |
| 259 | inicfg_move(&netdata_config, CONFIG_SECTION_LOGS, "severity level", |
| 260 | CONFIG_SECTION_LOGS, "level"); |
| 261 | |
| 262 | inicfg_move(&netdata_config, CONFIG_SECTION_LOGS, "errors to trigger flood protection", |
| 263 | CONFIG_SECTION_LOGS, "logs to trigger flood protection"); |
| 264 | |
| 265 | inicfg_move(&netdata_config, CONFIG_SECTION_LOGS, "errors flood protection period", |
| 266 | CONFIG_SECTION_LOGS, "logs flood protection period"); |
| 267 | |
| 268 | inicfg_move(&netdata_config, CONFIG_SECTION_HEALTH, "is ephemeral", |
| 269 | CONFIG_SECTION_GLOBAL, "is ephemeral node"); |
| 270 | |
| 271 | inicfg_move(&netdata_config, CONFIG_SECTION_HEALTH, "has unstable connection", |
| 272 | CONFIG_SECTION_GLOBAL, "has unstable connection"); |
| 273 | |
| 274 | inicfg_move(&netdata_config, CONFIG_SECTION_HEALTH, "run at least every seconds", |
| 275 | CONFIG_SECTION_HEALTH, "run at least every"); |
| 276 | |
| 277 | inicfg_move(&netdata_config, CONFIG_SECTION_HEALTH, "postpone alarms during hibernation for seconds", |
| 278 | CONFIG_SECTION_HEALTH, "postpone alarms during hibernation for"); |
| 279 | |
| 280 | inicfg_move(&netdata_config, CONFIG_SECTION_HEALTH, "health log history", |
| 281 | CONFIG_SECTION_HEALTH, "health log retention"); |
| 282 | |
| 283 | inicfg_move(&netdata_config, CONFIG_SECTION_REGISTRY, "registry expire idle persons days", |
| 284 | CONFIG_SECTION_REGISTRY, "registry expire idle persons"); |
| 285 | |
| 286 | inicfg_move(&netdata_config, CONFIG_SECTION_WEB, "disconnect idle clients after seconds", |
| 287 | CONFIG_SECTION_WEB, "disconnect idle clients after"); |
| 288 | |
| 289 | inicfg_move(&netdata_config, CONFIG_SECTION_WEB, "accept a streaming request every seconds", |
| 290 | CONFIG_SECTION_WEB, "accept a streaming request every"); |
| 291 | |
| 292 | inicfg_move(&netdata_config, CONFIG_SECTION_STATSD, "set charts as obsolete after secs", |
| 293 | CONFIG_SECTION_STATSD, "set charts as obsolete after"); |
| 294 | |
| 295 | inicfg_move(&netdata_config, CONFIG_SECTION_STATSD, "disconnect idle tcp clients after seconds", |
| 296 | CONFIG_SECTION_STATSD, "disconnect idle tcp clients after"); |
| 297 | |
| 298 | inicfg_move(&netdata_config, "plugin:idlejitter", "loop time in ms", |
| 299 | "plugin:idlejitter", "loop time"); |
| 300 | |
| 301 | inicfg_move(&netdata_config, "plugin:proc:/sys/class/infiniband", "refresh ports state every seconds", |
| 302 | "plugin:proc:/sys/class/infiniband", "refresh ports state every"); |
| 303 | } |