summaryrefslogtreecommitdiffstats
path: root/daemon
diff options
context:
space:
mode:
authorCosta Tsaousis <costa@netdata.cloud>2023-07-06 01:49:32 +0300
committerGitHub <noreply@github.com>2023-07-06 01:49:32 +0300
commitc74bf56ee2910b5c90e5be2e31128580b85b9ca8 (patch)
tree6ef495ac5821ce2c4984d87feb65d79851dd38ec /daemon
parentb45570d251980309e7c2d956dea8886f8aa13bdc (diff)
Code reorg and cleanup - enrichment of /api/v2 (#15294)
* claim script now accepts the same params as the kickstart * rewrote buildinfo to unify all methods * added cloud unavailable in cloud status * added all exporters * renamed httpd to h2o * rename ENABLE_COMPRESSION to ENABLE_LZ4 * rename global variable * rename ENABLE_HTTPS to ENABLE_OPENSSL * fix coverity-scan for openssl * add lz4 to coverity-scan * added all plugins and most of the features * added all plugins and most of the features * generalize bitmap code so that we can have any size of bitmaps * cleanup * fix compilation without protobuf * fix compilation with others allocators * fix bitmap * comprehensive bitmaps unit test * bitmap as macros * added developer mode * added system info to build info * cloud available/unavailable * added /api/v2/info * added units and ni to transitions * when showing instances and transitions, show only the instances that have transitions * cleanup * add missing quotes * add anchor to transitions * added more to build info * calculate retention per tier and expose it to /api/v2/info * added currently collected metrics * do not show space and retention when no numbers are available * fix impossible overflow * Add function for transitions and execute callback * In case of error, reset and try next dictionary entry * Fix error message * simpler logic to maintain retention per tier * /api/v2/alert_transitions * Handle case of recipient null Convert after and before to usec * Add classification, type and component * working /api/v2/alert_transitions * Fix query to properly handle context and alert name * cleanup * Add search with transition * accept transition in /api/v2/alert_transitions * totaly dynamic facets * fixed debug info * restructured facets * cleanup; removal of options=transitions * updated alert entries flags * method to exec * Return also exec run timestamp Temp table cleanup only when we don't execute with a transition * cleanup obsolete anchor parameter * Add sql_get_alert_configuration function * added options=config to alert_transitions * added /api/v2/alert_config * preliminary work for /api/v2/claim * initialize variables; do not expose expected retention if no disk space info is available; do not report aclk as initializing when not claimed * fix claim session key filename * put a newline into the session key file * more progress on claiming * final /api/v2/claim endpoint * after claiming, refresh our state at the output * Fix query to fetch config * Remove debug log * add configuration objects * add configuration objects - fixed * respect the NETDATA_DISABLE_CLOUD env variable * NETDATA_DISABLE_CLOUD env variable sets the default, but the config sets the final value * use a new claimed_id on every claiming * regenerate random key on claiming and wait for online status * ignore write() return value when writing a newline * dont show cloud status disabled when claimed_id is missing * added ctx to alert instances * cleanup config and transitions from /api/v2/alerts * fix unused variable * in /api/v2/alert_config show 1 config without an array * show alert values conditionally, by appending options=values * When storing host info if the key value is empty, store unknown * added options=summary to control when the alerts summary is shown * increased http_api_v2 to version 5 * claming random key file is now not world readable * added local-listeners binary that detects all the listening ports, their IPs and their command lines --------- Co-authored-by: Stelios Fragkakis <52996999+stelfrag@users.noreply.github.com>
Diffstat (limited to 'daemon')
-rw-r--r--daemon/analytics.c2
-rw-r--r--daemon/buildinfo.c1727
-rw-r--r--daemon/buildinfo.h2
-rw-r--r--daemon/commands.c6
-rw-r--r--daemon/common.c58
-rw-r--r--daemon/common.h17
-rw-r--r--daemon/main.c84
-rw-r--r--daemon/static_threads.c6
-rw-r--r--daemon/unit_test.c200
-rw-r--r--daemon/unit_test.h2
10 files changed, 1566 insertions, 538 deletions
diff --git a/daemon/analytics.c b/daemon/analytics.c
index a3900be623..1dd337ff35 100644
--- a/daemon/analytics.c
+++ b/daemon/analytics.c
@@ -657,7 +657,7 @@ void set_late_global_environment(struct rrdhost_system_info *system_info)
#else
analytics_set_data(
&analytics_data.netdata_host_cloud_enabled,
- appconfig_get_boolean(&cloud_config, CONFIG_SECTION_GLOBAL, "enabled", CONFIG_BOOLEAN_YES) ? "true" : "false");
+ appconfig_get_boolean_ondemand(&cloud_config, CONFIG_SECTION_GLOBAL, "enabled", netdata_cloud_enabled) ? "true" : "false");
#endif
#ifdef ENABLE_DBENGINE
diff --git a/daemon/buildinfo.c b/daemon/buildinfo.c
index d277d2b3cf..56cde84fc2 100644
--- a/daemon/buildinfo.c
+++ b/daemon/buildinfo.c
@@ -5,209 +5,1301 @@
#include "common.h"
#include "buildinfo.h"
-// Optional features
+typedef enum __attribute__((packed)) {
+ BIB_PACKAGING_NETDATA_VERSION,
+ BIB_PACKAGING_INSTALL_TYPE,
+ BIB_PACKAGING_ARCHITECTURE,
+ BIB_PACKAGING_DISTRO,
+ BIB_PACKAGING_CONFIGURE_OPTIONS,
+ BIB_DIR_USER_CONFIG,
+ BIB_DIR_STOCK_CONFIG,
+ BIB_DIR_CACHE,
+ BIB_DIR_LIB,
+ BIB_DIR_PLUGINS,
+ BIB_DIR_WEB,
+ BIB_DIR_LOG,
+ BIB_DIR_LOCK,
+ BIB_DIR_HOME,
+ BIB_OS_KERNEL_NAME,
+ BIB_OS_KERNEL_VERSION,
+ BIB_OS_NAME,
+ BIB_OS_ID,
+ BIB_OS_ID_LIKE,
+ BIB_OS_VERSION,
+ BIB_OS_VERSION_ID,
+ BIB_OS_DETECTION,
+ BIB_HW_CPU_CORES,
+ BIB_HW_CPU_FREQUENCY,
+ BIB_HW_RAM_SIZE,
+ BIB_HW_DISK_SPACE,
+ BIB_HW_ARCHITECTURE,
+ BIB_HW_VIRTUALIZATION,
+ BIB_HW_VIRTUALIZATION_DETECTION,
+ BIB_CONTAINER_NAME,
+ BIB_CONTAINER_DETECTION,
+ BIB_CONTAINER_ORCHESTRATOR,
+ BIB_CONTAINER_OS_NAME,
+ BIB_CONTAINER_OS_ID,
+ BIB_CONTAINER_OS_ID_LIKE,
+ BIB_CONTAINER_OS_VERSION,
+ BIB_CONTAINER_OS_VERSION_ID,
+ BIB_CONTAINER_OS_DETECTION,
+ BIB_FEATURE_BUILT_FOR,
+ BIB_FEATURE_CLOUD,
+ BIB_FEATURE_HEALTH,
+ BIB_FEATURE_STREAMING,
+ BIB_FEATURE_REPLICATION,
+ BIB_FEATURE_STREAMING_COMPRESSION,
+ BIB_FEATURE_CONTEXTS,
+ BIB_FEATURE_TIERING,
+ BIB_FEATURE_ML,
+ BIB_DB_DBENGINE,
+ BIB_DB_ALLOC,
+ BIB_DB_RAM,
+ BIB_DB_MAP,
+ BIB_DB_SAVE,
+ BIB_DB_NONE,
+ BIB_CONNECTIVITY_ACLK,
+ BIB_CONNECTIVITY_HTTPD_STATIC,
+ BIB_CONNECTIVITY_HTTPD_H2O,
+ BIB_CONNECTIVITY_WEBRTC,
+ BIB_CONNECTIVITY_NATIVE_HTTPS,
+ BIB_CONNECTIVITY_TLS_HOST_VERIFY,
+ BIB_LIB_LZ4,
+ BIB_LIB_ZLIB,
+ BIB_LIB_JUDY,
+ BIB_LIB_DLIB,
+ BIB_LIB_PROTOBUF,
+ BIB_LIB_OPENSSL,
+ BIB_LIB_LIBDATACHANNEL,
+ BIB_LIB_JSONC,
+ BIB_LIB_LIBCAP,
+ BIB_LIB_LIBCRYPTO,
+ BIB_LIB_LIBM,
+ BIB_LIB_JEMALLOC,
+ BIB_LIB_TCMALLOC,
+ BIB_PLUGIN_APPS,
+ BIB_PLUGIN_LINUX_CGROUPS,
+ BIB_PLUGIN_LINUX_CGROUP_NETWORK,
+ BIB_PLUGIN_LINUX_PROC,
+ BIB_PLUGIN_LINUX_TC,
+ BIB_PLUGIN_LINUX_DISKSPACE,
+ BIB_PLUGIN_FREEBSD,
+ BIB_PLUGIN_MACOS,
+ BIB_PLUGIN_STATSD,
+ BIB_PLUGIN_TIMEX,
+ BIB_PLUGIN_IDLEJITTER,
+ BIB_PLUGIN_BASH,
+ BIB_PLUGIN_DEBUGFS,
+ BIB_PLUGIN_CUPS,
+ BIB_PLUGIN_EBPF,
+ BIB_PLUGIN_FREEIPMI,
+ BIB_PLUGIN_NFACCT,
+ BIB_PLUGIN_PERF,
+ BIB_PLUGIN_SLABINFO,
+ BIB_PLUGIN_XEN,
+ BIB_PLUGIN_XEN_VBD_ERROR,
+ BIB_EXPORT_AWS_KINESIS,
+ BIB_EXPORT_GCP_PUBSUB,
+ BIB_EXPORT_MONGOC,
+ BIB_EXPORT_PROMETHEUS_EXPORTER,
+ BIB_EXPORT_PROMETHEUS_REMOTE_WRITE,
+ BIB_EXPORT_GRAPHITE,
+ BIB_EXPORT_GRAPHITE_HTTP,
+ BIB_EXPORT_JSON,
+ BIB_EXPORT_JSON_HTTP,
+ BIB_EXPORT_OPENTSDB,
+ BIB_EXPORT_OPENTSDB_HTTP,
+ BIB_EXPORT_ALLMETRICS,
+ BIB_EXPORT_SHELL,
+ BIB_DEVEL_TRACE_ALLOCATIONS,
+ BIB_DEVELOPER_MODE,
+
+ // leave this last
+ BIB_TERMINATOR,
+} BUILD_INFO_SLOT;
+
+typedef enum __attribute__((packed)) {
+ BIC_PACKAGING,
+ BIC_DIRECTORIES,
+ BIC_OPERATING_SYSTEM,
+ BIC_HARDWARE,
+ BIC_CONTAINER,
+ BIC_FEATURE,
+ BIC_DATABASE,
+ BIC_CONNECTIVITY,
+ BIC_LIBS,
+ BIC_PLUGINS,
+ BIC_EXPORTERS,
+ BIC_DEBUG_DEVEL
+} BUILD_INFO_CATEGORY;
+
+typedef enum __attribute__((packed)) {
+ BIT_BOOLEAN,
+ BIT_STRING,
+} BUILD_INFO_TYPE;
+
+static struct {
+ BUILD_INFO_CATEGORY category;
+ BUILD_INFO_TYPE type;
+ const char *analytics;
+ const char *print;
+ const char *json;
+ bool status;
+ const char *value;
+} BUILD_INFO[] = {
+ [BIB_PACKAGING_NETDATA_VERSION] = {
+ .category = BIC_PACKAGING,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Netdata Version",
+ .json = "version",
+ .value = "unknown",
+ },
+ [BIB_PACKAGING_INSTALL_TYPE] = {
+ .category = BIC_PACKAGING,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Installation Type",
+ .json = "type",
+ .value = "unknown",
+ },
+ [BIB_PACKAGING_ARCHITECTURE] = {
+ .category = BIC_PACKAGING,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Package Architecture",
+ .json = "arch",
+ .value = "unknown",
+ },
+ [BIB_PACKAGING_DISTRO] = {
+ .category = BIC_PACKAGING,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Package Distro",
+ .json = "distro",
+ .value = "unknown",
+ },
+ [BIB_PACKAGING_CONFIGURE_OPTIONS] = {
+ .category = BIC_PACKAGING,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Configure Options",
+ .json = "configure",
+ .value = "unknown",
+ },
+ [BIB_DIR_USER_CONFIG] = {
+ .category = BIC_DIRECTORIES,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "User Configurations",
+ .json = "user_config",
+ .value = CONFIG_DIR,
+ },
+ [BIB_DIR_STOCK_CONFIG] = {
+ .category = BIC_DIRECTORIES,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Stock Configurations",
+ .json = "stock_config",
+ .value = LIBCONFIG_DIR,
+ },
+ [BIB_DIR_CACHE] = {
+ .category = BIC_DIRECTORIES,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Ephemeral Databases (metrics data, metadata)",
+ .json = "ephemeral_db",
+ .value = CACHE_DIR,
+ },
+ [BIB_DIR_LIB] = {
+ .category = BIC_DIRECTORIES,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Permanent Databases",
+ .json = "permanent_db",
+ .value = VARLIB_DIR,
+ },
+ [BIB_DIR_PLUGINS] = {
+ .category = BIC_DIRECTORIES,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Plugins",
+ .json = "plugins",
+ .value = PLUGINS_DIR,
+ },
+ [BIB_DIR_WEB] = {
+ .category = BIC_DIRECTORIES,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Static Web Files",
+ .json = "web",
+ .value = WEB_DIR,
+ },
+ [BIB_DIR_LOG] = {
+ .category = BIC_DIRECTORIES,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Log Files",
+ .json = "logs",
+ .value = LOG_DIR,
+ },
+ [BIB_DIR_LOCK] = {
+ .category = BIC_DIRECTORIES,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Lock Files",
+ .json = "locks",
+ .value = VARLIB_DIR "/lock",
+ },
+ [BIB_DIR_HOME] = {
+ .category = BIC_DIRECTORIES,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Home",
+ .json = "home",
+ .value = VARLIB_DIR,
+ },
+ [BIB_OS_KERNEL_NAME] = {
+ .category = BIC_OPERATING_SYSTEM,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Kernel",
+ .json = "kernel",
+ .value = "unknown",
+ },
+ [BIB_OS_KERNEL_VERSION] = {
+ .category = BIC_OPERATING_SYSTEM,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Kernel Version",
+ .json = "kernel_version",
+ .value = "unknown",
+ },
+ [BIB_OS_NAME] = {
+ .category = BIC_OPERATING_SYSTEM,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Operating System",
+ .json = "os",
+ .value = "unknown",
+ },
+ [BIB_OS_ID] = {
+ .category = BIC_OPERATING_SYSTEM,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Operating System ID",
+ .json = "id",
+ .value = "unknown",
+ },
+ [BIB_OS_ID_LIKE] = {
+ .category = BIC_OPERATING_SYSTEM,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Operating System ID Like",
+ .json = "id_like",
+ .value = "unknown",
+ },
+ [BIB_OS_VERSION] = {
+ .category = BIC_OPERATING_SYSTEM,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Operating System Version",
+ .json = "version",
+ .value = "unknown",
+ },
+ [BIB_OS_VERSION_ID] = {
+ .category = BIC_OPERATING_SYSTEM,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Operating System Version ID",
+ .json = "version_id",
+ .value = "unknown",
+ },
+ [BIB_OS_DETECTION] = {
+ .category = BIC_OPERATING_SYSTEM,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Detection",
+ .json = "detection",
+ .value = "unknown",
+ },
+ [BIB_HW_CPU_CORES] = {
+ .category = BIC_HARDWARE,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "CPU Cores",
+ .json = "cpu_cores",
+ .value = "unknown",
+ },
+ [BIB_HW_CPU_FREQUENCY] = {
+ .category = BIC_HARDWARE,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "CPU Frequency",
+ .json = "cpu_frequency",
+ .value = "unknown",
+ },
+ [BIB_HW_RAM_SIZE] = {
+ .category = BIC_HARDWARE,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "CPU Architecture",
+ .json = "cpu_architecture",
+ .value = "unknown",
+ },
+ [BIB_HW_DISK_SPACE] = {
+ .category = BIC_HARDWARE,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "RAM Bytes",
+ .json = "ram",
+ .value = "unknown",
+ },
+ [BIB_HW_ARCHITECTURE] = {
+ .category = BIC_HARDWARE,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Disk Capacity",
+ .json = "disk",
+ .value = "unknown",
+ },
+ [BIB_HW_VIRTUALIZATION] = {
+ .category = BIC_HARDWARE,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Virtualization Technology",
+ .json = "virtualization",
+ .value = "unknown",
+ },
+ [BIB_HW_VIRTUALIZATION_DETECTION] = {
+ .category = BIC_HARDWARE,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Virtualization Detection",
+ .json = "virtualization_detection",
+ .value = "unknown",
+ },
+ [BIB_CONTAINER_NAME] = {
+ .category = BIC_CONTAINER,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Container",
+ .json = "container",
+ .value = "unknown",
+ },
+ [BIB_CONTAINER_DETECTION] = {
+ .category = BIC_CONTAINER,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Container Detection",
+ .json = "container_detection",
+ .value = "unknown",
+ },
+ [BIB_CONTAINER_ORCHESTRATOR] = {
+ .category = BIC_CONTAINER,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Container Orchestrator",
+ .json = "orchestrator",
+ .value = "unknown",
+ },
+ [BIB_CONTAINER_OS_NAME] = {
+ .category = BIC_CONTAINER,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Container Operating System",
+ .json = "os",
+ .value = "unknown",
+ },
+ [BIB_CONTAINER_OS_ID] = {
+ .category = BIC_CONTAINER,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Container Operating System ID",
+ .json = "os_id",
+ .value = "unknown",
+ },
+ [BIB_CONTAINER_OS_ID_LIKE] = {
+ .category = BIC_CONTAINER,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Container Operating System ID Like",
+ .json = "os_id_like",
+ .value = "unknown",
+ },
+ [BIB_CONTAINER_OS_VERSION] = {
+ .category = BIC_CONTAINER,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Container Operating System Version",
+ .json = "version",
+ .value = "unknown",
+ },
+ [BIB_CONTAINER_OS_VERSION_ID] = {
+ .category = BIC_CONTAINER,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Container Operating System Version ID",
+ .json = "version_id",
+ .value = "unknown",
+ },
+ [BIB_CONTAINER_OS_DETECTION] = {
+ .category = BIC_CONTAINER,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Container Operating System Detection",
+ .json = "detection",
+ .value = "unknown",
+ },
+ [BIB_FEATURE_BUILT_FOR] = {
+ .category = BIC_FEATURE,
+ .type = BIT_STRING,
+ .analytics = NULL,
+ .print = "Built For",
+ .json = "built-for",
+ .value = "unknown",
+ },
+ [BIB_FEATURE_CLOUD] = {
+ .category = BIC_FEATURE,
+ .type = BIT_BOOLEAN,
+ .analytics = "Netdata Cloud",
+ .print = "Netdata Cloud",
+ .json = "cloud",
+ .value = NULL,
+ },
+ [BIB_FEATURE_HEALTH] = {
+ .category = BIC_FEATURE,
+ .type = BIT_BOOLEAN,
+ .analytics = NULL,
+ .print = "Health (trigger alerts and send notifications)",
+ .json = "health",
+ .value = NULL,
+ },
+ [BIB_FEATURE_STREAMING] = {
+ .category = BIC_FEATURE,
+ .type = BIT_BOOLEAN,
+ .analytics = NULL,
+ .print = "Streaming (stream metrics to parent Netdata servers)",
+ .json = "streaming",
+ .value = NULL,
+ },
+ [BIB_FEATURE_REPLICATION] = {
+ .category = BIC_FEATURE,
+ .type = BIT_BOOLEAN,
+ .analytics = NULL,
+ .print = "Replication (fill the gaps of parent Netdata servers)",
+ .json = "replication",
+ .value = NULL,
+ },
+ [BIB_FEATURE_STREAMING_COMPRESSION] = {
+ .category = BIC_FEATURE,
+ .type = BIT_BOOLEAN,
+ .analytics = "Stream Compression",
+ .print = "Streaming and Replication Compression",
+ .json = "stream-compression",
+ .value = "none",
+ },
+ [BIB_FEATURE_CONTEXTS] = {
+ .category = BIC_FEATURE,
+ .type = BIT_BOOLEAN,
+ .analytics = NULL,
+ .print = "Contexts (index all active and archived metrics)",
+ .json = "contexts",
+ .value = NULL,
+ },
+ [BIB_FEATURE_TIERING] = {
+ .category = BIC_FEATURE,
+ .type = BIT_BOOLEAN,
+ .analytics = NULL,
+ .print = "Tiering (multiple dbs with different metrics resolution)",
+ .json = "tiering",
+ .value = TOSTRING(RRD_STORAGE_TIERS),
+ },
+ [BIB_FEATURE_ML] = {
+ .category = BIC_FEATURE,
+ .type = BIT_BOOLEAN,
+ .analytics = "Machine Learning",
+ .print = "Machine Learning",
+ .json = "ml",
+ .value = NULL,
+ },
+ [BIB_DB_DBENGINE] = {
+ .category = BIC_DATABASE,
+ .type = BIT_BOOLEAN,
+ .analytics = "dbengine",
+ .print = "dbengine",
+ .json = "dbengine",
+ .value = NULL,
+ },
+ [BIB_DB_ALLOC] = {
+ .category = BIC_DATABASE,
+ .type = BIT_BOOLEAN,
+ .analytics = NULL,
+ .print = "alloc",
+ .json = "alloc",
+ .value = NULL,
+ },
+ [BIB_DB_RAM] = {
+ .category = BIC_DATABASE,
+ .type = BIT_BOOLEAN,
+ .analytics = NULL,
+ .print = "ram",
+ .json = "ram",
+ .value = NULL,
+ },
+ [BIB_DB_MAP] = {
+ .category = BIC_DATABASE,
+ .type = BIT_BOOLEAN,
+ .analytics = NULL,
+ .print = "map",
+ .json = "map",
+ .value = NULL,
+ },
+ [BIB_DB_SAVE] = {
+ .category = BIC_DATABASE,
+ .type = BIT_BOOLEAN,
+ .analytics = NULL,
+ .print = "save",
+ .json = "save",
+ .value = NULL,
+ },
+ [BIB_DB_NONE] = {
+ .category = BIC_DATABASE,
+ .type = BIT_BOOLEAN,
+ .analytics = NULL,
+ .print = "none",
+ .json = "none",
+ .value = NULL,
+ },
+ [BIB_CONNECTIVITY_ACLK] = {
+ .category = BIC_CONNECTIVITY,
+ .type = BIT_BOOLEAN,
+ .analytics = NULL,
+ .print = "ACLK (Agent-Cloud Link: MQTT over WebSockets over TLS)",
+ .json = "aclk",
+ .value = NULL,
+ },
+ [BIB_CONNECTIVITY_HTTPD_STATIC] = {
+ .category = BIC_CONNECTIVITY,
+ .type = BIT_BOOLEAN,
+ .analytics = NULL,
+ .print = "static (Netdata internal web server)",
+ .json = "static",
+ .value = NULL,
+ },
+ [BIB_CONNECTIVITY_HTTPD_H2O] = {
+ .category = BIC_CONNECTIVITY,
+ .type = BIT_BOOLEAN,
+ .analytics = NULL,
+ .print = "h2o (web server)",
+ .json = "h2o",
+ .value = NULL,
+ },
+ [BIB_CONNECTIVITY_WEBRTC] = {
+ .category = BIC_CONNECTIVITY,
+ .type = BIT_BOOLEAN,
+ .analytics = NULL,
+ .print = "WebRTC (experimental)",
+ .json = "webrtc",
+ .value = NULL,
+ },
+ [BIB_CONNECTIVITY_NATIVE_HTTPS] = {
+ .category = BIC_CONNECTIVITY,
+ .type = BIT_BOOLEAN,
+ .analytics = "Native HTTPS",
+ .print = "Native HTTPS (TLS Support)",
+ .json = "native-https",
+ .value = NULL,
+ },
+ [BIB_CONNECTIVITY_TLS_HOST_VERIFY] = {
+ .category = BIC_CONNECTIVITY,
+ .type = BIT_BOOLEAN,
+ .analytics = "TLS Host Verification",
+ .print = "TLS Host Verification",
+ .json = "tls-host-verify",
+ .value = NULL,
+ },
+ [BIB_LIB_LZ4] = {
+ .category = BIC_LIBS,
+ .type = BIT_BOOLEAN,
+ .analytics = NULL,
+ .print = "LZ4 (extremely fast lossless compression algorithm)",
+ .json = "lz4",
+ .value = NULL,
+ },
+ [BIB_LIB_ZLIB] = {
+ .category = BIC_LIBS,
+ .type = BIT_BOOLEAN,
+ .analytics = "zlib",
+ .print = "zlib (lossless data-compression library)",
+ .json = "zlib",
+ .value = NULL,
+ },
+ [BIB_LIB_JUDY] = {
+ .category = BIC_LIBS,
+ .type = BIT_BOOLEAN,
+ .analytics = NULL,
+ .print = "Judy (high-performance dynamic arrays and hashtables)",
+ .json = "judy",
+ .status = true,
+ .value = "bundled",
+ },
+ [BIB_LIB_DLIB] = {
+ .category = BIC_LIBS,
+ .type = BIT_BOOLEAN,
+ .analytics = NULL,
+ .print = "dlib (robust machine learning toolkit)",
+ .json = "dlib",
+ .value = NULL,
+ },
+ [BIB_LIB_PROTOBUF] = {
+ .category = BIC_LIBS,
+ .type = BIT_BOOLEAN,
+ .analytics = "protobuf",
+ .print = "protobuf (platform-neutral data serialization protocol)",
+ .json = "protobuf",
+ .value = NULL,
+ },
+ [BIB_LIB_OPENSSL] = {
+ .category = BIC_LIBS,
+ .type = BIT_BOOLEAN,
+ .analytics = NULL,
+ .print = "OpenSSL (cryptography)",
+ .json = "openssl",
+ .value = NULL,
+ },
+ [BIB_LIB_LIBDATACHANNEL] = {
+ .category = BIC_LIBS,
+ .type = BIT_BOOLEAN,
+ .analytics = NULL,
+ .print = "libdatachannel (stand-alone WebRTC data channels)",
+ .json = "libdatachannel",
+ .value = NULL,
+ },
+ [BIB_LIB_JSONC] = {
+ .category = BIC_LIBS,
+ .type = BIT_BOOLEAN,
+ .analytics = "JSON-C",
+ .print = "JSON-C (lightweight JSON manipulation)",
+ .json = "jsonc",
+ .value = NULL,
+ },
+ [BIB_LIB_LIBCAP] = {
+ .category = BIC_LIBS,
+ .type = BIT_BOOLEAN,
+ .analytics = "libcap",
+ .print = "libcap (Linux capabilities system operations)",
+ .json = "libcap",
+ .value = NULL,
+ },
+ [BIB_LIB_LIBCRYPTO] = {
+ .category = BIC_LIBS,
+ .type = BIT_BOOLEAN,
+ .analytics = "libcrypto",
+ .print = "libcrypto (cryptographic functions)",
+ .json = "libcrypto",
+ .value = NULL,
+ },
+ [BIB_LIB_LIBM] = {
+ .category = BIC_LIBS,
+ .type = BIT_BOOLEAN,
+ .analytics = "libm",
+ .print = "libm (mathematical functions)",
+ .json = "libm",
+ .value = NULL,
+ },
+ [BIB_LIB_JEMALLOC] = {
+ .category = BIC_LIBS,
+ .type = BIT_BOOLEAN,
+ .analytics = "jemalloc",
+ .print = "jemalloc",
+ .json = "jemalloc",
+ .value = NULL,
+ },
+ [BIB_LIB_TCMALLOC] = {
+ .category = BIC_LIBS,
+ .type = BIT_BOOLEAN,
+ .analytics = "tcmalloc",
+ .print = "TCMalloc",
+ .json = "tcmalloc",
+ .value = NULL,
+ },
+ [BIB_PLUGIN_APPS] = {
+ .category = BIC_PLUGINS,
+ .type = BIT_BOOLEAN,
+ .analytics = "apps",
+ .print = "apps (monitor processes)",
+ .json = "apps",
+ .value = NULL,
+ },
+ [BIB_PLUGIN_LINUX_CGROUPS] = {
+ .category = BIC_PLUGINS,
+ .type = BIT_BOOLEAN,
+ .analytics = NULL,
+ .print = "cgroups (monitor containers and VMs)",
+ .json = "cgroups",
+ .value = NULL,
+ },
+ [BIB_PLUGIN_LINUX_CGROUP_NETWORK] = {
+ .category = BIC_PLUGINS,
+ .type = BIT_BOOLEAN,
+ .analytics = "cgroup Network Tracking",
+ .print = "cgroup-network (associate interfaces to CGROUPS)",
+ .json = "cgroup-network",
+ .value = NULL,
+ },
+ [BIB_PLUGIN_LINUX_PROC] = {
+ .category = BIC_PLUGINS,
+ .type = BIT_BOOLEAN,
+ .analytics = NULL,
+ .print = "proc (monitor Linux systems)",
+ .json = "proc",
+ .value = NULL,
+ },
+ [BIB_PLUGIN_LINUX_TC] = {
+ .category = BIC_PLUGINS,
+ .type = BIT_BOOLEAN,
+ .analytics = NULL,
+ .print = "tc (monitor Linux network QoS)",
+ .json = "tc",
+ .value = NULL,
+ },
+ [BIB_PLUGIN_LINUX_DISKSPACE] = {
+ .category = BIC_PLUGINS,
+ .type = BIT_BOOLEAN,
+ .analytics = NULL,
+ .print = "diskspace (monitor Linux mount points)",
+ .json = "diskspace",
+ .value = NULL,
+ },
+ [BIB_PLUGIN_FREEBSD] = {
+ .category = BIC_PLUGINS,
+ .type = BIT_BOOLEAN,
+ .analytics = NULL,
+ .print = "freebsd (monitor FreeBSD systems)",
+ .json = "freebsd",
+ .value = NULL,
+ },
+ [BIB_PLUGIN_MACOS] = {
+ .category = BIC_PLUGINS,
+ .type = BIT_BOOLEAN,
+ .analytics = NULL,
+ .print = "macos (monitor MacOS systems)",
+ .json = "macos",
+ .value = NULL,
+ },
+ [BIB_PLUGIN_STATSD] = {
+ .category = BIC_PLUGINS,
+ .type = BIT_BOOLEAN,
+ .analytics = NULL,
+ .print = "statsd (collect custom application metrics)",
+ .json = "statsd",
+ .value = NULL,
+ },
+ [BIB_PLUGIN_TIMEX] = {
+ .category = BIC_PLUGINS,
+ .type = BIT_BOOLEAN,
+ .analytics = NULL,
+ .print = "timex (check system clock synchronization)",
+ .json = "timex",
+ .value = NULL,
+ },
+ [BIB_PLUGIN_IDLEJITTER] = {
+ .category = BIC_PLUGINS,
+ .type = BIT_BOOLEAN,
+ .analytics = NULL,
+ .print = "idlejitter (check system latency and jitter)",
+ .json = "idlejitter",
+ .value = NULL,
+ },
+ [BIB_PLUGIN_BASH] = {
+ .category = BIC_PLUGINS,
+ .type = BIT_BOOLEAN,
+ .analytics = NULL,
+ .print = "bash (support shell data collection jobs - charts.d)",
+ .json = "charts.d",
+ .value = NULL,
+ },
+ [BIB_PLUGIN_DEBUGFS] = {
+ .category = BIC_PLUGINS,
+ .type = BIT_BOOLEAN,
+ .analytics = "debugfs",
+ .print = "debugfs (kernel debugging metrics)",
+ .json = "debugfs",
+ .value = NULL,
+ },
+ [BIB_PLUGIN_CUPS] = {
+ .category = BIC_PLUGINS,
+ .type = BIT_BOOLEAN,
+ .analytics = "CUPS",
+ .print = "cups (monitor printers and print jobs)",
+ .json = "cups",
+ .value = NULL,
+ },
+ [BIB_PLUGIN_EBPF] = {
+ .category = BIC_PLUGINS,
+ .type = BIT_BOOLEAN,
+ .analytics = "EBPF",
+ .print = "ebpf (monitor system calls)",
+ .json = "ebp