|
366 | 366 | * - [split_long_messages]: bool, defaults to false, split messages longer than 4096 bytes into multiple messages
|
367 | 367 | * - [delay_between_messages]: bool, defaults to false, adds a 1sec delay/sleep between sending split messages
|
368 | 368 | *
|
| 369 | + * - sampling: |
| 370 | + * - handler: the wrapped handler's name |
| 371 | + * - factor: the sampling factor (e.g. 10 means every ~10th record is sampled) |
| 372 | + * |
369 | 373 | * All handlers can also be marked with `nested: true` to make sure they are never added explicitly to the stack
|
370 | 374 | *
|
371 | 375 | * @author Jordi Boggiano <j.boggiano@seld.be>
|
@@ -591,6 +595,7 @@ public function getConfigTreeBuilder(): TreeBuilder
|
591 | 595 | ->booleanNode('disable_notification')->defaultNull()->end() // telegram
|
592 | 596 | ->booleanNode('split_long_messages')->defaultFalse()->end() // telegram
|
593 | 597 | ->booleanNode('delay_between_messages')->defaultFalse()->end() // telegram
|
| 598 | + ->integerNode('factor')->defaultValue(1)->min(1)->end() // sampling |
594 | 599 | ->arrayNode('tags') // loggly
|
595 | 600 | ->beforeNormalization()
|
596 | 601 | ->ifString()
|
@@ -650,8 +655,8 @@ public function getConfigTreeBuilder(): TreeBuilder
|
650 | 655 | ->thenInvalid('Service handlers can not have a formatter configured in the bundle, you must reconfigure the service itself instead')
|
651 | 656 | ->end()
|
652 | 657 | ->validate()
|
653 |
| - ->ifTrue(function ($v) { return ('fingers_crossed' === $v['type'] || 'buffer' === $v['type'] || 'filter' === $v['type']) && empty($v['handler']); }) |
654 |
| - ->thenInvalid('The handler has to be specified to use a FingersCrossedHandler or BufferHandler or FilterHandler') |
| 658 | + ->ifTrue(function ($v) { return ('fingers_crossed' === $v['type'] || 'buffer' === $v['type'] || 'filter' === $v['type'] || 'sampling' === $v['type']) && empty($v['handler']); }) |
| 659 | + ->thenInvalid('The handler has to be specified to use a FingersCrossedHandler or BufferHandler or FilterHandler or SamplingHandler') |
655 | 660 | ->end()
|
656 | 661 | ->validate()
|
657 | 662 | ->ifTrue(function ($v) { return 'fingers_crossed' === $v['type'] && !empty($v['excluded_404s']) && !empty($v['activation_strategy']); })
|
|
0 commit comments