Excessibility.TelemetryCapture.Analyzers.DataGrowth (Excessibility v0.14.0)

View Source

Analyzes data growth patterns across timeline events.

Detects:

  • Unbounded list growth (3x+ growth)
  • Rapid growth (10x+ in single transition)
  • Large growing lists (suggest pagination)

Uses data from the CollectionSize enricher (list_sizes) to track how list sizes change over time.

Algorithm

  1. Track each list's size across events
  2. Detect significant growth:
    • Warning: 3x+ growth overall
    • Critical: 10x+ growth in single step OR list exceeds 100 items
  3. Suggest pagination for large growing lists (>100 items)

Output

Returns findings and statistics:

%{
  findings: [
    %{
      severity: :warning,
      message: "List 'products' growing: 10 → 50 → 200 (20x)",
      events: [1, 2, 3],
      metadata: %{
        list_name: :products,
        sizes: [10, 50, 200],
        growth_multiplier: 20.0
      }
    }
  ],
  stats: %{
    growing_lists: [:products, :users]
  }
}

Summary

Functions

analyze(map, opts)

Callback implementation for Excessibility.TelemetryCapture.Analyzer.analyze/2.

default_enabled?()

Callback implementation for Excessibility.TelemetryCapture.Analyzer.default_enabled?/0.

name()

Callback implementation for Excessibility.TelemetryCapture.Analyzer.name/0.

requires_enrichers()

Callback implementation for Excessibility.TelemetryCapture.Analyzer.requires_enrichers/0.