Class: AiRootShield::Enterprise::PerformanceMonitor

Inherits:
Object
  • Object
show all
Defined in:
lib/ai_root_shield/enterprise/performance_optimizer.rb

Overview

Performance monitoring

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ PerformanceMonitor

Returns a new instance of PerformanceMonitor.



583
584
585
586
# File 'lib/ai_root_shield/enterprise/performance_optimizer.rb', line 583

def initialize(config)
  @config = config
  @metrics = []
end

Instance Method Details

#get_metrics(name = nil, since = nil) ⇒ Object



605
606
607
608
609
610
# File 'lib/ai_root_shield/enterprise/performance_optimizer.rb', line 605

def get_metrics(name = nil, since = nil)
  filtered = @metrics
  filtered = filtered.select { |m| m[:name] == name } if name
  filtered = filtered.select { |m| m[:timestamp] >= since } if since
  filtered
end

#record_metric(name, value, timestamp = Time.now) ⇒ Object



588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
# File 'lib/ai_root_shield/enterprise/performance_optimizer.rb', line 588

def record_metric(name, value, timestamp = Time.now)
  return unless @config[:enabled]
  
  if rand < @config[:sample_rate]
    @metrics << {
      name: name,
      value: value,
      timestamp: timestamp
    }
    
    # Limit metrics storage
    if @metrics.length > 10000
      @metrics = @metrics.last(8000)
    end
  end
end