diff options
author | Emmanuel Vasilakis <mrzammler@mm.st> | 2023-10-06 00:57:53 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-06 00:57:53 +0300 |
commit | 9493fa868256c66478e5191658db5daa24e74336 (patch) | |
tree | 12ed429777c0f54f836493cb90f4774dcd9e8718 /database/sqlite | |
parent | c317e4d380413109708a8b86b93e16514f8148bc (diff) |
Remove family from alerts (#16025)
* remove loading and storing families from alert configs
* remove families from silencers
* remove from alarm log
* start remove from alarm-notify.sh.in
* fix test alarm
* rebase
* remove from api/v1/alarm_log
* remove from alert stream
* remove from config stream
* remove from more
* remove from swagger for health api
* revert md changes
* remove from health cmd api test
Diffstat (limited to 'database/sqlite')
-rw-r--r-- | database/sqlite/sqlite_aclk_alert.c | 84 | ||||
-rw-r--r-- | database/sqlite/sqlite_health.c | 134 |
2 files changed, 92 insertions, 126 deletions
diff --git a/database/sqlite/sqlite_aclk_alert.c b/database/sqlite/sqlite_aclk_alert.c index 5b74986432..d4b1d21748 100644 --- a/database/sqlite/sqlite_aclk_alert.c +++ b/database/sqlite/sqlite_aclk_alert.c @@ -273,7 +273,7 @@ void aclk_push_alert_event(struct aclk_sync_host_config *wc) sql, "select aa.sequence_id, hld.unique_id, hld.alarm_id, hl.config_hash_id, hld.updated_by_id, hld.when_key, " " hld.duration, hld.non_clear_duration, hld.flags, hld.exec_run_timestamp, hld.delay_up_to_timestamp, hl.name, " - " hl.chart, hl.family, hl.exec, hl.recipient, ha.source, hl.units, hld.info, hld.exec_code, hld.new_status, " + " hl.chart, hl.exec, hl.recipient, ha.source, hl.units, hld.info, hld.exec_code, hld.new_status, " " hld.old_status, hld.delay, hld.new_value, hld.old_value, hld.last_repeat, hl.chart_context, hld.transition_id, " " hld.alarm_event_id, hl.chart_name, hld.summary " " from health_log hl, aclk_alert_%s aa, alert_hash ha, health_log_detail hld " @@ -331,64 +331,52 @@ void aclk_push_alert_event(struct aclk_sync_host_config *wc) alarm_log.node_id = wc->node_id; alarm_log.claim_id = claim_id; - alarm_log.chart = strdupz((char *)sqlite3_column_text(res, 12)); alarm_log.name = strdupz((char *)sqlite3_column_text(res, 11)); - alarm_log.family = sqlite3_column_bytes(res, 13) > 0 ? strdupz((char *)sqlite3_column_text(res, 13)) : NULL; - - //alarm_log.batch_id = wc->alerts_batch_id; - //alarm_log.sequence_id = (uint64_t) sqlite3_column_int64(res, 0); alarm_log.when = (time_t) sqlite3_column_int64(res, 5); - alarm_log.config_hash = sqlite3_uuid_unparse_strdupz(res, 3); - alarm_log.utc_offset = wc->host->utc_offset; alarm_log.timezone = strdupz(rrdhost_abbrev_timezone(wc->host)); - alarm_log.exec_path = sqlite3_column_bytes(res, 14) > 0 ? strdupz((char *)sqlite3_column_text(res, 14)) : + alarm_log.exec_path = sqlite3_column_bytes(res, 13) > 0 ? strdupz((char *)sqlite3_column_text(res, 13)) : strdupz((char *)string2str(wc->host->health.health_default_exec)); + alarm_log.conf_source = sqlite3_column_bytes(res, 15) > 0 ? strdupz((char *)sqlite3_column_text(res, 15)) : strdupz(""); - alarm_log.conf_source = sqlite3_column_bytes(res, 16) > 0 ? strdupz((char *)sqlite3_column_text(res, 16)) : strdupz(""); - - char *edit_command = sqlite3_column_bytes(res, 16) > 0 ? - health_edit_command_from_source((char *)sqlite3_column_text(res, 16)) : + char *edit_command = sqlite3_column_bytes(res, 15) > 0 ? + health_edit_command_from_source((char *)sqlite3_column_text(res, 15)) : strdupz("UNKNOWN=0=UNKNOWN"); alarm_log.command = strdupz(edit_command); alarm_log.duration = (time_t) sqlite3_column_int64(res, 6); alarm_log.non_clear_duration = (time_t) sqlite3_column_int64(res, 7); - alarm_log.status = rrdcalc_status_to_proto_enum((RRDCALC_STATUS) sqlite3_column_int(res, 20)); - alarm_log.old_status = rrdcalc_status_to_proto_enum((RRDCALC_STATUS) sqlite3_column_int(res, 21)); - alarm_log.delay = (int) sqlite3_column_int(res, 22); + alarm_log.status = rrdcalc_status_to_proto_enum((RRDCALC_STATUS) sqlite3_column_int(res, 19)); + alarm_log.old_status = rrdcalc_status_to_proto_enum((RRDCALC_STATUS) sqlite3_column_int(res, 20)); + alarm_log.delay = (int) sqlite3_column_int(res, 21); alarm_log.delay_up_to_timestamp = (time_t) sqlite3_column_int64(res, 10); - alarm_log.last_repeat = (time_t) sqlite3_column_int64(res, 25); - + alarm_log.last_repeat = (time_t) sqlite3_column_int64(res, 24); alarm_log.silenced = ((sqlite3_column_int64(res, 8) & HEALTH_ENTRY_FLAG_SILENCED) || - (sqlite3_column_type(res, 15) != SQLITE_NULL && - !strncmp((char *)sqlite3_column_text(res, 15), "silent", 6))) ? + (sqlite3_column_type(res, 14) != SQLITE_NULL && + !strncmp((char *)sqlite3_column_text(res, 14), "silent", 6))) ? 1 : 0; - alarm_log.value_string = - sqlite3_column_type(res, 23) == SQLITE_NULL ? + sqlite3_column_type(res, 22) == SQLITE_NULL ? strdupz((char *)"-") : strdupz((char *)format_value_and_unit( - new_value_string, 100, sqlite3_column_double(res, 23), (char *)sqlite3_column_text(res, 17), -1)); - + new_value_string, 100, sqlite3_column_double(res, 22), (char *)sqlite3_column_text(res, 16), -1)); alarm_log.old_value_string = - sqlite3_column_type(res, 24) == SQLITE_NULL ? + sqlite3_column_type(res, 23) == SQLITE_NULL ? strdupz((char *)"-") : strdupz((char *)format_value_and_unit( - old_value_string, 100, sqlite3_column_double(res, 24), (char *)sqlite3_column_text(res, 17), -1)); - - alarm_log.value = (NETDATA_DOUBLE) sqlite3_column_double(res, 23); - alarm_log.old_value = (NETDATA_DOUBLE) sqlite3_column_double(res, 24); + old_value_string, 100, sqlite3_column_double(res, 23), (char *)sqlite3_column_text(res, 16), -1)); + alarm_log.value = (NETDATA_DOUBLE) sqlite3_column_double(res, 22); + alarm_log.old_value = (NETDATA_DOUBLE) sqlite3_column_double(res, 23); alarm_log.updated = (sqlite3_column_int64(res, 8) & HEALTH_ENTRY_FLAG_UPDATED) ? 1 : 0; - alarm_log.rendered_info = sqlite3_text_strdupz_empty(res, 18); - alarm_log.chart_context = sqlite3_text_strdupz_empty(res, 26); - alarm_log.transition_id = sqlite3_uuid_unparse_strdupz(res, 27); - alarm_log.event_id = (time_t) sqlite3_column_int64(res, 28); - alarm_log.chart_name = sqlite3_text_strdupz_empty(res, 29); - alarm_log.summary = sqlite3_text_strdupz_empty(res, 30); + alarm_log.rendered_info = sqlite3_text_strdupz_empty(res, 17); + alarm_log.chart_context = sqlite3_text_strdupz_empty(res, 25); + alarm_log.transition_id = sqlite3_uuid_unparse_strdupz(res, 26); + alarm_log.event_id = (time_t) sqlite3_column_int64(res, 27); + alarm_log.chart_name = sqlite3_text_strdupz_empty(res, 28); + alarm_log.summary = sqlite3_text_strdupz_empty(res, 29); aclk_send_alarm_log_entry(&alarm_log); @@ -534,7 +522,7 @@ void aclk_send_alarm_configuration(char *config_hash) #define SQL_SELECT_ALERT_CONFIG \ "SELECT alarm, template, on_key, class, type, component, os, hosts, plugin," \ - "module, charts, families, lookup, every, units, green, red, calc, warn, crit, to_key, exec, delay, repeat, info," \ + "module, charts, lookup, every, units, green, red, calc, warn, crit, to_key, exec, delay, repeat, info," \ "options, host_labels, p_db_lookup_dimensions, p_db_lookup_method, p_db_lookup_options, p_db_lookup_after," \ "p_db_lookup_before, p_update_every, chart_labels, summary FROM alert_hash WHERE hash_id = @hash_id;" @@ -596,7 +584,6 @@ int aclk_push_alert_config_event(char *node_id __maybe_unused, char *config_hash alarm_config.plugin = SQLITE3_COLUMN_STRDUPZ_OR_NULL(res, param++); alarm_config.module = SQLITE3_COLUMN_STRDUPZ_OR_NULL(res, param++); alarm_config.charts = SQLITE3_COLUMN_STRDUPZ_OR_NULL(res, param++); - alarm_config.families = SQLITE3_COLUMN_STRDUPZ_OR_NULL(res, param++); alarm_config.lookup = SQLITE3_COLUMN_STRDUPZ_OR_NULL(res, param++); alarm_config.every = SQLITE3_COLUMN_STRDUPZ_OR_NULL(res, param++); alarm_config.units = SQLITE3_COLUMN_STRDUPZ_OR_NULL(res, param++); @@ -611,7 +598,7 @@ int aclk_push_alert_config_event(char *node_id __maybe_unused, char *config_hash alarm_config.repeat = SQLITE3_COLUMN_STRDUPZ_OR_NULL(res, param++); alarm_config.info = SQLITE3_COLUMN_STRDUPZ_OR_NULL(res, param++); alarm_config.options = SQLITE3_COLUMN_STRDUPZ_OR_NULL(res, param++); - alarm_config.host_labels = SQLITE3_COLUMN_STRDUPZ_OR_NULL(res, param++); // Current param 26 + alarm_config.host_labels = SQLITE3_COLUMN_STRDUPZ_OR_NULL(res, param++); // Current param 25 alarm_config.p_db_lookup_dimensions = NULL; alarm_config.p_db_lookup_method = NULL; @@ -619,26 +606,26 @@ int aclk_push_alert_config_event(char *node_id __maybe_unused, char *config_hash alarm_config.p_db_lookup_after = 0; alarm_config.p_db_lookup_before = 0; - if (sqlite3_column_bytes(res, 30) > 0) { + if (sqlite3_column_bytes(res, 29) > 0) { - alarm_config.p_db_lookup_dimensions = SQLITE3_COLUMN_STRDUPZ_OR_NULL(res, param++); // Current param 27 - alarm_config.p_db_lookup_method = SQLITE3_COLUMN_STRDUPZ_OR_NULL(res, param++); // Current param 28 - if (param != 29) + alarm_config.p_db_lookup_dimensions = SQLITE3_COLUMN_STRDUPZ_OR_NULL(res, param++); // Current param 26 + alarm_config.p_db_lookup_method = SQLITE3_COLUMN_STRDUPZ_OR_NULL(res, param++); // Current param 27 + if (param != 28) netdata_log_error("aclk_push_alert_config_event: Unexpected param number %d", param); BUFFER *tmp_buf = buffer_create(1024, &netdata_buffers_statistics.buffers_sqlite); - buffer_data_options2string(tmp_buf, sqlite3_column_int(res, 29)); + buffer_data_options2string(tmp_buf, sqlite3_column_int(res, 28)); alarm_config.p_db_lookup_options = strdupz((char *)buffer_tostring(tmp_buf)); buffer_free(tmp_buf); - alarm_config.p_db_lookup_after = sqlite3_column_int(res, 30); - alarm_config.p_db_lookup_before = sqlite3_column_int(res, 31); + alarm_config.p_db_lookup_after = sqlite3_column_int(res, 29); + alarm_config.p_db_lookup_before = sqlite3_column_int(res, 30); } - alarm_config.p_update_every = sqlite3_column_int(res, 32); + alarm_config.p_update_every = sqlite3_column_int(res, 31); - alarm_config.chart_labels = SQLITE3_COLUMN_STRDUPZ_OR_NULL(res, 33); - alarm_config.summary = SQLITE3_COLUMN_STRDUPZ_OR_NULL(res, 34); + alarm_config.chart_labels = SQLITE3_COLUMN_STRDUPZ_OR_NULL(res, 32); + alarm_config.summary = SQLITE3_COLUMN_STRDUPZ_OR_NULL(res, 33); p_alarm_config.cfg_hash = strdupz((char *) config_hash); p_alarm_config.cfg = alarm_config; @@ -806,7 +793,6 @@ void health_alarm_entry2proto_nolock(struct alarm_log_entry *alarm_log, ALARM_EN alarm_log->chart = strdupz(ae_chart_id(ae)); alarm_log->name = strdupz(ae_name(ae)); - alarm_log->family = strdupz(ae_family(ae)); alarm_log->batch_id = 0; alarm_log->sequence_id = 0; diff --git a/database/sqlite/sqlite_health.c b/database/sqlite/sqlite_health.c index bb83164714..6fc6a2e64c 100644 --- a/database/sqlite/sqlite_health.c +++ b/database/sqlite/sqlite_health.c @@ -97,8 +97,8 @@ failed: */ #define SQL_INSERT_HEALTH_LOG \ "INSERT INTO health_log (host_id, alarm_id, " \ - "config_hash_id, name, chart, family, exec, recipient, units, chart_context, last_transition_id, chart_name) " \ - "VALUES (?,?,?,?,?,?,?,?,?,?,?,?) " \ + "config_hash_id, name, chart, exec, recipient, units, chart_context, last_transition_id, chart_name) " \ + "VALUES (?,?,?,?,?,?,?,?,?,?,?) " \ "ON CONFLICT (host_id, alarm_id) DO UPDATE SET last_transition_id = excluded.last_transition_id, " \ "chart_name = excluded.chart_name RETURNING health_log_id; " @@ -154,43 +154,37 @@ static void sql_health_alarm_log_insert(RRDHOST *host, ALARM_ENTRY *ae) { goto failed; } - rc = SQLITE3_BIND_STRING_OR_NULL(res, ae->family, 6); - if (unlikely(rc != SQLITE_OK)) { - error_report("Failed to bind family parameter for SQL_INSERT_HEALTH_LOG"); - goto failed; - } - - rc = SQLITE3_BIND_STRING_OR_NULL(res, ae->exec, 7); + rc = SQLITE3_BIND_STRING_OR_NULL(res, ae->exec, 6); if (unlikely(rc != SQLITE_OK)) { error_report("Failed to bind exec parameter for SQL_INSERT_HEALTH_LOG"); goto failed; } - rc = SQLITE3_BIND_STRING_OR_NULL(res, ae->recipient, 8); + rc = SQLITE3_BIND_STRING_OR_NULL(res, ae->recipient, 7); if (unlikely(rc != SQLITE_OK)) { error_report("Failed to bind recipient parameter for SQL_INSERT_HEALTH_LOG"); goto failed; } - rc = SQLITE3_BIND_STRING_OR_NULL(res, ae->units, 9); + rc = SQLITE3_BIND_STRING_OR_NULL(res, ae->units, 8); if (unlikely(rc != SQLITE_OK)) { error_report("Failed to bind host_id parameter to store node instance information"); goto failed; } - rc = SQLITE3_BIND_STRING_OR_NULL(res, ae->chart_context, 10); + rc = SQLITE3_BIND_STRING_OR_NULL(res, ae->chart_context, 9); if (unlikely(rc != SQLITE_OK)) { error_report("Failed to bind chart_context parameter for SQL_INSERT_HEALTH_LOG"); goto failed; } - rc = sqlite3_bind_blob(res, 11, &ae->transition_id, sizeof(ae->transition_id), SQLITE_STATIC); + rc = sqlite3_bind_blob(res, 10, &ae->transition_id, sizeof(ae->transition_id), SQLITE_STATIC); if (unlikely(rc != SQLITE_OK)) { error_report("Failed to bind transition_id parameter for SQL_INSERT_HEALTH_LOG"); goto failed; } - rc = SQLITE3_BIND_STRING_OR_NULL(res, ae->chart_name, 12); + rc = SQLITE3_BIND_STRING_OR_NULL(res, ae->chart_name, 11); if (unlikely(rc != SQLITE_OK)) { error_report("Failed to bind chart_name parameter for SQL_INSERT_HEALTH_LOG"); goto failed; @@ -745,7 +739,7 @@ void sql_check_removed_alerts_state(RRDHOST *host) */ #define SQL_LOAD_HEALTH_LOG "SELECT hld.unique_id, hld.alarm_id, hld.alarm_event_id, hl.config_hash_id, hld.updated_by_id, " \ "hld.updates_id, hld.when_key, hld.duration, hld.non_clear_duration, hld.flags, hld.exec_run_timestamp, " \ - "hld.delay_up_to_timestamp, hl.name, hl.chart, hl.family, hl.exec, hl.recipient, ah.source, hl.units, " \ + "hld.delay_up_to_timestamp, hl.name, hl.chart, hl.exec, hl.recipient, ah.source, hl.units, " \ "hld.info, hld.exec_code, hld.new_status, hld.old_status, hld.delay, hld.new_value, hld.old_value, " \ "hld.last_repeat, ah.class, ah.component, ah.type, hl.chart_context, hld.transition_id, hld.global_id, hl.chart_name, hld.summary " \ "FROM health_log hl, alert_hash ah, health_log_detail hld " \ @@ -808,7 +802,7 @@ void sql_health_alarm_log_load(RRDHOST *host) continue; } - //need name, chart and family + //need name and chart if (sqlite3_column_type(res, 12) == SQLITE_NULL) { error_report("HEALTH [%s]: Got null name field. Ignoring it.", rrdhost_hostname(host)); errored++; @@ -821,14 +815,8 @@ void sql_health_alarm_log_load(RRDHOST *host) continue; } - if (sqlite3_column_type(res, 14) == SQLITE_NULL) { - error_report("HEALTH [%s]: Got null family field. Ignoring it.", rrdhost_hostname(host)); - errored++; - continue; - } - // Check if we got last_repeat field - time_t last_repeat = (time_t)sqlite3_column_int64(res, 26); + time_t last_repeat = (time_t)sqlite3_column_int64(res, 25); rc = dictionary_get(all_rrdcalcs, (char *) sqlite3_column_text(res, 13)); if(unlikely(rc)) { @@ -865,37 +853,36 @@ void sql_health_alarm_log_load(RRDHOST *host) ae->name = string_strdupz((char *) sqlite3_column_text(res, 12)); ae->chart = string_strdupz((char *) sqlite3_column_text(res, 13)); - ae->family = string_strdupz((char *) sqlite3_column_text(res, 14)); - ae->exec = SQLITE3_COLUMN_STRINGDUP_OR_NULL(res, 15); - ae->recipient = SQLITE3_COLUMN_STRINGDUP_OR_NULL(res, 16); - ae->source = SQLITE3_COLUMN_STRINGDUP_OR_NULL(res, 17); - ae->units = SQLITE3_COLUMN_STRINGDUP_OR_NULL(res, 18); - ae->info = SQLITE3_COLUMN_STRINGDUP_OR_NULL(res, 19); + ae->exec = SQLITE3_COLUMN_STRINGDUP_OR_NULL(res, 14); + ae->recipient = SQLITE3_COLUMN_STRINGDUP_OR_NULL(res, 15); + ae->source = SQLITE3_COLUMN_STRINGDUP_OR_NULL(res, 16); + ae->units = SQLITE3_COLUMN_STRINGDUP_OR_NULL(res, 17); + ae->info = SQLITE3_COLUMN_STRINGDUP_OR_NULL(res, 18); - ae->exec_code = (int) sqlite3_column_int(res, 20); - ae->new_status = (RRDCALC_STATUS) sqlite3_column_int(res, 21); - ae->old_status = (RRDCALC_STATUS)sqlite3_column_int(res, 22); - ae->delay = (int) sqlite3_column_int(res, 23); + ae->exec_code = (int) sqlite3_column_int(res, 19); + ae->new_status = (RRDCALC_STATUS) sqlite3_column_int(res, 20); + ae->old_status = (RRDCALC_STATUS)sqlite3_column_int(res, 21); + ae->delay = (int) sqlite3_column_int(res, 22); - ae->new_value = (NETDATA_DOUBLE) sqlite3_column_double(res, 24); - ae->old_value = (NETDATA_DOUBLE) sqlite3_column_double(res, 25); + ae->new_value = (NETDATA_DOUBLE) sqlite3_column_double(res, 23); + ae->old_value = (NETDATA_DOUBLE) sqlite3_column_double(res, 24); ae->last_repeat = last_repeat; - ae->classification = SQLITE3_COLUMN_STRINGDUP_OR_NULL(res, 27); - ae->component = SQLITE3_COLUMN_STRINGDUP_OR_NULL(res, 28); - ae->type = SQLITE3_COLUMN_STRINGDUP_OR_NULL(res, 29); - ae->chart_context = SQLITE3_COLUMN_STRINGDUP_OR_NULL(res, 30); + ae->classification = SQLITE3_COLUMN_STRINGDUP_OR_NULL(res, 26); + ae->component = SQLITE3_COLUMN_STRINGDUP_OR_NULL(res, 27); + ae->type = SQLITE3_COLUMN_STRINGDUP_OR_NULL(res, 28); + ae->chart_context = SQLITE3_COLUMN_STRINGDUP_OR_NULL(res, 29); - if (sqlite3_column_type(res, 31) != SQLITE_NULL) - uuid_copy(ae->transition_id, *((uuid_t *)sqlite3_column_blob(res, 31))); + if (sqlite3_column_type(res, 30) != SQLITE_NULL) + uuid_copy(ae->transition_id, *((uuid_t *)sqlite3_column_blob(res, 30))); - if (sqlite3_column_type(res, 32) != SQLITE_NULL) - ae->global_id = sqlite3_column_int64(res, 32); + if (sqlite3_column_type(res, 31) != SQLITE_NULL) + ae->global_id = sqlite3_column_int64(res, 31); - ae->chart_name = SQLITE3_COLUMN_STRINGDUP_OR_NULL(res, 33); - ae->summary = SQLITE3_COLUMN_STRINGDUP_OR_NULL(res, 34); + ae->chart_name = SQLITE3_COLUMN_STRINGDUP_OR_NULL(res, 32); + ae->summary = SQLITE3_COLUMN_STRINGDUP_OR_NULL(res, 33); char value_string[100 + 1]; string_freez(ae->old_value_string); @@ -943,11 +930,11 @@ void sql_health_alarm_log_load(RRDHOST *host) * Store an alert config hash in the database */ #define SQL_STORE_ALERT_CONFIG_HASH "insert or replace into alert_hash (hash_id, date_updated, alarm, template, " \ - "on_key, class, component, type, os, hosts, lookup, every, units, calc, families, plugin, module, " \ + "on_key, class, component, type, os, hosts, lookup, every, units, calc, plugin, module, " \ "charts, green, red, warn, crit, exec, to_key, info, delay, options, repeat, host_labels, " \ "p_db_lookup_dimensions, p_db_lookup_method, p_db_lookup_options, p_db_lookup_after, " \ "p_db_lookup_before, p_update_every, source, chart_labels, summary) values (?1,unixepoch(),?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12," \ - "?13,?14,?15,?16,?17,?18,?19,?20,?21,?22,?23,?24,?25,?26,?27,?28,?29,?30,?31,?32,?33,?34,?35,?36,?37);" + "?13,?14,?15,?16,?17,?18,?19,?20,?21,?22,?23,?24,?25,?26,?27,?28,?29,?30,?31,?32,?33,?34,?35,?36);" int sql_store_alert_config_hash(uuid_t *hash_id, struct alert_config *cfg) { @@ -1021,10 +1008,6 @@ int sql_store_alert_config_hash(uuid_t *hash_id, struct alert_config *cfg) if (unlikely(rc != SQLITE_OK)) goto bind_fail; - rc = SQLITE3_BIND_STRING_OR_NULL(res, cfg->families, ++param); - if (unlikely(rc != SQLITE_OK)) - goto bind_fail; - rc = SQLITE3_BIND_STRING_OR_NULL(res, cfg->plugin, ++param); if (unlikely(rc != SQLITE_OK)) goto bind_fail; @@ -1182,7 +1165,6 @@ int alert_hash_and_store_config( DIGEST_ALERT_CONFIG_VAL(cfg->os); DIGEST_ALERT_CONFIG_VAL(cfg->host); DIGEST_ALERT_CONFIG_VAL(cfg->on); - DIGEST_ALERT_CONFIG_VAL(cfg->families); DIGEST_ALERT_CONFIG_VAL(cfg->plugin); DIGEST_ALERT_CONFIG_VAL(cfg->module); DIGEST_ALERT_CONFIG_VAL(cfg->charts); @@ -1284,7 +1266,7 @@ done: #define SQL_SELECT_HEALTH_LOG \ "SELECT hld.unique_id, hld.alarm_id, hld.alarm_event_id, hl.config_hash_id, hld.updated_by_id, hld.updates_id, " \ "hld.when_key, hld.duration, hld.non_clear_duration, hld.flags, hld.exec_run_timestamp, " \ - "hld.delay_up_to_timestamp, hl.name, hl.chart, hl.family, hl.exec, hl.recipient, ah.source, " \ + "hld.delay_up_to_timestamp, hl.name, hl.chart, hl.exec, hl.recipient, ah.source, " \ "hl.units, hld.info, hld.exec_code, hld.new_status, hld.old_status, hld.delay, hld.new_value, hld.old_value, " \ "hld.last_repeat, ah.class, ah.component, ah.type, hl.chart_context, hld.transition_id, hld.summary " \ "FROM health_log hl, alert_hash ah, health_log_detail hld WHERE hl.config_hash_id = ah.hash_id and " \ @@ -1345,10 +1327,10 @@ void sql_health_alarm_log2json(RRDHOST *host, BUFFER *wb, uint32_t after, char * uuid_unparse_lower(*((uuid_t *) sqlite3_column_blob(res, 3)), config_hash_id); char transition_id[UUID_STR_LEN] = {0}; - if (sqlite3_column_type(res, 31) != SQLITE_NULL) - uuid_unparse_lower(*((uuid_t *) sqlite3_column_blob(res, 31)), transition_id); + if (sqlite3_column_type(res, 30) != SQLITE_NULL) + uuid_unparse_lower(*((uuid_t *) sqlite3_column_blob(res, 30)), transition_id); - char *edit_command = sqlite3_column_bytes(res, 17) > 0 ? health_edit_command_from_source((char *)sqlite3_column_text(res, 17)) : strdupz("UNKNOWN=0=UNKNOWN"); + char *edit_command = sqlite3_column_bytes(res, 16) > 0 ? health_edit_command_from_source((char *)sqlite3_column_text(res, 16)) : strdupz("UNKNOWN=0=UNKNOWN"); if (count) buffer_sprintf(wb, ","); @@ -1369,7 +1351,6 @@ void sql_health_alarm_log2json(RRDHOST *host, BUFFER *wb, uint32_t after, char * "\t\t\"name\": \"%s\",\n" "\t\t\"chart\": \"%s\",\n" "\t\t\"context\": \"%s\",\n" - "\t\t\"family\": \"%s\",\n" "\t\t\"class\": \"%s\",\n" "\t\t\"component\": \"%s\",\n" "\t\t\"type\": \"%s\",\n" @@ -1394,7 +1375,7 @@ void sql_health_alarm_log2json(RRDHOST *host, BUFFER *wb, uint32_t after, char * "\t\t\"updates_id\": %u,\n" "\t\t\"value_string\": \"%s\",\n" "\t\t\"old_value_string\": \"%s\",\n" - "\t\t\"last_repeat\": \"%lu\",\n" + "\t\t\"last_repeat\": %lu,\n" "\t\t\"silenced\": \"%s\",\n", rrdhost_hostname(host), host->utc_offset, @@ -1406,54 +1387,53 @@ void sql_health_alarm_log2json(RRDHOST *host, BUFFER *wb, uint32_t after, char * transition_id, sqlite3_column_text(res, 12), sqlite3_column_text(res, 13), - sqlite3_column_text(res, 30), - sqlite3_column_text(res, 14), + sqlite3_column_text(res, 29), + sqlite3_column_text(res, 26) ? (const char *) sqlite3_column_text(res, 26) : (char *) "Unknown", sqlite3_column_text(res, 27) ? (const char *) sqlite3_column_text(res, 27) : (char *) "Unknown", sqlite3_column_text(res, 28) ? (const char *) sqlite3_column_text(res, 28) : (char *) "Unknown", - sqlite3_column_text(res, 29) ? (const char *) sqlite3_column_text(res, 29) : (char *) "Unknown", (sqlite3_column_int64(res, 9) & HEALTH_ENTRY_FLAG_PROCESSED)?"true":"false", (sqlite3_column_int64(res, 9) & HEALTH_ENTRY_FLAG_UPDATED)?"true":"false", (long unsigned int)sqlite3_column_int64(res, 10), (sqlite3_column_int64(res, 9) & HEALTH_ENTRY_FLAG_EXEC_FAILED)?"true":"false", - sqlite3_column_text(res, 15) ? (const char *) sqlite3_column_text(res, 15) : string2str(host->health.health_default_exec), - sqlite3_column_text(res, 16) ? (const char *) sqlite3_column_text(res, 16) : string2str(host->health.health_default_recipient), - sqlite3_column_int(res, 20), - sqlite3_column_text(res, 17) ? (const char *) sqlite3_column_text(res, 17) : (char *) "Unknown", + sqlite3_column_text(res, 14) ? (const char *) sqlite3_column_text(res, 14) : string2str(host->health.health_default_exec), + sqlite3_column_text(res, 15) ? (const char *) sqlite3_column_text(res, 15) : string2str(host->health.health_default_recipient), + sqlite3_column_int(res, 19), + sqlite3_column_text(res, 16) ? (const char *) sqlite3_column_text(res, 16) : (char *) "Unknown", edit_command, - sqlite3_column_text(res, 18), + sqlite3_column_text(res, 17), (long unsigned int)sqlite3_column_int64(res, 6), (long unsigned int)sqlite3_column_int64(res, 7), (long unsigned int)sqlite3_column_int64(res, 8), + rrdcalc_status2string(sqlite3_column_int(res, 20)), rrdcalc_status2string(sqlite3_column_int(res, 21)), - rrdcalc_status2string(sqlite3_column_int(res, 22)), - sqlite3_column_int(res, 23), + sqlite3_column_int(res, 22), (long unsigned int)sqlite3_column_int64(res, 11), (unsigned int)sqlite3_column_int64(res, 4), (unsigned int)sqlite3_column_int64(res, 5), - sqlite3_column_type(res, 24) == SQLITE_NULL ? "-" : format_value_and_unit(new_value_string, 100, sqlite3_column_double(res, 24), (char *) sqlite3_column_text(res, 18), -1), - sqlite3_column_type(res, 25) == SQLITE_NULL ? "-" : format_value_and_unit(old_value_string, 100, sqlite3_column_double(res, 25), (char *) sqlite3_column_text(res, 18), -1), - (long unsigned int)sqlite3_column_int64(res, 26), + sqlite3_column_type(res, 23) == SQLITE_NULL ? "-" : format_value_and_unit(new_value_string, 100, sqlite3_column_double(res, 23), (char *) sqlite3_column_text(res, 17), -1), + sqlite3_column_type(res, 24) == SQLITE_NULL ? "-" : format_value_and_unit(old_value_string, 100, sqlite3_column_double(res, 24), (char *) sqlite3_column_text(res, 17), -1), + (long unsigned int)sqlite3_column_int64(res, 25), (sqlite3_column_int64(res, 9) & HEALTH_ENTRY_FLAG_SILENCED)?"true":"false"); - health_string2json(wb, "\t\t", "summary", (char *) sqlite3_column_text(res, 32), ",\n"); - health_string2json(wb, "\t\t", "info", (char *) sqlite3_column_text(res, 19), ",\n"); + health_string2json(wb, "\t\t", "summary", (char *) sqlite3_column_text(res, 31), ",\n"); + health_string2json(wb, "\t\t", "info", (char *) sqlite3_column_text(res, 18), ",\n"); if(unlikely(sqlite3_column_int64(res, 9) & HEALTH_ENTRY_FLAG_NO_CLEAR_NOTIFICATION)) { buffer_strcat(wb, "\t\t\"no_clear_notification\": true,\n"); } buffer_strcat(wb, "\t\t\"value\":"); - if (sqlite3_column_type(res, 24) == SQLITE_NULL) + if (sqlite3_column_type(res, 23) == SQLITE_NULL) buffer_strcat(wb, "null"); else - buffer_print_netdata_double(wb, sqlite3_column_double(res, 24)); + buffer_print_netdata_double(wb, sqlite3_column_double(res, 23)); buffer_strcat(wb, ",\n"); buffer_strcat(wb, "\t\t\"old_value\":"); - if (sqlite3_column_type(res, 25) == SQLITE_NULL) + if (sqlite3_column_type(res, 24) == SQLITE_NULL) buffer_strcat(wb, "null"); else - buffer_print_netdata_double(wb, sqlite3_column_double(res, 25)); + buffer_print_netdata_double(wb, sqlite3_column_double(res, 24)); buffer_strcat(wb, "\n"); buffer_strcat(wb, "\t}"); |