aequitas_category (aequitas v1.4.0)

Copy Markdown View Source

Per-category handler: sliding-window work tracking and outlier detection.

This module backs each aequitas category. Its public functions are internal to the library; the externally relevant surface is the setting_opt/0 and ask_opt/0 types referenced by aequitas.

References

Summary

Types

ask_opt()

-type ask_opt() ::
          {weight, pos_integer()} |
          {min_actor_count, pos_integer()} |
          {iqr_factor, number()} |
          return_stats.

coll_limiter()

-type coll_limiter() ::
          #coll_limiter{capacity :: non_neg_integer() | infinity,
                        accepted :: non_neg_integer(),
                        rejected :: non_neg_integer(),
                        desire_history :: non_neg_integer(),
                        desire_history_size :: non_neg_integer()}.

setting_opt()

-type setting_opt() ::
          {max_window_size, pos_integer() | infinity} |
          {max_window_duration, aequitas_time_interval:t() | infinity} |
          {min_actor_count, pos_integer()} |
          {iqr_factor, number()} |
          {max_collective_rate, non_neg_integer()}.

settings()

-type settings() ::
          #settings{max_window_size :: pos_integer() | infinity,
                    max_window_duration :: pos_integer() | infinity,
                    min_actor_count :: pos_integer(),
                    iqr_factor :: number(),
                    max_collective_rate :: non_neg_integer() | infinity}.

work()

-type work() :: #work{actor_id :: term(), weight :: pos_integer(), timestamp :: integer()}.