Class NarrativeTraceFilter

java.lang.Object
ai.narrativetrace.servlet.NarrativeTraceFilter
All Implemented Interfaces:
jakarta.servlet.Filter

public class NarrativeTraceFilter extends Object implements jakarta.servlet.Filter
Servlet filter for production request lifecycle trace capture.

Follows a reset-chain-capture-export-reset lifecycle on each HTTP request:

  1. Reset the narrative context (clear any stale state)
  2. Execute the filter chain (downstream code is traced via proxies/agent)
  3. Capture the accumulated trace tree
  4. Export via the configured TraceExporter
  5. Reset again (clean up)

This class has zero Spring dependencies — it works with any servlet container. For Spring integration, use ai.narrativetrace.spring.web.NarrativeTraceWebConfiguration.

See Also:
  • Constructor Summary

    Constructors
    Constructor
    Description
    NarrativeTraceFilter(ai.narrativetrace.core.context.NarrativeContext context, ai.narrativetrace.core.export.TraceExporter exporter)
    Creates a filter with the given context and exporter.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    doFilter(jakarta.servlet.ServletRequest request, jakarta.servlet.ServletResponse response, jakarta.servlet.FilterChain chain)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface jakarta.servlet.Filter

    destroy, init
  • Constructor Details

    • NarrativeTraceFilter

      public NarrativeTraceFilter(ai.narrativetrace.core.context.NarrativeContext context, ai.narrativetrace.core.export.TraceExporter exporter)
      Creates a filter with the given context and exporter.
      Parameters:
      context - the narrative context shared with tracing proxies/agent
      exporter - the exporter to send captured traces to
  • Method Details

    • doFilter

      public void doFilter(jakarta.servlet.ServletRequest request, jakarta.servlet.ServletResponse response, jakarta.servlet.FilterChain chain) throws IOException, jakarta.servlet.ServletException
      Specified by:
      doFilter in interface jakarta.servlet.Filter
      Throws:
      IOException
      jakarta.servlet.ServletException