⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.19
Server IP:
178.33.27.10
Server:
Linux cpanel.dev-unit.com 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64
Server Software:
Apache/2.4.57 (Unix) OpenSSL/1.0.2k-fips
PHP Version:
8.2.11
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
proc
/
self
/
root
/
usr
/
local
/
src
/
netdata
/
exporting
/
View File Name :
check_filters.c
// SPDX-License-Identifier: GPL-3.0-or-later #include "exporting_engine.h" bool exporting_labels_filter_callback(const char *name, const char *value, RRDLABEL_SRC ls __maybe_unused, void *data) { (void)name; (void)value; struct instance *instance = (struct instance *)data; return should_send_label(instance, ls); } /** * Check if the connector instance should export the host metrics * * @param instance an exporting connector instance. * @param host a data collecting host. * @return Returns 1 if the connector instance should export the host metrics */ int rrdhost_is_exportable(struct instance *instance, RRDHOST *host) { if (host->exporting_flags == NULL) host->exporting_flags = callocz(instance->engine->instance_num, sizeof(size_t)); RRDHOST_FLAGS *flags = &host->exporting_flags[instance->index]; if (unlikely((*flags & (RRDHOST_FLAG_EXPORTING_SEND | RRDHOST_FLAG_EXPORTING_DONT_SEND)) == 0)) { const char *host_name = (host == localhost) ? "localhost" : rrdhost_hostname(host); if (!instance->config.hosts_pattern || simple_pattern_matches(instance->config.hosts_pattern, host_name)) { *flags |= RRDHOST_FLAG_EXPORTING_SEND; netdata_log_info("enabled exporting of host '%s' for instance '%s'", host_name, instance->config.name); } else { *flags |= RRDHOST_FLAG_EXPORTING_DONT_SEND; netdata_log_info("disabled exporting of host '%s' for instance '%s'", host_name, instance->config.name); } } if (likely(*flags & RRDHOST_FLAG_EXPORTING_SEND)) return 1; else return 0; } /** * Check if the connector instance should export the chart * * @param instance an exporting connector instance. * @param st a chart. * @return Returns 1 if the connector instance should export the chart */ int rrdset_is_exportable(struct instance *instance, RRDSET *st) { #ifdef NETDATA_INTERNAL_CHECKS RRDHOST *host = st->rrdhost; #endif if (st->exporting_flags == NULL) st->exporting_flags = callocz(instance->engine->instance_num, sizeof(size_t)); RRDSET_FLAGS *flags = &st->exporting_flags[instance->index]; if(unlikely(*flags & RRDSET_FLAG_EXPORTING_IGNORE)) return 0; if(unlikely(!(*flags & RRDSET_FLAG_EXPORTING_SEND))) { // we have not checked this chart if(simple_pattern_matches_string(instance->config.charts_pattern, st->id) || simple_pattern_matches_string(instance->config.charts_pattern, st->name)) *flags |= RRDSET_FLAG_EXPORTING_SEND; else { *flags |= RRDSET_FLAG_EXPORTING_IGNORE; netdata_log_debug(D_EXPORTING, "EXPORTING: not sending chart '%s' of host '%s', because it is disabled for exporting.", rrdset_id(st), rrdhost_hostname(host)); return 0; } } if(unlikely(!rrdset_is_available_for_exporting_and_alarms(st))) { netdata_log_debug(D_EXPORTING, "EXPORTING: not sending chart '%s' of host '%s', because it is not available for exporting.", rrdset_id(st), rrdhost_hostname(host)); return 0; } if(unlikely(st->rrd_memory_mode == RRD_MEMORY_MODE_NONE && !(EXPORTING_OPTIONS_DATA_SOURCE(instance->config.options) == EXPORTING_SOURCE_DATA_AS_COLLECTED))) { netdata_log_debug(D_EXPORTING, "EXPORTING: not sending chart '%s' of host '%s' because its memory mode is '%s' and the exporting engine requires database access.", rrdset_id(st), rrdhost_hostname(host), rrd_memory_mode_name(host->rrd_memory_mode)); return 0; } return 1; }