rrdfunctions.h 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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_TIMEOUT_EXTENSION_UT (1 * USEC_PER_SEC)
  7. typedef void (*rrd_function_result_callback_t)(BUFFER *wb, int code, void *result_cb_data);
  8. typedef bool (*rrd_function_is_cancelled_cb_t)(void *is_cancelled_cb_data);
  9. typedef void (*rrd_function_canceller_cb_t)(void *data);
  10. typedef void (*rrd_function_register_canceller_cb_t)(void *register_cancel_cb_data, rrd_function_canceller_cb_t cancel_cb, void *cancel_cb_data);
  11. typedef int (*rrd_function_execute_cb_t)(BUFFER *wb, int timeout, const char *function, void *collector_data,
  12. rrd_function_result_callback_t result_cb, void *result_cb_data,
  13. rrd_function_is_cancelled_cb_t is_cancelled_cb, void *is_cancelled_cb_data,
  14. rrd_function_register_canceller_cb_t register_cancel_cb, void *register_cancel_db_data);
  15. void rrd_functions_inflight_init(void);
  16. void rrdfunctions_host_init(RRDHOST *host);
  17. void rrdfunctions_host_destroy(RRDHOST *host);
  18. void rrd_collector_started(void);
  19. void rrd_collector_finished(void);
  20. // add a function, to be run from the collector
  21. void rrd_function_add(RRDHOST *host, RRDSET *st, const char *name, int timeout, const char *help,
  22. bool sync, rrd_function_execute_cb_t execute_cb, void *execute_cb_data);
  23. // call a function, to be run from anywhere
  24. int rrd_function_run(RRDHOST *host, BUFFER *result_wb, int timeout, const char *cmd,
  25. bool wait, const char *transaction,
  26. rrd_function_result_callback_t result_cb, void *result_cb_data,
  27. rrd_function_is_cancelled_cb_t is_cancelled_cb, void *is_cancelled_cb_data, const char *payload);
  28. // cancel a running function, to be run from anywhere
  29. void rrd_function_cancel(const char *transaction);
  30. void rrd_functions_expose_rrdpush(RRDSET *st, BUFFER *wb);
  31. void rrd_functions_expose_global_rrdpush(RRDHOST *host, BUFFER *wb);
  32. void chart_functions2json(RRDSET *st, BUFFER *wb);
  33. void chart_functions_to_dict(DICTIONARY *rrdset_functions_view, DICTIONARY *dst, void *value, size_t value_size);
  34. void host_functions_to_dict(RRDHOST *host, DICTIONARY *dst, void *value, size_t value_size, STRING **help);
  35. void host_functions2json(RRDHOST *host, BUFFER *wb);
  36. uint8_t functions_format_to_content_type(const char *format);
  37. const char *functions_content_type_to_format(HTTP_CONTENT_TYPE content_type);
  38. int rrd_call_function_error(BUFFER *wb, const char *msg, int code);
  39. int rrdhost_function_streaming(BUFFER *wb, int timeout, const char *function, void *collector_data,
  40. rrd_function_result_callback_t result_cb, void *result_cb_data,
  41. rrd_function_is_cancelled_cb_t is_cancelled_cb, void *is_cancelled_cb_data,
  42. rrd_function_register_canceller_cb_t register_canceller_cb, void *register_canceller_cb_data);
  43. #define RRDFUNCTIONS_STREAMING_HELP "Streaming status for parents and children."
  44. #endif // NETDATA_RRDFUNCTIONS_H