24#ifndef LOG_BUILTINS_FILTER_H
25#define LOG_BUILTINS_FILTER_H
150 if (
this == &other)
return *
this;
167#define LOG_FILTER_RULE_MAX 512
Specifies macros to define Components.
struct _log_filter_rule log_filter_rule
struct _log_filter_tag log_filter_tag
enum enum_log_builtins_lock log_builtins_filter_lock
enum_log_filter_verb
Definition: log_builtins_filter.h:40
@ LOG_FILTER_ITEM_SET
add field
Definition: log_builtins_filter.h:44
@ LOG_FILTER_UNDEF
not set
Definition: log_builtins_filter.h:41
@ LOG_FILTER_THROTTLE
rate-limit this line class
Definition: log_builtins_filter.h:43
@ LOG_FILTER_RETURN
stop filtering, run (next filter or) sinks
Definition: log_builtins_filter.h:46
@ LOG_FILTER_CHAIN_AND
no verb yet, part of a condition chain
Definition: log_builtins_filter.h:48
@ LOG_FILTER_DROP
drop this log event
Definition: log_builtins_filter.h:42
@ LOG_FILTER_CHAIN_OR
no verb yet, part of a condition chain
Definition: log_builtins_filter.h:49
@ LOG_FILTER_ITEM_DEL
remove field
Definition: log_builtins_filter.h:45
enum enum_log_filter_cond log_filter_cond
struct _log_filter_ruleset log_filter_ruleset
enum_log_filter_cond
Definition: log_builtins_filter.h:52
@ LOG_FILTER_COND_GT
greater than
Definition: log_builtins_filter.h:59
@ LOG_FILTER_COND_NE
not equal
Definition: log_builtins_filter.h:55
@ LOG_FILTER_COND_ABSENT
field absent
Definition: log_builtins_filter.h:61
@ LOG_FILTER_COND_LE
less or equal
Definition: log_builtins_filter.h:57
@ LOG_FILTER_COND_LT
less than
Definition: log_builtins_filter.h:56
@ LOG_FILTER_COND_GE
greater or equal
Definition: log_builtins_filter.h:58
@ LOG_FILTER_COND_NONE
not set / unconditional
Definition: log_builtins_filter.h:53
@ LOG_FILTER_COND_EQ
equal
Definition: log_builtins_filter.h:54
@ LOG_FILTER_COND_PRESENT
field present
Definition: log_builtins_filter.h:60
enum enum_log_filter_match log_filter_match
Note that if our condition requires absence of the key, and the key does not exist,...
#define LOG_FILTER_RULE_MAX
Definition: log_builtins_filter.h:167
enum enum_log_filter_apply log_filter_apply
enum_log_filter_apply
Definition: log_builtins_filter.h:83
@ LOG_FILTER_APPLY_SUCCESS
all's well that applies well
Definition: log_builtins_filter.h:85
@ LOG_FILTER_APPLY_ARGUMENT_OUT_OF_RANGE
invalid argument, e.g.
Definition: log_builtins_filter.h:87
@ LOG_FILTER_APPLY_UNKNOWN_OPERATION
action/verb not known/implement by this filter
Definition: log_builtins_filter.h:93
@ LOG_FILTER_APPLY_OUT_OF_MEMORY
variant of malloc() failed
Definition: log_builtins_filter.h:91
@ LOG_FILTER_APPLY_ITEM_BAG_FULL
log line does not accept further items
Definition: log_builtins_filter.h:89
@ LOG_FILTER_APPLY_TARGET_NOT_IN_LOG_LINE
had a match for the condition/comparator, but not for the action/verb
Definition: log_builtins_filter.h:95
enum_log_builtins_lock
Definition: log_builtins_filter.h:192
@ LOG_BUILTINS_LOCK_SHARED
read-only lock
Definition: log_builtins_filter.h:194
@ LOG_BUILTINS_LOCK_NONE
undefined
Definition: log_builtins_filter.h:193
@ LOG_BUILTINS_LOCK_EXCLUSIVE
read-write lock
Definition: log_builtins_filter.h:195
enum enum_log_filter_flags log_filter_flags
enum enum_log_filter_verb log_filter_verb
enum_log_filter_match
Note that if our condition requires absence of the key, and the key does not exist,...
Definition: log_builtins_filter.h:68
@ LOG_FILTER_MATCH_SUCCESS
success
Definition: log_builtins_filter.h:70
@ LOG_FILTER_MATCH_COMPARATOR_UNKNOWN
invalid value
Definition: log_builtins_filter.h:76
@ LOG_FILTER_MATCH_UNSATISFIED
failure
Definition: log_builtins_filter.h:72
@ LOG_FILTER_MATCH_UNCOMPARED
don't know yet
Definition: log_builtins_filter.h:74
@ LOG_FILTER_MATCH_CLASSES_DIFFER
either both or neither operands must be strings
Definition: log_builtins_filter.h:78
@ LOG_FILTER_MATCH_UNSUPPORTED_FOR_TYPE
comparator does not exist for this type (yet)
Definition: log_builtins_filter.h:80
enum_log_filter_flags
Definition: log_builtins_filter.h:98
@ LOG_FILTER_FLAG_NONE
normal state
Definition: log_builtins_filter.h:100
@ LOG_FILTER_FLAG_DISABLED
rule temporarily disabled
Definition: log_builtins_filter.h:105
@ LOG_FILTER_FLAG_SYNTHETIC
used to identify rules that don't come from the rule engine, but were injected by the server for emul...
Definition: log_builtins_filter.h:103
unsigned long long int ulonglong
Definition: my_inttypes.h:56
uint32_t uint32
Definition: my_inttypes.h:67
static int count
Definition: myisam_ftdump.cc:45
#define DECLARE_METHOD(retval, name, args)
Declares a method as a part of the Service definition.
Definition: service.h:103
#define END_SERVICE_DEFINITION(name)
A macro to end the last Service definition started with the BEGIN_SERVICE_DEFINITION macro.
Definition: service.h:91
#define BEGIN_SERVICE_DEFINITION(name)
Declares a new Service.
Definition: service.h:86
Specifies macros to define Service Implementations.
Definition: log_builtins_filter.h:113
std::atomic< int32 > match_count
how often did this rule match?
Definition: log_builtins_filter.h:144
ulong throttle_matches
how many lines in this window matched? (both suppressed and not)
Definition: log_builtins_filter.h:138
log_item match
compare to this item type/class/key/value etc
Definition: log_builtins_filter.h:126
log_filter_cond cond
how to compare: < > == regex etc
Definition: log_builtins_filter.h:127
ulong jump
default: 0.
Definition: log_builtins_filter.h:115
_log_filter_rule & operator=(const _log_filter_rule &other)
Definition: log_builtins_filter.h:149
log_item aux
aux: item to add/prio to set/throttle rate
Definition: log_builtins_filter.h:129
ulong id
index may change; this will not
Definition: log_builtins_filter.h:114
log_filter_verb verb
what to do: drop, upvote, etc
Definition: log_builtins_filter.h:128
ulonglong throttle_window_end
for rate-limiting: at what time will current window end?
Definition: log_builtins_filter.h:134
mysql_rwlock_t rule_lock
lock an individual rule (to update state keeping)
Definition: log_builtins_filter.h:147
ulong flags
log_filter_flags (fix storage size)
Definition: log_builtins_filter.h:141
ulong throttle_window_size
for rate-limiting: window-size (in seconds)
Definition: log_builtins_filter.h:136
Definition: log_builtins_filter.h:169
log_filter_tag * tag
creator of this rule
Definition: log_builtins_filter.h:171
log_filter_rule rule[LOG_FILTER_RULE_MAX]
rules in this ruleset
Definition: log_builtins_filter.h:178
mysql_rwlock_t ruleset_lock
lock for whole ruleset.
Definition: log_builtins_filter.h:189
uint32 alloc
maximum number of rules in this ruleset
Definition: log_builtins_filter.h:176
uint32 count
number of rules currently in ruleset
Definition: log_builtins_filter.h:174
Definition: log_builtins_filter.h:108
const char * filter_name
name of the service that created this rule
Definition: log_builtins_filter.h:109
void * filter_data
for ad lib use by said service.
Definition: log_builtins_filter.h:110
Definition: log_shared.h:201
log_line ("log event")
Definition: keyring_log_builtins_definition.cc:72
An instrumented rwlock structure.
Definition: mysql_rwlock_bits.h:51