Grafana dashboards for YDB
This page describes Grafana dashboards for YDB.
Instructions on how to install and configure dashboards are provided in the YDB cluster monitoring setup section.
DB status
General database dashboard.
Download the DB status dashboard template: dbstatus.json.
DB overview
General database dashboard by categories:
- Health
- API
- API details
- CPU
- CPU pools
- Memory
- Storage
- DataShard
- DataShard details
- Latency
Download the DB overview dashboard template: dboverview.json.
YDB Essential Metrics
Dashboard for monitoring key database metrics.
Health section
This section contains graphs showing the status of cluster and database components.
| Name | Description |
|---|---|
| Nodes count | Number of running YDB nodes, pcs. |
| Nodes uptime | Uptime of each node since startup; helps detect restarts and unstable nodes, in seconds. |
| VDisks count | Number of available VDisks in the cluster, pcs. |
Saturation section
This section contains graphs showing database resource utilization.
| Name | Description |
|---|---|
| CPU by thread pool (dynnodes) | CPU consumption by dynamic nodes per execution pool, in CPU cores. |
| CPU utilization (dynnodes) | CPU utilization by dynamic nodes per execution pool, in %. |
| Elapsed Time vs CPU Time | Ratio of real operation execution time (ElapsedMicrosec) to CPU time (CpuMicrosec) by node. A sustained excess above 100% means sessions are spending time waiting rather than actively working: typically this is I/O wait or CPU overcommit on the hypervisor side. |
| RSS size by node | Amount of RAM (Resident set size) consumed by each dynamic node, showing cgroup memory limits, in bytes. |
| Storage usage | Logical database size and its configured limit, in bytes. |
| Overloaded shard count | Number of overloaded DataShards by CPU load ranges — from 50% to 100%, pcs. |
Traffic section
This section contains graphs characterizing database load.
| Name | Description |
|---|---|
| Queries per second by latency buckets | Number of queries per second broken down by latency ranges (from 1 ms to +∞). Each range is highlighted with a separate color — from green for fast queries to purple for slow ones. Allows estimating latency distribution and overall RPS, in qps. |
| Transactions per second by latency buckets | Number of transactions per second broken down by latency ranges (from 1 ms to +∞). Each range is highlighted with a separate color — from green for fast transactions to purple for slow ones. Allows estimating latency distribution and overall TPS, in tps. |
| Rows read, uploaded, updated, deleted | Number of table row operations per second: read, create, update, and delete, in ops/s. |
| Session count by dynnode | Number of active sessions on each dynamic node, pcs. |
Latency section
This section contains graphs showing query and transaction execution time.
| Name | Description |
|---|---|
| Query latency percentiles (ms) | Database query execution time at percentiles p50, p90, p95, p99, in milliseconds. |
| Transaction latency percentiles (ms) | Database transaction execution time at percentiles p50, p90, p95, p99, in milliseconds. |
Errors section
This section contains graphs showing the number of errors occurring.
| Name | Description |
|---|---|
| YQL Issues per second | Number of YQL query execution errors by error type, in errors/s. |
| gRPC response errors per second | Number of gRPC responses with errors broken down by status, in errors/s. |
Download the YDB Essential Metrics dashboard template: ydb-essentials.json.
Actors
CPU consumption in the actor system.
| Name | Description |
|---|---|
| CPU by execution pool (us) | CPU consumption in various execution pools on all nodes, microseconds per second (one million corresponds to one core consumption). |
| Actor count | Number of actors (by actor type). |
| CPU | CPU consumption in various execution pools (by actor type). |
| Events | Event processing metrics in the actor system. |
Download the Actors dashboard template: actors.json.
CPU
CPU consumption in execution pools.
| Name | Description |
|---|---|
| CPU by execution pool | CPU consumption in various execution pools on all nodes, microseconds per second (one million corresponds to consumption of one core) |
| Actor count | Number of actors (by actor type) |
| CPU | CPU consumption in various execution pools |
| Events | Event processing metrics in various execution pools |
Download the CPU dashboard template: cpu.json.
gRPC
gRPC layer metrics.
| Name | Description |
|---|---|
| Requests | Number of requests received by the database per second (by gRPC method type) |
| Request bytes | Size of requests received by the database, bytes per second (by gRPC method type) |
| Response bytes | Size of responses sent by the database, bytes per second (by gRPC method type) |
| Dropped requests | Number of requests per second whose processing was terminated at the transport layer due to an error (by gRPC method type) |
| Dropped responses | Number of responses per second whose sending was terminated at the transport layer due to an error (by gRPC method type) |
| Requests in flight | Number of requests being processed simultaneously by the database (by gRPC method type) |
| Request bytes in flight | Size of requests being processed simultaneously by the database (by gRPC method type) |
Download the gRPC dashboard template: grpc.json.
Query engine
Information about the query execution engine.
| Name | Description |
|---|---|
| Requests | Number of incoming requests per second (by query type) |
| Request bytes | Size of incoming requests, bytes per second (query, parameters, total) |
| Responses | Number of responses per second (by response type) |
| Response bytes | Response sizes, bytes per second (total, query result) |
| Sessions | Information about established sessions |
| Latencies | Histograms of query execution times for various query types |
Download the Query engine dashboard template: queryengine.json.
TxProxy
Information about transactions from the DataShard transaction proxy level.
| Name | Description |
|---|---|
| Transactions | Datashard transaction metrics |
| Latencies | Histograms of execution times of various stages of datashard transactions |
Download the TxProxy dashboard template: txproxy.json.
DataShard
Metrics of the DataShard tablet.
| Name | Description |
|---|---|
| Operations | Statistics of operations with the datashard for different operation types |
| Transactions | Information about datashard tablet transactions (by transaction type) |
| Latencies | Histograms of execution times of various stages of user transactions |
| Tablet latencies | Histograms of tablet transaction execution times |
| Compactions | Information about performed LSM compaction operations |
| ReadSets | Information about transferred ReadSets during user transaction execution |
| Other | Other metrics |
Download the DataShard dashboard template: datashard.json.
Database Hive
Metrics of the Hive tablet of the selected database.
The dashboard contains the following filters:
database— used to select the database whose metrics should be displayed;ds— used to select the Prometheus source whose data should be displayed on the dashboard;Tx type— defines the transaction type for which graphs will be displayed on the "{Tx type}average time" panel.
| Name | Description |
|---|---|
| CPU usage by HIVE_ACTOR, HIVE_BALANCER_ACTOR | CPU time consumed by HIVE_ACTOR and HIVE_BALANCER_ACTOR — the two most important Hive actors. |
| Self-ping time | Response time of the Hive tablet to its own requests. High values indicate heavy load (and slow responsiveness) of Hive. |
| Local transaction times | CPU time consumed for executing various types of local transactions in Hive. Shows the load structure on Hive. |
| Tablet count | Total number of tablets in the database. |
| Event queue size | Size of the incoming event queue. Consistently high values indicate that Hive is not keeping up with processing events at the required speed. |
| {Tx type} average time | Average execution time of one local transaction of the type selected in the Tx type filter. |
| Versions | Versions of YDB running on cluster nodes. |
| Hive node | Node on which Hive is running. |
Download the Database Hive dashboard template: database-hive-detailed.json.
Topic
The dashboard displays graphs for metrics of a single topic. The topic name is set in the topic filter at the top of the dashboard. Below are the panels and metric descriptions.
| Name | Description |
|---|---|
| Total incoming records (bytes) per second | Number of bytes per second written to the topic using the Ydb::TopicService::StreamWrite method |
| Total incoming records (count) per second | Number of messages per second written using the Ydb::TopicService::StreamWrite method |
| Write latency | Write duration: time from message creation to its writing to the topic. Percentage of messages for which the write duration fell within intervals <100 ms, <200 ms, etc. |
| Partition throttling | Write throttling duration – waiting for available write quota. Percentage of messages for which the write throttling duration fell within intervals <1 ms, <5 ms, etc. |
| Partition quota usage | Topic partition write quota utilization, % |
| Write sessions active | Number of open write sessions to the topic |
| Write sessions created | Number of write sessions created per second to the topic |
Download the Topic dashboard template: topic.json.
Topic — Consumer
The dashboard displays graphs for metrics of a single topic and its associated consumer. The topic is selected in the topic filter, the consumer in the consumer filter. The panels and metric descriptions are listed below.
| Name | Description |
|---|---|
| Total incoming records (bytes) per second | Number of bytes per second written to the topic using the Ydb::TopicService::StreamWrite method |
| Total outgoing records (bytes) per second | Number of bytes per second read from the topic by the consumer using the Ydb::TopicService::StreamRead method |
| Total incoming records (count) per second | Number of messages per second written to the topic using the Ydb::TopicService::StreamWrite method |
| Total outgoing records (count) per second | Number of messages per second read from the topic by the consumer using the Ydb::TopicService::StreamRead method |
| End-to-end latency | End-to-end duration: time from message creation to its reading. Percentage of messages for which the end-to-end duration fell within intervals <100 ms, <200 ms, etc. |
| Read latency max | Maximum (across all partitions) difference between the current time and the write time of the last message in the topic, ms |
| Unread messages max | Maximum (across all partitions) difference between the last offset in the partition and the last read offset, in messages |
| Read idle time max | Maximum idle time (how long the consumer did not read from the partition) across all topic partitions, ms |
| Uncommitted messages max | Maximum (across all partitions) difference between the last offset in the partition and the last committed offset, in messages |
| Committed read lag max | Maximum (across all partitions) difference between the current time and the write time of the last committed message in the topic, ms |
| Partition sessions started | Number of topic read sessions started by the consumer per second |
Download the Topic — Consumer dashboard template: topic-consumer.json.