Class: Aidp::Harness::State::Metrics
- Inherits:
-
Object
- Object
- Aidp::Harness::State::Metrics
- Defined in:
- lib/aidp/harness/state/metrics.rb
Overview
Manages metrics, analytics, and performance calculations
Instance Method Summary collapse
- #harness_metrics ⇒ Object
-
#initialize(persistence, workflow_state) ⇒ Metrics
constructor
A new instance of Metrics.
- #performance_metrics ⇒ Object
- #record_error_event(step_name, error_type, provider_name = nil) ⇒ Object
- #record_provider_switch(from_provider, to_provider) ⇒ Object
- #record_rate_limit_event(provider_name, reset_time) ⇒ Object
- #record_retry_attempt(step_name, provider_name, attempt_number) ⇒ Object
- #record_user_feedback_request(step_name, questions_count) ⇒ Object
Constructor Details
#initialize(persistence, workflow_state) ⇒ Metrics
8 9 10 11 |
# File 'lib/aidp/harness/state/metrics.rb', line 8 def initialize(persistence, workflow_state) @persistence = persistence @workflow_state = workflow_state end |
Instance Method Details
#harness_metrics ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/aidp/harness/state/metrics.rb', line 63 def harness_metrics state = load_state { provider_switches: state[:provider_switches] || 0, rate_limit_events: state[:rate_limit_events] || 0, user_feedback_requests: state[:user_feedback_requests] || 0, error_events: state[:error_events] || 0, retry_attempts: state[:retry_attempts] || 0, current_provider: state[:current_provider], harness_state: state[:state], last_activity: state[:last_updated] } end |
#performance_metrics ⇒ Object
77 78 79 80 81 82 83 |
# File 'lib/aidp/harness/state/metrics.rb', line 77 def performance_metrics { efficiency: calculate_efficiency_metrics, reliability: calculate_reliability_metrics, performance: calculate_performance_metrics } end |
#record_error_event(step_name, error_type, provider_name = nil) ⇒ Object
43 44 45 46 47 48 49 50 51 |
# File 'lib/aidp/harness/state/metrics.rb', line 43 def record_error_event(step_name, error_type, provider_name = nil) current_state = load_state error_events = (current_state[:error_events] || 0) + 1 update_state( error_events: error_events, last_error: create_error_record(step_name, error_type, provider_name) ) end |
#record_provider_switch(from_provider, to_provider) ⇒ Object
13 14 15 16 17 18 19 20 21 |
# File 'lib/aidp/harness/state/metrics.rb', line 13 def record_provider_switch(from_provider, to_provider) current_state = load_state provider_switches = (current_state[:provider_switches] || 0) + 1 update_state( provider_switches: provider_switches, last_provider_switch: create_switch_record(from_provider, to_provider) ) end |
#record_rate_limit_event(provider_name, reset_time) ⇒ Object
23 24 25 26 27 28 29 30 31 |
# File 'lib/aidp/harness/state/metrics.rb', line 23 def record_rate_limit_event(provider_name, reset_time) current_state = load_state rate_limit_events = (current_state[:rate_limit_events] || 0) + 1 update_state( rate_limit_events: rate_limit_events, last_rate_limit: create_rate_limit_record(provider_name, reset_time) ) end |
#record_retry_attempt(step_name, provider_name, attempt_number) ⇒ Object
53 54 55 56 57 58 59 60 61 |
# File 'lib/aidp/harness/state/metrics.rb', line 53 def record_retry_attempt(step_name, provider_name, attempt_number) current_state = load_state retry_attempts = (current_state[:retry_attempts] || 0) + 1 update_state( retry_attempts: retry_attempts, last_retry: create_retry_record(step_name, provider_name, attempt_number) ) end |
#record_user_feedback_request(step_name, questions_count) ⇒ Object
33 34 35 36 37 38 39 40 41 |
# File 'lib/aidp/harness/state/metrics.rb', line 33 def record_user_feedback_request(step_name, questions_count) current_state = load_state user_feedback_requests = (current_state[:user_feedback_requests] || 0) + 1 update_state( user_feedback_requests: user_feedback_requests, last_user_feedback: create_feedback_record(step_name, questions_count) ) end |