Class: SmartBrain::Observability::Tracker
- Inherits:
-
Object
- Object
- SmartBrain::Observability::Tracker
- Defined in:
- lib/smart_brain/observability/tracker.rb
Instance Method Summary collapse
-
#initialize ⇒ Tracker
constructor
A new instance of Tracker.
- #log_commit(payload) ⇒ Object
- #log_compose(payload) ⇒ Object
- #log_scope_promotion(payload) ⇒ Object
- #log_scope_validation_failure(error) ⇒ Object
- #snapshot ⇒ Object
Constructor Details
#initialize ⇒ Tracker
Returns a new instance of Tracker.
6 7 8 9 |
# File 'lib/smart_brain/observability/tracker.rb', line 6 def initialize @compose_logs = [] @commit_logs = [] end |
Instance Method Details
#log_commit(payload) ⇒ Object
15 16 17 |
# File 'lib/smart_brain/observability/tracker.rb', line 15 def log_commit(payload) commit_logs << payload end |
#log_compose(payload) ⇒ Object
11 12 13 |
# File 'lib/smart_brain/observability/tracker.rb', line 11 def log_compose(payload) compose_logs << payload end |
#log_scope_promotion(payload) ⇒ Object
19 20 21 |
# File 'lib/smart_brain/observability/tracker.rb', line 19 def log_scope_promotion(payload) scope_promotion_logs << payload end |
#log_scope_validation_failure(error) ⇒ Object
23 24 25 |
# File 'lib/smart_brain/observability/tracker.rb', line 23 def log_scope_validation_failure(error) scope_validation_failures << { error: error., created_at: Time.now.utc.iso8601 } end |
#snapshot ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/smart_brain/observability/tracker.rb', line 27 def snapshot { compose_logs: compose_logs, commit_logs: commit_logs, scope_promotion_logs: scope_promotion_logs, scope_validation_failures: scope_validation_failures, metrics: { compose_p95_ms: p95(compose_logs.map { |l| l[:took_ms] }), memory_resource_ratio: memory_resource_ratio, token_over_budget_rate: token_over_budget_rate, scope_writes: scope_writes, scope_recalls: scope_recalls, shadowed_count: compose_logs.sum { |log| log[:shadowed_count].to_i }, scope_promotions: scope_promotion_logs.size, scope_validation_failures: scope_validation_failures.size, scope_filter_failures: compose_logs.sum { |log| Array(log[:scope_filter_warnings]).size } } } end |