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

# Distributed Dashboard

export const InternalLink = ({version, path = "", children, ...props}) => {
  let detectedVersion = version || "stable";
  if (typeof window !== 'undefined' && !version) {
    const match = window.location.pathname.match(/\/docs\/([^/]+)/);
    if (match) {
      detectedVersion = match[1];
    }
  }
  const normalizedPath = path.startsWith("/") ? path.slice(1) : path;
  return <a href={`/docs/${detectedVersion}/${normalizedPath}`} {...props}>
      {children}
    </a>;
};

The **Distributed** dashboard lets you monitor important distribution layer health and performance metrics.

To view this dashboard, <InternalLink path="ui-overview#db-console-access">access the DB Console</InternalLink> and click **Metrics** on the left-hand navigation, and then select **Dashboard** > **Distributed**.

## Dashboard navigation

Use the **Graph** menu to display metrics for your entire cluster or for a specific node.

To the right of the Graph and Dashboard menus, a time interval selector allows you to filter the view for a predefined or custom time interval. Use the navigation buttons to move to the previous, next, or current time interval. When you select a time interval, the same interval is selected in the <InternalLink path="ui-overview#sql-activity">SQL Activity</InternalLink> pages. However, if you select 10 or 30 minutes, the interval defaults to 1 hour in SQL Activity pages.

Hovering your mouse pointer over the graph title will display a tooltip with a description and the <InternalLink path="essential-metrics-self-hosted ">metrics</InternalLink> used to create the graph.

When hovering on graphs, crosshair lines will appear at your mouse pointer. The series' values corresponding to the given time in the cross hairs are displayed in the legend under the graph. Hovering the mouse pointer on a given series displays the corresponding value near the mouse pointer and highlights the series line (graying out other series lines). Click anywhere within the graph to freeze the values in place. Click anywhere within the graph again to cause the values to change with your mouse movements once more.

In the legend, click on an individual series to isolate it on the graph. The other series will be hidden, while the hover will still work. Click the individual series again to make the other series visible. If there are many series, a scrollbar may appear on the right of the legend. This is to limit the size of the legend so that it does not get endlessly large, particularly on clusters with many nodes.

<Note>
  All timestamps in the DB Console are shown in Coordinated Universal Time (UTC).
</Note>

The **Distributed** dashboard displays the following time series graphs:

## Batches

<img src="https://mintcdn.com/cockroachlabs/OOen9WAZoOzmgNIZ/images/v26.3/ui_batches.png?fit=max&auto=format&n=OOen9WAZoOzmgNIZ&q=85&s=7f39e7e3c3a18c8444018e88dd9b29c6" alt="DB Console batches graph" width="951" height="331" data-path="images/v26.3/ui_batches.png" />

The **Batches** graph displays various details about <InternalLink path="architecture/distribution-layer#batchrequest">`BatchRequest`</InternalLink> traffic in the <InternalLink path="architecture/distribution-layer">Distribution layer</InternalLink>.

Hovering over the graph displays values for the following metrics:

| Metric          | Description                                                                                        |
| --------------- | -------------------------------------------------------------------------------------------------- |
| Batches         | The number of `BatchRequests` made, as tracked by the `distsender.batches` metric.                 |
| Partial Batches | The number of partial `BatchRequests` made, as tracked by the `distsender.batches.partial` metric. |

## RPCs

<img src="https://mintcdn.com/cockroachlabs/okLGsDv2zuU2wRUk/images/v26.3/ui_rpcs.png?fit=max&auto=format&n=okLGsDv2zuU2wRUk&q=85&s=c13d4713d9dc689520ad4beea5cc354e" alt="DB Console RPCs graph" width="950" height="330" data-path="images/v26.3/ui_rpcs.png" />

The **RPCs** graph displays various details about <InternalLink path="architecture/distribution-layer#grpc">`RPC`</InternalLink> traffic in the <InternalLink path="architecture/distribution-layer">Distribution layer</InternalLink>.

Hovering over the graph displays values for the following metrics:

| Metric          | Description                                                                                         |
| --------------- | --------------------------------------------------------------------------------------------------- |
| RPCs Sent       | The number of RPC calls made, as tracked by the `distsender.rpc.sent` metric.                       |
| Local Fast-path | The number of local fast-path RPC calls made, as tracked by the `distsender.rpc.sent.local` metric. |

## RPC Errors

<img src="https://mintcdn.com/cockroachlabs/okLGsDv2zuU2wRUk/images/v26.3/ui_rpc_errors.png?fit=max&auto=format&n=okLGsDv2zuU2wRUk&q=85&s=0a7a2811e9619cd62d4d8256c15178b7" alt="DB Console RPC errors graph" width="939" height="315" data-path="images/v26.3/ui_rpc_errors.png" />

The **RPC Errors** graph displays various details about <InternalLink path="architecture/distribution-layer#grpc">`RPC`</InternalLink> errors encountered in the <InternalLink path="architecture/distribution-layer">Distribution layer</InternalLink>.

Hovering over the graph displays values for the following metrics:

| Metric                 | Description                                                                                                         |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------- |
| Replica Errors         | The number of RPCs sent due to per-replica errors, as tracked by the `distsender.rpc.sent.nextreplicaerror` metric. |
| Not Leaseholder Errors | The number of `NotLeaseHolderErrors` logged, as tracked by the `distsender.errors.notleaseholder` metric.           |

## KV Transactions

<img src="https://mintcdn.com/cockroachlabs/OOen9WAZoOzmgNIZ/images/v26.3/ui_kv_transactions.png?fit=max&auto=format&n=OOen9WAZoOzmgNIZ&q=85&s=cfc39ecce9ded1351c7331594fd76dfd" alt="DB Console KV transactions graph" width="943" height="326" data-path="images/v26.3/ui_kv_transactions.png" />

The **KV Transactions** graph displays various details about transactions in the <InternalLink path="architecture/transaction-layer">Transaction layer</InternalLink>.

Hovering over the graph displays values for the following metrics:

| Metric              | Description                                                                                            |
| ------------------- | ------------------------------------------------------------------------------------------------------ |
| Committed           | The number of committed KV transactions (including fast-path), as tracked by the `txn.commits` metric. |
| Fast-path Committed | The number of committed one-phase KV transactions, as tracked by the `txn.commits1PC` metric.          |
| Aborted             | The number of aborted KV transactions, as tracked by the `txn.aborts` metric.                          |

## KV Transaction Durations: 99th percentile

<img src="https://mintcdn.com/cockroachlabs/OOen9WAZoOzmgNIZ/images/v26.3/ui_kv_transactions_99.png?fit=max&auto=format&n=OOen9WAZoOzmgNIZ&q=85&s=327750d0383284921b71092512b30b14" alt="DB Console KV transaction durations: 99th percentile graph" width="943" height="329" data-path="images/v26.3/ui_kv_transactions_99.png" />

The **KV Transaction Durations: 99th percentile** graph displays the 99th percentile of transaction durations over a one-minute period.

Hovering over the graph displays values for the following metrics:

| Metric  | Description                                                                                                                                  |
| ------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `<node` | The 99th percentile of transaction durations observed over a one-minute period for that node, as calculated from the `txn.durations` metric. |

## KV Transaction Durations: 90th percentile

<img src="https://mintcdn.com/cockroachlabs/OOen9WAZoOzmgNIZ/images/v26.3/ui_kv_transactions_90.png?fit=max&auto=format&n=OOen9WAZoOzmgNIZ&q=85&s=e72429510cb2bcc87a680ee1c33c5259" alt="DB Console KV transaction durations: 90th percentile graph" width="937" height="326" data-path="images/v26.3/ui_kv_transactions_90.png" />

The **KV Transaction Durations: 90th percentile** graph displays the 90th percentile of transaction durations over a one-minute period.

Hovering over the graph displays values for the following metrics:

| Metric  | Description                                                                                                                                  |
| ------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `<node` | The 90th percentile of transaction durations observed over a one-minute period for that node, as calculated from the `txn.durations` metric. |

## Node Heartbeat Latency: 99th percentile

<img src="https://mintcdn.com/cockroachlabs/OOen9WAZoOzmgNIZ/images/v26.3/ui_node_heartbeat_99.png?fit=max&auto=format&n=OOen9WAZoOzmgNIZ&q=85&s=94c76c523b2bd5aecc94dbdd1529cb6d" alt="DB Console node heartbeat latency: 99th percentile graph" width="940" height="332" data-path="images/v26.3/ui_node_heartbeat_99.png" />

The **Node Heartbeat Latency: 99th percentile** graph displays the 99th percentile of time elapsed between node heartbeats on the cluster over a one-minute period.

Hovering over the graph displays values for the following metrics:

| Metric  | Description                                                                                                                                                                                                                                                                   |
| ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `<node` | The 99th percentile of time elapsed between <InternalLink path="cluster-setup-troubleshooting#node-liveness-issues">node liveness</InternalLink> heartbeats on the cluster over a one-minute period for that node, as calculated from the `liveness.heartbeatlatency` metric. |

For the purposes of <InternalLink path="architecture/replication-layer#raft">Raft replication</InternalLink> and determining the <InternalLink path="architecture/overview">leaseholder</InternalLink> of a <InternalLink path="architecture/overview">range</InternalLink>, node health is no longer determined by heartbeating a single "liveness range"; instead it is determined using <InternalLink path="architecture/replication-layer#leader-leases">Leader leases</InternalLink>.

However, node heartbeats of a single range are still used to determine:

* Whether a node is still a member of a cluster (this is used by <InternalLink path="cockroach-node#node-decommission">`cockroach node decommission`</InternalLink>).
* Whether a node is dead (in which case <InternalLink path="architecture/replication-layer#how-leases-are-transferred-from-a-dead-node">its leases will be transferred away</InternalLink>).
* How to avoid placing replicas on dead, decommissioning or unhealthy nodes, and to make decisions about lease transfers.

## Node Heartbeat Latency: 90th percentile

<img src="https://mintcdn.com/cockroachlabs/OOen9WAZoOzmgNIZ/images/v26.3/ui_node_heartbeat_90.png?fit=max&auto=format&n=OOen9WAZoOzmgNIZ&q=85&s=5abe09a7993f4c1d67ea2b7ab6436e7e" alt="DB Console node heartbeat latency: 90th percentile graph" width="941" height="315" data-path="images/v26.3/ui_node_heartbeat_90.png" />

The **Node Heartbeat Latency: 90th percentile** graph displays the 90th percentile of time elapsed between node heartbeats on the cluster over a one-minute period.

Hovering over the graph displays values for the following metrics:

| Metric  | Description                                                                                                                                                                    |
| ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `<node` | The 90th percentile of time elapsed between  node heartbeats on the cluster over a one-minute period for that node, as calculated from the `liveness.heartbeatlatency` metric. |

For the purposes of <InternalLink path="architecture/replication-layer#raft">Raft replication</InternalLink> and determining the <InternalLink path="architecture/overview">leaseholder</InternalLink> of a <InternalLink path="architecture/overview">range</InternalLink>, node health is no longer determined by heartbeating a single "liveness range"; instead it is determined using <InternalLink path="architecture/replication-layer#leader-leases">Leader leases</InternalLink>.

However, node heartbeats of a single range are still used to determine:

* Whether a node is still a member of a cluster (this is used by <InternalLink path="cockroach-node#node-decommission">`cockroach node decommission`</InternalLink>).
* Whether a node is dead (in which case <InternalLink path="architecture/replication-layer#how-leases-are-transferred-from-a-dead-node">its leases will be transferred away</InternalLink>).
* How to avoid placing replicas on dead, decommissioning or unhealthy nodes, and to make decisions about lease transfers.

## Summary and events

### Summary panel

A **Summary** panel of key metrics is displayed to the right of the timeseries graphs.

| Metric             | Description                                                                                                                                                            |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Total Nodes        | The total number of nodes in the cluster. [Decommissioned nodes](node-shutdown.html?filters=decommission) are not included in this count.                              |
| Capacity Used      | The storage capacity used as a percentage of <InternalLink path="ui-cluster-overview-page#capacity-metrics">usable capacity</InternalLink> allocated across all nodes. |
| Unavailable Ranges | The number of unavailable ranges in the cluster. A non-zero number indicates an unstable cluster.                                                                      |
| Queries per second | The total number of `SELECT`, `UPDATE`, `INSERT`, and `DELETE` queries executed per second across the cluster.                                                         |
| P99 Latency        | The 99th percentile of service latency.                                                                                                                                |

If you are testing your deployment locally with multiple CockroachDB nodes running on a single machine (this is <InternalLink path="recommended-production-settings#topology">not recommended in production</InternalLink>), you must explicitly <InternalLink path="cockroach-start#store">set the store size</InternalLink> per node in order to display the correct capacity. Otherwise, the machine's actual disk capacity will be counted as a separate store for each node, thus inflating the computed capacity.

### Events panel

Underneath the [Summary](#summary-panel) panel, the **Events** panel lists the 5 most recent events logged for all nodes across the cluster. To list all events, click **View all events**.

<img src="https://mintcdn.com/cockroachlabs/OOen9WAZoOzmgNIZ/images/v26.3/ui_events.png?fit=max&auto=format&n=OOen9WAZoOzmgNIZ&q=85&s=76f21263f63b0e489a7b50809b10442e" alt="DB Console Events" width="668" height="1036" data-path="images/v26.3/ui_events.png" />

The following types of events are listed:

* Database created
* Database dropped
* Table created
* Table dropped
* Table altered
* Index created
* Index dropped
* View created
* View dropped
* Schema change reversed
* Schema change finished
* Node joined
* Node decommissioned
* Node restarted
* Cluster setting changed

## See also

* <InternalLink path="troubleshooting-overview">Troubleshooting Overview</InternalLink>
* <InternalLink path="support-resources">Support Resources</InternalLink>
* <InternalLink path="monitoring-and-alerting#raw-status-endpoints">Raw Status Endpoints</InternalLink>
