Class: AiRootShield::Enterprise::PerformanceMonitor
- Inherits:
-
Object
- Object
- AiRootShield::Enterprise::PerformanceMonitor
- Defined in:
- lib/ai_root_shield/enterprise/performance_optimizer.rb
Overview
Performance monitoring
Instance Method Summary collapse
- #get_metrics(name = nil, since = nil) ⇒ Object
-
#initialize(config) ⇒ PerformanceMonitor
constructor
A new instance of PerformanceMonitor.
- #record_metric(name, value, timestamp = Time.now) ⇒ Object
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, = Time.now) return unless @config[:enabled] if rand < @config[:sample_rate] @metrics << { name: name, value: value, timestamp: } # Limit metrics storage if @metrics.length > 10000 @metrics = @metrics.last(8000) end end end |