updtr_match_add needs exclude= argument or equivalent default behavior
baallan opened this issue · comments
it's very difficult (and ugly) to correctly configure a daemon with both pull and push sets.
Example of unhappiness:
pull
updtr_add auto_interval=true name=all_admin1 interval=1000000 offset=230000
updtr_prdcr_add name=all_admin1 regex=.*
updtr_match_add name=all_admin1 match=schema regex=^[^l][^i][^n]
updtr_start auto_interval=true name=all_admin1
push
updtr_add name=push_admin1 push=onchange interval=1000000
updtr_prdcr_add name=push_admin1 regex=.*
updtr_match_add name=push_admin1 regex=linux_proc_sampler match=schema
updtr_start name=push_admin1
Would much prefer that either:
(a) defining an updtr which gathers a matched item (schema or set) in a different mode removes that schema/set from all prior updtr locations
(b) updtr_match_add take an exclude argument so that above match adds can be rewritten:
updtr_match_add name=all_admin1 match=schema regex=.* exclude_regex=linux_proc_sampler
updtr_match_add name=push_admin1 regex=linux_proc_sampler match=schema
where either exclude_regex= can be repeated or we heavily document how the user must formulate a multiple exclusion regex where each exclusion subvalue is wildcard expression.
e.g. exclude_regex=(linux_proc_sampler|procne.*)
And with the syntax fix should also be a check that at least warns the user if the same set ends up the object of 2 updtrs, as this almost inevitably creates oversampled errors.