rrdcontext.h 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. // SPDX-License-Identifier: GPL-3.0-or-later
  2. #ifndef NETDATA_RRDCONTEXT_H
  3. #define NETDATA_RRDCONTEXT_H 1
  4. // ----------------------------------------------------------------------------
  5. // RRDMETRIC
  6. typedef struct rrdmetric_acquired RRDMETRIC_ACQUIRED;
  7. // ----------------------------------------------------------------------------
  8. // RRDINSTANCE
  9. typedef struct rrdinstance_acquired RRDINSTANCE_ACQUIRED;
  10. // ----------------------------------------------------------------------------
  11. // RRDCONTEXT
  12. typedef struct rrdcontexts_dictionary RRDCONTEXTS;
  13. typedef struct rrdcontext_acquired RRDCONTEXT_ACQUIRED;
  14. // ----------------------------------------------------------------------------
  15. #include "rrd.h"
  16. // ----------------------------------------------------------------------------
  17. // public API for rrdhost
  18. extern void rrdhost_load_rrdcontext_data(RRDHOST *host);
  19. extern void rrdhost_create_rrdcontexts(RRDHOST *host);
  20. extern void rrdhost_destroy_rrdcontexts(RRDHOST *host);
  21. extern void rrdcontext_host_child_connected(RRDHOST *host);
  22. extern void rrdcontext_host_child_disconnected(RRDHOST *host);
  23. typedef enum {
  24. RRDCONTEXT_OPTION_NONE = 0,
  25. RRDCONTEXT_OPTION_SHOW_METRICS = (1 << 0),
  26. RRDCONTEXT_OPTION_SHOW_INSTANCES = (1 << 1),
  27. RRDCONTEXT_OPTION_SHOW_LABELS = (1 << 2),
  28. RRDCONTEXT_OPTION_SHOW_QUEUED = (1 << 3),
  29. RRDCONTEXT_OPTION_SHOW_FLAGS = (1 << 4),
  30. RRDCONTEXT_OPTION_SHOW_DELETED = (1 << 5),
  31. RRDCONTEXT_OPTION_DEEPSCAN = (1 << 6),
  32. RRDCONTEXT_OPTION_SHOW_UUIDS = (1 << 7),
  33. RRDCONTEXT_OPTION_SKIP_ID = (1 << 31), // internal use
  34. } RRDCONTEXT_TO_JSON_OPTIONS;
  35. #define RRDCONTEXT_OPTIONS_ALL (RRDCONTEXT_OPTION_SHOW_METRICS|RRDCONTEXT_OPTION_SHOW_INSTANCES|RRDCONTEXT_OPTION_SHOW_LABELS|RRDCONTEXT_OPTION_SHOW_QUEUED|RRDCONTEXT_OPTION_SHOW_FLAGS|RRDCONTEXT_OPTION_SHOW_DELETED|RRDCONTEXT_OPTION_SHOW_UUIDS)
  36. extern int rrdcontext_to_json(RRDHOST *host, BUFFER *wb, time_t after, time_t before, RRDCONTEXT_TO_JSON_OPTIONS options, const char *context, SIMPLE_PATTERN *chart_label_key, SIMPLE_PATTERN *chart_labels_filter, SIMPLE_PATTERN *chart_dimensions);
  37. extern int rrdcontexts_to_json(RRDHOST *host, BUFFER *wb, time_t after, time_t before, RRDCONTEXT_TO_JSON_OPTIONS options, SIMPLE_PATTERN *chart_label_key, SIMPLE_PATTERN *chart_labels_filter, SIMPLE_PATTERN *chart_dimensions);
  38. // ----------------------------------------------------------------------------
  39. // public API for rrddims
  40. extern void rrdcontext_updated_rrddim(RRDDIM *rd);
  41. extern void rrdcontext_removed_rrddim(RRDDIM *rd);
  42. extern void rrdcontext_updated_rrddim_algorithm(RRDDIM *rd);
  43. extern void rrdcontext_updated_rrddim_multiplier(RRDDIM *rd);
  44. extern void rrdcontext_updated_rrddim_divisor(RRDDIM *rd);
  45. extern void rrdcontext_updated_rrddim_flags(RRDDIM *rd);
  46. extern void rrdcontext_collected_rrddim(RRDDIM *rd);
  47. // ----------------------------------------------------------------------------
  48. // public API for rrdsets
  49. extern void rrdcontext_updated_rrdset(RRDSET *st);
  50. extern void rrdcontext_removed_rrdset(RRDSET *st);
  51. extern void rrdcontext_updated_rrdset_name(RRDSET *st);
  52. extern void rrdcontext_updated_rrdset_flags(RRDSET *st);
  53. extern void rrdcontext_collected_rrdset(RRDSET *st);
  54. // ----------------------------------------------------------------------------
  55. // public API for ACLK
  56. extern void rrdcontext_hub_checkpoint_command(void *cmd);
  57. extern void rrdcontext_hub_stop_streaming_command(void *cmd);
  58. // ----------------------------------------------------------------------------
  59. // public API for threads
  60. extern int rrdcontext_enabled;
  61. extern void rrdcontext_db_rotation(void);
  62. extern void *rrdcontext_main(void *);
  63. #endif // NETDATA_RRDCONTEXT_H