> ## Documentation Index
> Fetch the complete documentation index at: https://docs.blnkfinance.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Metrics reference

> Metric names, types, and attributes for Blnk Core.

export const CtaCallout = props => {
  const {title, buttonLabel, href, trackingEvent, buttonTarget, rel = "noopener noreferrer", children} = props;
  const handleCtaClick = () => {
    if (typeof window === "undefined" || !trackingEvent) {
      return;
    }
    try {
      window.dispatchEvent(new CustomEvent("blnk:docs-cta", {
        detail: {
          name: trackingEvent,
          href
        }
      }));
    } catch {}
    try {
      window.posthog?.capture?.(trackingEvent, {
        href
      });
    } catch {}
    const gaPayload = {
      cta_href: href
    };
    try {
      window.gtag?.("event", trackingEvent, gaPayload);
    } catch {}
    try {
      window.dataLayer = window.dataLayer || [];
      window.dataLayer.push({
        event: trackingEvent,
        ...gaPayload
      });
    } catch {}
  };
  const isExternal = typeof href === "string" && (/^https?:\/\//i).test(href);
  const target = buttonTarget ?? (isExternal ? "_blank" : undefined);
  const linkRel = isExternal ? rel : undefined;
  return <section className="cta-callout not-prose relative my-8 w-full min-w-0 overflow-hidden rounded-xl border border-zinc-200 p-5 dark:border-white/10">
      <div className="cta-callout-noise" aria-hidden="true" />
      <div className="cta-callout-layout">
        {title ? <div className="cta-callout-title-row">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 28 28" width="14" height="14" className="cta-callout-icon shrink-0 text-zinc-800 dark:text-zinc-200" aria-hidden="true">
              <g fill="none" fillRule="nonzero">
                <path d="M28 0v28H0V0h28ZM14.691833333333335 27.134333333333334l-0.012833333333333334 0.0023333333333333335 -0.08283333333333333 0.04083333333333334 -0.023333333333333334 0.004666666666666667 -0.016333333333333335 -0.004666666666666667 -0.08283333333333333 -0.04083333333333334c-0.011666666666666667 -0.004666666666666667 -0.022166666666666668 -0.0011666666666666668 -0.028000000000000004 0.005833333333333334l-0.004666666666666667 0.011666666666666667 -0.019833333333333335 0.49933333333333335 0.005833333333333334 0.023333333333333334 0.011666666666666667 0.015166666666666667 0.12133333333333333 0.08633333333333333 0.0175 0.004666666666666667 0.014000000000000002 -0.004666666666666667 0.12133333333333333 -0.08633333333333333 0.014000000000000002 -0.018666666666666668 0.004666666666666667 -0.019833333333333335 -0.019833333333333335 -0.4981666666666667c-0.0023333333333333335 -0.011666666666666667 -0.0105 -0.019833333333333335 -0.019833333333333335 -0.021Zm0.3091666666666667 -0.13183333333333336 -0.015166666666666667 0.0023333333333333335 -0.21583333333333335 0.1085 -0.011666666666666667 0.011666666666666667 -0.0035000000000000005 0.012833333333333334 0.021 0.5016666666666667 0.005833333333333334 0.014000000000000002 0.009333333333333334 0.008166666666666668 0.23450000000000004 0.1085c0.014000000000000002 0.004666666666666667 0.026833333333333334 0 0.03383333333333334 -0.009333333333333334l0.004666666666666667 -0.016333333333333335 -0.03966666666666667 -0.7163333333333334c-0.0035000000000000005 -0.014000000000000002 -0.011666666666666667 -0.023333333333333334 -0.023333333333333334 -0.025666666666666667Zm-0.8341666666666667 0.0023333333333333335a0.026833333333333334 0.026833333333334334 0 0 0 -0.0315 0.007000000000000001l-0.007000000000000001 0.016333333333333335 -0.03966666666666667 0.7163333333333334c0 0.014000000000000002 0.008166666666666668 0.023333333333333334 0.019833333333333335 0.028000000000000004l0.0175 -0.0023333333333333335 0.23450000000000004 -0.1085 0.011666666666666667 -0.009333333333333334 0.004666666666666667 -0.012833333333333334 0.019833333333333335 -0.5016666666666667 -0.0035000000000000005 -0.014000000000000002 -0.011666666666666667 -0.011666666666666667 -0.21466666666666667 -0.10733333333333334Z" strokeWidth="1.1667" />
                <path fill="currentColor" d="M14 2.916666666666667A1.75 1.75 0 0 1 15.750000000000002 4.666666666666667v6.302333333333334L21.207666666666668 7.816666666666667a1.75 1.75 0 0 1 1.75 3.031L17.5 14l5.457666666666667 3.151166666666667a1.75 1.75 0 0 1 -1.75 3.031l-5.457666666666667 -3.1500000000000004V23.333333333333336a1.75 1.75 0 0 1 -3.5 0v-6.302333333333334L6.792333333333334 20.183333333333337a1.75 1.75 0 1 1 -1.75 -3.031L10.5 14 5.042333333333334 10.848833333333333a1.75 1.75 0 0 1 1.75 -3.031l5.457666666666667 3.1500000000000004V4.666666666666667A1.75 1.75 0 0 1 14 2.916666666666667Z" strokeWidth="1.1667" />
              </g>
            </svg>
            <p className="cta-callout-title min-w-0 font-semibold text-zinc-800 dark:text-zinc-200">
              {title}
            </p>
          </div> : null}
        <div className={`cta-callout-body text-sm leading-normal text-zinc-800 dark:text-zinc-200${title ? " cta-callout-body--indented" : ""}`}>
          {children}
        </div>
        <a href={href} target={target} rel={linkRel} onClick={handleCtaClick} data-docs-cta={trackingEvent || undefined} className="cta-callout-button inline-flex items-center justify-center gap-1 rounded-full bg-white px-3 py-1.5 text-sm font-semibold transition hover:bg-zinc-100 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white/50 dark:bg-white dark:hover:bg-zinc-200">
          {buttonLabel}
          <span className="cta-callout-button-arrow" aria-hidden="true">
            →
          </span>
        </a>
      </div>
    </section>;
};

Blnk emits metrics as numeric time-series measurements from the server and workers: transaction throughput, queue depth, inflight lifecycle events, worker retries, and related operational signals.

This page catalogs every metric sent by Blnk: name, instrument type, attributes, and allowed values.

For setup and export modes, see [Monitoring in Blnk](/advanced/monitoring).

***

## Metrics

<Tabs>
  <Tab title="Transactions">
    Track ledger writes from acceptance through final status. Use these metrics for throughput, latency SLOs, and rejection spikes by reason or currency.

    | Name                                | Type      | Attributes           | Description                                         |
    | :---------------------------------- | :-------- | :------------------- | :-------------------------------------------------- |
    | `blnk_transaction_total`            | Counter   | `status`, `currency` | Total transactions by final status and currency     |
    | `blnk_transaction_duration_seconds` | Histogram | `status`             | Wall-clock time of `RecordTransaction()` in seconds |
    | `blnk_transaction_rejected_total`   | Counter   | `reason`             | Rejected transactions by reason                     |

    Allowed values for each attribute label:

    | Attribute  | Values                                                                                 |
    | :--------- | :------------------------------------------------------------------------------------- |
    | `status`   | `APPLIED` · `REJECTED` · `INFLIGHT` · `VOID` · `COMMIT`                                |
    | `reason`   | `insufficient_funds` · `overdraft_limit` · `lock_contention` · `max_retries` · `other` |
    | `currency` | ISO currency code from the transaction (for example `USD`, `NGN`, `EUR`)               |
  </Tab>

  <Tab title="Queue">
    Measure async processing on workers after a transaction is enqueued.

    Use enqueue rate to spot API-to-worker inflow. Use processing duration to detect worker slowdown or backlog buildup.

    | Name                                     | Type      | Attributes   | Description                                       |
    | :--------------------------------------- | :-------- | :----------- | :------------------------------------------------ |
    | `blnk_queue_enqueued_total`              | Counter   | `queue_name` | Transactions enqueued for async processing        |
    | `blnk_queue_processing_duration_seconds` | Histogram | `result`     | Time spent processing a transaction in the worker |

    Allowed values for each attribute label:

    | Attribute    | Values                                                                                     |
    | :----------- | :----------------------------------------------------------------------------------------- |
    | `queue_name` | `new:transaction_1` … `new:transaction_N` (sharded queues) · `hot_transactions` (hot lane) |
    | `result`     | `success`                                                                                  |
  </Tab>

  <Tab title="Balance">
    Count balance creation over time. Useful for growth tracking and correlating new account activity with transaction volume.

    | Name                         | Type    | Attributes | Description            |
    | :--------------------------- | :------ | :--------- | :--------------------- |
    | `blnk_balance_created_total` | Counter | -          | Total balances created |
  </Tab>

  <Tab title="Inflight">
    Count two-phase inflight lifecycle events: commits that finalize a hold and voids that release it without applying.

    Use these to monitor inflight resolution volume, not inflight creation (see the **Transactions** tab).

    | Name                         | Type    | Attributes | Description                     |
    | :--------------------------- | :------ | :--------- | :------------------------------ |
    | `blnk_inflight_commit_total` | Counter | -          | Inflight transactions committed |
    | `blnk_inflight_void_total`   | Counter | -          | Inflight transactions voided    |
  </Tab>

  <Tab title="Batch coalescing">
    Track how the worker groups queued transactions into batches for bulk processing.

    Batch size shows coalescing efficiency; outcome counters show success, failure, and skipped attempts.

    | Name                           | Type      | Attributes | Description                      |
    | :----------------------------- | :-------- | :--------- | :------------------------------- |
    | `blnk_transaction_batch_size`  | Histogram | -          | Transactions per coalesced batch |
    | `blnk_transaction_batch_total` | Counter   | `result`   | Coalescing attempts by outcome   |

    Allowed values for each attribute label:

    | Attribute | Values                            |
    | :-------- | :-------------------------------- |
    | `result`  | `success` · `failure` · `skipped` |
  </Tab>

  <Tab title="Hot pairs">
    Monitor contention on frequently updated balance pairs.

    Contention counters rise when lock acquisition fails; lane routing shows how much traffic goes to the dedicated hot queue versus normal shards.

    | Name                              | Type    | Attributes | Description                        |
    | :-------------------------------- | :------ | :--------- | :--------------------------------- |
    | `blnk_hotpairs_contention_total`  | Counter | -          | Lock acquisition failures          |
    | `blnk_hotpairs_lane_routed_total` | Counter | `lane`     | Transactions routed to queue lanes |

    Allowed values for each attribute label:

    | Attribute | Values           |
    | :-------- | :--------------- |
    | `lane`    | `normal` · `hot` |
  </Tab>

  <Tab title="Worker">
    Count worker retry events when async processing fails and the job is re-attempted.

    Sustained retries often point to transient failures or lock contention worth correlating with queue and hot-pair metrics.

    | Name                        | Type    | Attributes | Description         |
    | :-------------------------- | :------ | :--------- | :------------------ |
    | `blnk_worker_retries_total` | Counter | `reason`   | Worker retry events |

    Allowed values for each attribute label:

    | Attribute | Values                         |
    | :-------- | :----------------------------- |
    | `reason`  | `insufficient_funds` · `other` |
  </Tab>

  <Tab title="Hash chain">
    Gauge hash-chain sealing progress when [transaction hash chain](/transactions/hash) is enabled.

    Backlog and lag show unsealed transactions and processing delay; head sequence tracks the current chain tip.

    | Name                     | Type  | Attributes | Description                                     |
    | :----------------------- | :---- | :--------- | :---------------------------------------------- |
    | `blnk_chain_backlog`     | Gauge | -          | Transactions not yet sealed into the hash chain |
    | `blnk_chain_head_seq`    | Gauge | -          | Sequence number of the hash-chain head          |
    | `blnk_chain_lag_seconds` | Gauge | -          | Seconds since the hash chain last advanced      |
  </Tab>
</Tabs>

***

## Related docs

<CardGroup cols={2}>
  <Card title="Metrics endpoint" icon="chart-line" href="/reference/get-metrics">
    Server and worker `GET /metrics` scrape targets.
  </Card>

  <Card title="Health check" icon="circle-check" href="/reference/get-health">
    Server and worker `GET /health` probes.
  </Card>

  <Card title="Monitoring in Blnk" icon="activity" href="/advanced/monitoring">
    Setup, export, and troubleshooting.
  </Card>

  <Card title="Observability configuration" icon="activity" href="/advanced/configuration/observability">
    Flags and environment variables.
  </Card>
</CardGroup>

***

## Need help?

We are very happy to help you make the most of Blnk, regardless of whether it is your first time or you are switching from another tool.

To ask questions or discuss issues, please [contact us](mailto:support@blnkfinance.com) or [join our Discord community](https://discord.gg/7WNv94zPpx).

<CtaCallout title="Connect your ledger to Blnk Cloud" href="https://cloud.blnkfinance.com/auth/sign-up?utm_source=blnk_docs&utm_medium=documentation&utm_campaign=need-help" buttonLabel="Open Blnk Cloud" trackingEvent="clicked_cloud_signup">
  Sign up and manage your ledger with our back-office dashboard. You can invite teammates to collaborate and manage your ledger operations directly from the dashboard.
</CtaCallout>
