summaryrefslogtreecommitdiffstats
path: root/database
diff options
context:
space:
mode:
authorEmmanuel Vasilakis <mrzammler@mm.st>2021-05-31 16:29:47 +0300
committerGitHub <noreply@github.com>2021-05-31 16:29:47 +0300
commit9f40c4b12c1047c3489ba07dcf1c1e9b647d1835 (patch)
tree2c9b9aaa1bd19b9a7e5f84e7b4488345039190ab /database
parent5bce2d9a8196a90e9d3972b90934d79bad4bb8e1 (diff)
Provide UTC offset in seconds and edit health config command (#11051)
* add abbreviated timezone, utc offset in seconds, and edit health alarm command rebased * formating * use str2i instead of atoi
Diffstat (limited to 'database')
-rw-r--r--database/rrd.h18
-rw-r--r--database/rrdhost.c33
-rw-r--r--database/sqlite/sqlite_functions.c2
3 files changed, 41 insertions, 12 deletions
diff --git a/database/rrd.h b/database/rrd.h
index 985d4032ec..10bc686b5e 100644
--- a/database/rrd.h
+++ b/database/rrd.h
@@ -764,10 +764,14 @@ struct rrdhost {
const char *os; // the O/S type of the host
const char *tags; // tags for this host
const char *timezone; // the timezone of the host
+
#ifdef ENABLE_ACLK
long obsolete_count;
#endif
+ const char *abbrev_timezone; // the abbriviated timezone of the host
+ int32_t utc_offset; // the offset in seconds from utc
+
RRDHOST_FLAGS flags; // flags about this RRDHOST
RRDHOST_FLAGS *exporting_flags; // array of flags for exporting connector instances
@@ -938,6 +942,8 @@ extern 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
@@ -958,6 +964,8 @@ extern 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
@@ -1325,17 +1333,17 @@ extern void rrdset_delete_obsolete_dimensions(RRDSET *st);
extern void rrdhost_cleanup_obsolete_charts(RRDHOST *host);
extern RRDHOST *rrdhost_create(
const char *hostname, const char *registry_hostname, const char *guid, const char *os, const char *timezone,
- const char *tags, const char *program_name, const char *program_version, int update_every, long entries,
- RRD_MEMORY_MODE memory_mode, unsigned int health_enabled, unsigned int rrdpush_enabled, char *rrdpush_destination,
- char *rrdpush_api_key, char *rrdpush_send_charts_matching, struct rrdhost_system_info *system_info,
+ const char *abbrev_timezone, int32_t utc_offset,const char *tags, const char *program_name, const char *program_version,
+ int update_every, long entries, RRD_MEMORY_MODE memory_mode, unsigned int health_enabled, unsigned int rrdpush_enabled,
+ char *rrdpush_destination, char *rrdpush_api_key, char *rrdpush_send_charts_matching, struct rrdhost_system_info *system_info,
int is_localhost); //TODO: Remove , int is_archived);
#endif /* NETDATA_RRD_INTERNALS */
extern 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 *guid, const char *os, const char *tags, const char *tzone, const char *abbrev_tzone, int32_t utc_offset,
+ const char *program_name, const char *program_version);
// ----------------------------------------------------------------------------
// RRD DB engine declarations
diff --git a/database/rrdhost.c b/database/rrdhost.c
index 5ce5366d23..cf5bcbd15d 100644
--- a/database/rrdhost.c
+++ b/database/rrdhost.c
@@ -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);
diff --git a/database/sqlite/sqlite_functions.c b/database/sqlite/sqlite_functions.c
index 382ed8b025..46fce11fa3 100644
--- a/database/sqlite/sqlite_functions.c
+++ b/database/sqlite/sqlite_functions.c
@@ -984,7 +984,7 @@ RRDHOST *sql_create_host_by_uuid(char *hostname)
set_host_properties(host, sqlite3_column_int(res, 2), RRD_MEMORY_MODE_DBENGINE, hostname,
(char *) sqlite3_column_text(res, 1), (const char *) uuid_str,
(char *) sqlite3_column_text(res, 3), (char *) sqlite3_column_text(res, 5),
- (char *) sqlite3_column_text(res, 4), NULL, NULL);
+ (char *) sqlite3_column_text(res, 4), NULL, 0, NULL, NULL);
uuid_copy(host->host_uuid, *((uuid_t *) sqlite3_column_blob(res, 0)));