Excessibility.TelemetryCapture.Analyzers.EctoQueryAnalysis (Excessibility v0.14.0)
View SourceAnalyzes 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
Callback implementation for Excessibility.TelemetryCapture.Analyzer.analyze/2.
Callback implementation for Excessibility.TelemetryCapture.Analyzer.default_enabled?/0.
Callback implementation for Excessibility.TelemetryCapture.Analyzer.name/0.
Callback implementation for Excessibility.TelemetryCapture.Analyzer.requires_enrichers/0.
Functions
Callback implementation for Excessibility.TelemetryCapture.Analyzer.analyze/2.
Callback implementation for Excessibility.TelemetryCapture.Analyzer.default_enabled?/0.
Callback implementation for Excessibility.TelemetryCapture.Analyzer.name/0.
Callback implementation for Excessibility.TelemetryCapture.Analyzer.requires_enrichers/0.