# `ScoutApm.Internal.JobRecord`

Stores a single or multiple runs of a background job.
Both metadata ("queue" and "name"), and metrics ("total time", "metrics")

# `t`

```elixir
@type t() :: %ScoutApm.Internal.JobRecord{
  count: non_neg_integer(),
  errors: non_neg_integer(),
  exclusive_time: ApproximateHistogram.t(),
  metrics: ScoutApm.MetricSet.t(),
  name: String.t(),
  queue: String.t(),
  total_time: ApproximateHistogram.t()
}
```

# `from_layer`

```elixir
@spec from_layer(ScoutApm.Internal.Layer.t(), any()) :: t()
```

Given a Job layer (probably the root-layer of a TrackedRequest), turn it
into a JobRecord, with fully populated metrics and timing info

# `increment_errors`

# `key`

```elixir
@spec key(t()) :: String.t()
```

# `merge`

```elixir
@spec merge(t(), t()) :: t()
```

---

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