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

View Source

Analyzes Ecto query patterns across timeline events.

Replaces the old N+1 analyzer. Uses actual query data from the ecto_queries enricher instead of just counting NotLoaded associations.

Detects:

  • Excessive queries per event (>5 queries)
  • N+1 patterns (multiple SELECTs on same table in one event)
  • Slow individual queries (>100ms)
  • Slow total query time per event (>500ms)

Output

%{
  findings: [
    %{
      severity: :critical,
      message: "handle_event:load_items triggered 30 queries in 142ms...",
      events: [1],
      metadata: %{query_count: 30, total_ms: 142.0, pattern: :n_plus_one}
    }
  ],
  stats: %{total_queries: 30, total_query_ms: 142.0, max_queries_per_event: 30}
}

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.