Class: QueryGuard::Explain::PlanSignals
- Inherits:
-
Object
- Object
- QueryGuard::Explain::PlanSignals
- Defined in:
- lib/query_guard/explain/plan_signals.rb
Overview
Actionable signals extracted from query plan
Instance Attribute Summary collapse
-
#extracted_at ⇒ Object
readonly
Returns the value of attribute extracted_at.
-
#plan ⇒ Object
readonly
Returns the value of attribute plan.
-
#signals ⇒ Object
readonly
Returns the value of attribute signals.
Instance Method Summary collapse
-
#critical_signals(severity = :high) ⇒ Array<Hash>
Get most critical signals.
-
#initialize(plan) ⇒ PlanSignals
constructor
A new instance of PlanSignals.
-
#signals_of_type(type) ⇒ Array<Hash>
Find signals of specific type.
-
#to_a ⇒ Array<Hash>
All extracted signals as array.
-
#to_h ⇒ Hash
Convert to hash for serialization.
Constructor Details
#initialize(plan) ⇒ PlanSignals
Returns a new instance of PlanSignals.
191 192 193 194 195 |
# File 'lib/query_guard/explain/plan_signals.rb', line 191 def initialize(plan) @plan = plan @extracted_at = Time.now @signals = extract_signals end |
Instance Attribute Details
#extracted_at ⇒ Object (readonly)
Returns the value of attribute extracted_at.
189 190 191 |
# File 'lib/query_guard/explain/plan_signals.rb', line 189 def extracted_at @extracted_at end |
#plan ⇒ Object (readonly)
Returns the value of attribute plan.
189 190 191 |
# File 'lib/query_guard/explain/plan_signals.rb', line 189 def plan @plan end |
#signals ⇒ Object (readonly)
Returns the value of attribute signals.
189 190 191 |
# File 'lib/query_guard/explain/plan_signals.rb', line 189 def signals @signals end |
Instance Method Details
#critical_signals(severity = :high) ⇒ Array<Hash>
Get most critical signals
216 217 218 |
# File 'lib/query_guard/explain/plan_signals.rb', line 216 def critical_signals(severity = :high) signals.select { |s| s[:severity] == severity } end |
#signals_of_type(type) ⇒ Array<Hash>
Find signals of specific type
208 209 210 |
# File 'lib/query_guard/explain/plan_signals.rb', line 208 def signals_of_type(type) signals.select { |s| s[:type] == type } end |
#to_a ⇒ Array<Hash>
All extracted signals as array
200 201 202 |
# File 'lib/query_guard/explain/plan_signals.rb', line 200 def to_a signals end |
#to_h ⇒ Hash
Convert to hash for serialization
223 224 225 226 227 228 229 |
# File 'lib/query_guard/explain/plan_signals.rb', line 223 def to_h { plan: plan.to_h, signals: signals, extracted_at: extracted_at } end |