summaryrefslogtreecommitdiffstats
path: root/database/sqlite
diff options
context:
space:
mode:
authorEmmanuel Vasilakis <mrzammler@mm.st>2023-10-06 00:57:53 +0300
committerGitHub <noreply@github.com>2023-10-06 00:57:53 +0300
commit9493fa868256c66478e5191658db5daa24e74336 (patch)
tree12ed429777c0f54f836493cb90f4774dcd9e8718 /database/sqlite
parentc317e4d380413109708a8b86b93e16514f8148bc (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.c84
-rw-r--r--database/sqlite/sqlite_health.c134
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}");