Raxol.Terminal.ScreenBuffer.Metrics (Raxol v2.0.1)

View Source

Handles metrics collection and management for the terminal screen buffer. This module provides functions for recording and retrieving various metrics related to screen buffer performance, operations, and resource usage.

Summary

Types

metric_tags()

@type metric_tags() :: map()

metric_type()

@type metric_type() :: :performance | :operation | :resource

metric_value()

@type metric_value() :: number() | String.t() | boolean()

t()

@type t() :: %Raxol.Terminal.ScreenBuffer.Metrics{
  metrics: %{required(String.t()) => {metric_value(), metric_tags()}},
  operation_metrics: %{required(String.t()) => number()},
  performance_metrics: %{required(String.t()) => number()},
  resource_metrics: %{required(String.t()) => number()}
}

Functions

collect(state, atom)

@spec collect(t(), metric_type()) :: %{required(String.t()) => metric_value()}

get(state, metric, tags)

@spec get(t(), String.t(), metric_tags()) :: metric_value() | nil

get_by_type(state, type)

@spec get_by_type(t(), metric_type()) :: %{required(String.t()) => metric_value()}

get_value(state, metric)

@spec get_value(t(), String.t()) :: {metric_value(), metric_tags()} | nil

init()

record(state, metric, value, tags)

@spec record(t(), String.t(), metric_value(), metric_tags()) :: t()

record_operation(state, operation, value)

@spec record_operation(t(), String.t(), number()) :: t()

record_performance(state, metric, value)

@spec record_performance(t(), String.t(), number()) :: t()

record_resource(state, resource, value)

@spec record_resource(t(), String.t(), number()) :: t()

verify(state, metrics)

@spec verify(t(), [String.t()]) :: boolean()