README.md

# GenMetricsBench

A GenMetrics benchmarking tool for GenServer and GenStage applications. 

GenMetrics supports the collection and publication of GenServer and GenStage runtime metrics. Metrics data are generated by an introspection agent. This means that no instrumentation is required within the GenServer or GenStage library or within your application source code.

This library helps us to test and measure what, if any, overhead is introduced into the runtime environment by the GenMetrics introspection agent.

## Extensible Benchmarks

To provide an extensible benchmarking tool this library makes it simple for anyone to plug-in new runtime behaviours for any benchmark test. These behaviours include:

1. The type and size of the message passing through the GenServer cluster or GenStage pipeline.

2. The simulated time spent processing those messages within a GenServer call, cast or info callback or within a GenStage :producer_consumer handle_events/3 callback.

## Documentation

Find detailed documentation for the GenMetricsBench library on [HexDocs](https://hexdocs.pm/gen_metrics_bench).

## Installation

Just add :gen_metrics_bench to your list of dependencies in mix.exs:

def deps do
  [{:gen_metrics_bench, "~> 0.1.0"}]
end