Class: Lapsoss::PipelineBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/lapsoss/pipeline_builder.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializePipelineBuilder

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

#pipelineObject (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