Class: Lapsoss::PipelineBuilder
- Inherits:
-
Object
- Object
- Lapsoss::PipelineBuilder
- Defined in:
- lib/lapsoss/pipeline_builder.rb
Instance Attribute Summary collapse
-
#pipeline ⇒ Object
readonly
Returns the value of attribute pipeline.
Instance Method Summary collapse
- #collect_metrics(collector: nil) ⇒ Object
- #enhance_user_context(provider: nil, privacy_mode: false) ⇒ Object
- #enrich_events(*enrichers) ⇒ Object
- #exclude_exceptions(*exception_classes, patterns: []) ⇒ Object
- #filter_if(&condition) ⇒ Object
-
#initialize ⇒ PipelineBuilder
constructor
A new instance of PipelineBuilder.
- #rate_limit(max_events: 100, time_window: 60) ⇒ Object
- #sample(rate: 1.0, &block) ⇒ Object
- #track_releases(release: nil) ⇒ Object
- #transform_events(&transformer) ⇒ Object
- #use_middleware(middleware_class) ⇒ Object
Constructor Details
#initialize ⇒ PipelineBuilder
Returns a new instance of PipelineBuilder.
5 6 7 |
# File 'lib/lapsoss/pipeline_builder.rb', line 5 def initialize @pipeline = Pipeline.new end |
Instance Attribute Details
#pipeline ⇒ Object (readonly)
Returns the value of attribute pipeline.
67 68 69 |
# File 'lib/lapsoss/pipeline_builder.rb', line 67 def pipeline @pipeline end |
Instance Method Details
#collect_metrics(collector: nil) ⇒ Object
40 41 42 43 |
# File 'lib/lapsoss/pipeline_builder.rb', line 40 def collect_metrics(collector: nil) @pipeline.use(Middleware::MetricsCollector, collector: collector) self end |
#enhance_user_context(provider: nil, privacy_mode: false) ⇒ Object
21 22 23 24 25 26 |
# File 'lib/lapsoss/pipeline_builder.rb', line 21 def enhance_user_context(provider: nil, privacy_mode: false) @pipeline.use(Middleware::UserContextEnhancer, user_provider: provider, privacy_mode: privacy_mode) self end |
#enrich_events(*enrichers) ⇒ Object
45 46 47 48 |
# File 'lib/lapsoss/pipeline_builder.rb', line 45 def enrich_events(*enrichers) @pipeline.use(Middleware::EventEnricher, enrichers: enrichers) self end |
#exclude_exceptions(*exception_classes, patterns: []) ⇒ Object
14 15 16 17 18 19 |
# File 'lib/lapsoss/pipeline_builder.rb', line 14 def exclude_exceptions(*exception_classes, patterns: []) @pipeline.use(Middleware::ExceptionFilter, excluded_exceptions: exception_classes, excluded_patterns: patterns) self end |
#filter_if(&condition) ⇒ Object
50 51 52 53 |
# File 'lib/lapsoss/pipeline_builder.rb', line 50 def filter_if(&condition) @pipeline.use(Middleware::ConditionalFilter, condition) self end |
#rate_limit(max_events: 100, time_window: 60) ⇒ Object
33 34 35 36 37 38 |
# File 'lib/lapsoss/pipeline_builder.rb', line 33 def rate_limit(max_events: 100, time_window: 60) @pipeline.use(Middleware::RateLimiter, max_events: max_events, time_window: time_window) self end |
#sample(rate: 1.0, &block) ⇒ Object
9 10 11 12 |
# File 'lib/lapsoss/pipeline_builder.rb', line 9 def sample(rate: 1.0, &block) @pipeline.use(Middleware::SampleFilter, sample_rate: rate, sample_callback: block) self end |
#track_releases(release: nil) ⇒ Object
28 29 30 31 |
# File 'lib/lapsoss/pipeline_builder.rb', line 28 def track_releases(release: nil) @pipeline.use(Middleware::ReleaseTracker, release: release) self end |
#transform_events(&transformer) ⇒ Object
55 56 57 58 |
# File 'lib/lapsoss/pipeline_builder.rb', line 55 def transform_events(&transformer) @pipeline.use(Middleware::EventTransformer, transformer) self end |
#use_middleware(middleware_class) ⇒ Object
60 61 62 63 |
# File 'lib/lapsoss/pipeline_builder.rb', line 60 def use_middleware(middleware_class, *, **) @pipeline.use(middleware_class, *, **) self end |