sqlite_aclk_chart.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. // SPDX-License-Identifier: GPL-3.0-or-later
  2. #ifndef NETDATA_SQLITE_ACLK_CHART_H
  3. #define NETDATA_SQLITE_ACLK_CHART_H
  4. typedef enum payload_type {
  5. ACLK_PAYLOAD_CHART,
  6. ACLK_PAYLOAD_DIMENSION,
  7. ACLK_PAYLOAD_DIMENSION_ROTATED
  8. } ACLK_PAYLOAD_TYPE;
  9. extern sqlite3 *db_meta;
  10. #ifndef RRDSET_MINIMUM_DIM_LIVE_MULTIPLIER
  11. #define RRDSET_MINIMUM_DIM_LIVE_MULTIPLIER (3)
  12. #endif
  13. #ifndef ACLK_MAX_DIMENSION_CLEANUP
  14. #define ACLK_MAX_DIMENSION_CLEANUP (500)
  15. #endif
  16. struct aclk_chart_sync_stats {
  17. int updates;
  18. uint64_t batch_id;
  19. uint64_t min_seqid;
  20. uint64_t max_seqid;
  21. uint64_t min_seqid_pend;
  22. uint64_t max_seqid_pend;
  23. uint64_t min_seqid_sent;
  24. uint64_t max_seqid_sent;
  25. uint64_t min_seqid_ack;
  26. uint64_t max_seqid_ack;
  27. time_t max_date_created;
  28. time_t max_date_submitted;
  29. time_t max_date_ack;
  30. };
  31. extern int queue_chart_to_aclk(RRDSET *st);
  32. extern int queue_dimension_to_aclk(RRDDIM *rd);
  33. extern void sql_create_aclk_table(RRDHOST *host, uuid_t *host_uuid, uuid_t *node_id);
  34. extern int sql_queue_alarm_to_aclk(RRDHOST *host, ALARM_ENTRY *ae);
  35. int aclk_add_chart_event(struct aclk_database_worker_config *wc, struct aclk_database_cmd cmd);
  36. int aclk_add_dimension_event(struct aclk_database_worker_config *wc, struct aclk_database_cmd cmd);
  37. int aclk_send_chart_config(struct aclk_database_worker_config *wc, struct aclk_database_cmd cmd);
  38. void aclk_ack_chart_sequence_id(char *node_id, uint64_t last_sequence_id);
  39. void aclk_get_chart_config(char **hash_id_list);
  40. void aclk_send_chart_event(struct aclk_database_worker_config *wc, struct aclk_database_cmd cmd);
  41. void aclk_start_streaming(char *node_id, uint64_t seq_id, time_t created_at, uint64_t batch_id);
  42. void sql_chart_deduplicate(struct aclk_database_worker_config *wc, struct aclk_database_cmd cmd);
  43. void sql_check_rotation_state(struct aclk_database_worker_config *wc, struct aclk_database_cmd cmd);
  44. void sql_get_last_chart_sequence(struct aclk_database_worker_config *wc);
  45. void aclk_receive_chart_reset(struct aclk_database_worker_config *wc, struct aclk_database_cmd cmd);
  46. void aclk_receive_chart_ack(struct aclk_database_worker_config *wc, struct aclk_database_cmd cmd);
  47. void aclk_process_dimension_deletion(struct aclk_database_worker_config *wc, struct aclk_database_cmd cmd);
  48. uint32_t sql_get_pending_count(struct aclk_database_worker_config *wc);
  49. void aclk_send_dimension_update(RRDDIM *rd);
  50. struct aclk_chart_sync_stats *aclk_get_chart_sync_stats(RRDHOST *host);
  51. void sql_check_chart_liveness(RRDSET *st);
  52. #endif //NETDATA_SQLITE_ACLK_CHART_H