mirror of
https://github.com/netdata/netdata.git
synced 2025-04-26 05:47:20 +00:00

* dyncfg fncnames as constants * add helper macros to know parser streaming/plugin * plugins dictionary per RRDHOST * api_request_v2_config add support for /host/ * streamify pluginsd_register_plugin * streamify pluginsd_register_module * streamify report_job_status * streamify dyncfg get functions * module_type2str * add job type and flags * add DYNCFG_REGISTER_JOB * implement register job * push all to parent at startup * add helper function is_dyncfg_function * forward virtual functions trough streaming * separate job2json * add api/v2/job_statuses * do cleanup on streaming * streamify set functions * support FUNCTION_PAYLOAD trough streaming * WIP tests * dont attempt loading non-localhost configs * move cfg persistence to proper place * prevent race * properly update job state at runtime * cleanup 1 * job2json add missing reason * add tests * correct HTTP code * add test * streamify delete_job_cb * add DELETE_JOB keyword * job delete over streaming * add tests for create and delete job over parent * rrdpush common checks to macro * add missing forwarders * fix jobs according to test results * more tests * review comment 1 * codacy remove valid warning * codacy ruby fixes * fix wrong rc check * minimal test plugin for child * add test * dict walk insted of master lock * minor - english spelling fixes * thiago comments 1 * minor - rename folder to dynconf * enable only when built with -DNETDATA_TEST_DYNCFG * minor - compiler warning * create dir post daemonization * stricter URL check
57 lines
3.2 KiB
C
57 lines
3.2 KiB
C
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
#ifndef NETDATA_RRDFUNCTIONS_H
|
|
#define NETDATA_RRDFUNCTIONS_H 1
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
#include "rrd.h"
|
|
|
|
typedef void (*rrd_function_result_callback_t)(BUFFER *wb, int code, void *result_cb_data);
|
|
typedef bool (*rrd_function_is_cancelled_cb_t)(void *is_cancelled_cb_data);
|
|
typedef void (*rrd_function_canceller_cb_t)(void *data);
|
|
typedef void (*rrd_function_register_canceller_cb_t)(void *register_cancel_cb_data, rrd_function_canceller_cb_t cancel_cb, void *cancel_cb_data);
|
|
typedef int (*rrd_function_execute_cb_t)(BUFFER *wb, int timeout, const char *function, void *collector_data,
|
|
rrd_function_result_callback_t result_cb, void *result_cb_data,
|
|
rrd_function_is_cancelled_cb_t is_cancelled_cb, void *is_cancelled_cb_data,
|
|
rrd_function_register_canceller_cb_t register_cancel_cb, void *register_cancel_db_data);
|
|
|
|
void rrd_functions_inflight_init(void);
|
|
void rrdfunctions_host_init(RRDHOST *host);
|
|
void rrdfunctions_host_destroy(RRDHOST *host);
|
|
|
|
void rrd_collector_started(void);
|
|
void rrd_collector_finished(void);
|
|
|
|
// add a function, to be run from the collector
|
|
void rrd_function_add(RRDHOST *host, RRDSET *st, const char *name, int timeout, const char *help,
|
|
bool sync, rrd_function_execute_cb_t execute_cb, void *execute_cb_data);
|
|
|
|
// call a function, to be run from anywhere
|
|
int rrd_function_run(RRDHOST *host, BUFFER *result_wb, int timeout, const char *cmd,
|
|
bool wait, const char *transaction,
|
|
rrd_function_result_callback_t result_cb, void *result_cb_data,
|
|
rrd_function_is_cancelled_cb_t is_cancelled_cb, void *is_cancelled_cb_data, const char *payload);
|
|
|
|
// cancel a running function, to be run from anywhere
|
|
void rrd_function_cancel(const char *transaction);
|
|
|
|
void rrd_functions_expose_rrdpush(RRDSET *st, BUFFER *wb);
|
|
void rrd_functions_expose_global_rrdpush(RRDHOST *host, BUFFER *wb);
|
|
|
|
void chart_functions2json(RRDSET *st, BUFFER *wb, int tabs, const char *kq, const char *sq);
|
|
void chart_functions_to_dict(DICTIONARY *rrdset_functions_view, DICTIONARY *dst, void *value, size_t value_size);
|
|
void host_functions_to_dict(RRDHOST *host, DICTIONARY *dst, void *value, size_t value_size, STRING **help);
|
|
void host_functions2json(RRDHOST *host, BUFFER *wb);
|
|
|
|
uint8_t functions_format_to_content_type(const char *format);
|
|
const char *functions_content_type_to_format(HTTP_CONTENT_TYPE content_type);
|
|
int rrd_call_function_error(BUFFER *wb, const char *msg, int code);
|
|
|
|
int rrdhost_function_streaming(BUFFER *wb, int timeout, const char *function, void *collector_data,
|
|
rrd_function_result_callback_t result_cb, void *result_cb_data,
|
|
rrd_function_is_cancelled_cb_t is_cancelled_cb, void *is_cancelled_cb_data,
|
|
rrd_function_register_canceller_cb_t register_canceller_cb, void *register_canceller_cb_data);
|
|
|
|
#define RRDFUNCTIONS_STREAMING_HELP "Streaming status for parents and children."
|
|
|
|
#endif // NETDATA_RRDFUNCTIONS_H
|