diff options
Diffstat (limited to 'src/rrdhost.c')
-rw-r--r-- | src/rrdhost.c | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/src/rrdhost.c b/src/rrdhost.c index 831cc46c..e62e61ae 100644 --- a/src/rrdhost.c +++ b/src/rrdhost.c @@ -111,6 +111,8 @@ RRDHOST *rrdhost_create(const char *hostname, 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, @@ -146,6 +148,9 @@ RRDHOST *rrdhost_create(const char *hostname, rrdhost_init_os(host, os); rrdhost_init_timezone(host, timezone); rrdhost_init_tags(host, tags); + + host->program_name = strdupz((program_name && *program_name)?program_name:"unknown"); + host->program_version = strdupz((program_version && *program_version)?program_version:"unknown"); host->registry_hostname = strdupz((registry_hostname && *registry_hostname)?registry_hostname:hostname); avl_init_lock(&(host->rrdset_root_index), rrdset_compare); @@ -265,6 +270,8 @@ RRDHOST *rrdhost_create(const char *hostname, ", os '%s'" ", timezone '%s'" ", tags '%s'" + ", program_name '%s'" + ", program_version '%s'" ", update every %d" ", memory mode %s" ", history entries %ld" @@ -282,6 +289,8 @@ RRDHOST *rrdhost_create(const char *hostname, , host->os , host->timezone , (host->tags)?host->tags:"" + , host->program_name + , host->program_version , host->rrd_update_every , rrd_memory_mode_name(host->rrd_memory_mode) , host->rrd_history_entries @@ -309,6 +318,8 @@ RRDHOST *rrdhost_find_or_create( , const char *os , const char *timezone , const char *tags + , const char *program_name + , const char *program_version , int update_every , long history , RRD_MEMORY_MODE mode @@ -329,6 +340,8 @@ RRDHOST *rrdhost_find_or_create( , os , timezone , tags + , program_name + , program_version , update_every , history , mode @@ -342,13 +355,28 @@ RRDHOST *rrdhost_find_or_create( else { host->health_enabled = health_enabled; - if(strcmp(host->hostname, hostname)) { + if(strcmp(host->hostname, hostname) != 0) { + info("Host '%s' has been renamed to '%s'. If this is not intentional it may mean multiple hosts are using the same machine_guid.", host->hostname, hostname); char *t = host->hostname; host->hostname = strdupz(hostname); host->hash_hostname = simple_hash(host->hostname); freez(t); } + if(strcmp(host->program_name, program_name) != 0) { + info("Host '%s' switched program name from '%s' to '%s'", host->hostname, host->program_name, program_name); + char *t = host->program_name; + host->program_name = strdupz(program_name); + freez(t); + } + + if(strcmp(host->program_version, program_version) != 0) { + info("Host '%s' switched program version from '%s' to '%s'", host->hostname, host->program_version, program_version); + char *t = host->program_version; + host->program_version = strdupz(program_version); + freez(t); + } + if(host->rrd_update_every != update_every) error("Host '%s' has an update frequency of %d seconds, but the wanted one is %d seconds. Restart netdata here to apply the new settings.", host->hostname, host->rrd_update_every, update_every); @@ -407,6 +435,9 @@ restart_after_removal: void rrd_init(char *hostname) { rrdset_free_obsolete_time = config_get_number(CONFIG_SECTION_GLOBAL, "cleanup obsolete charts after seconds", rrdset_free_obsolete_time); + gap_when_lost_iterations_above = (int)config_get_number(CONFIG_SECTION_GLOBAL, "gap when lost iterations above", gap_when_lost_iterations_above); + if(gap_when_lost_iterations_above < 1) + gap_when_lost_iterations_above = 1; health_init(); registry_init(); @@ -421,6 +452,8 @@ void rrd_init(char *hostname) { , os_type , netdata_configured_timezone , config_get(CONFIG_SECTION_BACKEND, "host tags", "") + , program_name + , program_version , default_rrd_update_every , default_rrd_history_entries , default_rrd_memory_mode @@ -530,6 +563,8 @@ void rrdhost_free(RRDHOST *host) { freez((void *)host->tags); freez((void *)host->os); freez((void *)host->timezone); + freez(host->program_version); + freez(host->program_name); freez(host->cache_dir); freez(host->varlib_dir); freez(host->rrdpush_send_api_key); |