# `EctoPGMQ.Metrics`
[🔗](https://github.com/gdwoolbert3/ecto_pgmq/blob/main/lib/ecto_pgmq/metrics.ex#L1)

Schema for PGMQ queue metrics.

# `t`

```elixir
@type t() :: %EctoPGMQ.Metrics{
  lifetime_messages: non_neg_integer(),
  newest_message_age: Duration.t() | nil,
  oldest_message_age: Duration.t() | nil,
  queue: EctoPGMQ.Queue.name(),
  requested_at: DateTime.t(),
  total_messages: non_neg_integer(),
  visible_messages: non_neg_integer()
}
```

PGMQ queue metrics.

# `query`

```elixir
@spec query() :: Ecto.Query.t()
```

Returns a query for queue metrics.

Metrics are fetched transparently when querying queues via
`EctoPGMQ.Queue.query/0`.

> #### Warning {: .warning}
>
> This query only supports read operations.

## Examples

    iex> metrics = Repo.all(query())
    iex> Enum.all?(metrics, &is_struct(&1, EctoPGMQ.Metrics))
    true

---

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