# `PromEx.MetricTypes.Manual`
[🔗](https://github.com/akoutmos/prom_ex/blob/master/lib/prom_ex/metric_types/manual.ex#L1)

This struct defines the fields necessary to export a group
of manually collected metric sources from a plugin.

# `t`

```elixir
@type t() :: %PromEx.MetricTypes.Manual{
  group_name: atom(),
  measurements_mfa: PromEx.measurements_mfa(),
  metrics: [PromEx.telemetry_metrics()]
}
```

- `group_name`: A unique identifier for the collection of metrics.
- `measurements_mfa`: An MFA tuple that defines what function will be
  executed that will emit Telemetry events.
- `metrics`: A list of Telemetry Metrics structs that define the metrics.

# `build`

```elixir
@spec build(
  group_name :: atom(),
  measurements_mfa :: PromEx.measurements_mfa(),
  metrics :: [PromEx.telemetry_metrics()]
) :: t()
```

Create a struct that encompasses a group of manually triggered metrics. The `group_name` should be unique and should follow
the following convention: `<APPLICATION>_<SHORT DESCRIPTION>_manual_metrics`. For example, Application related info metrics
have a `group_name` of: `:application_versions_manual_metrics`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
