0
0
Fork 0
mirror of https://github.com/netdata/netdata.git synced 2025-05-12 12:42:09 +00:00
netdata_netdata/database/rrdfunctions.h
Costa Tsaousis 00712b351b
QUERY_TARGET: new query engine for Netdata Agent ()
* initial implementation of QUERY_TARGET

* rrd2rrdr() interface

* rrddim_find_best_tier_for_timeframe() ported

* added dimension filtering

* added db object in query target

* rrd2rrdr() ported

* working on formatters

* working on jsonwrapper

* finally, it compiles...

* 1st run without crashes

* query planer working

* cleanup old code

* review changes

* fix also changing data collection frequency

* fix signess

* fix rrdlabels and dimension ordering

* fixes

* remove unused variable

* ml should accept NULL response from rrd2rrdr()

* number formatting fixes

* more number formatting fixes

* more number formatting fixes

* support mc parallel queries

* formatting and cleanup

* added rrd2rrdr_legacy() as a simplified interface to run a query

* make sure rrdset_find_natural_update_every_for_timeframe() returns a value

* make signed comparisons

* weights endpoint using rrdcontexts

* fix for legacy db modes and cleanup

* fix for chart_ids and remove AR chart from weights endpoint

* Ignore command if not initialized yet

* remove unused members

* properly initialize window

* code cleanup - rrddim linked list is gone; rrdset rwlock is gone too

* reviewed RRDR.internal members

* eliminate unnecessary members of QUERY_TARGET

* more complete query ids; more detailed information on aborted queries

* properly terminate option strings

* query id contains group_options which is controlled by users, so escaping is necessary

* tense in query id

* tense in query id - again

* added the remaining query options to the query id

* Expose hidden option to the dimension

* use the hidden flag when loading context dimensions

* Specify table alias for option

* dont update chart last access time, unless at least a dimension of the chart will be queried

Co-authored-by: Stelios Fragkakis <52996999+stelfrag@users.noreply.github.com>
2022-10-23 23:46:43 +03:00

35 lines
1.6 KiB
C

#ifndef NETDATA_RRDFUNCTIONS_H
#define NETDATA_RRDFUNCTIONS_H 1
#include "rrd.h"
void rrdfunctions_init(RRDHOST *host);
void rrdfunctions_destroy(RRDHOST *host);
void rrd_collector_started(void);
void rrd_collector_finished(void);
typedef void (*function_data_ready_callback)(BUFFER *wb, int code, void *callback_data);
typedef int (*function_execute_at_collector)(BUFFER *wb, int timeout, const char *function, void *collector_data,
function_data_ready_callback callback, void *callback_data);
void rrd_collector_add_function(RRDHOST *host, RRDSET *st, const char *name, int timeout, const char *help,
bool sync, function_execute_at_collector function, void *collector_data);
int rrd_call_function_and_wait(RRDHOST *host, BUFFER *wb, int timeout, const char *name);
typedef void (*rrd_call_function_async_callback)(BUFFER *wb, int code, void *callback_data);
int rrd_call_function_async(RRDHOST *host, BUFFER *wb, int timeout, const char *name, rrd_call_function_async_callback, void *callback_data);
void rrd_functions_expose_rrdpush(RRDSET *st, 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 host_functions2json(RRDHOST *host, BUFFER *wb, int tabs, const char *kq, const char *sq);
uint8_t functions_format_to_content_type(const char *format);
const char *functions_content_type_to_format(uint8_t content_type);
int rrd_call_function_error(BUFFER *wb, const char *msg, int code);
#endif // NETDATA_RRDFUNCTIONS_H