{
  "id": "prometheus-metrics-v1-to-v2",
  "title": "Transition from Prometheus v1 to Prometheus v2",
  "url": "https://redis.io/docs/latest/operate/rs/8.0/monitoring/metrics_stream_engine/prometheus-metrics-v1-to-v2/",
  "summary": "Transition from v1 metrics to v2 PromQL equivalents.",
  "content": "\nYou can integrate Redis Software with Prometheus and tools such as [Grafana](https://redis.io/docs/latest/integrate/prometheus-with-redis-enterprise), [Datadog](https://redis.io/docs/latest/integrate/datadog-with-redis-enterprise), [Dynatrace](https://redis.io/docs/latest/integrate/dynatrace-with-redis-enterprise), or [New Relic](https://redis.io/docs/latest/integrate/new-relic-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```yaml\nscrape_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: [\"\u003ccluster_name\u003e:8070\"]\n```\n\nYou can 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 metrics, see [Prometheus metrics v2](https://redis.io/docs/latest/operate/rs/monitoring/metrics_stream_engine/prometheus-metrics-v2).\n\n## Database metrics\n\n| V1\u0026nbsp;metric | Equivalent V2 PromQL | Description |\n| --------- | :------------------- | :---------- |\n| \u003cspan class=\"break-all\"\u003ebdb_avg_latency\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`(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`\u003c/span\u003e | Average latency of operations on the database (seconds); returned only when there is traffic |\n| \u003cspan class=\"break-all\"\u003ebdb_avg_latency_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`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`\u003c/span\u003e | Highest value of average latency of operations on the database (seconds); returned only when there is traffic |\n| \u003cspan class=\"break-all\"\u003ebdb_avg_read_latency\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`(sum(irate(endpoint_read_requests_latency_histogram_sum{db=\"\"$db\"\"}[$__rate_interval]))/sum(irate(endpoint_read_requests{db=\"\"$db\"\"}[$__rate_interval])))/1000000`\u003c/span\u003e | Average latency of read operations (seconds); returned only when there is traffic |\n| \u003cspan class=\"break-all\"\u003ebdb_avg_read_latency_max\u003c/span\u003e\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`histogram_quantile(1, sum by (le) (irate(endpoint_read_requests_latency_histogram_bucket{db=\"\"$db\"\"}[$__rate_interval]))) / 1000000`\u003c/span\u003e | Highest value of average latency of read operations (seconds); returned only when there is traffic |\n| \u003cspan class=\"break-all\"\u003ebdb_avg_write_latency\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`(sum(irate(endpoint_write_requests_latency_histogram_sum{db=\"\"$db\"\"}[$__rate_interval]))/sum(irate(endpoint_write_requests{db=\"\"$db\"\"}[$__rate_interval])))/1000000`\u003c/span\u003e | Average latency of write operations (seconds); returned only when there is traffic |\n| \u003cspan class=\"break-all\"\u003ebdb_avg_write_latency_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`histogram_quantile(1, sum by (le) (irate(endpoint_write_requests_latency_histogram_bucket{db=\"\"$db\"\"}[$__rate_interval]))) / 1000000`\u003c/span\u003e | Highest value of average latency of write operations (seconds); returned only when there is traffic |\n| \u003cspan class=\"break-all\"\u003ebdb_bigstore_shard_count\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`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) \u003e bool 0) * on (redis) group_left(db) redis_server_up) by (db, driver)`\u003c/span\u003e | Shard count by database and by storage engine (driver - rocksdb / speedb); Only for databases with Auto Tiering enabled |\n| \u003cspan class=\"break-all\"\u003ebdb_conns\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum(endpoint_client_connections{cluster=\"$cluster\", db=\"$db\"} - endpoint_client_disconnections{cluster=\"$cluster\", db=\"$db\"} - endpoint_proxy_disconnections{cluster=\"$cluster\", db=\"$db\"})`\u003c/span\u003e | Number of client connections to database |\n| \u003cspan class=\"break-all\"\u003ebdb_egress_bytes\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by(db) (irate(endpoint_egress{db=\"$db\"}[$__rate_interval]))`\u003c/span\u003e | Rate of outgoing network traffic from the database (bytes/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_egress_bytes_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`max_over_time (sum by(db) (irate(endpoint_egress{db=\"$db\"}[$__rate_interval]))[$__range:])`\u003c/span\u003e | Highest value of the rate of outgoing network traffic from the database (bytes/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_evicted_objects\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by (db) (irate(redis_server_evicted_keys{role=\"master\"}[$__rate_interval]))`\u003c/span\u003e | Rate of key evictions from database (evictions/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_evicted_objects_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by (db) (irate(redis_server_evicted_keys{role=\"master\"}[$__rate_interval]))`\u003c/span\u003e | Highest value of the rate of key evictions from database (evictions/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_expired_objects\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by (db) (irate(redis_server_expired_keys{role=\"master\"}[$__rate_interval]))`\u003c/span\u003e | Rate keys expired in database (expirations/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_expired_objects_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by (db) (irate(redis_server_expired_keys{role=\"master\"}[$__rate_interval]))`\u003c/span\u003e | Highest value of the rate keys expired in database (expirations/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_fork_cpu_system\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by (db) (irate(namedprocess_namegroup_thread_cpu_seconds_total{mode=\"system\"}[$__rate_interval]))`\u003c/span\u003e | % cores utilization in system mode for all Redis shard fork child processes of this database |\n| \u003cspan class=\"break-all\"\u003ebdb_fork_cpu_system_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by (db) (irate(namedprocess_namegroup_thread_cpu_seconds_total{mode=\"system\"}[$__rate_interval]))`\u003c/span\u003e | Highest value of % cores utilization in system mode for all Redis shard fork child processes of this database |\n| \u003cspan class=\"break-all\"\u003ebdb_fork_cpu_user\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by (db) (irate(namedprocess_namegroup_thread_cpu_seconds_total{mode=\"user\"}[$__rate_interval]))`\u003c/span\u003e | % cores utilization in user mode for all Redis shard fork child processes of this database |\n| \u003cspan class=\"break-all\"\u003ebdb_fork_cpu_user_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by (db) (irate(namedprocess_namegroup_thread_cpu_seconds_total{mode=\"user\"}[$__rate_interval]))`\u003c/span\u003e | Highest value of % cores utilization in user mode for all Redis shard fork child processes of this database |\n| \u003cspan class=\"break-all\"\u003ebdb_ingress_bytes\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by(db) (irate(endpoint_ingress{db=\"$db\"}[$__rate_interval]))`\u003c/span\u003e | Rate of incoming network traffic to database (bytes/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_ingress_bytes_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`max_over_time (sum by(db) (irate(endpoint_ingress{db=\"$db\"}[$__rate_interval]))[$__range:])`\u003c/span\u003e | Highest value of the rate of incoming network traffic to database (bytes/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_instantaneous_ops_per_sec\u003c/span\u003e\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by(db) (redis_server_instantaneous_ops_per_sec)`\u003c/span\u003e | Request rate handled by all shards of database (ops/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_main_thread_cpu_system\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by(db) (irate(namedprocess_namegroup_thread_cpu_seconds_total{mode=\"system\", threadname=~\"redis-server.*\"}[$__rate_interval]))`\u003c/span\u003e | % cores utilization in system mode for all Redis shard main threads of this database |\n| \u003cspan class=\"break-all\"\u003ebdb_main_thread_cpu_system_max\u003c/span\u003e\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by(db) (irate(namedprocess_namegroup_thread_cpu_seconds_total{mode=\"system\", threadname=~\"redis-server.*\"}[$__rate_interval]))`\u003c/span\u003e | Highest value of % cores utilization in system mode for all Redis shard main threads of this database |\n| \u003cspan class=\"break-all\"\u003ebdb_main_thread_cpu_user\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by(irate(namedprocess_namegroup_thread_cpu_seconds_total{mode=\"user\", threadname=~\"redis-server.*\"}[$__rate_interval]))`\u003c/span\u003e | % cores utilization in user mode for all Redis shard main threads of this database |\n| \u003cspan class=\"break-all\"\u003ebdb_main_thread_cpu_user_max\u003c/span\u003e\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by(irate(namedprocess_namegroup_thread_cpu_seconds_total{mode=\"user\", threadname=~\"redis-server.*\"}[$__rate_interval]))`\u003c/span\u003e | Highest value of % cores utilization in user mode for all Redis shard main threads of this database |\n| \u003cspan class=\"break-all\"\u003ebdb_mem_frag_ratio\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`avg(redis_server_mem_fragmentation_ratio)`\u003c/span\u003e | RAM fragmentation ratio (RSS / allocated RAM) |\n| \u003cspan class=\"break-all\"\u003ebdb_mem_size_lua\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by(db) (redis_server_used_memory_lua)`\u003c/span\u003e | Redis lua scripting heap size (bytes) |\n| \u003cspan class=\"break-all\"\u003ebdb_memory_limit\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`db_memory_limit_bytes`\u003c/span\u003e | Configured RAM limit for the database |\n| \u003cspan class=\"break-all\"\u003ebdb_monitor_sessions_count\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by(db) (endpoint_monitor_sessions_count)`\u003c/span\u003e | Number of clients connected in monitor mode to the database |\n| \u003cspan class=\"break-all\"\u003ebdb_no_of_keys\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by (db) (redis_server_db_keys{role=\"master\"})`\u003c/span\u003e | Number of keys in database |\n| \u003cspan class=\"break-all\"\u003ebdb_other_req\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by(db) (irate(endpoint_other_requests{db=\"$db\"}[$__rate_interval]))`\u003c/span\u003e | Rate of other (non read/write) requests on the database (ops/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_other_req_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`max_over_time (sum by(db) (irate(endpoint_other_requests{db=\"$db\"}[$__rate_interval]))[$__range:])`\u003c/span\u003e | Highest value of the rate of other (non read/write) requests on the database (ops/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_other_res\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by(db) (irate(endpoint_other_responses{db=\"$db\"}[$__rate_interval]))`\u003c/span\u003e | Rate of other (non read/write) responses on the database (ops/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_other_res_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`max_over_time (sum by(db) (irate(endpoint_other_responses{db=\"$db\"}[$__rate_interval]))[$__range:])`\u003c/span\u003e | Highest value of the rate of other (non read/write) responses on the database (ops/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_pubsub_channels\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by(db) (redis_server_pubsub_channels)`\u003c/span\u003e | Count the pub/sub channels with subscribed clients |\n| \u003cspan class=\"break-all\"\u003ebdb_pubsub_channels_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by(db) (redis_server_pubsub_channels)`\u003c/span\u003e | Highest value of count the pub/sub channels with subscribed clients |\n| \u003cspan class=\"break-all\"\u003ebdb_pubsub_patterns\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by(db) (redis_server_pubsub_patterns)`\u003c/span\u003e | Count the pub/sub patterns with subscribed clients |\n| \u003cspan class=\"break-all\"\u003ebdb_pubsub_patterns_max\u003c/span\u003e\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by(db) (redis_server_pubsub_patterns)`\u003c/span\u003e | Highest value of count the pub/sub patterns with subscribed clients |\n| \u003cspan class=\"break-all\"\u003ebdb_read_hits\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by (db) (irate(redis_server_keyspace_read_hits{role=\"master\"}[$__rate_interval]))`\u003c/span\u003e | Rate of read operations accessing an existing key (ops/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_read_hits_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by (db) (irate(redis_server_keyspace_read_hits{role=\"master\"}[$__rate_interval]))`\u003c/span\u003e | Highest value of the rate of read operations accessing an existing key (ops/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_read_misses\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by (db) (irate(redis_server_keyspace_read_misses{role=\"master\"}[$__rate_interval]))`\u003c/span\u003e | Rate of read operations accessing a non-existing key (ops/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_read_misses_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by (db) (irate(redis_server_keyspace_read_misses{role=\"master\"}[$__rate_interval]))`\u003c/span\u003e | Highest value of the rate of read operations accessing a non-existing key (ops/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_read_req\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by (db) (irate(endpoint_read_requests{db=\"$db\"}[$__rate_interval]))`\u003c/span\u003e | Rate of read requests on the database (ops/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_read_req_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`max_over_time (sum by(db) (irate(endpoint_read_requests{db=\"$db\"}[$__rate_interval]))[$__range:])`\u003c/span\u003e | Highest value of the rate of read requests on the database (ops/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_read_res\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by (db) (irate(endpoint_read_responses{\"$db\"}[$__rate_interval]))`\u003c/span\u003e | Rate of read responses on the database (ops/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_read_res_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`max_over_time (sum by(db) (irate(endpoint_read_responses{db=\"$db\"}[$__rate_interval]))[$__range:])`\u003c/span\u003e | Highest value of the rate of read responses on the database (ops/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_shard_cpu_system\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by(db) (irate(namedprocess_namegroup_thread_cpu_seconds_total{mode=\"system\", role=\"master\"}[$__rate_interval]))`\u003c/span\u003e | % cores utilization in system mode for all Redis shard processes of this database |\n| \u003cspan class=\"break-all\"\u003ebdb_shard_cpu_system_max\u003cspan\u003e\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by(db) (irate(namedprocess_namegroup_thread_cpu_seconds_total{mode=\"system\", role=\"master\"}[$__rate_interval]))`\u003c/span\u003e | Highest value of % cores utilization in system mode for all Redis shard processes of this database |\n| \u003cspan class=\"break-all\"\u003ebdb_shard_cpu_user\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by(db) (irate(namedprocess_namegroup_thread_cpu_seconds_total{mode=\"user\", role=\"master\"}[$__rate_interval]))`\u003c/span\u003e | % cores utilization in user mode for the Redis shard process |\n| \u003cspan class=\"break-all\"\u003ebdb_shard_cpu_user_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by(db) (irate(namedprocess_namegroup_thread_cpu_seconds_total{mode=\"user\", role=\"master\"}[$__rate_interval]))`\u003c/span\u003e | Highest value of % cores utilization in user mode for the Redis shard process |\n| \u003cspan class=\"break-all\"\u003ebdb_shards_used\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`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) \u003e bool 0) * on (redis) group_left(db) redis_server_up) by (db, shard_type)`\u003c/span\u003e | Used shard count by database and by shard type (ram / flash) |\n| \u003cspan class=\"break-all\"\u003ebdb_total_connections_received\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by(db) (irate(endpoint_client_connections{db=\"$db\"}[$__rate_interval]))`\u003c/span\u003e | Rate of new client connections to database (connections/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_total_connections_received_max\u003cspan\u003e\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`max_over_time (sum by(db) (irate(endpoint_client_connections{db=\"$db\"}[$__rate_interval]))[$__range:])`\u003c/span\u003e | Highest value of the rate of new client connections to database (connections/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_total_req\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`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]))`\u003c/span\u003e | Rate of all requests on the database (ops/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_total_req_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`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:])`\u003c/span\u003e | Highest value of the rate of all requests on the database (ops/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_total_res\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`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]))`\u003c/span\u003e | Rate of all responses on the database (ops/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_total_res_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`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:])`\u003c/span\u003e | Highest value of the rate of all responses on the database (ops/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_up\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`min by(db) (redis_server_up)`\u003c/span\u003e | Database is up and running |\n| \u003cspan class=\"break-all\"\u003ebdb_used_memory\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by (db) (redis_server_used_memory)`\u003c/span\u003e | Memory used by database (in BigRedis this includes flash) (bytes) |\n| \u003cspan class=\"break-all\"\u003ebdb_write_hits\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by (db) (irate(redis_server_keyspace_write_hits{role=\"master\"}[$__rate_interval]))`\u003c/span\u003e | Rate of write operations accessing an existing key (ops/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_write_hits_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by (db) (irate(redis_server_keyspace_write_hits{role=\"master\"}[$__rate_interval]))`\u003c/span\u003e | Highest value of the rate of write operations accessing an existing key (ops/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_write_misses\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by (db) (irate(redis_server_keyspace_write_misses{role=\"master\"}[$__rate_interval]))`\u003c/span\u003e | Rate of write operations accessing a non-existing key (ops/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_write_misses_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by (db) (irate(redis_server_keyspace_write_misses{role=\"master\"}[$__rate_interval]))`\u003c/span\u003e | Highest value of the rate of write operations accessing a non-existing key (ops/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_write_req\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by (db) (irate(endpoint_write_requests{db=\"$db\"}[$__rate_interval]))`\u003c/span\u003e | Rate of write requests on the database (ops/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_write_req_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`max_over_time(sum by (db) (irate(endpoint_write_requests{db=\"$db\"}[$__rate_interval]))[$__range:])`\u003c/span\u003e | Highest value of the rate of write requests on the database (ops/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_write_res\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by(db) (irate(endpoint_write_responses{db=\"$db\"}[$__rate_interval]))`\u003c/span\u003e | Rate of write responses on the database (ops/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_write_res_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`max_over_time(sum by (db) (irate(endpoint_write_responses{db=\"$db\"}[$__rate_interval]))[$__range:])`\u003c/span\u003e | Highest value of the rate of write responses on the database (ops/sec) |\n| no_of_expires\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by(db) (redis_server_db_expires{role=\"master\"})`\u003c/span\u003e | Current number of volatile keys in the database |\n\n## Node metrics\n\n| V1\u0026nbsp;metric | Equivalent V2 PromQL | Description |\n| --------- | :------------------- | :---------- |\n| \u003cspan class=\"break-all\"\u003enode_available_flash\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`node_available_flash_bytes`\u003c/span\u003e | Available flash in the node (bytes) |\n| \u003cspan class=\"break-all\"\u003enode_available_flash_no_overbooking\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`node_available_flash_no_overbooking_bytes`\u003c/span\u003e | Available flash in the node (bytes), without taking into account overbooking |\n| \u003cspan class=\"break-all\"\u003enode_available_memory\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`node_available_memory_bytes`\u003c/span\u003e | Amount of free memory in the node (bytes) that is available for database provisioning |\n| \u003cspan class=\"break-all\"\u003enode_available_memory_no_overbooking\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`node_available_memory_no_overbooking_bytes`\u003c/span\u003e | Available RAM in the node (bytes) without taking into account overbooking |\n| \u003cspan class=\"break-all\"\u003enode_avg_latency\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by (proxy) (irate(endpoint_acc_latency[$__rate_interval])) / sum by (proxy) (irate(endpoint_total_started_res[$__rate_interval]))`\u003c/span\u003e | Average latency of requests handled by endpoints on the node in milliseconds; returned only when there is traffic |\n| \u003cspan class=\"break-all\"\u003enode_bigstore_free\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`node_bigstore_free_bytes`\u003c/span\u003e | 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| \u003cspan class=\"break-all\"\u003enode_bigstore_iops\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`node_flash_reads_total + node_flash_writes_total`\u003c/span\u003e | 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| \u003cspan class=\"break-all\"\u003enode_bigstore_kv_ops\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`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]))`\u003c/span\u003e | 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| \u003cspan class=\"break-all\"\u003enode_bigstore_throughput\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by (node) (irate(redis_server_big_io_read_bytes[$__rate_interval]) + irate(redis_server_big_io_write_bytes[$__rate_interval]))`\u003c/span\u003e | 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| \u003cspan class=\"break-all\"\u003enode_cert_expiration_seconds\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`node_cert_expires_in_seconds`\u003c/span\u003e | 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| \u003cspan class=\"break-all\"\u003enode_conns\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by (node) (endpoint_client_connections)`\u003c/span\u003e | Number of clients connected to endpoints on node |\n| \u003cspan class=\"break-all\"\u003enode_cpu_idle\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`avg by (node) (irate(node_cpu_seconds_total{mode=\"idle\"}[$__rate_interval]))`\u003c/span\u003e | CPU idle time portion (0-1, multiply by 100 to get percent) |\n| \u003cspan class=\"break-all\"\u003enode_cpu_idle_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Highest value of CPU idle time portion (0-1, multiply by 100 to get percent) |\n| \u003cspan class=\"break-all\"\u003enode_cpu_idle_median\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Average value of CPU idle time portion (0-1, multiply by 100 to get percent) |\n| \u003cspan class=\"break-all\"\u003enode_cpu_idle_min\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Lowest value of CPU idle time portion (0-1, multiply by 100 to get percent) |\n| \u003cspan class=\"break-all\"\u003enode_cpu_system\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`avg by (node) (irate(node_cpu_seconds_total{mode=\"system\"}[$__rate_interval]))`\u003c/span\u003e | CPU time portion spent in the kernel (0-1, multiply by 100 to get percent) |\n| \u003cspan class=\"break-all\"\u003enode_cpu_system_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Highest value of CPU time portion spent in the kernel (0-1, multiply by 100 to get percent) |\n| \u003cspan class=\"break-all\"\u003enode_cpu_system_median\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Average value of CPU time portion spent in the kernel (0-1, multiply by 100 to get percent) |\n| \u003cspan class=\"break-all\"\u003enode_cpu_system_min\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Lowest value of CPU time portion spent in the kernel (0-1, multiply by 100 to get percent) |\n| \u003cspan class=\"break-all\"\u003enode_cpu_user\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`avg by (node) (irate(node_cpu_seconds_total{mode=\"user\"}[$__rate_interval]))`\u003c/span\u003e | CPU time portion spent by user-space processes (0-1, multiply by 100 to get percent) |\n| \u003cspan class=\"break-all\"\u003enode_cpu_user_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Highest value of CPU time portion spent by user-space processes (0-1, multiply by 100 to get percent) |\n| \u003cspan class=\"break-all\"\u003enode_cpu_user_median\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Average value of CPU time portion spent by user-space processes (0-1, multiply by 100 to get percent) |\n| \u003cspan class=\"break-all\"\u003enode_cpu_user_min\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Lowest value of CPU time portion spent by user-space processes (0-1, multiply by 100 to get percent) |\n| \u003cspan class=\"break-all\"\u003enode_cur_aof_rewrites\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by (cluster, node) (redis_server_aof_rewrite_in_progress)`\u003c/span\u003e | Number of AOF rewrites that are currently performed by shards on this node |\n| \u003cspan class=\"break-all\"\u003enode_egress_bytes\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`irate(node_network_transmit_bytes_total{device=\"\u003cinterface\u003e\"}[$__rate_interval])`\u003c/span\u003e | Rate of outgoing network traffic to node (bytes/sec) |\n| \u003cspan class=\"break-all\"\u003enode_egress_bytes_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Highest value of the rate of outgoing network traffic to node (bytes/sec) |\n| \u003cspan class=\"break-all\"\u003enode_egress_bytes_median\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Average value of the rate of outgoing network traffic to node (bytes/sec) |\n| \u003cspan class=\"break-all\"\u003enode_egress_bytes_min\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Lowest value of the rate of outgoing network traffic to node (bytes/sec) |\n| \u003cspan class=\"break-all\"\u003enode_ephemeral_storage_avail\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`node_ephemeral_storage_avail_bytes`\u003c/span\u003e | Disk space available to RLEC processes on configured ephemeral disk (bytes) |\n| \u003cspan class=\"break-all\"\u003enode_ephemeral_storage_free\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`node_ephemeral_storage_free_bytes`\u003c/span\u003e | Free disk space on configured ephemeral disk (bytes) |\n| \u003cspan class=\"break-all\"\u003enode_free_memory\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`node_memory_MemFree_bytes`\u003c/span\u003e | Free memory in the node (bytes) |\n| \u003cspan class=\"break-all\"\u003enode_ingress_bytes\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`irate(node_network_receive_bytes_total{device=\"\u003cinterface\u003e\"}[$__rate_interval])`\u003c/span\u003e | Rate of incoming network traffic to node (bytes/sec) |\n| \u003cspan class=\"break-all\"\u003enode_ingress_bytes_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Highest value of the rate of incoming network traffic to node (bytes/sec) |\n| \u003cspan class=\"break-all\"\u003enode_ingress_bytes_median\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Average value of the rate of incoming network traffic to node (bytes/sec) |\n| \u003cspan class=\"break-all\"\u003enode_ingress_bytes_min\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Lowest value of the rate of incoming network traffic to node (bytes/sec) |\n| \u003cspan class=\"break-all\"\u003enode_persistent_storage_avail\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`node_persistent_storage_avail_bytes`\u003c/span\u003e | Disk space available to RLEC processes on configured persistent disk (bytes) |\n| \u003cspan class=\"break-all\"\u003enode_persistent_storage_free\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`node_persistent_storage_free_bytes`\u003c/span\u003e | Free disk space on configured persistent disk (bytes) |\n| \u003cspan class=\"break-all\"\u003enode_provisional_flash\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`node_provisional_flash_bytes`\u003c/span\u003e | 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| \u003cspan class=\"break-all\"\u003enode_provisional_flash_no_overbooking\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`node_provisional_flash_no_overbooking_bytes`\u003c/span\u003e | 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| \u003cspan class=\"break-all\"\u003enode_provisional_memory\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`node_provisional_memory_bytes`\u003c/span\u003e | Amount of RAM that is available for provisioning to databases out of the total RAM allocated for databases |\n| \u003cspan class=\"break-all\"\u003enode_provisional_memory_no_overbooking\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`node_provisional_memory_no_overbooking_bytes`\u003c/span\u003e | Amount of RAM that is available for provisioning to databases out of the total RAM allocated for databases, without taking into account overbooking |\n| \u003cspan class=\"break-all\"\u003enode_total_req\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`sum by (cluster, node) (irate(endpoint_read_requests[$__rate_interval]) +  irate(endpoint_write_requests[$__rate_interval]) +  irate(endpoint_other_requests[$__rate_interval]) )`\u003c/span\u003e | Request rate handled by endpoints on node (ops/sec) |\n| \u003cspan class=\"break-all\"\u003enode_up\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`node_metrics_up`\u003c/span\u003e | Node is part of the cluster and is connected |\n\n## Cluster metrics\n\n| V1\u0026nbsp;metric | Equivalent V2 PromQL | Description |\n| --------- | :------------------- | :---------- |\n| cluster_shards_limit | `license_shards_limit` | Total shard limit by the license by shard type (ram / flash) |\n\n## Proxy metrics\n\n| V1\u0026nbsp;metric | Equivalent V2 PromQL | Description |\n| --------- | :------------------- | :---------- |\n| \u003cspan class=\"break-all\"\u003elistener_acc_latency\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | 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| \u003cspan class=\"break-all\"\u003elistener_acc_latency_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Highest value of accumulative latency of all types of commands on the database |\n| \u003cspan class=\"break-all\"\u003elistener_acc_other_latency\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | 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| \u003cspan class=\"break-all\"\u003elistener_acc_other_latency_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Highest value of accumulative latency of commands that are a type \"other\" on the database |\n| \u003cspan class=\"break-all\"\u003elistener_acc_read_latency\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | 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| \u003cspan class=\"break-all\"\u003elistener_acc_read_latency_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Highest value of accumulative latency of commands that are a type \"read\" on the database |\n| \u003cspan class=\"break-all\"\u003elistener_acc_write_latency\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | 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| \u003cspan class=\"break-all\"\u003elistener_acc_write_latency_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Highest value of accumulative latency of commands that are a type \"write\" on the database |\n| \u003cspan class=\"break-all\"\u003elistener_auth_cmds\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Number of memcached AUTH commands sent to the database |\n| \u003cspan class=\"break-all\"\u003elistener_auth_cmds_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Highest value of the number of memcached AUTH commands sent to the database |\n| \u003cspan class=\"break-all\"\u003elistener_auth_errors\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Number of error responses to memcached AUTH commands |\n| \u003cspan class=\"break-all\"\u003elistener_auth_errors_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Highest value of the number of error responses to memcached AUTH commands |\n| \u003cspan class=\"break-all\"\u003elistener_cmd_flush\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Number of memcached FLUSH_ALL commands sent to the database |\n| \u003cspan class=\"break-all\"\u003elistener_cmd_flush_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Highest value of the number of memcached FLUSH_ALL commands sent to the database |\n| \u003cspan class=\"break-all\"\u003elistener_cmd_get\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Number of memcached GET commands sent to the database |\n| \u003cspan class=\"break-all\"\u003elistener_cmd_get_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Highest value of the number of memcached GET commands sent to the database |\n| \u003cspan class=\"break-all\"\u003elistener_cmd_set\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Number of memcached SET commands sent to the database |\n| \u003cspan class=\"break-all\"\u003elistener_cmd_set_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Highest value of the number of memcached SET commands sent to the database |\n| \u003cspan class=\"break-all\"\u003elistener_cmd_touch\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Number of memcached TOUCH commands sent to the database |\n| \u003cspan class=\"break-all\"\u003elistener_cmd_touch_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Highest value of the number of memcached TOUCH commands sent to the database |\n| \u003cspan class=\"break-all\"\u003elistener_conns\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Number of clients connected to the endpoint |\n| \u003cspan class=\"break-all\"\u003elistener_egress_bytes\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Rate of outgoing network traffic to the endpoint (bytes/sec) |\n| \u003cspan class=\"break-all\"\u003elistener_egress_bytes_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Highest value of the rate of outgoing network traffic to the endpoint (bytes/sec) |\n| \u003cspan class=\"break-all\"\u003elistener_ingress_bytes\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Rate of incoming network traffic to the endpoint (bytes/sec) |\n| \u003cspan class=\"break-all\"\u003elistener_ingress_bytes_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Highest value of the rate of incoming network traffic to the endpoint (bytes/sec) |\n| \u003cspan class=\"break-all\"\u003elistener_last_req_time\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Time of last command sent to the database |\n| \u003cspan class=\"break-all\"\u003elistener_last_res_time\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Time of last response sent from the database |\n| \u003cspan class=\"break-all\"\u003elistener_max_connections_exceeded\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`irate(endpoint_maximal_connections_exceeded[$__rate_interval])`\u003c/span\u003e | Number of times the number of clients connected to the database at the same time has exceeded the max limit |\n| \u003cspan class=\"break-all\"\u003elistener_max_connections_exceeded_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | 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| \u003cspan class=\"break-all\"\u003elistener_monitor_sessions_count\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Number of clients connected in monitor mode to the endpoint |\n| \u003cspan class=\"break-all\"\u003elistener_other_req\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Rate of other (non-read/write) requests on the endpoint (ops/sec) |\n| \u003cspan class=\"break-all\"\u003elistener_other_req_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Highest value of the rate of other (non-read/write) requests on the endpoint (ops/sec) |\n| \u003cspan class=\"break-all\"\u003elistener_other_res\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Rate of other (non-read/write) responses on the endpoint (ops/sec) |\n| \u003cspan class=\"break-all\"\u003elistener_other_res_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Highest value of the rate of other (non-read/write) responses on the endpoint (ops/sec) |\n| \u003cspan class=\"break-all\"\u003elistener_other_started_res\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Number of responses sent from the database of type \"other\" |\n| \u003cspan class=\"break-all\"\u003elistener_other_started_res_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Highest value of the number of responses sent from the database of type \"other\" |\n| \u003cspan class=\"break-all\"\u003elistener_read_req\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`irate(endpoint_read_requests[$__rate_interval])`\u003c/span\u003e | Rate of read requests on the endpoint (ops/sec) |\n| \u003cspan class=\"break-all\"\u003elistener_read_req_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Highest value of the rate of read requests on the endpoint (ops/sec) |\n| \u003cspan class=\"break-all\"\u003elistener_read_res\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`irate(endpoint_read_responses[$__rate_interval])`\u003c/span\u003e | Rate of read responses on the endpoint (ops/sec) |\n| \u003cspan class=\"break-all\"\u003elistener_read_res_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Highest value of the rate of read responses on the endpoint (ops/sec) |\n| \u003cspan class=\"break-all\"\u003elistener_read_started_res\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Number of responses sent from the database of type \"read\" |\n| \u003cspan class=\"break-all\"\u003elistener_read_started_res_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Highest value of the number of responses sent from the database of type \"read\" |\n| \u003cspan class=\"break-all\"\u003elistener_total_connections_received\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`irate(endpoint_total_connections_received[$__rate_interval])`\u003c/span\u003e | Rate of new client connections to the endpoint (connections/sec) |\n| \u003cspan class=\"break-all\"\u003elistener_total_connections_received_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Highest value of the rate of new client connections to the endpoint (connections/sec) |\n| \u003cspan class=\"break-all\"\u003elistener_total_req\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Request rate handled by the endpoint (ops/sec) |\n| \u003cspan class=\"break-all\"\u003elistener_total_req_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Highest value of the rate of all requests on the endpoint (ops/sec) |\n| \u003cspan class=\"break-all\"\u003elistener_total_res\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Rate of all responses on the endpoint (ops/sec) |\n| \u003cspan class=\"break-all\"\u003elistener_total_res_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Highest value of the rate of all responses on the endpoint (ops/sec) |\n| \u003cspan class=\"break-all\"\u003elistener_total_started_res\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Number of responses sent from the database of all types |\n| \u003cspan class=\"break-all\"\u003elistener_total_started_res_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Highest value of the number of responses sent from the database of all types |\n| \u003cspan class=\"break-all\"\u003elistener_write_req\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`irate(endpoint_write_requests[$__rate_interval])`\u003c/span\u003e | Rate of write requests on the endpoint (ops/sec) |\n| \u003cspan class=\"break-all\"\u003elistener_write_req_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Highest value of the rate of write requests on the endpoint (ops/sec) |\n| \u003cspan class=\"break-all\"\u003elistener_write_res\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`irate(endpoint_write_responses[$__rate_interval])`\u003c/span\u003e | Rate of write responses on the endpoint (ops/sec) |\n| \u003cspan class=\"break-all\"\u003elistener_write_res_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Highest value of the rate of write responses on the endpoint (ops/sec) |\n| \u003cspan class=\"break-all\"\u003elistener_write_started_res\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Number of responses sent from the database of type \"write\" |\n| \u003cspan class=\"break-all\"\u003elistener_write_started_res_max\u003c/span\u003e | \u003cspan class=\"break-all\"\u003eN/A\u003c/span\u003e | Highest value of the number of responses sent from the database of type \"write\" |\n\n## Replication metrics\n\n| V1\u0026nbsp;metric | Equivalent V2 PromQL | Description |\n| --------- | :------------------- | :---------- |\n| \u003cspan class=\"break-all\"\u003ebdb_replicaof_syncer_ingress_bytes\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`rate(replica_src_ingress_bytes[$__rate_interval])`\u003c/span\u003e | Rate of compressed incoming network traffic to a Replica Of database (bytes/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_replicaof_syncer_ingress_bytes_decompressed\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`rate(replica_src_ingress_bytes_decompressed[$__rate_interval])`\u003c/span\u003e | Rate of decompressed incoming network traffic to a Replica Of database (bytes/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_replicaof_syncer_local_ingress_lag_time\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`database_syncer_lag_ms{syncer_type=\"replicaof\"}`\u003c/span\u003e | Lag time between the source and the destination for Replica Of traffic (ms) |\n| \u003cspan class=\"break-all\"\u003ebdb_replicaof_syncer_status\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`database_syncer_current_status{syncer_type=\"replicaof\"}`\u003c/span\u003e | Syncer status for Replica Of traffic; 0 = in-sync, 1 = syncing, 2 = out of sync |\n| \u003cspan class=\"break-all\"\u003ebdb_crdt_syncer_ingress_bytes\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`rate(crdt_src_ingress_bytes[$__rate_interval])`\u003c/span\u003e | Rate of compressed incoming network traffic to CRDB (bytes/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_crdt_syncer_ingress_bytes_decompressed\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`rate(crdt_src_ingress_bytes_decompressed[$__rate_interval])`\u003c/span\u003e | Rate of decompressed incoming network traffic to CRDB (bytes/sec) |\n| \u003cspan class=\"break-all\"\u003ebdb_crdt_syncer_local_ingress_lag_time\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`database_syncer_lag_ms{syncer_type=\"crdt\"}`\u003c/span\u003e | Lag time between the source and the destination (ms) for CRDB traffic |\n| \u003cspan class=\"break-all\"\u003ebdb_crdt_syncer_status\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`database_syncer_current_status{syncer_type=\"crdt\"}`\u003c/span\u003e | Syncer status for CRDB traffic; 0 = in-sync, 1 = syncing, 2 = out of sync |\n\n## Shard metrics\n\n| V1\u0026nbsp;metric | Equivalent V2 PromQL | Description |\n| --------- | :------------------- | :---------- |\n| \u003cspan class=\"break-all\"\u003eredis_active_defrag_running\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_active_defrag_running`\u003c/span\u003e | Automatic memory defragmentation current aggressiveness (% cpu) |\n| \u003cspan class=\"break-all\"\u003eredis_allocator_active\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_allocator_active`\u003c/span\u003e | Total used memory, including external fragmentation |\n| \u003cspan class=\"break-all\"\u003eredis_allocator_allocated\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_allocator_allocated`\u003c/span\u003e | Total allocated memory |\n| \u003cspan class=\"break-all\"\u003eredis_allocator_resident\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_allocator_resident`\u003c/span\u003e | Total resident memory (RSS) |\n| \u003cspan class=\"break-all\"\u003eredis_aof_last_cow_size\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_aof_last_cow_size`\u003c/span\u003e | Last AOFR, CopyOnWrite memory |\n| \u003cspan class=\"break-all\"\u003eredis_aof_rewrite_in_progress\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_aof_rewrite_in_progress`\u003c/span\u003e | The number of simultaneous AOF rewrites that are in progress |\n| \u003cspan class=\"break-all\"\u003eredis_aof_rewrites\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_aof_rewrites`\u003c/span\u003e | Number of AOF rewrites this process executed |\n| \u003cspan class=\"break-all\"\u003eredis_aof_delayed_fsync\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_aof_delayed_fsync`\u003c/span\u003e | 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| \u003cspan class=\"break-all\"\u003eredis_blocked_clients\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_blocked_clients`\u003c/span\u003e | Count the clients waiting on a blocking call |\n| \u003cspan class=\"break-all\"\u003eredis_connected_clients\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_connected_clients`\u003c/span\u003e | Number of client connections to the specific shard |\n| \u003cspan class=\"break-all\"\u003eredis_connected_slaves\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_connected_slaves`\u003c/span\u003e | Number of connected replicas |\n| \u003cspan class=\"break-all\"\u003eredis_db0_avg_ttl\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_db0_avg_ttl`\u003c/span\u003e | Average TTL of all volatile keys |\n| \u003cspan class=\"break-all\"\u003eredis_db0_expires\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_expired_keys`\u003c/span\u003e | Total count of volatile keys |\n| \u003cspan class=\"break-all\"\u003eredis_db0_keys\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_db0_keys`\u003c/span\u003e | Total key count |\n| \u003cspan class=\"break-all\"\u003eredis_evicted_keys\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_evicted_keys`\u003c/span\u003e | Keys evicted so far (since restart) |\n| \u003cspan class=\"break-all\"\u003eredis_expire_cycle_cpu_milliseconds\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_expire_cycle_cpu_milliseconds`\u003c/span\u003e | The cumulative amount of time spent on active expiry cycles |\n| \u003cspan class=\"break-all\"\u003eredis_expired_keys\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_expired_keys`\u003c/span\u003e | Keys expired so far (since restart) |\n| \u003cspan class=\"break-all\"\u003eredis_forwarding_state\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_forwarding_state`\u003c/span\u003e | Shard forwarding state (on or off) |\n| \u003cspan class=\"break-all\"\u003eredis_keys_trimmed\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_keys_trimmed`\u003c/span\u003e | The number of keys that were trimmed in the current or last resharding process |\n| \u003cspan class=\"break-all\"\u003eredis_keyspace_read_hits\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_keyspace_read_hits`\u003c/span\u003e | Number of read operations accessing an existing keyspace |\n| \u003cspan class=\"break-all\"\u003eredis_keyspace_read_misses\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_keyspace_read_misses`\u003c/span\u003e | Number of read operations accessing a non-existing keyspace |\n| \u003cspan class=\"break-all\"\u003eredis_keyspace_write_hits\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_keyspace_write_hits`\u003c/span\u003e | Number of write operations accessing an existing keyspace |\n| \u003cspan class=\"break-all\"\u003eredis_keyspace_write_misses\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_keyspace_write_misses`\u003c/span\u003e | Number of write operations accessing a non-existing keyspace |\n| \u003cspan class=\"break-all\"\u003eredis_master_link_status\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_master_link_status`\u003c/span\u003e | Indicates if the replica is connected to its master |\n| \u003cspan class=\"break-all\"\u003eredis_master_repl_offset\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_master_repl_offset`\u003c/span\u003e | Number of bytes sent to replicas by the shard; calculate the throughput for a time period by comparing the value at different times |\n| \u003cspan class=\"break-all\"\u003eredis_master_sync_in_progress\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_master_sync_in_progress`\u003c/span\u003e | The master shard is synchronizing (1 true; 0 false) |\n| \u003cspan class=\"break-all\"\u003eredis_max_process_mem\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_max_process_mem`\u003c/span\u003e | Current memory limit configured by redis_mgr according to node free memory |\n| \u003cspan class=\"break-all\"\u003eredis_maxmemory\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_maxmemory`\u003c/span\u003e | Current memory limit configured by redis_mgr according to database memory limits. \u003cbr /\u003e\u003cbr /\u003eTo calculate the percent memory usage:\u003cbr /\u003e\u003cspan class=\"break-all\"\u003e`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))`\u003c/span\u003e |\n| \u003cspan class=\"break-all\"\u003eredis_mem_aof_buffer\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_mem_aof_buffer`\u003c/span\u003e | Current size of AOF buffer |\n| \u003cspan class=\"break-all\"\u003eredis_mem_clients_normal\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_mem_clients_normal`\u003c/span\u003e | Current memory used for input and output buffers of non-replica clients |\n| \u003cspan class=\"break-all\"\u003eredis_mem_clients_slaves\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_mem_clients_slaves`\u003c/span\u003e | Current memory used for input and output buffers of replica clients |\n| \u003cspan class=\"break-all\"\u003eredis_mem_fragmentation_ratio\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_mem_fragmentation_ratio`\u003c/span\u003e | Memory fragmentation ratio (1.3 means 30% overhead) |\n| \u003cspan class=\"break-all\"\u003eredis_mem_not_counted_for_evict\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_mem_not_counted_for_evict`\u003c/span\u003e | Portion of used_memory (in bytes) that's not counted for eviction and OOM error |\n| \u003cspan class=\"break-all\"\u003eredis_mem_replication_backlog\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_mem_replication_backlog`\u003c/span\u003e | Size of replication backlog |\n| \u003cspan class=\"break-all\"\u003eredis_module_fork_in_progress\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_module_fork_in_progress`\u003c/span\u003e | A binary value that indicates if there is an active fork spawned by a module (1) or not (0) |\n| \u003cspan class=\"break-all\"\u003eredis_process_cpu_system_seconds_total\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`namedprocess_namegroup_cpu_seconds_total{mode=\"system\"}`\u003c/span\u003e | Shard process system CPU time spent in seconds |\n| \u003cspan class=\"break-all\"\u003eredis_process_cpu_usage_percent\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`namedprocess_namegroup_cpu_seconds_total{mode=~\"system\\|user\"}`\u003c/span\u003e | Shard process CPU usage percentage |\n| \u003cspan class=\"break-all\"\u003eredis_process_cpu_user_seconds_total\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`namedprocess_namegroup_cpu_seconds_total{mode=\"user\"}`\u003c/span\u003e | Shard user CPU time spent in seconds |\n| \u003cspan class=\"break-all\"\u003eredis_process_main_thread_cpu_system_seconds_total\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`namedprocess_namegroup_thread_cpu_seconds_total{mode=\"system\",threadname=\"redis-server\"}`\u003c/span\u003e | Shard main thread system CPU time spent in seconds |\n| \u003cspan class=\"break-all\"\u003eredis_process_main_thread_cpu_user_seconds_total\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`namedprocess_namegroup_thread_cpu_seconds_total{mode=\"user\",threadname=\"redis-server\"}`\u003c/span\u003e | Shard main thread user CPU time spent in seconds |\n| \u003cspan class=\"break-all\"\u003eredis_process_max_fds\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`max(namedprocess_namegroup_open_filedesc)`\u003c/span\u003e | Shard maximum number of open file descriptors |\n| \u003cspan class=\"break-all\"\u003eredis_process_open_fds\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`namedprocess_namegroup_open_filedesc`\u003c/span\u003e | Shard number of open file descriptors |\n| \u003cspan class=\"break-all\"\u003eredis_process_resident_memory_bytes\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`namedprocess_namegroup_memory_bytes{memtype=\"resident\"}`\u003c/span\u003e | Shard resident memory size in bytes |\n| \u003cspan class=\"break-all\"\u003eredis_process_start_time_seconds\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`namedprocess_namegroup_oldest_start_time_seconds`\u003c/span\u003e | Shard start time of the process since unix epoch in seconds |\n| \u003cspan class=\"break-all\"\u003eredis_process_virtual_memory_bytes\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`namedprocess_namegroup_memory_bytes{memtype=\"virtual\"}`\u003c/span\u003e | Shard virtual memory in bytes |\n| \u003cspan class=\"break-all\"\u003eredis_rdb_bgsave_in_progress\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_rdb_bgsave_in_progress`\u003c/span\u003e | Indication if bgsave is currently in progress |\n| \u003cspan class=\"break-all\"\u003eredis_rdb_last_cow_size\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_rdb_last_cow_size`\u003c/span\u003e | Last bgsave (or SYNC fork) used CopyOnWrite memory |\n| \u003cspan class=\"break-all\"\u003eredis_rdb_saves\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_rdb_saves`\u003c/span\u003e | Total count of bgsaves since the process was restarted (including replica fullsync and persistence) |\n| \u003cspan class=\"break-all\"\u003eredis_repl_touch_bytes\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_repl_touch_bytes`\u003c/span\u003e | 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| \u003cspan class=\"break-all\"\u003eredis_total_commands_processed\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_total_commands_processed`\u003c/span\u003e | Number of commands processed by the shard; calculate the number of commands for a time period by comparing the value at different times |\n| \u003cspan class=\"break-all\"\u003eredis_total_connections_received\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_total_connections_received`\u003c/span\u003e | Number of connections received by the shard; calculate the number of connections for a time period by comparing the value at different times |\n| \u003cspan class=\"break-all\"\u003eredis_total_net_input_bytes\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_total_net_input_bytes`\u003c/span\u003e | Number of bytes received by the shard; calculate the throughput for a time period by comparing the value at different times |\n| \u003cspan class=\"break-all\"\u003eredis_total_net_output_bytes\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_total_net_output_bytes`\u003c/span\u003e | Number of bytes sent by the shard; calculate the throughput for a time period by comparing the value at different times |\n| \u003cspan class=\"break-all\"\u003eredis_up\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_up`\u003c/span\u003e | Shard is up and running |\n| \u003cspan class=\"break-all\"\u003eredis_used_memory\u003c/span\u003e | \u003cspan class=\"break-all\"\u003e`redis_server_used_memory`\u003c/span\u003e | Memory used by shard (in BigRedis this includes flash) (bytes) |\n\n",
  "tags": ["docs","integrate","rs"],
  "last_updated": "2026-07-23T12:05:56-05:00"
}
