rrdfunctions.h 5.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. // SPDX-License-Identifier: GPL-3.0-or-later
  2. #ifndef NETDATA_RRDFUNCTIONS_H
  3. #define NETDATA_RRDFUNCTIONS_H 1
  4. // ----------------------------------------------------------------------------
  5. #include "rrd.h"
  6. #define RRDFUNCTIONS_PRIORITY_DEFAULT 100
  7. #define RRDFUNCTIONS_TIMEOUT_EXTENSION_UT (1 * USEC_PER_SEC)
  8. typedef void (*rrd_function_result_callback_t)(BUFFER *wb, int code, void *result_cb_data);
  9. typedef bool (*rrd_function_is_cancelled_cb_t)(void *is_cancelled_cb_data);
  10. typedef void (*rrd_function_cancel_cb_t)(void *data);
  11. typedef void (*rrd_function_register_canceller_cb_t)(void *register_cancel_cb_data, rrd_function_cancel_cb_t cancel_cb, void *cancel_cb_data);
  12. typedef void (*rrd_function_progress_cb_t)(void *data, size_t done, size_t all);
  13. typedef void (*rrd_function_progresser_cb_t)(void *data);
  14. typedef void (*rrd_function_register_progresser_cb_t)(void *register_progresser_cb_data, rrd_function_progresser_cb_t progresser_cb, void *progresser_cb_data);
  15. typedef int (*rrd_function_execute_cb_t)(uuid_t *transaction, BUFFER *wb,
  16. usec_t *stop_monotonic_ut, const char *function, void *collector_data,
  17. rrd_function_result_callback_t result_cb, void *result_cb_data,
  18. rrd_function_progress_cb_t progress_cb, void *progress_cb_data,
  19. rrd_function_is_cancelled_cb_t is_cancelled_cb, void *is_cancelled_cb_data,
  20. rrd_function_register_canceller_cb_t register_canceller_cb, void *register_canceller_cb_data,
  21. rrd_function_register_progresser_cb_t register_progresser_cb, void *register_progresser_cb_data);
  22. void rrd_functions_inflight_init(void);
  23. void rrdfunctions_host_init(RRDHOST *host);
  24. void rrdfunctions_host_destroy(RRDHOST *host);
  25. // add a function, to be run from the collector
  26. void rrd_function_add(RRDHOST *host, RRDSET *st, const char *name, int timeout, int priority, const char *help, const char *tags,
  27. HTTP_ACCESS access, bool sync, rrd_function_execute_cb_t execute_cb,
  28. void *execute_cb_data);
  29. // call a function, to be run from anywhere
  30. int rrd_function_run(RRDHOST *host, BUFFER *result_wb, int timeout_s, HTTP_ACCESS access, const char *cmd,
  31. bool wait, const char *transaction,
  32. rrd_function_result_callback_t result_cb, void *result_cb_data,
  33. rrd_function_progress_cb_t progress_cb, void *progress_cb_data,
  34. rrd_function_is_cancelled_cb_t is_cancelled_cb, void *is_cancelled_cb_data, const char *payload);
  35. // cancel a running function, to be run from anywhere
  36. void rrd_function_cancel(const char *transaction);
  37. void rrd_function_progress(const char *transaction);
  38. void rrd_function_call_progresser(uuid_t *transaction);
  39. void rrd_functions_expose_rrdpush(RRDSET *st, BUFFER *wb);
  40. void rrd_functions_expose_global_rrdpush(RRDHOST *host, BUFFER *wb);
  41. void chart_functions2json(RRDSET *st, BUFFER *wb);
  42. void chart_functions_to_dict(DICTIONARY *rrdset_functions_view, DICTIONARY *dst, void *value, size_t value_size);
  43. void host_functions_to_dict(RRDHOST *host, DICTIONARY *dst, void *value, size_t value_size, STRING **help, STRING **tags, HTTP_ACCESS *access, int *priority);
  44. void host_functions2json(RRDHOST *host, BUFFER *wb);
  45. uint8_t functions_format_to_content_type(const char *format);
  46. const char *functions_content_type_to_format(HTTP_CONTENT_TYPE content_type);
  47. int rrd_call_function_error(BUFFER *wb, const char *msg, int code);
  48. int rrdhost_function_progress(uuid_t *transaction, BUFFER *wb,
  49. usec_t *stop_monotonic_ut, const char *function, void *collector_data,
  50. rrd_function_result_callback_t result_cb, void *result_cb_data,
  51. rrd_function_progress_cb_t progress_cb, void *progress_cb_data,
  52. rrd_function_is_cancelled_cb_t is_cancelled_cb, void *is_cancelled_cb_data,
  53. rrd_function_register_canceller_cb_t register_canceller_cb, void *register_canceller_cb_data,
  54. rrd_function_register_progresser_cb_t register_progresser_cb,
  55. void *register_progresser_cb_data);
  56. int rrdhost_function_streaming(uuid_t *transaction, BUFFER *wb,
  57. usec_t *stop_monotonic_ut, const char *function, void *collector_data,
  58. rrd_function_result_callback_t result_cb, void *result_cb_data,
  59. rrd_function_progress_cb_t progress_cb, void *progress_cb_data,
  60. rrd_function_is_cancelled_cb_t is_cancelled_cb, void *is_cancelled_cb_data,
  61. rrd_function_register_canceller_cb_t register_canceller_cb, void *register_canceller_cb_data,
  62. rrd_function_register_progresser_cb_t register_progresser_cb,
  63. void *register_progresser_cb_data);
  64. #define RRDFUNCTIONS_STREAMING_HELP "Streaming status for parents and children."
  65. #endif // NETDATA_RRDFUNCTIONS_H