Class: SmartBrain::Observability::Tracker

Inherits:
Object
  • Object
show all
Defined in:
lib/smart_brain/observability/tracker.rb

Instance Method Summary collapse

Constructor Details

#initializeTracker

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.message, created_at: Time.now.utc.iso8601 }
end

#snapshotObject



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