{
  "schema_version": 2,
  "id": "integrate/prometheus-with-redis-enterprise/prometheus-metrics-v1-to-v2",
  "title": "Transition from Prometheus v1 to Prometheus v2",
  "url": "https://redis.io/docs/latest/integrate/prometheus-with-redis-enterprise/prometheus-metrics-v1-to-v2/",
  "summary": "Transition from v1 metrics to v2 PromQL equivalents.",
  "tags": [
    "docs",
    "integrate",
    "rs"
  ],
  "last_updated": "2026-09-17T14:54:30+01:00",
  "page_type": "content",
  "content_hash": "576efc9798d50f71fc12bd193802df74406d5e959a5b6fe40608d0fdacbdcb81",
  "sections": [
    {
      "id": "overview",
      "title": "Overview",
      "role": "overview",
      "text": "You can [integrate Redis Software with Prometheus and Grafana](https://redis.io/docs/latest/integrate/prometheus-with-redis-enterprise) to create dashboards for important metrics.\n\nAs of Redis Software version 7.8.2, [PromQL (Prometheus Query Language)](https://prometheus.io/docs/prometheus/latest/querying/basics/) metrics are available. V1 metrics are deprecated but still available.\n\nTo transition from v1 metrics to v2 metrics, you need to change the `metrics_path` in your Prometheus configuration file from `/` to `/v2` to use the new scraping endpoint.\n\nHere's an example of the updated scraping configuration in `prometheus.yml`:\n\n[code example]\n\n> [!NOTE]\n> **Use a single scrape target.** The v2 endpoint is cluster-wide. Every node aggregates metrics from all nodes and returns the same complete result, so one target is enough. If you list one target per node, Prometheus stores every series once per target and multiplies each `sum()`-based dashboard panel by the number of targets. This produces no error. Prometheus reports every target as up and Grafana renders normally. Use your cluster FQDN as the single target so metrics remain available if a node goes down.\n\nThe reason for a single target changed in v2. On v1, only the cluster master served the metrics endpoint and other nodes returned a redirect, so the protocol effectively forced one target. On v2, every node returns the full cluster view and no redirects are involved. If your v1 configuration listed multiple node targets, reduce it to one.\n\nIf you prefer a per-node scrape topology, scrape `/v2/node`, which returns only that node's own metrics. Aggregation adds the `cluster` and `node` labels, so `/v2/node` responses omit them. Add `relabel_configs` to supply those labels before using `/v2/node` with the Redis Software Grafana dashboards.\n\nIt is possible to scrape both v1 and v2 endpoints simultaneously during the transition period to prepare dashboards and ensure a smooth transition.\n\nYou can use the following tables to transition from v1 metrics to equivalent v2 PromQL. For a list of all available v2 PromQL metrics, see [Prometheus metrics v2](https://redis.io/docs/latest/integrate/prometheus-with-redis-enterprise/prometheus-metrics-definitions)."
    },
    {
      "id": "database-metrics",
      "title": "Database metrics",
      "role": "content",
      "text": "| V1&nbsp;metric | Equivalent V2 PromQL | Description |\n| --------- | :------------------- | :---------- |\n| <span class=\"break-all\">bdb_avg_latency</span> | <span class=\"break-all\">`(sum by (db)(irate(endpoint_read_requests_latency_histogram_sum{db=\"\"$db\"\"}[$__rate_interval]) + irate(endpoint_write_requests_latency_histogram_sum{db=\"\"$db\"\"}[$__rate_interval]) + irate(endpoint_other_requests_latency_histogram_sum{db=\"\"$db\"\"}[$__rate_interval])))/(sum by (db)(irate(endpoint_read_requests{db=\"\"$db\"\"}[$__rate_interval]) + irate(endpoint_write_requests{db=\"\"$db\"\"}[$__rate_interval]) + irate(endpoint_other_requests{db=\"\"$db\"\"}[$__rate_interval])))/1000000`</span> | Average latency of operations on the database (seconds); returned only when there is traffic |\n| <span class=\"break-all\">bdb_avg_latency_max</span> | <span class=\"break-all\">`avg(histogram_quantile(1, sum by (le, db) (irate(endpoint_read_requests_latency_histogram_bucket{db=\"\"$db\"\"}[$__rate_interval]) + irate(endpoint_write_requests_latency_histogram_bucket{db=\"\"$db\"\"}[$__rate_interval]) + irate(endpoint_other_requests_latency_histogram_bucket{db=\"\"$db\"\"}[$__rate_interval])))) / 1000000`</span> | Highest value of average latency of operations on the database (seconds); returned only when there is traffic |\n| <span class=\"break-all\">bdb_avg_read_latency</span> | <span class=\"break-all\">`(sum(irate(endpoint_read_requests_latency_histogram_sum{db=\"\"$db\"\"}[$__rate_interval]))/sum(irate(endpoint_read_requests{db=\"\"$db\"\"}[$__rate_interval])))/1000000`</span> | Average latency of read operations (seconds); returned only when there is traffic |\n| <span class=\"break-all\">bdb_avg_read_latency_max</span></span> | <span class=\"break-all\">`histogram_quantile(1, sum by (le) (irate(endpoint_read_requests_latency_histogram_bucket{db=\"\"$db\"\"}[$__rate_interval]))) / 1000000`</span> | Highest value of average latency of read operations (seconds); returned only when there is traffic |\n| <span class=\"break-all\">bdb_avg_write_latency</span> | <span class=\"break-all\">`(sum(irate(endpoint_write_requests_latency_histogram_sum{db=\"\"$db\"\"}[$__rate_interval]))/sum(irate(endpoint_write_requests{db=\"\"$db\"\"}[$__rate_interval])))/1000000`</span> | Average latency of write operations (seconds); returned only when there is traffic |\n| <span class=\"break-all\">bdb_avg_write_latency_max</span> | <span class=\"break-all\">`histogram_quantile(1, sum by (le) (irate(endpoint_write_requests_latency_histogram_bucket{db=\"\"$db\"\"}[$__rate_interval]))) / 1000000`</span> | Highest value of average latency of write operations (seconds); returned only when there is traffic |\n| <span class=\"break-all\">bdb_bigstore_shard_count</span> | <span class=\"break-all\">`sum((sum(label_replace(label_replace(namedprocess_namegroup_thread_count{groupname=~\"redis-\\d+\", threadname=~\"(speedb\\|rocksdb).*\"}, \"redis\", \"$1\", \"groupname\", \"redis-(\\d+)\"), \"driver\", \"$1\", \"threadname\", \"(speedb\\|rocksdb).*\")) by (redis, driver) > bool 0) * on (redis) group_left(db) redis_server_up) by (db, driver)`</span> | Shard count by database and by storage engine (driver - rocksdb / speedb); Only for databases with Auto Tiering enabled |\n| <span class=\"break-all\">bdb_conns</span> | <span class=\"break-all\">`sum(endpoint_client_connections{cluster=\"$cluster\", db=\"$db\"} - endpoint_client_disconnections{cluster=\"$cluster\", db=\"$db\"} - endpoint_proxy_disconnections{cluster=\"$cluster\", db=\"$db\"})`</span> | Number of client connections to database |\n| <span class=\"break-all\">bdb_egress_bytes</span> | <span class=\"break-all\">`sum by(db) (irate(endpoint_egress{db=\"$db\"}[$__rate_interval]))`</span> | Rate of outgoing network traffic from the database (bytes/sec) |\n| <span class=\"break-all\">bdb_egress_bytes_max</span> | <span class=\"break-all\">`max_over_time (sum by(db) (irate(endpoint_egress{db=\"$db\"}[$__rate_interval]))[$__range:])`</span> | Highest value of the rate of outgoing network traffic from the database (bytes/sec) |\n| <span class=\"break-all\">bdb_evicted_objects</span> | <span class=\"break-all\">`sum by (db) (irate(redis_server_evicted_keys{role=\"master\"}[$__rate_interval]))`</span> | Rate of key evictions from database (evictions/sec) |\n| <span class=\"break-all\">bdb_evicted_objects_max</span> | <span class=\"break-all\">`sum by (db) (irate(redis_server_evicted_keys{role=\"master\"}[$__rate_interval]))`</span> | Highest value of the rate of key evictions from database (evictions/sec) |\n| <span class=\"break-all\">bdb_expired_objects</span> | <span class=\"break-all\">`sum by (db) (irate(redis_server_expired_keys{role=\"master\"}[$__rate_interval]))`</span> | Rate of keys expired in database (expirations/sec) |\n| <span class=\"break-all\">bdb_expired_objects_max</span> | <span class=\"break-all\">`sum by (db) (irate(redis_server_expired_keys{role=\"master\"}[$__rate_interval]))`</span> | Highest value of the rate of keys expired in database (expirations/sec) |\n| <span class=\"break-all\">bdb_fork_cpu_system</span> | <span class=\"break-all\">`sum by (db) (irate(namedprocess_namegroup_thread_cpu_seconds_total{mode=\"system\"}[$__rate_interval]))`</span> | Cores utilization in system mode for all Redis shard fork child processes of this database |\n| <span class=\"break-all\">bdb_fork_cpu_system_max</span> | <span class=\"break-all\">`sum by (db) (irate(namedprocess_namegroup_thread_cpu_seconds_total{mode=\"system\"}[$__rate_interval]))`</span> | Highest value of cores utilization in system mode for all Redis shard fork child processes of this database |\n| <span class=\"break-all\">bdb_fork_cpu_user</span> | <span class=\"break-all\">`sum by (db) (irate(namedprocess_namegroup_thread_cpu_seconds_total{mode=\"user\"}[$__rate_interval]))`</span> | Cores utilization in user mode for all Redis shard fork child processes of this database |\n| <span class=\"break-all\">bdb_fork_cpu_user_max</span> | <span class=\"break-all\">`sum by (db) (irate(namedprocess_namegroup_thread_cpu_seconds_total{mode=\"user\"}[$__rate_interval]))`</span> | Highest value of cores utilization in user mode for all Redis shard fork child processes of this database |\n| <span class=\"break-all\">bdb_ingress_bytes</span> | <span class=\"break-all\">`sum by(db) (irate(endpoint_ingress{db=\"$db\"}[$__rate_interval]))`</span> | Rate of incoming network traffic to database (bytes/sec) |\n| <span class=\"break-all\">bdb_ingress_bytes_max</span> | <span class=\"break-all\">`max_over_time (sum by(db) (irate(endpoint_ingress{db=\"$db\"}[$__rate_interval]))[$__range:])`</span> | Highest value of the rate of incoming network traffic to database (bytes/sec) |\n| <span class=\"break-all\">bdb_instantaneous_ops_per_sec</span></span> | <span class=\"break-all\">`sum by(db) (redis_server_instantaneous_ops_per_sec)`</span> | Request rate handled by all shards of database (ops/sec) |\n| <span class=\"break-all\">bdb_main_thread_cpu_system</span> | <span class=\"break-all\">`sum by(db) (irate(namedprocess_namegroup_thread_cpu_seconds_total{mode=\"system\", threadname=~\"redis-server.*\"}[$__rate_interval]))`</span> | Cores utilization in system mode for all Redis shard main threads of this database |\n| <span class=\"break-all\">bdb_main_thread_cpu_system_max</span></span> | <span class=\"break-all\">`sum by(db) (irate(namedprocess_namegroup_thread_cpu_seconds_total{mode=\"system\", threadname=~\"redis-server.*\"}[$__rate_interval]))`</span> | Highest value of cores utilization in system mode for all Redis shard main threads of this database |\n| <span class=\"break-all\">bdb_main_thread_cpu_user</span> | <span class=\"break-all\">`sum by(irate(namedprocess_namegroup_thread_cpu_seconds_total{mode=\"user\", threadname=~\"redis-server.*\"}[$__rate_interval]))`</span> | Cores utilization in user mode for all Redis shard main threads of this database |\n| <span class=\"break-all\">bdb_main_thread_cpu_user_max</span></span> | <span class=\"break-all\">`sum by(irate(namedprocess_namegroup_thread_cpu_seconds_total{mode=\"user\", threadname=~\"redis-server.*\"}[$__rate_interval]))`</span> | Highest value of cores utilization in user mode for all Redis shard main threads of this database |\n| <span class=\"break-all\">bdb_mem_frag_ratio</span> | <span class=\"break-all\">`avg(redis_server_mem_fragmentation_ratio)`</span> | RAM fragmentation ratio (RSS / allocated RAM) |\n| <span class=\"break-all\">bdb_mem_size_lua</span> | <span class=\"break-all\">`sum by(db) (redis_server_used_memory_lua)`</span> | Redis lua scripting heap size (bytes) |\n| <span class=\"break-all\">bdb_memory_limit</span> | <span class=\"break-all\">`db_memory_limit_bytes`</span> | Configured RAM limit for the database |\n| <span class=\"break-all\">bdb_monitor_sessions_count</span> | <span class=\"break-all\">`sum by(db) (endpoint_monitor_sessions_count)`</span> | Number of clients connected in monitor mode to the database |\n| <span class=\"break-all\">bdb_no_of_keys</span> | <span class=\"break-all\">`sum by (db) (redis_server_db_keys{role=\"master\"})`</span> | Number of keys in database |\n| <span class=\"break-all\">bdb_other_req</span> | <span class=\"break-all\">`sum by(db) (irate(endpoint_other_requests{db=\"$db\"}[$__rate_interval]))`</span> | Rate of other (non read/write) requests on the database (ops/sec) |\n| <span class=\"break-all\">bdb_other_req_max</span> | <span class=\"break-all\">`max_over_time (sum by(db) (irate(endpoint_other_requests{db=\"$db\"}[$__rate_interval]))[$__range:])`</span> | Highest value of the rate of other (non read/write) requests on the database (ops/sec) |\n| <span class=\"break-all\">bdb_other_res</span> | <span class=\"break-all\">`sum by(db) (irate(endpoint_other_responses{db=\"$db\"}[$__rate_interval]))`</span> | Rate of other (non read/write) responses on the database (ops/sec) |\n| <span class=\"break-all\">bdb_other_res_max</span> | <span class=\"break-all\">`max_over_time (sum by(db) (irate(endpoint_other_responses{db=\"$db\"}[$__rate_interval]))[$__range:])`</span> | Highest value of the rate of other (non read/write) responses on the database (ops/sec) |\n| <span class=\"break-all\">bdb_pubsub_channels</span> | <span class=\"break-all\">`sum by(db) (redis_server_pubsub_channels)`</span> | Count the pub/sub channels with subscribed clients |\n| <span class=\"break-all\">bdb_pubsub_channels_max</span> | <span class=\"break-all\">`sum by(db) (redis_server_pubsub_channels)`</span> | Highest value of count the pub/sub channels with subscribed clients |\n| <span class=\"break-all\">bdb_pubsub_patterns</span> | <span class=\"break-all\">`sum by(db) (redis_server_pubsub_patterns)`</span> | Count the pub/sub patterns with subscribed clients |\n| <span class=\"break-all\">bdb_pubsub_patterns_max</span></span> | <span class=\"break-all\">`sum by(db) (redis_server_pubsub_patterns)`</span> | Highest value of count the pub/sub patterns with subscribed clients |\n| <span class=\"break-all\">bdb_read_hits</span> | <span class=\"break-all\">`sum by (db) (irate(redis_server_keyspace_read_hits{role=\"master\"}[$__rate_interval]))`</span> | Rate of read operations accessing an existing key (ops/sec) |\n| <span class=\"break-all\">bdb_read_hits_max</span> | <span class=\"break-all\">`sum by (db) (irate(redis_server_keyspace_read_hits{role=\"master\"}[$__rate_interval]))`</span> | Highest value of the rate of read operations accessing an existing key (ops/sec) |\n| <span class=\"break-all\">bdb_read_misses</span> | <span class=\"break-all\">`sum by (db) (irate(redis_server_keyspace_read_misses{role=\"master\"}[$__rate_interval]))`</span> | Rate of read operations accessing a non-existing key (ops/sec) |\n| <span class=\"break-all\">bdb_read_misses_max</span> | <span class=\"break-all\">`sum by (db) (irate(redis_server_keyspace_read_misses{role=\"master\"}[$__rate_interval]))`</span> | Highest value of the rate of read operations accessing a non-existing key (ops/sec) |\n| <span class=\"break-all\">bdb_read_req</span> | <span class=\"break-all\">`sum by (db) (irate(endpoint_read_requests{db=\"$db\"}[$__rate_interval]))`</span> | Rate of read requests on the database (ops/sec) |\n| <span class=\"break-all\">bdb_read_req_max</span> | <span class=\"break-all\">`max_over_time (sum by(db) (irate(endpoint_read_requests{db=\"$db\"}[$__rate_interval]))[$__range:])`</span> | Highest value of the rate of read requests on the database (ops/sec) |\n| <span class=\"break-all\">bdb_read_res</span> | <span class=\"break-all\">`sum by (db) (irate(endpoint_read_responses{\"$db\"}[$__rate_interval]))`</span> | Rate of read responses on the database (ops/sec) |\n| <span class=\"break-all\">bdb_read_res_max</span> | <span class=\"break-all\">`max_over_time (sum by(db) (irate(endpoint_read_responses{db=\"$db\"}[$__rate_interval]))[$__range:])`</span> | Highest value of the rate of read responses on the database (ops/sec) |\n| <span class=\"break-all\">bdb_shard_cpu_system</span> | <span class=\"break-all\">`sum by(db) (irate(namedprocess_namegroup_thread_cpu_seconds_total{mode=\"system\", role=\"master\"}[$__rate_interval]))`</span> | Cores utilization in system mode for all Redis shard processes of this database |\n| <span class=\"break-all\">bdb_shard_cpu_system_max<span></span> | <span class=\"break-all\">`sum by(db) (irate(namedprocess_namegroup_thread_cpu_seconds_total{mode=\"system\", role=\"master\"}[$__rate_interval]))`</span> | Highest value of cores utilization in system mode for all Redis shard processes of this database |\n| <span class=\"break-all\">bdb_shard_cpu_user</span> | <span class=\"break-all\">`sum by(db) (irate(namedprocess_namegroup_thread_cpu_seconds_total{mode=\"user\", role=\"master\"}[$__rate_interval]))`</span> | Cores utilization in user mode for the Redis shard process |\n| <span class=\"break-all\">bdb_shard_cpu_user_max</span> | <span class=\"break-all\">`sum by(db) (irate(namedprocess_namegroup_thread_cpu_seconds_total{mode=\"user\", role=\"master\"}[$__rate_interval]))`</span> | Highest value of cores utilization in user mode for the Redis shard process |\n| <span class=\"break-all\">bdb_shards_used</span> | <span class=\"break-all\">`sum((sum(label_replace(label_replace(label_replace(namedprocess_namegroup_thread_count{groupname=~\"redis-\\d+\"}, \"redis\", \"$1\", \"groupname\", \"redis-(\\d+)\"), \"shard_type\", \"flash\", \"threadname\", \"(bigstore).*\"), \"shard_type\", \"ram\", \"shard_type\", \"\")) by (redis, shard_type) > bool 0) * on (redis) group_left(db) redis_server_up) by (db, shard_type)`</span> | Used shard count by database and by shard type (ram / flash) |\n| <span class=\"break-all\">bdb_total_connections_received</span> | <span class=\"break-all\">`sum by(db) (irate(endpoint_client_connections{db=\"$db\"}[$__rate_interval]))`</span> | Rate of new client connections to database (connections/sec) |\n| <span class=\"break-all\">bdb_total_connections_received_max<span></span> | <span class=\"break-all\">`max_over_time (sum by(db) (irate(endpoint_client_connections{db=\"$db\"}[$__rate_interval]))[$__range:])`</span> | Highest value of the rate of new client connections to database (connections/sec) |\n| <span class=\"break-all\">bdb_total_req</span> | <span class=\"break-all\">`sum by (db) (irate(endpoint_read_requests{db=\"\"$db\"\"}[$__rate_interval]) + irate(endpoint_write_requests{db=\"\"$db\"\"}[$__rate_interval]) + irate(endpoint_other_requests{db=\"\"$db\"\"}[$__rate_interval]))`</span> | Rate of all requests on the database (ops/sec) |\n| <span class=\"break-all\">bdb_total_req_max</span> | <span class=\"break-all\">`max_over_time(sum by (db) (irate(endpoint_read_requests{db=\"\"$db\"\"}[$__rate_interval]) + irate(endpoint_write_requests{db=\"\"$db\"\"}[$__rate_interval]) + irate(endpoint_other_requests{db=\"\"$db\"\"}[$__rate_interval])) [$__range:])`</span> | Highest value of the rate of all requests on the database (ops/sec) |\n| <span class=\"break-all\">bdb_total_res</span> | <span class=\"break-all\">`sum by (db) (irate(endpoint_read_responses{db=\"\"$db\"\"}[$__rate_interval]) + irate(endpoint_write_responses{db=\"\"$db\"\"}[$__rate_interval]) + irate(endpoint_other_responses{db=\"\"$db\"\"}[$__rate_interval]))`</span> | Rate of all responses on the database (ops/sec) |\n| <span class=\"break-all\">bdb_total_res_max</span> | <span class=\"break-all\">`max_over_time(sum by (db) (irate(endpoint_read_responses{db=\"\"$db\"\"}[$__rate_interval]) + irate(endpoint_write_responses{db=\"\"$db\"\"}[$__rate_interval]) + irate(endpoint_other_responses{db=\"\"$db\"\"}[$__rate_interval])) [$__range:])`</span> | Highest value of the rate of all responses on the database (ops/sec) |\n| <span class=\"break-all\">bdb_up</span> | <span class=\"break-all\">`min by(db) (redis_server_up)`</span> | Database is up and running |\n| <span class=\"break-all\">bdb_used_memory</span> | <span class=\"break-all\">`sum by (db) (redis_server_used_memory)`</span> | Memory used by database (in BigRedis this includes flash) (bytes) |\n| <span class=\"break-all\">bdb_write_hits</span> | <span class=\"break-all\">`sum by (db) (irate(redis_server_keyspace_write_hits{role=\"master\"}[$__rate_interval]))`</span> | Rate of write operations accessing an existing key (ops/sec) |\n| <span class=\"break-all\">bdb_write_hits_max</span> | <span class=\"break-all\">`sum by (db) (irate(redis_server_keyspace_write_hits{role=\"master\"}[$__rate_interval]))`</span> | Highest value of the rate of write operations accessing an existing key (ops/sec) |\n| <span class=\"break-all\">bdb_write_misses</span> | <span class=\"break-all\">`sum by (db) (irate(redis_server_keyspace_write_misses{role=\"master\"}[$__rate_interval]))`</span> | Rate of write operations accessing a non-existing key (ops/sec) |\n| <span class=\"break-all\">bdb_write_misses_max</span> | <span class=\"break-all\">`sum by (db) (irate(redis_server_keyspace_write_misses{role=\"master\"}[$__rate_interval]))`</span> | Highest value of the rate of write operations accessing a non-existing key (ops/sec) |\n| <span class=\"break-all\">bdb_write_req</span> | <span class=\"break-all\">`sum by (db) (irate(endpoint_write_requests{db=\"$db\"}[$__rate_interval]))`</span> | Rate of write requests on the database (ops/sec) |\n| <span class=\"break-all\">bdb_write_req_max</span> | <span class=\"break-all\">`max_over_time(sum by (db) (irate(endpoint_write_requests{db=\"$db\"}[$__rate_interval]))[$__range:])`</span> | Highest value of the rate of write requests on the database (ops/sec) |\n| <span class=\"break-all\">bdb_write_res</span> | <span class=\"break-all\">`sum by(db) (irate(endpoint_write_responses{db=\"$db\"}[$__rate_interval]))`</span> | Rate of write responses on the database (ops/sec) |\n| <span class=\"break-all\">bdb_write_res_max</span> | <span class=\"break-all\">`max_over_time(sum by (db) (irate(endpoint_write_responses{db=\"$db\"}[$__rate_interval]))[$__range:])`</span> | Highest value of the rate of write responses on the database (ops/sec) |\n| <span class=\"break-all\">bdb_no_of_expires</span> | <span class=\"break-all\">`sum by(db) (redis_server_db_expires{role=\"master\"})`</span> | Current number of volatile keys in the database |"
    },
    {
      "id": "node-metrics",
      "title": "Node metrics",
      "role": "content",
      "text": "| V1&nbsp;metric | Equivalent V2 PromQL | Description |\n| --------- | :------------------- | :---------- |\n| <span class=\"break-all\">node_available_flash</span> | <span class=\"break-all\">`node_available_flash_bytes`</span> | Available flash in the node (bytes) |\n| <span class=\"break-all\">node_available_flash_no_overbooking</span> | <span class=\"break-all\">`node_available_flash_no_overbooking_bytes`</span> | Available flash in the node (bytes), without taking into account overbooking |\n| <span class=\"break-all\">node_available_memory</span> | <span class=\"break-all\">`node_available_memory_bytes`</span> | Amount of free memory in the node (bytes) that is available for database provisioning |\n| <span class=\"break-all\">node_available_memory_no_overbooking</span> | <span class=\"break-all\">`node_available_memory_no_overbooking_bytes`</span> | Available RAM in the node (bytes) without taking into account overbooking |\n| <span class=\"break-all\">node_avg_latency</span> | <span class=\"break-all\">`sum by (proxy) (irate(endpoint_acc_latency[$__rate_interval])) / sum by (proxy) (irate(endpoint_total_started_res[$__rate_interval]))`</span> | Average latency of requests handled by endpoints on the node in microseconds; returned only when there is traffic |\n| <span class=\"break-all\">node_bigstore_free</span> | <span class=\"break-all\">`node_bigstore_free_bytes`</span> | Sum of free space of back-end flash (used by flash database's [BigRedis]) on all cluster nodes (bytes); returned only when BigRedis is enabled |\n| <span class=\"break-all\">node_bigstore_iops</span> | <span class=\"break-all\">`node_flash_reads_total + node_flash_writes_total`</span> | Rate of I/O operations against back-end flash for all shards which are part of a flash-based database (BigRedis) in the cluster (ops/sec); returned only when BigRedis is enabled |\n| <span class=\"break-all\">node_bigstore_kv_ops</span> | <span class=\"break-all\">`sum by (node) (irate(redis_server_big_io_dels[$__rate_interval]) + irate(redis_server_big_io_reads[$__rate_interval]) + irate(redis_server_big_io_writes[$__rate_interval]))`</span> | Rate of value read/write operations against back-end flash for all shards which are part of a flash-based database (BigRedis) in the cluster (ops/sec); returned only when BigRedis is enabled |\n| <span class=\"break-all\">node_bigstore_throughput</span> | <span class=\"break-all\">`sum by (node) (irate(redis_server_big_io_read_bytes[$__rate_interval]) + irate(redis_server_big_io_write_bytes[$__rate_interval]))`</span> | Throughput I/O operations against back-end flash for all shards which are part of a flash-based database (BigRedis) in the cluster (bytes/sec); returned only when BigRedis is enabled |\n| <span class=\"break-all\">node_cert_expiration_seconds</span> | <span class=\"break-all\">`node_cert_expires_in_seconds`</span> | Certificate expiration (in seconds) per given node; read more about [certificates in Redis Software](https://redis.io/docs/latest/operate/rs/security/certificates) and [monitoring certificates](https://redis.io/docs/latest/operate/rs/security/certificates/monitor-certificates) |\n| <span class=\"break-all\">node_conns</span> | <span class=\"break-all\">`sum by (node) (endpoint_client_connections)`</span> | Number of clients connected to endpoints on node |\n| <span class=\"break-all\">node_cpu_idle</span> | <span class=\"break-all\">`avg by (node) (irate(node_cpu_seconds_total{mode=\"idle\"}[$__rate_interval]))`</span> | CPU idle time portion (0-1, multiply by 100 to get percent) |\n| <span class=\"break-all\">node_cpu_idle_max</span> | <span class=\"break-all\">N/A</span> | Highest value of CPU idle time portion (0-1, multiply by 100 to get percent) |\n| <span class=\"break-all\">node_cpu_idle_median</span> | <span class=\"break-all\">N/A</span> | Median value of CPU idle time portion (0-1, multiply by 100 to get percent) |\n| <span class=\"break-all\">node_cpu_idle_min</span> | <span class=\"break-all\">N/A</span> | Lowest value of CPU idle time portion (0-1, multiply by 100 to get percent) |\n| <span class=\"break-all\">node_cpu_system</span> | <span class=\"break-all\">`avg by (node) (irate(node_cpu_seconds_total{mode=\"system\"}[$__rate_interval]))`</span> | CPU time portion spent in the kernel (0-1, multiply by 100 to get percent) |\n| <span class=\"break-all\">node_cpu_system_max</span> | <span class=\"break-all\">N/A</span> | Highest value of CPU time portion spent in the kernel (0-1, multiply by 100 to get percent) |\n| <span class=\"break-all\">node_cpu_system_median</span> | <span class=\"break-all\">N/A</span> | Median value of CPU time portion spent in the kernel (0-1, multiply by 100 to get percent) |\n| <span class=\"break-all\">node_cpu_system_min</span> | <span class=\"break-all\">N/A</span> | Lowest value of CPU time portion spent in the kernel (0-1, multiply by 100 to get percent) |\n| <span class=\"break-all\">node_cpu_user</span> | <span class=\"break-all\">`avg by (node) (irate(node_cpu_seconds_total{mode=\"user\"}[$__rate_interval]))`</span> | CPU time portion spent by user-space processes (0-1, multiply by 100 to get percent) |\n| <span class=\"break-all\">node_cpu_user_max</span> | <span class=\"break-all\">N/A</span> | Highest value of CPU time portion spent by user-space processes (0-1, multiply by 100 to get percent) |\n| <span class=\"break-all\">node_cpu_user_median</span> | <span class=\"break-all\">N/A</span> | Median value of CPU time portion spent by user-space processes (0-1, multiply by 100 to get percent) |\n| <span class=\"break-all\">node_cpu_user_min</span> | <span class=\"break-all\">N/A</span> | Lowest value of CPU time portion spent by user-space processes (0-1, multiply by 100 to get percent) |\n| <span class=\"break-all\">node_cur_aof_rewrites</span> | <span class=\"break-all\">`sum by (cluster, node) (redis_server_aof_rewrite_in_progress)`</span> | Number of AOF rewrites that are currently performed by shards on this node |\n| <span class=\"break-all\">node_egress_bytes</span> | <span class=\"break-all\">`irate(node_network_transmit_bytes_total{device=\"<interface>\"}[$__rate_interval])`</span> | Rate of outgoing network traffic to node (bytes/sec) |\n| <span class=\"break-all\">node_egress_bytes_max</span> | <span class=\"break-all\">N/A</span> | Highest value of the rate of outgoing network traffic to node (bytes/sec) |\n| <span class=\"break-all\">node_egress_bytes_median</span> | <span class=\"break-all\">N/A</span> | Median value of the rate of outgoing network traffic to node (bytes/sec) |\n| <span class=\"break-all\">node_egress_bytes_min</span> | <span class=\"break-all\">N/A</span> | Lowest value of the rate of outgoing network traffic to node (bytes/sec) |\n| <span class=\"break-all\">node_ephemeral_storage_avail</span> | <span class=\"break-all\">`node_ephemeral_storage_avail_bytes`</span> | Disk space available to RLEC processes on configured ephemeral disk (bytes) |\n| <span class=\"break-all\">node_ephemeral_storage_free</span> | <span class=\"break-all\">`node_ephemeral_storage_free_bytes`</span> | Free disk space on configured ephemeral disk (bytes) |\n| <span class=\"break-all\">node_free_memory</span> | <span class=\"break-all\">`node_memory_MemFree_bytes`</span> | Free memory in the node (bytes) |\n| <span class=\"break-all\">node_ingress_bytes</span> | <span class=\"break-all\">`irate(node_network_receive_bytes_total{device=\"<interface>\"}[$__rate_interval])`</span> | Rate of incoming network traffic to node (bytes/sec) |\n| <span class=\"break-all\">node_ingress_bytes_max</span> | <span class=\"break-all\">N/A</span> | Highest value of the rate of incoming network traffic to node (bytes/sec) |\n| <span class=\"break-all\">node_ingress_bytes_median</span> | <span class=\"break-all\">N/A</span> | Median value of the rate of incoming network traffic to node (bytes/sec) |\n| <span class=\"break-all\">node_ingress_bytes_min</span> | <span class=\"break-all\">N/A</span> | Lowest value of the rate of incoming network traffic to node (bytes/sec) |\n| <span class=\"break-all\">node_persistent_storage_avail</span> | <span class=\"break-all\">`node_persistent_storage_avail_bytes`</span> | Disk space available to RLEC processes on configured persistent disk (bytes) |\n| <span class=\"break-all\">node_persistent_storage_free</span> | <span class=\"break-all\">`node_persistent_storage_free_bytes`</span> | Free disk space on configured persistent disk (bytes) |\n| <span class=\"break-all\">node_provisional_flash</span> | <span class=\"break-all\">`node_provisional_flash_bytes`</span> | Amount of flash available for new shards on this node, taking into account overbooking, max Redis servers, reserved flash, and provision and migration thresholds (bytes) |\n| <span class=\"break-all\">node_provisional_flash_no_overbooking</span> | <span class=\"break-all\">`node_provisional_flash_no_overbooking_bytes`</span> | Amount of flash available for new shards on this node, without taking into account overbooking, max Redis servers, reserved flash, and provision and migration thresholds (bytes) |\n| <span class=\"break-all\">node_provisional_memory</span> | <span class=\"break-all\">`node_provisional_memory_bytes`</span> | Amount of RAM that is available for provisioning to databases out of the total RAM allocated for databases |\n| <span class=\"break-all\">node_provisional_memory_no_overbooking</span> | <span class=\"break-all\">`node_provisional_memory_no_overbooking_bytes`</span> | Amount of RAM that is available for provisioning to databases out of the total RAM allocated for databases, without taking into account overbooking |\n| <span class=\"break-all\">node_total_req</span> | <span class=\"break-all\">`sum by (cluster, node) (irate(endpoint_read_requests[$__rate_interval]) +  irate(endpoint_write_requests[$__rate_interval]) +  irate(endpoint_other_requests[$__rate_interval]) )`</span> | Request rate handled by endpoints on node (ops/sec) |\n| <span class=\"break-all\">node_up</span> | <span class=\"break-all\">`node_metrics_up`</span> | Node is part of the cluster and is connected |"
    },
    {
      "id": "cluster-metrics",
      "title": "Cluster metrics",
      "role": "content",
      "text": "| V1&nbsp;metric | Equivalent V2 PromQL | Description |\n| --------- | :------------------- | :---------- |\n| cluster_shards_limit | `license_shards_limit` | Total shard limit by the license by shard type (ram / flash) |"
    },
    {
      "id": "proxy-metrics",
      "title": "Proxy metrics",
      "role": "content",
      "text": "| V1&nbsp;metric | Equivalent V2 PromQL | Description |\n| --------- | :------------------- | :---------- |\n| <span class=\"break-all\">listener_acc_latency</span> | <span class=\"break-all\">N/A</span> | Accumulative latency (sum of the latencies) of all types of commands on the database. For the average latency, divide this value by listener_total_res |\n| <span class=\"break-all\">listener_acc_latency_max</span> | <span class=\"break-all\">N/A</span> | Highest value of accumulative latency of all types of commands on the database |\n| <span class=\"break-all\">listener_acc_other_latency</span> | <span class=\"break-all\">N/A</span> | Accumulative latency (sum of the latencies) of commands that are a type \"other\" on the database. For the average latency, divide this value by listener_other_res |\n| <span class=\"break-all\">listener_acc_other_latency_max</span> | <span class=\"break-all\">N/A</span> | Highest value of accumulative latency of commands that are a type \"other\" on the database |\n| <span class=\"break-all\">listener_acc_read_latency</span> | <span class=\"break-all\">N/A</span> | Accumulative latency (sum of the latencies) of commands that are a type \"read\" on the database. For the average latency, divide this value by listener_read_res |\n| <span class=\"break-all\">listener_acc_read_latency_max</span> | <span class=\"break-all\">N/A</span> | Highest value of accumulative latency of commands that are a type \"read\" on the database |\n| <span class=\"break-all\">listener_acc_write_latency</span> | <span class=\"break-all\">N/A</span> | Accumulative latency (sum of the latencies) of commands that are a type \"write\" on the database. For the average latency, divide this value by listener_write_res |\n| <span class=\"break-all\">listener_acc_write_latency_max</span> | <span class=\"break-all\">N/A</span> | Highest value of accumulative latency of commands that are a type \"write\" on the database |\n| <span class=\"break-all\">listener_auth_cmds</span> | <span class=\"break-all\">N/A</span> | Number of memcached AUTH commands sent to the database |\n| <span class=\"break-all\">listener_auth_cmds_max</span> | <span class=\"break-all\">N/A</span> | Highest value of the number of memcached AUTH commands sent to the database |\n| <span class=\"break-all\">listener_auth_errors</span> | <span class=\"break-all\">N/A</span> | Number of error responses to memcached AUTH commands |\n| <span class=\"break-all\">listener_auth_errors_max</span> | <span class=\"break-all\">N/A</span> | Highest value of the number of error responses to memcached AUTH commands |\n| <span class=\"break-all\">listener_cmd_flush</span> | <span class=\"break-all\">N/A</span> | Number of memcached FLUSH_ALL commands sent to the database |\n| <span class=\"break-all\">listener_cmd_flush_max</span> | <span class=\"break-all\">N/A</span> | Highest value of the number of memcached FLUSH_ALL commands sent to the database |\n| <span class=\"break-all\">listener_cmd_get</span> | <span class=\"break-all\">N/A</span> | Number of memcached GET commands sent to the database |\n| <span class=\"break-all\">listener_cmd_get_max</span> | <span class=\"break-all\">N/A</span> | Highest value of the number of memcached GET commands sent to the database |\n| <span class=\"break-all\">listener_cmd_set</span> | <span class=\"break-all\">N/A</span> | Number of memcached SET commands sent to the database |\n| <span class=\"break-all\">listener_cmd_set_max</span> | <span class=\"break-all\">N/A</span> | Highest value of the number of memcached SET commands sent to the database |\n| <span class=\"break-all\">listener_cmd_touch</span> | <span class=\"break-all\">N/A</span> | Number of memcached TOUCH commands sent to the database |\n| <span class=\"break-all\">listener_cmd_touch_max</span> | <span class=\"break-all\">N/A</span> | Highest value of the number of memcached TOUCH commands sent to the database |\n| <span class=\"break-all\">listener_conns</span> | <span class=\"break-all\">N/A</span> | Number of clients connected to the endpoint |\n| <span class=\"break-all\">listener_egress_bytes</span> | <span class=\"break-all\">N/A</span> | Rate of outgoing network traffic to the endpoint (bytes/sec) |\n| <span class=\"break-all\">listener_egress_bytes_max</span> | <span class=\"break-all\">N/A</span> | Highest value of the rate of outgoing network traffic to the endpoint (bytes/sec) |\n| <span class=\"break-all\">listener_ingress_bytes</span> | <span class=\"break-all\">N/A</span> | Rate of incoming network traffic to the endpoint (bytes/sec) |\n| <span class=\"break-all\">listener_ingress_bytes_max</span> | <span class=\"break-all\">N/A</span> | Highest value of the rate of incoming network traffic to the endpoint (bytes/sec) |\n| <span class=\"break-all\">listener_last_req_time</span> | <span class=\"break-all\">N/A</span> | Time of last command sent to the database |\n| <span class=\"break-all\">listener_last_res_time</span> | <span class=\"break-all\">N/A</span> | Time of last response sent from the database |\n| <span class=\"break-all\">listener_max_connections_exceeded</span> | <span class=\"break-all\">`irate(endpoint_maximal_connections_exceeded[$__rate_interval])`</span> | Number of times the number of clients connected to the database at the same time has exceeded the max limit |\n| <span class=\"break-all\">listener_max_connections_exceeded_max</span> | <span class=\"break-all\">N/A</span> | Highest value of the number of times the number of clients connected to the database at the same time has exceeded the max limit |\n| <span class=\"break-all\">listener_monitor_sessions_count</span> | <span class=\"break-all\">N/A</span> | Number of clients connected in monitor mode to the endpoint |\n| <span class=\"break-all\">listener_other_req</span> | <span class=\"break-all\">N/A</span> | Rate of other (non-read/write) requests on the endpoint (ops/sec) |\n| <span class=\"break-all\">listener_other_req_max</span> | <span class=\"break-all\">N/A</span> | Highest value of the rate of other (non-read/write) requests on the endpoint (ops/sec) |\n| <span class=\"break-all\">listener_other_res</span> | <span class=\"break-all\">N/A</span> | Rate of other (non-read/write) responses on the endpoint (ops/sec) |\n| <span class=\"break-all\">listener_other_res_max</span> | <span class=\"break-all\">N/A</span> | Highest value of the rate of other (non-read/write) responses on the endpoint (ops/sec) |\n| <span class=\"break-all\">listener_other_started_res</span> | <span class=\"break-all\">N/A</span> | Number of responses sent from the database of type \"other\" |\n| <span class=\"break-all\">listener_other_started_res_max</span> | <span class=\"break-all\">N/A</span> | Highest value of the number of responses sent from the database of type \"other\" |\n| <span class=\"break-all\">listener_read_req</span> | <span class=\"break-all\">`irate(endpoint_read_requests[$__rate_interval])`</span> | Rate of read requests on the endpoint (ops/sec) |\n| <span class=\"break-all\">listener_read_req_max</span> | <span class=\"break-all\">N/A</span> | Highest value of the rate of read requests on the endpoint (ops/sec) |\n| <span class=\"break-all\">listener_read_res</span> | <span class=\"break-all\">`irate(endpoint_read_responses[$__rate_interval])`</span> | Rate of read responses on the endpoint (ops/sec) |\n| <span class=\"break-all\">listener_read_res_max</span> | <span class=\"break-all\">N/A</span> | Highest value of the rate of read responses on the endpoint (ops/sec) |\n| <span class=\"break-all\">listener_read_started_res</span> | <span class=\"break-all\">N/A</span> | Number of responses sent from the database of type \"read\" |\n| <span class=\"break-all\">listener_read_started_res_max</span> | <span class=\"break-all\">N/A</span> | Highest value of the number of responses sent from the database of type \"read\" |\n| <span class=\"break-all\">listener_total_connections_received</span> | <span class=\"break-all\">`irate(endpoint_total_connections_received[$__rate_interval])`</span> | Rate of new client connections to the endpoint (connections/sec) |\n| <span class=\"break-all\">listener_total_connections_received_max</span> | <span class=\"break-all\">N/A</span> | Highest value of the rate of new client connections to the endpoint (connections/sec) |\n| <span class=\"break-all\">listener_total_req</span> | <span class=\"break-all\">N/A</span> | Request rate handled by the endpoint (ops/sec) |\n| <span class=\"break-all\">listener_total_req_max</span> | <span class=\"break-all\">N/A</span> | Highest value of the rate of all requests on the endpoint (ops/sec) |\n| <span class=\"break-all\">listener_total_res</span> | <span class=\"break-all\">N/A</span> | Rate of all responses on the endpoint (ops/sec) |\n| <span class=\"break-all\">listener_total_res_max</span> | <span class=\"break-all\">N/A</span> | Highest value of the rate of all responses on the endpoint (ops/sec) |\n| <span class=\"break-all\">listener_total_started_res</span> | <span class=\"break-all\">N/A</span> | Number of responses sent from the database of all types |\n| <span class=\"break-all\">listener_total_started_res_max</span> | <span class=\"break-all\">N/A</span> | Highest value of the number of responses sent from the database of all types |\n| <span class=\"break-all\">listener_write_req</span> | <span class=\"break-all\">`irate(endpoint_write_requests[$__rate_interval])`</span> | Rate of write requests on the endpoint (ops/sec) |\n| <span class=\"break-all\">listener_write_req_max</span> | <span class=\"break-all\">N/A</span> | Highest value of the rate of write requests on the endpoint (ops/sec) |\n| <span class=\"break-all\">listener_write_res</span> | <span class=\"break-all\">`irate(endpoint_write_responses[$__rate_interval])`</span> | Rate of write responses on the endpoint (ops/sec) |\n| <span class=\"break-all\">listener_write_res_max</span> | <span class=\"break-all\">N/A</span> | Highest value of the rate of write responses on the endpoint (ops/sec) |\n| <span class=\"break-all\">listener_write_started_res</span> | <span class=\"break-all\">N/A</span> | Number of responses sent from the database of type \"write\" |\n| <span class=\"break-all\">listener_write_started_res_max</span> | <span class=\"break-all\">N/A</span> | Highest value of the number of responses sent from the database of type \"write\" |"
    },
    {
      "id": "replication-metrics",
      "title": "Replication metrics",
      "role": "content",
      "text": "| V1&nbsp;metric | Equivalent V2 PromQL | Description |\n| --------- | :------------------- | :---------- |\n| <span class=\"break-all\">bdb_replicaof_syncer_ingress_bytes</span> | <span class=\"break-all\">`rate(replica_src_ingress_bytes[$__rate_interval])`</span> | Rate of compressed incoming network traffic to a Replica Of database (bytes/sec) |\n| <span class=\"break-all\">bdb_replicaof_syncer_ingress_bytes_decompressed</span> | <span class=\"break-all\">`rate(replica_src_ingress_bytes_decompressed[$__rate_interval])`</span> | Rate of decompressed incoming network traffic to a Replica Of database (bytes/sec) |\n| <span class=\"break-all\">bdb_replicaof_syncer_local_ingress_lag_time</span> | <span class=\"break-all\">`database_syncer_lag_ms{syncer_type=\"replicaof\"}`</span> | Lag time between the source and the destination for Replica Of traffic (ms) |\n| <span class=\"break-all\">bdb_replicaof_syncer_status</span> | <span class=\"break-all\">`database_syncer_current_status{syncer_type=\"replicaof\"}`</span> | Syncer status for Replica Of traffic; 0 = in-sync, 1 = syncing, 2 = out of sync |\n| <span class=\"break-all\">bdb_crdt_syncer_ingress_bytes</span> | <span class=\"break-all\">`rate(crdt_src_ingress_bytes[$__rate_interval])`</span> | Rate of compressed incoming network traffic to CRDB (bytes/sec) |\n| <span class=\"break-all\">bdb_crdt_syncer_ingress_bytes_decompressed</span> | <span class=\"break-all\">`rate(crdt_src_ingress_bytes_decompressed[$__rate_interval])`</span> | Rate of decompressed incoming network traffic to CRDB (bytes/sec) |\n| <span class=\"break-all\">bdb_crdt_syncer_local_ingress_lag_time</span> | <span class=\"break-all\">`database_syncer_lag_ms{syncer_type=\"crdt\"}`</span> | Lag time between the source and the destination (ms) for CRDB traffic |\n| <span class=\"break-all\">bdb_crdt_syncer_status</span> | <span class=\"break-all\">`database_syncer_current_status{syncer_type=\"crdt\"}`</span> | Syncer status for CRDB traffic; 0 = in-sync, 1 = syncing, 2 = out of sync |"
    },
    {
      "id": "shard-metrics",
      "title": "Shard metrics",
      "role": "content",
      "text": "| V1&nbsp;metric | Equivalent V2 PromQL | Description |\n| --------- | :------------------- | :---------- |\n| <span class=\"break-all\">redis_active_defrag_running</span> | <span class=\"break-all\">`redis_server_active_defrag_running`</span> | Automatic memory defragmentation current aggressiveness (% cpu) |\n| <span class=\"break-all\">redis_allocator_active</span> | <span class=\"break-all\">`redis_server_allocator_active`</span> | Total used memory, including external fragmentation |\n| <span class=\"break-all\">redis_allocator_allocated</span> | <span class=\"break-all\">`redis_server_allocator_allocated`</span> | Total allocated memory |\n| <span class=\"break-all\">redis_allocator_resident</span> | <span class=\"break-all\">`redis_server_allocator_resident`</span> | Total resident memory (RSS) |\n| <span class=\"break-all\">redis_aof_last_cow_size</span> | <span class=\"break-all\">`redis_server_aof_last_cow_size`</span> | Last AOFR, CopyOnWrite memory |\n| <span class=\"break-all\">redis_aof_rewrite_in_progress</span> | <span class=\"break-all\">`redis_server_aof_rewrite_in_progress`</span> | Indicates whether an AOF rewrite is in progress (1 = in progress, 0 = otherwise) |\n| <span class=\"break-all\">redis_aof_rewrites</span> | <span class=\"break-all\">`redis_server_aof_rewrites`</span> | Number of AOF rewrites this process executed |\n| <span class=\"break-all\">redis_aof_delayed_fsync</span> | <span class=\"break-all\">`redis_server_aof_delayed_fsync`</span> | Number of times an AOF fsync caused delays in the main Redis thread (inducing latency); this can indicate that the disk is slow or overloaded |\n| <span class=\"break-all\">redis_blocked_clients</span> | <span class=\"break-all\">`redis_server_blocked_clients`</span> | Count the clients waiting on a blocking call |\n| <span class=\"break-all\">redis_connected_clients</span> | <span class=\"break-all\">`redis_server_connected_clients`</span> | Number of client connections to the specific shard |\n| <span class=\"break-all\">redis_connected_slaves</span> | <span class=\"break-all\">`redis_server_connected_slaves`</span> | Number of connected replicas |\n| <span class=\"break-all\">redis_db0_avg_ttl</span> | <span class=\"break-all\">`redis_server_db0_avg_ttl`</span> | Average TTL of all volatile keys |\n| <span class=\"break-all\">redis_db0_expires</span> | <span class=\"break-all\">`redis_server_expired_keys`</span> | Total count of volatile keys |\n| <span class=\"break-all\">redis_db0_keys</span> | <span class=\"break-all\">`redis_server_db0_keys`</span> | Total key count |\n| <span class=\"break-all\">redis_evicted_keys</span> | <span class=\"break-all\">`redis_server_evicted_keys`</span> | Keys evicted so far (since restart) |\n| <span class=\"break-all\">redis_expire_cycle_cpu_milliseconds</span> | <span class=\"break-all\">`redis_server_expire_cycle_cpu_milliseconds`</span> | The cumulative amount of time spent on active expiry cycles |\n| <span class=\"break-all\">redis_expired_keys</span> | <span class=\"break-all\">`redis_server_expired_keys`</span> | Keys expired so far (since restart) |\n| <span class=\"break-all\">redis_forwarding_state</span> | <span class=\"break-all\">`redis_server_forwarding_state`</span> | Shard forwarding state (1 = on, 0 = off) |\n| <span class=\"break-all\">redis_keys_trimmed</span> | <span class=\"break-all\">`redis_server_keys_trimmed`</span> | The number of keys that were trimmed in the current or last resharding process |\n| <span class=\"break-all\">redis_keyspace_read_hits</span> | <span class=\"break-all\">`redis_server_keyspace_read_hits`</span> | Number of read operations accessing an existing keyspace |\n| <span class=\"break-all\">redis_keyspace_read_misses</span> | <span class=\"break-all\">`redis_server_keyspace_read_misses`</span> | Number of read operations accessing a non-existing keyspace |\n| <span class=\"break-all\">redis_keyspace_write_hits</span> | <span class=\"break-all\">`redis_server_keyspace_write_hits`</span> | Number of write operations accessing an existing keyspace |\n| <span class=\"break-all\">redis_keyspace_write_misses</span> | <span class=\"break-all\">`redis_server_keyspace_write_misses`</span> | Number of write operations accessing a non-existing keyspace |\n| <span class=\"break-all\">redis_master_link_status</span> | <span class=\"break-all\">`redis_server_master_link_status`</span> | Indicates if the replica is connected to its master (1 = up, 2 = down, 3 = none, 99 = unknown) |\n| <span class=\"break-all\">redis_master_repl_offset</span> | <span class=\"break-all\">`redis_server_master_repl_offset`</span> | Number of bytes sent to replicas by the shard; calculate the throughput for a time period by comparing the value at different times |\n| <span class=\"break-all\">redis_master_sync_in_progress</span> | <span class=\"break-all\">`redis_server_master_sync_in_progress`</span> | The master shard is synchronizing (1 true; 0 false) |\n| <span class=\"break-all\">redis_max_process_mem</span> | <span class=\"break-all\">`redis_server_max_process_mem`</span> | Current memory limit configured by redis_mgr according to node free memory |\n| <span class=\"break-all\">redis_maxmemory</span> | <span class=\"break-all\">`redis_server_maxmemory`</span> | Current memory limit configured by redis_mgr according to database memory limits. <br /><br />To calculate the percent memory usage:<br /><span class=\"break-all\">`sum by (cluster,db)(redis_server_used_memory{role=\"master\"}) / (avg by(cluster,db)(db_memory_limit_bytes) / max by(cluster,db)(db_replication_factor))`</span> |\n| <span class=\"break-all\">redis_mem_aof_buffer</span> | <span class=\"break-all\">`redis_server_mem_aof_buffer`</span> | Current size of AOF buffer |\n| <span class=\"break-all\">redis_mem_clients_normal</span> | <span class=\"break-all\">`redis_server_mem_clients_normal`</span> | Current memory used for input and output buffers of non-replica clients |\n| <span class=\"break-all\">redis_mem_clients_slaves</span> | <span class=\"break-all\">`redis_server_mem_clients_slaves`</span> | Current memory used for input and output buffers of replica clients |\n| <span class=\"break-all\">redis_mem_fragmentation_ratio</span> | <span class=\"break-all\">`redis_server_mem_fragmentation_ratio`</span> | Memory fragmentation ratio (1.3 means 30% overhead) |\n| <span class=\"break-all\">redis_mem_not_counted_for_evict</span> | <span class=\"break-all\">`redis_server_mem_not_counted_for_evict`</span> | Portion of used_memory (in bytes) that's not counted for eviction and OOM error |\n| <span class=\"break-all\">redis_mem_replication_backlog</span> | <span class=\"break-all\">`redis_server_mem_replication_backlog`</span> | Size of replication backlog |\n| <span class=\"break-all\">redis_module_fork_in_progress</span> | <span class=\"break-all\">`redis_server_module_fork_in_progress`</span> | A binary value that indicates if there is an active fork spawned by a module (1) or not (0) |\n| <span class=\"break-all\">redis_process_cpu_system_seconds_total</span> | <span class=\"break-all\">`namedprocess_namegroup_cpu_seconds_total{mode=\"system\"}`</span> | Shard process system CPU time spent in seconds |\n| <span class=\"break-all\">redis_process_cpu_usage_percent</span> | <span class=\"break-all\">`namedprocess_namegroup_cpu_seconds_total{mode=~\"system\\|user\"}`</span> | Shard process CPU usage percentage |\n| <span class=\"break-all\">redis_process_cpu_user_seconds_total</span> | <span class=\"break-all\">`namedprocess_namegroup_cpu_seconds_total{mode=\"user\"}`</span> | Shard user CPU time spent in seconds |\n| <span class=\"break-all\">redis_process_main_thread_cpu_system_seconds_total</span> | <span class=\"break-all\">`namedprocess_namegroup_thread_cpu_seconds_total{mode=\"system\",threadname=\"redis-server\"}`</span> | Shard main thread system CPU time spent in seconds |\n| <span class=\"break-all\">redis_process_main_thread_cpu_user_seconds_total</span> | <span class=\"break-all\">`namedprocess_namegroup_thread_cpu_seconds_total{mode=\"user\",threadname=\"redis-server\"}`</span> | Shard main thread user CPU time spent in seconds |\n| <span class=\"break-all\">redis_process_max_fds</span> | <span class=\"break-all\">`max(namedprocess_namegroup_open_filedesc)`</span> | Shard maximum number of open file descriptors |\n| <span class=\"break-all\">redis_process_open_fds</span> | <span class=\"break-all\">`namedprocess_namegroup_open_filedesc`</span> | Shard number of open file descriptors |\n| <span class=\"break-all\">redis_process_resident_memory_bytes</span> | <span class=\"break-all\">`namedprocess_namegroup_memory_bytes{memtype=\"resident\"}`</span> | Shard resident memory size in bytes |\n| <span class=\"break-all\">redis_process_start_time_seconds</span> | <span class=\"break-all\">`namedprocess_namegroup_oldest_start_time_seconds`</span> | Shard start time of the process since unix epoch in seconds |\n| <span class=\"break-all\">redis_process_virtual_memory_bytes</span> | <span class=\"break-all\">`namedprocess_namegroup_memory_bytes{memtype=\"virtual\"}`</span> | Shard virtual memory in bytes |\n| <span class=\"break-all\">redis_rdb_bgsave_in_progress</span> | <span class=\"break-all\">`redis_server_rdb_bgsave_in_progress`</span> | Indicates whether bgsave is currently in progress (1 = in progress, 0 = otherwise) |\n| <span class=\"break-all\">redis_rdb_last_cow_size</span> | <span class=\"break-all\">`redis_server_rdb_last_cow_size`</span> | Last bgsave (or SYNC fork) used CopyOnWrite memory |\n| <span class=\"break-all\">redis_rdb_saves</span> | <span class=\"break-all\">`redis_server_rdb_saves`</span> | Total count of bgsaves since the process was restarted (including replica fullsync and persistence) |\n| <span class=\"break-all\">redis_repl_touch_bytes</span> | <span class=\"break-all\">`redis_server_repl_touch_bytes`</span> | Number of bytes sent to replicas as TOUCH commands by the shard as a result of a READ command that was processed; calculate the throughput for a time period by comparing the value at different times |\n| <span class=\"break-all\">redis_total_commands_processed</span> | <span class=\"break-all\">`redis_server_total_commands_processed`</span> | Number of commands processed by the shard; calculate the number of commands for a time period by comparing the value at different times |\n| <span class=\"break-all\">redis_total_connections_received</span> | <span class=\"break-all\">`redis_server_total_connections_received`</span> | Number of connections received by the shard; calculate the number of connections for a time period by comparing the value at different times |\n| <span class=\"break-all\">redis_total_net_input_bytes</span> | <span class=\"break-all\">`redis_server_total_net_input_bytes`</span> | Number of bytes received by the shard; calculate the throughput for a time period by comparing the value at different times |\n| <span class=\"break-all\">redis_total_net_output_bytes</span> | <span class=\"break-all\">`redis_server_total_net_output_bytes`</span> | Number of bytes sent by the shard; calculate the throughput for a time period by comparing the value at different times |\n| <span class=\"break-all\">redis_up</span> | <span class=\"break-all\">`redis_server_up`</span> | Shard is up and running |\n| <span class=\"break-all\">redis_used_memory</span> | <span class=\"break-all\">`redis_server_used_memory`</span> | Memory used by shard (in BigRedis this includes flash) (bytes) |"
    }
  ],
  "examples": [
    {
      "id": "overview-ex0",
      "language": "yaml",
      "code": "scrape_configs:\n  # Scrape Redis Software\n  - job_name: redis-enterprise\n    scrape_interval: 30s\n    scrape_timeout: 30s\n    metrics_path: /v2\n    scheme: https\n    tls_config:\n      insecure_skip_verify: true\n    static_configs:\n      - targets: [\"<cluster_name>:8070\"]",
      "section_id": "overview"
    }
  ]
}
