@cryptotaxi247 / netdata-1 / commits / 7ce3f106b

add the number of cpu cores to the status file (#20101)

Costa Tsaousis committed Apr 9, 2025 at 17:37 UTC 7ce3f106b6a5e49707b2c161c9d197d3f9b140d6
2 files changed +11
src/daemon/status-file.c
+10
@@ -212,6 +212,8 @@ static void daemon_status_file_to_json(BUFFER *wb, DAEMON_STATUS_FILE *ds) {
212 buffer_json_member_add_string_or_empty(wb, "cloud_instance", ds->cloud_instance_type);
213 buffer_json_member_add_string_or_empty(wb, "cloud_region", ds->cloud_instance_region);
214 }
215 +
216 + buffer_json_member_add_uint64(wb, "system_cpus", ds->system_cpus);
217
218 buffer_json_member_add_object(wb, "boot");
219 {
@@ -477,6 +479,7 @@ static bool daemon_status_file_from_json(json_object *jobj, void *data, BUFFER *
479 JSONC_PARSE_TXT2CHAR_OR_ERROR_AND_RETURN(jobj, path, "virtualization", ds->virtualization, error, required_v1);
480 JSONC_PARSE_TXT2CHAR_OR_ERROR_AND_RETURN(jobj, path, "container", ds->container, error, required_v1);
481 JSONC_PARSE_UINT64_OR_ERROR_AND_RETURN(jobj, path, "uptime", ds->boottime, error, required_v1);
482 + JSONC_PARSE_UINT64_OR_ERROR_AND_RETURN(jobj, path, "system_cpus", ds->system_cpus, error, required_v27);
483
484 JSONC_PARSE_SUBOBJECT(jobj, path, "boot", error, required_v1, {
485 JSONC_PARSE_TXT2UUID_OR_ERROR_AND_RETURN(jobj, path, "id", ds->boot_id.uuid, error, required_v1);
@@ -792,6 +795,7 @@ static void daemon_status_file_refresh(DAEMON_STATUS status) {
795
796 session_status.memory = os_system_memory(true);
797 session_status.var_cache = os_disk_space(netdata_configured_cache_dir);
798 + session_status.system_cpus = os_get_system_cpus();
799
800 // Collect metrics metadata statistics
801 session_status.metrics_metadata = rrdstats_metadata_collect();
@@ -1051,8 +1055,14 @@ void daemon_status_file_init(void) {
1055 mallocz_register_out_of_memory_cb(daemon_status_file_out_of_memory);
1056
1057 status_file_io_load(STATUS_FILENAME, status_file_load_and_parse, &last_session_status);
1058 +
1059 + // fill missing information on older versions of the status file
1060 +
1061 if(last_session_status.v <= 26)
1062 fill_dmi_info(&last_session_status);
1063 +
1064 + if(last_session_status.v <= 27)
1065 + last_session_status.system_cpus = os_get_system_cpus();
1066
1067 daemon_status_file_migrate_once();
1068 }
src/daemon/status-file.h
+1
@@ -99,6 +99,7 @@ typedef struct daemon_status_file {
99 char cloud_instance_type[32];
100 char cloud_instance_region[32];
101 bool read_system_info;
102 + size_t system_cpus;
103
104 DMI_INFO hw;
105