Class: Sentiero::Analytics::ErrorDiscovery

Inherits:
Analyzer
  • Object
show all
Defined in:
lib/sentiero/analytics/error_discovery.rb

Overview

Groups captured JS errors (custom events tagged "error") by a normalized message pattern so the same error collapses into one row. Each occurrence carries offset_ms from its window's first event for the player's ?t= deep link. Pure transforms are shared with PageReportAnalyzer via ErrorCollector.

Constant Summary collapse

MAX_OCCURRENCES_PER_GROUP =
50
MAX_FACET_VALUES =
50

Constants included from Events

Sentiero::Analytics::Events::CUSTOM, Sentiero::Analytics::Events::INCREMENTAL, Sentiero::Analytics::Events::META, Sentiero::Analytics::Events::SOURCE_INPUT, Sentiero::Analytics::Events::SOURCE_MOUSE_INTERACTION, Sentiero::Analytics::Events::SOURCE_SCROLL

Instance Attribute Summary

Attributes inherited from Analyzer

#store

Instance Method Summary collapse

Methods inherited from Analyzer

#initialize

Methods included from EntryAttribution

#earlier?, #first_meta_href, #same_origin?, #update_entry_candidate

Methods included from Bounded

#bounded_fetch, #bounded_increment

Methods included from Stats

#mean, #offset_ms, #percentile, #top_counts

Constructor Details

This class inherits a constructor from Sentiero::Analytics::Analyzer

Instance Method Details

#grouped_errors(sort_by: "count", since: nil, until_time: nil) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/sentiero/analytics/error_discovery.rb', line 19

def grouped_errors(sort_by: "count", since: nil, until_time: nil)
  groups = {}

  _scanned, hit_cap = scan_sessions(since: since, until_time: until_time) do |summary, window_id, events|
    collect_window(groups, summary, window_id, events)
  end

  {
    groups: sort_groups(groups.values, sort_by),
    was_truncated: hit_cap
  }
end