rrdcontext.h 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  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_SHOW_HIDDEN = (1 << 8),
  34. RRDCONTEXT_OPTION_SKIP_ID = (1 << 31), // internal use
  35. } RRDCONTEXT_TO_JSON_OPTIONS;
  36. #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|RRDCONTEXT_OPTION_SHOW_HIDDEN)
  37. 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);
  38. 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);
  39. // ----------------------------------------------------------------------------
  40. // public API for rrddims
  41. extern void rrdcontext_updated_rrddim(RRDDIM *rd);
  42. extern void rrdcontext_removed_rrddim(RRDDIM *rd);
  43. extern void rrdcontext_updated_rrddim_algorithm(RRDDIM *rd);
  44. extern void rrdcontext_updated_rrddim_multiplier(RRDDIM *rd);
  45. extern void rrdcontext_updated_rrddim_divisor(RRDDIM *rd);
  46. extern void rrdcontext_updated_rrddim_flags(RRDDIM *rd);
  47. extern void rrdcontext_collected_rrddim(RRDDIM *rd);
  48. // ----------------------------------------------------------------------------
  49. // public API for rrdsets
  50. extern void rrdcontext_updated_rrdset(RRDSET *st);
  51. extern void rrdcontext_removed_rrdset(RRDSET *st);
  52. extern void rrdcontext_updated_rrdset_name(RRDSET *st);
  53. extern void rrdcontext_updated_rrdset_flags(RRDSET *st);
  54. extern void rrdcontext_collected_rrdset(RRDSET *st);
  55. // ----------------------------------------------------------------------------
  56. // public API for ACLK
  57. extern void rrdcontext_hub_checkpoint_command(void *cmd);
  58. extern void rrdcontext_hub_stop_streaming_command(void *cmd);
  59. // ----------------------------------------------------------------------------
  60. // public API for threads
  61. extern int rrdcontext_enabled;
  62. extern void rrdcontext_db_rotation(void);
  63. extern void *rrdcontext_main(void *);
  64. #endif // NETDATA_RRDCONTEXT_H