| 1 | // SPDX-License-Identifier: GPL-3.0-or-later |
| 2 | |
| 3 | #ifndef NETDATA_SQLITE_METADATA_H |
| 4 | #define NETDATA_SQLITE_METADATA_H |
| 5 | |
| 6 | #include "database/sqlite/vendored/sqlite3.h" |
| 7 | #include "sqlite_functions.h" |
| 8 | |
| 9 | typedef enum event_log_type { |
| 10 | EVENT_AGENT_START_TIME = 1, |
| 11 | EVENT_AGENT_SHUTDOWN_TIME, |
| 12 | |
| 13 | // terminator |
| 14 | EVENT_AGENT_MAX, |
| 15 | } event_log_type_t; |
| 16 | void get_agent_event_time_median_init(void); |
| 17 | |
| 18 | typedef enum db_check_action_type { |
| 19 | DB_CHECK_NONE = (1 << 0), |
| 20 | DB_CHECK_RECLAIM_SPACE = (1 << 1), |
| 21 | DB_CHECK_ANALYZE = (1 << 2), |
| 22 | DB_CHECK_CONT = (1 << 3), |
| 23 | DB_CHECK_RECOVER = (1 << 4), |
| 24 | } db_check_action_type_t; |
| 25 | |
| 26 | // To initialize and shutdown |
| 27 | void metadata_sync_init(void); |
| 28 | void metadata_sync_shutdown(void); |
| 29 | |
| 30 | void metaqueue_delete_dimension_uuid(nd_uuid_t *uuid); |
| 31 | void metaqueue_store_claim_id(nd_uuid_t *host_uuid, nd_uuid_t *claim_uuid); |
| 32 | void metaqueue_ml_load_models(RRDDIM *rd); |
| 33 | void detect_machine_guid_change(nd_uuid_t *host_uuid); |
| 34 | bool metadata_queue_load_host_context(); |
| 35 | void reset_host_context_load_flag(); |
| 36 | void vacuum_database(sqlite3 *database, const char *db_alias, int threshold, int vacuum_pc, time_t *next_run); |
| 37 | |
| 38 | int sql_metadata_cache_stats(int op); |
| 39 | |
| 40 | void sql_update_node_id(nd_uuid_t *host_id, nd_uuid_t *node_id); |
| 41 | void sql_load_node_id(RRDHOST *host); |
| 42 | |
| 43 | // Help build archived hosts in memory when agent starts |
| 44 | void sql_build_host_system_info(nd_uuid_t *host_id, struct rrdhost_system_info *system_info); |
| 45 | void invalidate_node_instances(nd_uuid_t *host_id, nd_uuid_t *claim_id); |
| 46 | RRDLABELS *sql_load_host_labels(nd_uuid_t *host_id); |
| 47 | bool sql_set_host_label(nd_uuid_t *host_id, const char *label_key, const char *label_value); |
| 48 | |
| 49 | uint64_t sqlite_get_meta_space(void); |
| 50 | int sql_init_meta_database(db_check_action_type_t rebuild, int memory); |
| 51 | |
| 52 | void cleanup_agent_event_log(void); |
| 53 | void add_agent_event(event_log_type_t event_id, int64_t value); |
| 54 | usec_t get_agent_event_time_median(event_log_type_t event_id); |
| 55 | bool metadata_queue_ae_save(RRDHOST *host, ALARM_ENTRY *ae); |
| 56 | void metadata_queue_ae_deletion(ALARM_ENTRY *ae); |
| 57 | void commit_alert_transitions(RRDHOST *host); |
| 58 | |
| 59 | //void metadata_sync_shutdown_background(void); |
| 60 | //void metadata_sync_shutdown_background_wait(void); |
| 61 | void metadata_queue_ctx_host_cleanup(nd_uuid_t *host_uuid, const char *context); |
| 62 | void store_host_info_and_metadata(RRDHOST *host); |
| 63 | void metadata_execute_store_statement(sqlite3_stmt *stmt); |
| 64 | size_t populate_metrics_from_database(void *mrg, void (*populate_cb)(void *mrg, Word_t section, nd_uuid_t *uuid)); |
| 65 | |
| 66 | // UNIT TEST |
| 67 | int metadata_unittest(void); |
| 68 | #endif //NETDATA_SQLITE_METADATA_H |