Pipeline.Monitoring.StreamingMetrics (PipelineEx v0.1.1)

View Source

Streaming-specific performance metrics collection and analysis.

Tracks metrics like:

  • Time to First Token (TTFT)
  • Tokens per second throughput
  • Message arrival patterns
  • Buffer efficiency

Summary

Functions

Calculate average time between messages.

Calculate tokens per second throughput.

Calculate Time to First Token (TTFT) in milliseconds.

Compare two streaming sessions.

Initialize streaming metrics for a new stream.

Record a message arrival in the stream.

Generate a performance summary.

Types

t()

@type t() :: %Pipeline.Monitoring.StreamingMetrics{
  buffer_stats: map(),
  first_message_time: DateTime.t() | nil,
  handler_type: atom(),
  last_message_time: DateTime.t() | nil,
  message_count: non_neg_integer(),
  message_times: [DateTime.t()],
  start_time: DateTime.t(),
  stream_id: String.t(),
  total_tokens: non_neg_integer()
}

Functions

calculate_message_interval(streaming_metrics)

@spec calculate_message_interval(t()) :: float() | nil

Calculate average time between messages.

calculate_throughput(metrics)

@spec calculate_throughput(t()) :: float() | nil

Calculate tokens per second throughput.

calculate_ttft(streaming_metrics)

@spec calculate_ttft(t()) :: non_neg_integer() | nil

Calculate Time to First Token (TTFT) in milliseconds.

compare(metrics1, metrics2)

@spec compare(t(), t()) :: map()

Compare two streaming sessions.

init(stream_id, handler_type \\ :unknown)

@spec init(String.t(), atom()) :: t()

Initialize streaming metrics for a new stream.

record_buffer_stats(metrics, current_buffer_size)

@spec record_buffer_stats(t(), non_neg_integer()) :: t()

Record buffer statistics.

record_message(metrics, message)

@spec record_message(t(), map()) :: t()

Record a message arrival in the stream.

summarize(metrics)

@spec summarize(t()) :: map()

Generate a performance summary.