Packages
Multi-surface application runtime for Elixir. One TEA module renders to terminal, browser (LiveView), SSH, and MCP (agents). 30+ widgets, flexbox + CSS grid, AI agent runtime, distributed swarm with CRDTs, time-travel debugging, session recording, sandboxed REPL, and agentic commerce.
Current section
Files
Jump to
Current section
Files
lib/raxol_web/metrics.ex
defmodule RaxolWeb.Metrics do
@moduledoc """
Provides metrics collection and monitoring for RaxolWeb.
"""
@doc """
Tracks terminal events for performance monitoring.
"""
def track_terminal_event(event_type, duration, metadata \\ %{}) do
:telemetry.execute(
[:raxol_web, :terminal, event_type],
%{duration: duration},
Map.merge(metadata, %{timestamp: System.system_time()})
)
end
@doc """
Tracks channel events for monitoring.
"""
def track_channel_event(event_type, duration, metadata \\ %{}) do
:telemetry.execute(
[:raxol_web, :channel, event_type],
%{duration: duration},
Map.merge(metadata, %{timestamp: System.system_time()})
)
end
@doc """
Tracks LiveView events for monitoring.
"""
def track_liveview_event(event_type, duration, metadata \\ %{}) do
:telemetry.execute(
[:raxol_web, :liveview, event_type],
%{duration: duration},
Map.merge(metadata, %{timestamp: System.system_time()})
)
end
@doc """
Records error metrics.
"""
def track_error(error_type, error_details, metadata \\ %{}) do
:telemetry.execute(
[:raxol_web, :error, error_type],
%{count: 1},
Map.merge(metadata, %{
error_details: error_details,
timestamp: System.system_time()
})
)
end
end