# Metrics

> The send duration, confirmation duration and fee histograms hashspan records: instrument, unit, attributes and when each is recorded.

Source: https://hashspan.dev/docs/reference/attributes/metrics

Generated from the semantic conventions These rows are generated from the semantic conventions at @hashspan/core@1.1.0, the version on npm. They are a draft: names can still change.

The histograms the tracker records. Bucket boundaries, and how `error.type` is kept on metrics, are under [metrics](https://hashspan.dev/docs/reference/semantic-conventions#metrics).

## `blockchain.client.send.duration`

| Instrument | Unit |
|---|---|
| histogram | `s` |

**Attributes:** chain; `blockchain.operation.subject` for a user operation or call batch; `error.type` if the send failed

**Recorded when:** a send span ends with a hash or id, or fails: from the start of the sending call until then

## `blockchain.client.confirmation.duration`

| Instrument | Unit |
|---|---|
| histogram | `s` |

**Attributes:** chain; `blockchain.operation.subject` for a user operation or call batch; the outcome from chain data, `blockchain.tx.status` (for a user operation, `blockchain.user_operation.success`; for a call batch, `blockchain.call_batch.status`), else `error.type` (`timeout`, `not_on_chain`, an adapter's error type, an error class name, or `_OTHER`)

**Recorded when:** a confirm span ends: from the start of the wait until the receipt or batch status, a replacement, a timeout or a failure; not for a call batch that ended while still pending, nor for a transaction whose receipt was pending

## `blockchain.client.fee`

| Instrument | Unit |
|---|---|
| histogram | `{wei}` |

**Attributes:** chain; `blockchain.operation.subject` for a user operation; `blockchain.tx.status` (for a user operation, `blockchain.user_operation.success`); `blockchain.fee.payer` when someone other than the sender paid; `blockchain.fee.denomination` when the fee was paid in a token

**Recorded when:** a receipt with an effective gas price is recorded: `blockchain.tx.fee` as a number, without the OP Stack operator fee, which no metric records; for a user operation, a receipt with its cost: `blockchain.user_operation.gas.cost`
