Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
in_sample: support to renew record functionality
When in_sample plugin is used with filter parser which uses remove_key_name_field, it raises the following error repeatedly. #0 dump an error event: error_class=ArgumentError error="message does not exist" This kind of error occurs when key_name and remove_key_name_field removes key from record with destructive change in filter parser. It affects generated sample data. To fix this issue, it is simple to just dup every record even though it has a significant performance penalty. Considering keeping compatibility and providing way to a workaround, added option to control whether it always re-generate a new record or re-use existing record - renew_record, enabled by default. ref. #4575 Here is the small benchmark: <source> @type sample tag test size xxx rate 100 #renew_record false renew_record true </source> <match test> @type null </match> size: 10000 current master PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 201025 kenhys 20 0 340940 54800 13648 S 24.6 0.1 0:04.62 ruby renew_record: false PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 202342 kenhys 20 0 340948 54732 13576 S 25.7 0.1 0:06.83 ruby renew_record: true PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 203402 kenhys 20 0 343288 63556 13500 S 30.7 0.1 0:06.86 ruby size: 100000 current master PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 204681 kenhys 20 0 364324 80880 13448 S 100.0 0.1 0:14.46 ruby renew_record: false PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 205560 kenhys 20 0 364332 80868 13448 S 99.7 0.1 0:31.34 ruby renew_record: true PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 207133 kenhys 20 0 365804 113320 13576 S 99.7 0.2 0:13.87 ruby Signed-off-by: Kentaro Hayashi <hayashi@clear-code.com>
- Loading branch information