weights.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. // SPDX-License-Identifier: GPL-3.0-or-later
  2. #ifndef NETDATA_API_WEIGHTS_H
  3. #define NETDATA_API_WEIGHTS_H 1
  4. #include "query.h"
  5. typedef enum {
  6. WEIGHTS_METHOD_MC_KS2 = 1,
  7. WEIGHTS_METHOD_MC_VOLUME = 2,
  8. WEIGHTS_METHOD_ANOMALY_RATE = 3,
  9. WEIGHTS_METHOD_VALUE = 4,
  10. } WEIGHTS_METHOD;
  11. typedef enum {
  12. WEIGHTS_FORMAT_CHARTS = 1,
  13. WEIGHTS_FORMAT_CONTEXTS = 2,
  14. WEIGHTS_FORMAT_MULTINODE = 3,
  15. } WEIGHTS_FORMAT;
  16. extern int enable_metric_correlations;
  17. extern int metric_correlations_version;
  18. extern WEIGHTS_METHOD default_metric_correlations_method;
  19. typedef bool (*weights_interrupt_callback_t)(void *data);
  20. typedef struct query_weights_request {
  21. size_t version;
  22. RRDHOST *host;
  23. const char *scope_nodes;
  24. const char *scope_contexts;
  25. const char *nodes;
  26. const char *contexts;
  27. const char *instances;
  28. const char *dimensions;
  29. const char *labels;
  30. const char *alerts;
  31. struct {
  32. RRDR_GROUP_BY group_by;
  33. char *group_by_label;
  34. RRDR_GROUP_BY_FUNCTION aggregation;
  35. } group_by;
  36. WEIGHTS_METHOD method;
  37. WEIGHTS_FORMAT format;
  38. RRDR_TIME_GROUPING time_group_method;
  39. const char *time_group_options;
  40. time_t baseline_after;
  41. time_t baseline_before;
  42. time_t after;
  43. time_t before;
  44. size_t points;
  45. RRDR_OPTIONS options;
  46. size_t tier;
  47. time_t timeout_ms;
  48. weights_interrupt_callback_t interrupt_callback;
  49. void *interrupt_callback_data;
  50. } QUERY_WEIGHTS_REQUEST;
  51. int web_api_v12_weights(BUFFER *wb, QUERY_WEIGHTS_REQUEST *qwr);
  52. WEIGHTS_METHOD weights_string_to_method(const char *method);
  53. const char *weights_method_to_string(WEIGHTS_METHOD method);
  54. int mc_unittest(void);
  55. #endif //NETDATA_API_WEIGHTS_H