|
@@ -88,13 +88,20 @@ static inline void rrdhost_init_os(RRDHOST *host, const char *os) {
|
|
|
freez(old);
|
|
|
}
|
|
|
|
|
|
-static inline void rrdhost_init_timezone(RRDHOST *host, const char *timezone) {
|
|
|
- if(host->timezone && timezone && !strcmp(host->timezone, timezone))
|
|
|
+static inline void rrdhost_init_timezone(RRDHOST *host, const char *timezone, const char *abbrev_timezone, int32_t utc_offset) {
|
|
|
+ if (host->timezone && timezone && !strcmp(host->timezone, timezone) && host->abbrev_timezone && abbrev_timezone &&
|
|
|
+ !strcmp(host->abbrev_timezone, abbrev_timezone) && host->utc_offset == utc_offset)
|
|
|
return;
|
|
|
|
|
|
void *old = (void *)host->timezone;
|
|
|
host->timezone = strdupz((timezone && *timezone)?timezone:"unknown");
|
|
|
freez(old);
|
|
|
+
|
|
|
+ old = (void *)host->abbrev_timezone;
|
|
|
+ host->abbrev_timezone = strdupz((abbrev_timezone && *abbrev_timezone) ? abbrev_timezone : "UTC");
|
|
|
+ freez(old);
|
|
|
+
|
|
|
+ host->utc_offset = utc_offset;
|
|
|
}
|
|
|
|
|
|
static inline void rrdhost_init_machine_guid(RRDHOST *host, const char *machine_guid) {
|
|
@@ -105,7 +112,8 @@ static inline void rrdhost_init_machine_guid(RRDHOST *host, const char *machine_
|
|
|
|
|
|
void set_host_properties(RRDHOST *host, int update_every, RRD_MEMORY_MODE memory_mode, const char *hostname,
|
|
|
const char *registry_hostname, const char *guid, const char *os, const char *tags,
|
|
|
- const char *tzone, const char *program_name, const char *program_version)
|
|
|
+ const char *tzone, const char *abbrev_tzone, int32_t utc_offset, const char *program_name,
|
|
|
+ const char *program_version)
|
|
|
{
|
|
|
|
|
|
host->rrd_update_every = update_every;
|
|
@@ -116,7 +124,7 @@ void set_host_properties(RRDHOST *host, int update_every, RRD_MEMORY_MODE memory
|
|
|
rrdhost_init_machine_guid(host, guid);
|
|
|
|
|
|
rrdhost_init_os(host, os);
|
|
|
- rrdhost_init_timezone(host, tzone);
|
|
|
+ rrdhost_init_timezone(host, tzone, abbrev_tzone, utc_offset);
|
|
|
rrdhost_init_tags(host, tags);
|
|
|
|
|
|
host->program_name = strdupz((program_name && *program_name) ? program_name : "unknown");
|
|
@@ -133,6 +141,8 @@ RRDHOST *rrdhost_create(const char *hostname,
|
|
|
const char *guid,
|
|
|
const char *os,
|
|
|
const char *timezone,
|
|
|
+ const char *abbrev_timezone,
|
|
|
+ int32_t utc_offset,
|
|
|
const char *tags,
|
|
|
const char *program_name,
|
|
|
const char *program_version,
|
|
@@ -160,7 +170,7 @@ RRDHOST *rrdhost_create(const char *hostname,
|
|
|
RRDHOST *host = callocz(1, sizeof(RRDHOST));
|
|
|
|
|
|
set_host_properties(host, (update_every > 0)?update_every:1, memory_mode, hostname, registry_hostname, guid, os,
|
|
|
- tags, timezone, program_name, program_version);
|
|
|
+ tags, timezone, abbrev_timezone, utc_offset, program_name, program_version);
|
|
|
|
|
|
host->rrd_history_entries = align_entries_to_pagesize(memory_mode, entries);
|
|
|
host->health_enabled = ((memory_mode == RRD_MEMORY_MODE_NONE)) ? 0 : health_enabled;
|
|
@@ -408,6 +418,8 @@ void rrdhost_update(RRDHOST *host
|
|
|
, const char *guid
|
|
|
, const char *os
|
|
|
, const char *timezone
|
|
|
+ , const char *abbrev_timezone
|
|
|
+ , int32_t utc_offset
|
|
|
, const char *tags
|
|
|
, const char *program_name
|
|
|
, const char *program_version
|
|
@@ -435,7 +447,7 @@ void rrdhost_update(RRDHOST *host
|
|
|
host->system_info = system_info;
|
|
|
|
|
|
rrdhost_init_os(host, os);
|
|
|
- rrdhost_init_timezone(host, timezone);
|
|
|
+ rrdhost_init_timezone(host, timezone, abbrev_timezone, utc_offset);
|
|
|
|
|
|
freez(host->registry_hostname);
|
|
|
host->registry_hostname = strdupz((registry_hostname && *registry_hostname)?registry_hostname:hostname);
|
|
@@ -510,6 +522,8 @@ RRDHOST *rrdhost_find_or_create(
|
|
|
, const char *guid
|
|
|
, const char *os
|
|
|
, const char *timezone
|
|
|
+ , const char *abbrev_timezone
|
|
|
+ , int32_t utc_offset
|
|
|
, const char *tags
|
|
|
, const char *program_name
|
|
|
, const char *program_version
|
|
@@ -541,6 +555,8 @@ RRDHOST *rrdhost_find_or_create(
|
|
|
, guid
|
|
|
, os
|
|
|
, timezone
|
|
|
+ , abbrev_timezone
|
|
|
+ , utc_offset
|
|
|
, tags
|
|
|
, program_name
|
|
|
, program_version
|
|
@@ -563,6 +579,8 @@ RRDHOST *rrdhost_find_or_create(
|
|
|
, guid
|
|
|
, os
|
|
|
, timezone
|
|
|
+ , abbrev_timezone
|
|
|
+ , utc_offset
|
|
|
, tags
|
|
|
, program_name
|
|
|
, program_version
|
|
@@ -654,6 +672,8 @@ int rrd_init(char *hostname, struct rrdhost_system_info *system_info) {
|
|
|
, registry_get_this_machine_guid()
|
|
|
, os_type
|
|
|
, netdata_configured_timezone
|
|
|
+ , netdata_configured_abbrev_timezone
|
|
|
+ , netdata_configured_utc_offset
|
|
|
, config_get(CONFIG_SECTION_BACKEND, "host tags", "")
|
|
|
, program_name
|
|
|
, program_version
|
|
@@ -883,6 +903,7 @@ void rrdhost_free(RRDHOST *host) {
|
|
|
free_label_list(host->labels.head);
|
|
|
freez((void *)host->os);
|
|
|
freez((void *)host->timezone);
|
|
|
+ freez((void *)host->abbrev_timezone);
|
|
|
freez(host->program_version);
|
|
|
freez(host->program_name);
|
|
|
rrdhost_system_info_free(host->system_info);
|