diff --git a/content/embeds/rs-quick-db-setup-7-8.md b/content/embeds/rs-quick-db-setup-7-8.md new file mode 100644 index 0000000000..ee2e984599 --- /dev/null +++ b/content/embeds/rs-quick-db-setup-7-8.md @@ -0,0 +1,18 @@ +1. On the **Databases** screen, select **Quick database**. + + {{Select Quick database on the Databases screen.}} + +1. Enter 12000 for the **Port**. + + If port 12000 is not available, enter any available port number between 10000 to 19999 or leave it blank to let the cluster assign a port number for you. You will use this port number to connect to the database. + + {{Create a quick database.}} + +1. Select **Create** to create your database. + +When you see **Database active** appear on the database configuration screen, the database is activated and ready for you to use. + +{{Database active icon.}} + + +You now have a Redis database! \ No newline at end of file diff --git a/content/embeds/rs-upgrade-paths.md b/content/embeds/rs-upgrade-paths.md index 3eb308f994..37b29bae5d 100644 --- a/content/embeds/rs-upgrade-paths.md +++ b/content/embeds/rs-upgrade-paths.md @@ -4,10 +4,11 @@ :x: Not supported – You cannot upgrade directly from the current Redis Software cluster version. You must first upgrade to a supported intermediate version. -| Current Redis Software cluster version | Upgrade to Redis Software 6.2.x | Upgrade to Redis Software 6.4.x | Upgrade to Redis Software 7.2.x | Upgrade to Redis Software 7.4.x | -|:-----------------------:|:----------------:|:----------------:|:----------------:|:----------------:| -| 6.0.x | | | | :x: | -| 6.2.4
6.2.8 | – | | | | -| 6.2.10
6.2.12
6.2.18 | – | | | | -| 6.4.x | – | – | | | -| 7.2.x | – | – | – | | +| Current Redis Software cluster version | Upgrade to Redis Software 6.2.x | Upgrade to Redis Software 6.4.x | Upgrade to Redis Software 7.2.x | Upgrade to Redis Software 7.4.x | Upgrade to Redis Software 7.8.x | +|:-----------------------:|:----------------:|:----------------:|:----------------:|:----------------:|:----------------:| +| 6.0.x | | | | :x: | :x: | +| 6.2.4
6.2.8 | – | | | | :x: | +| 6.2.10
6.2.12
6.2.18 | – | | | | | +| 6.4.x | – | – | | | | +| 7.2.x | – | – | – | | | +| 7.4.x | – | – | – | - | | diff --git a/content/embeds/supported-platforms-embed.md b/content/embeds/supported-platforms-embed.md index 8b6980d591..4156f96579 100644 --- a/content/embeds/supported-platforms-embed.md +++ b/content/embeds/supported-platforms-embed.md @@ -7,30 +7,32 @@ Redis Enterprise Software is supported on several operating systems, cloud envi :warning: Deprecation warning – The platform is still supported for this version of Redis Enterprise Software, but support will be removed in a future release. -| Redis Enterprise
major versions | 7.4 | 7.2 | 6.4 | 6.2 | -|---------------------------------|:-----:|:-----:|:-----:|:-----:| -| **Release date** | Feb 2024 | Aug 2023 | Feb 2023 | Aug 2021 | -| [**End-of-life date**]({{< relref "/operate/rs/installing-upgrading/product-lifecycle#endoflife-schedule" >}}) | Determined after
next major release | Feb 2026 | Aug 2025 | Feb 2025 | -| **Platforms** | | | | | -| RHEL 9 &
compatible distros[1](#table-note-1) | | – | – | – | -| RHEL 8 &
compatible distros[1](#table-note-1) | | | | | -| RHEL 7 &
compatible distros[1](#table-note-1) | – | :warning: | | | -| Ubuntu 20.04[2](#table-note-2) | | | | – | -| Ubuntu 18.04[2](#table-note-2) | :warning: | :warning: | | | -| Ubuntu 16.04[2](#table-note-2) | – | :warning: | | | -| Amazon Linux 2 | | | | – | -| Amazon Linux 1 | – | | | | -| Kubernetes[3](#table-note-3) | | | | | -| Docker[4](#table-note-4) | | | | | - -1. The RHEL-compatible distributions CentOS, CentOS Stream, Alma, and Rocky are supported if they have full RHEL compatibility. Oracle Linux running the Red Hat Compatible Kernel (RHCK) is supported, but the Unbreakable Enterprise Kernel (UEK) is not supported. - -2. The server version of Ubuntu is recommended for production installations. The desktop version is only recommended for development deployments. - -3. See the [Redis Enterprise for Kubernetes documentation]({{< relref "/operate/kubernetes/reference/supported_k8s_distributions" >}}) for details about support per version and Kubernetes distribution. - -4. -[Docker images]({{< relref "/operate/rs/installing-upgrading/quickstarts/docker-quickstart" >}}) of Redis Enterprise Software are certified for development and testing only. +| Redis Software
major versions | 7.8 | 7.4 | 7.2 | 6.4 | 6.2 | +|---------------------------------|:-----:|:-----:|:-----:|:-----:|:-----:| +| **Release date** | Nov 2024 | Feb 2024 | Aug 2023 | Feb 2023 | Aug 2021 | +| [**End-of-life date**]({{< relref "/operate/rs/installing-upgrading/product-lifecycle#endoflife-schedule" >}}) | Determined after
next major release | Nov 2026 | Feb 2026 | Aug 2025 | Feb 2025 | +| **Platforms** | | | | | | +| RHEL 9 &
compatible distros[1](#table-note-1) | | | – | – | – | +| RHEL 9
FIPS mode[5](#table-note-5) | | – | – | – | – | +| RHEL 8 &
compatible distros[1](#table-note-1) | | | | | | +| RHEL 7 &
compatible distros[1](#table-note-1) | – | – | :warning: | | | +| Ubuntu 20.04[2](#table-note-2) | | | | | – | +| Ubuntu 18.04[2](#table-note-2) | – | :warning: | :warning: | | | +| Ubuntu 16.04[2](#table-note-2) | – | – | :warning: | | | +| Amazon Linux 2 | | | | | – | +| Amazon Linux 1 | – | – | | | | +| Kubernetes[3](#table-note-3) | | | | | | +| Docker[4](#table-note-4) | | | | | | + +1. The RHEL-compatible distributions CentOS, CentOS Stream, Alma, and Rocky are supported if they have full RHEL compatibility. Oracle Linux running the Red Hat Compatible Kernel (RHCK) is supported, but the Unbreakable Enterprise Kernel (UEK) is not supported. + +2. The server version of Ubuntu is recommended for production installations. The desktop version is only recommended for development deployments. + +3. See the [Redis Enterprise for Kubernetes documentation]({{< relref "/operate/kubernetes/reference/supported_k8s_distributions" >}}) for details about support per version and Kubernetes distribution. + +4. [Docker images]({{< relref "/operate/rs/installing-upgrading/quickstarts/docker-quickstart" >}}) of Redis Enterprise Software are certified for development and testing only. + +5. Supported only if [FIPS was enabled during RHEL installation](https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/security_hardening/switching-rhel-to-fips-mode_security-hardening#proc_installing-the-system-with-fips-mode-enabled_switching-rhel-to-fips-mode) to ensure FIPS compliance. The following table shows which Redis Enterprise Software version first tested and added support for each RHEL version: diff --git a/content/integrate/prometheus-with-redis-enterprise/prometheus-metrics-definitions.md b/content/integrate/prometheus-with-redis-enterprise/prometheus-metrics-definitions.md index 0c44afb102..c264ece9ad 100644 --- a/content/integrate/prometheus-with-redis-enterprise/prometheus-metrics-definitions.md +++ b/content/integrate/prometheus-with-redis-enterprise/prometheus-metrics-definitions.md @@ -1,281 +1,176 @@ --- -Title: Metrics in Prometheus +Title: Prometheus metrics v2 preview alwaysopen: false categories: - docs - integrate - rs -description: The metrics available to Prometheus. +description: V2 metrics available to Prometheus as of Redis Enterprise Software version 7.8.2. group: observability -linkTitle: Prometheus metrics -summary: You can use Prometheus and Grafana to collect and visualize your Redis Enterprise - Software metrics. +linkTitle: Prometheus metrics v2 +summary: V2 metrics available to Prometheus as of Redis Enterprise Software version 7.8.2. type: integration weight: 45 --- -The [integration with Prometheus]({{< relref "/integrate/prometheus-with-redis-enterprise/" >}}) -lets you create dashboards that highlight the metrics that are important to you. -Here are the metrics available to Prometheus: +{{}} +While the metrics stream engine is in preview, this document provides only a partial list of v2 metrics. More metrics will be added. +{{}} + +You can [integrate Redis Enterprise Software with Prometheus and Grafana]({{}}) to create dashboards for important metrics. + +The v2 metrics in the following tables are available as of Redis Enterprise Software version 7.8.0. For help transitioning from v1 metrics to v2 PromQL, see [Prometheus v1 metrics and equivalent v2 PromQL]({{}}). ## Database metrics | Metric | Description | -| ------ | :------ | -| bdb_avg_latency | Average latency of operations on the DB (seconds); returned only when there is traffic | -| bdb_avg_latency_max | Highest value of average latency of operations on the DB (seconds); returned only when there is traffic | -| bdb_avg_read_latency | Average latency of read operations (seconds); returned only when there is traffic | -| bdb_avg_read_latency_max | Highest value of average latency of read operations (seconds); returned only when there is traffic | -| bdb_avg_write_latency | Average latency of write operations (seconds); returned only when there is traffic | -| bdb_avg_write_latency_max | Highest value of average latency of write operations (seconds); returned only when there is traffic | -| bdb_bigstore_shard_count | Shard count by database and by storage engine (driver - rocksdb / speedb); Only for databases with Auto Tiering enabled | -| bdb_conns | Number of client connections to DB | -| bdb_egress_bytes | Rate of outgoing network traffic from the DB (bytes/sec) | -| bdb_egress_bytes_max | Highest value of rate of outgoing network traffic from the DB (bytes/sec) | -| bdb_evicted_objects | Rate of key evictions from DB (evictions/sec) | -| bdb_evicted_objects_max | Highest value of rate of key evictions from DB (evictions/sec) | -| bdb_expired_objects | Rate keys expired in DB (expirations/sec) | -| bdb_expired_objects_max | Highest value of rate keys expired in DB (expirations/sec) | -| bdb_fork_cpu_system | % cores utilization in system mode for all redis shard fork child processes of this database | -| bdb_fork_cpu_system_max | Highest value of % cores utilization in system mode for all redis shard fork child processes of this database | -| bdb_fork_cpu_user | % cores utilization in user mode for all redis shard fork child processes of this database | -| bdb_fork_cpu_user_max | Highest value of % cores utilization in user mode for all redis shard fork child processes of this database | -| bdb_ingress_bytes | Rate of incoming network traffic to DB (bytes/sec) | -| bdb_ingress_bytes_max | Highest value of rate of incoming network traffic to DB (bytes/sec) | -| bdb_instantaneous_ops_per_sec | Request rate handled by all shards of DB (ops/sec) | -| bdb_main_thread_cpu_system | % cores utilization in system mode for all redis shard main threads of this database | -| bdb_main_thread_cpu_system_max | Highest value of % cores utilization in system mode for all redis shard main threads of this database | -| bdb_main_thread_cpu_user | % cores utilization in user mode for all redis shard main threads of this database | -| bdb_main_thread_cpu_user_max | Highest value of % cores utilization in user mode for all redis shard main threads of this database | -| bdb_mem_frag_ratio | RAM fragmentation ratio (RSS / allocated RAM) | -| bdb_mem_size_lua | Redis lua scripting heap size (bytes) | -| bdb_memory_limit | Configured RAM limit for the database | -| bdb_monitor_sessions_count | Number of client connected in monitor mode to the DB | -| bdb_no_of_keys | Number of keys in DB | -| bdb_other_req | Rate of other (non read/write) requests on DB (ops/sec) | -| bdb_other_req_max | Highest value of rate of other (non read/write) requests on DB (ops/sec) | -| bdb_other_res | Rate of other (non read/write) responses on DB (ops/sec) | -| bdb_other_res_max | Highest value of rate of other (non read/write) responses on DB (ops/sec) | -| bdb_pubsub_channels | Count the pub/sub channels with subscribed clients | -| bdb_pubsub_channels_max | Highest value of count the pub/sub channels with subscribed clients | -| bdb_pubsub_patterns | Count the pub/sub patterns with subscribed clients | -| bdb_pubsub_patterns_max | Highest value of count the pub/sub patterns with subscribed clients | -| bdb_read_hits | Rate of read operations accessing an existing key (ops/sec) | -| bdb_read_hits_max | Highest value of rate of read operations accessing an existing key (ops/sec) | -| bdb_read_misses | Rate of read operations accessing a non-existing key (ops/sec) | -| bdb_read_misses_max | Highest value of rate of read operations accessing a non-existing key (ops/sec) | -| bdb_read_req | Rate of read requests on DB (ops/sec) | -| bdb_read_req_max | Highest value of rate of read requests on DB (ops/sec) | -| bdb_read_res | Rate of read responses on DB (ops/sec) | -| bdb_read_res_max | Highest value of rate of read responses on DB (ops/sec) | -| bdb_shard_cpu_system | % cores utilization in system mode for all redis shard processes of this database | -| bdb_shard_cpu_system_max | Highest value of % cores utilization in system mode for all redis shard processes of this database | -| bdb_shard_cpu_user | % cores utilization in user mode for the redis shard process | -| bdb_shard_cpu_user_max | Highest value of % cores utilization in user mode for the redis shard process | -| bdb_shards_used | Used shard count by database and by shard type (ram / flash) | -| bdb_total_connections_received | Rate of new client connections to DB (connections/sec) | -| bdb_total_connections_received_max | Highest value of rate of new client connections to DB (connections/sec) | -| bdb_total_req | Rate of all requests on DB (ops/sec) | -| bdb_total_req_max | Highest value of rate of all requests on DB (ops/sec) | -| bdb_total_res | Rate of all responses on DB (ops/sec) | -| bdb_total_res_max | Highest value of rate of all responses on DB (ops/sec) | -| bdb_up | Database is up and running | -| bdb_used_memory | Memory used by db (in bigredis this includes flash) (bytes) | -| bdb_write_hits | Rate of write operations accessing an existing key (ops/sec) | -| bdb_write_hits_max | Highest value of rate of write operations accessing an existing key (ops/sec) | -| bdb_write_misses | Rate of write operations accessing a non-existing key (ops/sec) | -| bdb_write_misses_max | Highest value of rate of write operations accessing a non-existing key (ops/sec) | -| bdb_write_req | Rate of write requests on DB (ops/sec) | -| bdb_write_req_max | Highest value of rate of write requests on DB (ops/sec) | -| bdb_write_res | Rate of write responses on DB (ops/sec) | -| bdb_write_res_max | Highest value of rate of write responses on DB (ops/sec) | -| no_of_expires | Current number of volatile keys in the database | +| :-------- | :---------- | +| endpoint_client_connections | Number of client connection establishment events | +| endpoint_client_disconnections | Number of client disconnections initiated by the client | +| endpoint_client_connection_expired | Total number of client connections with expired TTL (Time To Live) | +| endpoint_client_establishment_failures | Number of client connections that failed to establish properly | +| endpoint_client_expiration_refresh | Number of expiration time changes of clients | +| endpoint_client_tracking_off_requests | Total number of `CLIENT TRACKING OFF` requests | +| endpoint_client_tracking_on_requests | Total number of `CLIENT TRACKING ON` requests | +| endpoint_disconnected_cba_client | Number of certificate-based clients disconnected | +| endpoint_disconnected_ldap_client | Number of LDAP clients disconnected | +| endpoint_disconnected_user_password_client | Number of user&password clients disconnected | +| endpoint_disposed_commands_after_client_caching | Total number of client caching commands that were disposed due to misuse | +| endpoint_egress | Number of egress bytes | +| endpoint_egress_pending | Number of send-pending bytes | +| endpoint_egress_pending_discarded | Number of send-pending bytes that were discarded due to disconnection | +| endpoint_failed_cba_authentication | Number of clients that failed certificate-based authentication | +| endpoint_failed_ldap_authentication | Number of clients that failed LDAP authentication | +| endpoint_failed_user_password_authentication | Number of clients that failed user password authentication | +| endpoint_ingress | Number of ingress bytes | +| endpoint_longest_pipeline_histogram | Client connections with the longest pipeline lengths | +| endpoint_other_requests | Number of other requests | +| endpoint_other_requests_latency_histogram | Latency (in µs) histogram of other commands | +| endpoint_other_requests_latency_histogram_bucket | Latency histograms for commands other than read or write commands. Can be used to represent different latency percentiles.
p99.9 example:
`histogram_quantile(0.999, sum(rate(endpoint_other_requests_latency_histogram_bucket{cluster="$cluster", db="$db"}[$__rate_interval]) ) by (le, db))` | +| endpoint_other_responses | Number of other responses | +| endpoint_proxy_disconnections | Number of client disconnections initiated by the proxy | +| endpoint_read_requests | Number of read requests | +| endpoint_read_requests_latency_histogram | Latency (in µs) histogram of read commands | +| endpoint_read_requests_latency_histogram_bucket | Latency histograms for read commands. Can be used to represent different latency percentiles.
p99.9 example:
`histogram_quantile(0.999, sum(rate(endpoint_read_requests_latency_histogram_bucket{cluster="$cluster", db="$db"}[$__rate_interval]) ) by (le, db))` | +| endpoint_read_responses | Number of read responses | +| endpoint_successful_cba_authentication | Number of clients that successfully authenticated with certificate-based authentication | +| endpoint_successful_ldap_authentication | Number of clients that successfully authenticated with LDAP | +| endpoint_successful_user_password_authentication | Number of clients that successfully authenticated with user&password | +| endpoint_write_requests | Number of write requests | +| endpoint_write_requests_latency_histogram | Latency (in µs) histogram of write commands | +| endpoint_write_requests_latency_histogram_bucket | Latency histograms for write commands. Can be used to represent different latency percentiles.
p99.9 example:
`histogram_quantile(0.999, sum(rate(endpoint_write_requests_latency_histogram_bucket{cluster="$cluster", db="$db"}[$__rate_interval]) ) by (le, db))` | +| endpoint_write_responses | Number of write responses | ## Node metrics | Metric | Description | -| ------ | :------ | -| node_available_flash | Available flash in node (bytes) | -| node_available_flash_no_overbooking | Available flash in node (bytes), without taking into account overbooking | -| node_available_memory | Amount of free memory in node (bytes) that is available for database provisioning | -| node_available_memory_no_overbooking | Available ram in node (bytes) without taking into account overbooking | -| node_avg_latency | Average latency of requests handled by endpoints on the node in milliseconds; returned only when there is traffic | -| node_bigstore_free | Sum of free space of back-end flash (used by flash DB's [BigRedis]) on all cluster nodes (bytes); returned only when BigRedis is enabled | -| node_bigstore_iops | Rate of i/o operations against back-end flash for all shards which are part of a flash based DB (BigRedis) in cluster (ops/sec); returned only when BigRedis is enabled | -| node_bigstore_kv_ops | Rate of value read/write operations against back-end flash for all shards which are part of a flash based DB (BigRedis) in cluster (ops/sec); returned only when BigRedis is enabled | -| node_bigstore_throughput | Throughput i/o operations against back-end flash for all shards which are part of a flash based DB (BigRedis) in cluster (bytes/sec); returned only when BigRedis is enabled | -| node_cert_expiration_seconds | Certificate expiration (in seconds) per given node; read more about [certificates in Redis Enterprise]({{< relref "/operate/rs/security/certificates" >}}) and [monitoring certificates expiration]({{< relref "/operate/rs/security/certificates/monitor-certificates" >}}) | -| node_conns | Number of clients connected to endpoints on node | -| node_cpu_idle | CPU idle time portion (0-1, multiply by 100 to get percent) | -| node_cpu_idle_max | Highest value of CPU idle time portion (0-1, multiply by 100 to get percent) | -| node_cpu_idle_median | Average value of CPU idle time portion (0-1, multiply by 100 to get percent) | -| node_cpu_idle_min | Lowest value of CPU idle time portion (0-1, multiply by 100 to get percent) | -| node_cpu_system | CPU time portion spent in kernel (0-1, multiply by 100 to get percent) | -| node_cpu_system_max | Highest value of CPU time portion spent in kernel (0-1, multiply by 100 to get percent) | -| node_cpu_system_median | Average value of CPU time portion spent in kernel (0-1, multiply by 100 to get percent) | -| node_cpu_system_min | Lowest value of CPU time portion spent in kernel (0-1, multiply by 100 to get percent) | -| node_cpu_user | CPU time portion spent by users-pace processes (0-1, multiply by 100 to get percent) | -| node_cpu_user_max | Highest value of CPU time portion spent by users-pace processes (0-1, multiply by 100 to get percent) | -| node_cpu_user_median | Average value of CPU time portion spent by users-pace processes (0-1, multiply by 100 to get percent) | -| node_cpu_user_min | Lowest value of CPU time portion spent by users-pace processes (0-1, multiply by 100 to get percent) | -| node_cur_aof_rewrites | Number of aof rewrites that are currently performed by shards on this node | -| node_egress_bytes | Rate of outgoing network traffic to node (bytes/sec) | -| node_egress_bytes_max | Highest value of rate of outgoing network traffic to node (bytes/sec) | -| node_egress_bytes_median | Average value of rate of outgoing network traffic to node (bytes/sec) | -| node_egress_bytes_min | Lowest value of rate of outgoing network traffic to node (bytes/sec) | -| node_ephemeral_storage_avail | Disk space available to RLEC processes on configured ephemeral disk (bytes) | -| node_ephemeral_storage_free | Free disk space on configured ephemeral disk (bytes) | -| node_free_memory | Free memory in node (bytes) | -| node_ingress_bytes | Rate of incoming network traffic to node (bytes/sec) | -| node_ingress_bytes_max | Highest value of rate of incoming network traffic to node (bytes/sec) | -| node_ingress_bytes_median | Average value of rate of incoming network traffic to node (bytes/sec) | -| node_ingress_bytes_min | Lowest value of rate of incoming network traffic to node (bytes/sec) | -| node_persistent_storage_avail | Disk space available to RLEC processes on configured persistent disk (bytes) | -| node_persistent_storage_free | Free disk space on configured persistent disk (bytes) | -| node_provisional_flash | 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) | -| node_provisional_flash_no_overbooking | 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) | -| node_provisional_memory | Amount of RAM that is available for provisioning to databases out of the total RAM allocated for databases | -| node_provisional_memory_no_overbooking | Amount of RAM that is available for provisioning to databases out of the total RAM allocated for databases, without taking into account overbooking | -| node_total_req | Request rate handled by endpoints on node (ops/sec) | -| node_up | Node is part of the cluster and is connected | +| :-------- | :---------- | +| node_available_flash_bytes | Available flash in the node (bytes) | +| node_available_flash_no_overbooking_bytes | Available flash in the node (bytes), without taking into account overbooking | +| node_available_memory_bytes | Amount of free memory in the node (bytes) that is available for database provisioning | +| node_available_memory_no_overbooking_bytes | Available RAM in the node (bytes) without taking into account overbooking | +| node_bigstore_free_bytes | 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 | +| node_cert_expires_in_seconds | Certificate expiration (in seconds) per given node; read more about [certificates in Redis Enterprise]({{< relref "/operate/rs/security/certificates" >}}) and [monitoring certificates]({{< relref "/operate/rs/security/certificates/monitor-certificates" >}}) | +| node_ephemeral_storage_avail_bytes | Disk space available to RLEC processes on configured ephemeral disk (bytes) | +| node_ephemeral_storage_free_bytes | Free disk space on configured ephemeral disk (bytes) | +| node_memory_MemFree_bytes | Free memory in the node (bytes) | +| node_persistent_storage_avail_bytes | Disk space available to RLEC processes on configured persistent disk (bytes) | +| node_persistent_storage_free_bytes | Free disk space on configured persistent disk (bytes) | +| node_provisional_flash_bytes | 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) | +| node_provisional_flash_no_overbooking_bytes | 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) | +| node_provisional_memory_bytes | Amount of RAM that is available for provisioning to databases out of the total RAM allocated for databases | +| node_provisional_memory_no_overbooking_bytes | Amount of RAM that is available for provisioning to databases out of the total RAM allocated for databases, without taking into account overbooking | +| node_metrics_up | Node is part of the cluster and is connected | ## Cluster metrics -| Metric | Description | -| ------ | :------ | -| cluster_shards_limit | Total shard limit by the license by shard type (ram / flash) | - - -## Proxy metrics - -| Metric | Description | -| ------ | :------ | -| listener_acc_latency | Accumulative latency (sum of the latencies) of all types of commands on DB. For the average latency, divide this value by listener_total_res | -| listener_acc_latency_max | Highest value of accumulative latency of all types of commands on DB | -| listener_acc_other_latency | Accumulative latency (sum of the latencies) of commands that are type "other" on DB. For the average latency, divide this value by listener_other_res | -| listener_acc_other_latency_max | Highest value of accumulative latency of commands that are type "other" on DB | -| listener_acc_read_latency | Accumulative latency (sum of the latencies) of commands that are type "read" on DB. For the average latency, divide this value by listener_read_res | -| listener_acc_read_latency_max | Highest value of accumulative latency of commands that are type "read" on DB | -| listener_acc_write_latency | Accumulative latency (sum of the latencies) of commands that are type "write" on DB. For the average latency, divide this value by listener_write_res | -| listener_acc_write_latency_max | Highest value of accumulative latency of commands that are type "write" on DB | -| listener_auth_cmds | Number of memcached AUTH commands sent to the DB | -| listener_auth_cmds_max | Highest value of number of memcached AUTH commands sent to the DB | -| listener_auth_errors | Number of error responses to memcached AUTH commands | -| listener_auth_errors_max | Highest value of number of error responses to memcached AUTH commands | -| listener_cmd_flush | Number of memcached FLUSH_ALL commands sent to the DB | -| listener_cmd_flush_max | Highest value of number of memcached FLUSH_ALL commands sent to the DB | -| listener_cmd_get | Number of memcached GET commands sent to the DB | -| listener_cmd_get_max | Highest value of number of memcached GET commands sent to the DB | -| listener_cmd_set | Number of memcached SET commands sent to the DB | -| listener_cmd_set_max | Highest value of number of memcached SET commands sent to the DB | -| listener_cmd_touch | Number of memcached TOUCH commands sent to the DB | -| listener_cmd_touch_max | Highest value of number of memcached TOUCH commands sent to the DB | -| listener_conns | Number of clients connected to the endpoint | -| listener_egress_bytes | Rate of outgoing network traffic to the endpoint (bytes/sec) | -| listener_egress_bytes_max | Highest value of rate of outgoing network traffic to the endpoint (bytes/sec) | -| listener_ingress_bytes | Rate of incoming network traffic to the endpoint (bytes/sec) | -| listener_ingress_bytes_max | Highest value of rate of incoming network traffic to the endpoint (bytes/sec) | -| listener_last_req_time | Time of last command sent to the DB | -| listener_last_res_time | Time of last response sent from the DB | -| listener_max_connections_exceeded | Number of times the Number of clients connected to the db at the same time has exeeded the max limit | -| listener_max_connections_exceeded_max | Highest value of number of times the Number of clients connected to the db at the same time has exeeded the max limit | -| listener_monitor_sessions_count | Number of client connected in monitor mode to the endpoint | -| listener_other_req | Rate of other (non read/write) requests on the endpoint (ops/sec) | -| listener_other_req_max | Highest value of rate of other (non read/write) requests on the endpoint (ops/sec) | -| listener_other_res | Rate of other (non read/write) responses on the endpoint (ops/sec) | -| listener_other_res_max | Highest value of rate of other (non read/write) responses on the endpoint (ops/sec) | -| listener_other_started_res | Number of responses sent from the DB of type "other" | -| listener_other_started_res_max | Highest value of number of responses sent from the DB of type "other" | -| listener_read_req | Rate of read requests on the endpoint (ops/sec) | -| listener_read_req_max | Highest value of rate of read requests on the endpoint (ops/sec) | -| listener_read_res | Rate of read responses on the endpoint (ops/sec) | -| listener_read_res_max | Highest value of rate of read responses on the endpoint (ops/sec) | -| listener_read_started_res | Number of responses sent from the DB of type "read" | -| listener_read_started_res_max | Highest value of number of responses sent from the DB of type "read" | -| listener_total_connections_received | Rate of new client connections to the endpoint (connections/sec) | -| listener_total_connections_received_max | Highest value of rate of new client connections to the endpoint (connections/sec) | -| listener_total_req | Request rate handled by the endpoint (ops/sec) | -| listener_total_req_max | Highest value of rate of all requests on the endpoint (ops/sec) | -| listener_total_res | Rate of all responses on the endpoint (ops/sec) | -| listener_total_res_max | Highest value of rate of all responses on the endpoint (ops/sec) | -| listener_total_started_res | Number of responses sent from the DB of all types | -| listener_total_started_res_max | Highest value of number of responses sent from the DB of all types | -| listener_write_req | Rate of write requests on the endpoint (ops/sec) | -| listener_write_req_max | Highest value of rate of write requests on the endpoint (ops/sec) | -| listener_write_res | Rate of write responses on the endpoint (ops/sec) | -| listener_write_res_max | Highest value of rate of write responses on the endpoint (ops/sec) | -| listener_write_started_res | Number of responses sent from the DB of type "write" | -| listener_write_started_res_max | Highest value of number of responses sent from the DB of type "write" | +| Metric | Type | Description | +| :-------- | :--- | :---------- | +| generation{cluster_wd=} | gauge| Generation number of the specific cluster_wd| +| has_qourum{cluster_wd=, has_witness_disk=BOOL} | gauge| Has_qourum = 1
No quorum = 0 | +| is_primary{cluster_wd=} | gauge| primary = 1
secondary = 0 | +| license_shards_limit | | Total shard limit by the license by shard type (ram / flash) | +| total_live_nodes_count{cluster_wd=} | gauge| Number of live nodes| +| total_node_count{cluster_wd=} | gauge| Number of nodes | +| total_primary_selection_ended{cluster_wd=} | counter | Monotonic counter for each selection process that ended | +| total_primary_selections{cluster_wd=} | counter | Monotonic counter for each selection process that started| ## Replication metrics | Metric | Description | -| ------ | :------ | -| bdb_replicaof_syncer_ingress_bytes | Rate of compressed incoming network traffic to Replica Of DB (bytes/sec) | -| bdb_replicaof_syncer_ingress_bytes_decompressed | Rate of decompressed incoming network traffic to Replica Of DB (bytes/sec) | -| bdb_replicaof_syncer_local_ingress_lag_time | Lag time between the source and the destination for Replica Of traffic (ms) | -| bdb_replicaof_syncer_status | Syncer status for Replica Of traffic; 0 = in-sync, 1 = syncing, 2 = out of sync | -| bdb_crdt_syncer_ingress_bytes | Rate of compressed incoming network traffic to CRDB (bytes/sec) | -| bdb_crdt_syncer_ingress_bytes_decompressed | Rate of decompressed incoming network traffic to CRDB (bytes/sec) | -| bdb_crdt_syncer_local_ingress_lag_time | Lag time between the source and the destination (ms) for CRDB traffic | -| bdb_crdt_syncer_status | Syncer status for CRDB traffic; 0 = in-sync, 1 = syncing, 2 = out of sync | +| :-------- | :---------- | +| database_syncer_config | Used as a placeholder for configuration labels | +| database_syncer_current_status | Syncer status for traffic; 0 = in-sync, 1 = syncing, 2 = out of sync | +| database_syncer_dst_connectivity_state | Destination connectivity state | +| database_syncer_dst_connectivity_state_ms | Destination connectivity state duration | +| database_syncer_dst_lag | Lag in milliseconds between the syncer and the destination | +| database_syncer_dst_repl_offset | Offset of the last command acknowledged | +| database_syncer_flush_counter | Number of destination flushes | +| database_syncer_ingress_bytes | Number of bytes read from source shard | +| database_syncer_ingress_bytes_decompressed | Number of bytes read from source shard | +| database_syncer_internal_state | Internal state of the syncer | +| database_syncer_lag_ms | Lag time between the source and the destination for traffic in milliseconds | +| database_syncer_rdb_size | The source's RDB size in bytes to be transferred during the syncing phase | +| database_syncer_rdb_transferred | Number of bytes transferred from the source's RDB during the syncing phase | +| database_syncer_src_connectivity_state | Source connectivity state | +| database_syncer_src_connectivity_state_ms | Source connectivity state duration | +| database_syncer_src_repl_offset | Last known source offset | +| database_syncer_state | Internal state of the shard syncer | +| database_syncer_syncer_repl_offset | Offset of the last command handled by the syncer | +| database_syncer_total_requests | Number of destination writes | +| database_syncer_total_responses | Number of destination writes acknowledged | ## Shard metrics | Metric | Description | -| ------ | :------ | -| redis_active_defrag_running | Automatic memory defragmentation current aggressiveness (% cpu) | -| redis_allocator_active | Total used memory including external fragmentation | -| redis_allocator_allocated | Total allocated memory | -| redis_allocator_resident | Total resident memory (RSS) | -| redis_aof_last_cow_size | Last AOFR, CopyOnWrite memory | -| redis_aof_rewrite_in_progress | The number of simultaneous AOF rewrites that are in progress | -| redis_aof_rewrites | Number of AOF rewrites this process executed | -| redis_aof_delayed_fsync | Number of times an AOF fsync caused delays in the redis main thread (inducing latency); This can indicate that the disk is slow or overloaded | -| redis_blocked_clients | Count the clients waiting on a blocking call | -| redis_connected_clients | Number of client connections to the specific shard | -| redis_connected_slaves | Number of connected slaves | -| redis_db0_avg_ttl | Average TTL of all volatile keys | -| redis_db0_expires | Total count of volatile keys | -| redis_db0_keys | Total key count | -| redis_evicted_keys | Keys evicted so far (since restart) | -| redis_expire_cycle_cpu_milliseconds | The cumulative amount of time spent on active expiry cycles | -| redis_expired_keys | Keys expired so far (since restart) | -| redis_forwarding_state | Shard forwarding state (on or off) | -| redis_keys_trimmed | The number of keys that were trimmed in the current or last resharding process | -| redis_keyspace_read_hits | Number of read operations accessing an existing keyspace | -| redis_keyspace_read_misses | Number of read operations accessing an non-existing keyspace | -| redis_keyspace_write_hits | Number of write operations accessing an existing keyspace | -| redis_keyspace_write_misses | Number of write operations accessing an non-existing keyspace | -| redis_master_link_status | Indicates if the replica is connected to its master | -| redis_master_repl_offset | Number of bytes sent to replicas by the shard; Calculate the throughput for a time period by comparing the value at different times | -| redis_master_sync_in_progress | The master shard is synchronizing (1 true | 0 false) | -| redis_max_process_mem | Current memory limit configured by redis_mgr according to node free memory | -| redis_maxmemory | Current memory limit configured by redis_mgr according to db memory limits | -| redis_mem_aof_buffer | Current size of AOF buffer | -| redis_mem_clients_normal | Current memory used for input and output buffers of non-replica clients | -| redis_mem_clients_slaves | Current memory used for input and output buffers of replica clients | -| redis_mem_fragmentation_ratio | Memory fragmentation ratio (1.3 means 30% overhead) | -| redis_mem_not_counted_for_evict | Portion of used_memory (in bytes) that's not counted for eviction and OOM error | -| redis_mem_replication_backlog | Size of replication backlog | -| redis_module_fork_in_progress | A binary value that indicates if there is an active fork spawned by a module (1) or not (0) | -| redis_process_cpu_system_seconds_total | Shard Process system CPU time spent in seconds | -| redis_process_cpu_usage_percent | Shard Process cpu usage precentage | -| redis_process_cpu_user_seconds_total | Shard user CPU time spent in seconds | -| redis_process_main_thread_cpu_system_seconds_total | Shard main thread system CPU time spent in seconds | -| redis_process_main_thread_cpu_user_seconds_total | Shard main thread user CPU time spent in seconds | -| redis_process_max_fds | Shard Maximum number of open file descriptors | -| redis_process_open_fds | Shard Number of open file descriptors | -| redis_process_resident_memory_bytes | Shard Resident memory size in bytes | -| redis_process_start_time_seconds | Shard Start time of the process since unix epoch in seconds | -| redis_process_virtual_memory_bytes | Shard virtual memory in bytes | -| redis_rdb_bgsave_in_progress | Indication if bgsave is currently in progress | -| redis_rdb_last_cow_size | Last bgsave (or SYNC fork) used CopyOnWrite memory | -| redis_rdb_saves | Total count of bgsaves since process was restarted (including replica fullsync and persistence) | -| redis_repl_touch_bytes | 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 | -| redis_total_commands_processed | Number of commands processed by the shard; Calculate the number of commands for a time period by comparing the value at different times | -| redis_total_connections_received | Number of connections received by the shard; Calculate the number of connections for a time period by comparing the value at different times | -| redis_total_net_input_bytes | Number of bytes received by the shard; Calculate the throughput for a time period by comparing the value at different times | -| redis_total_net_output_bytes | Number of bytes sent by the shard; Calculate the throughput for a time period by comparing the value at different times | -| redis_up | Shard is up and running | -| redis_used_memory | Memory used by shard (in bigredis this includes flash) (bytes) | +| :-------- | :---------- | +| redis_server_active_defrag_running | Automatic memory defragmentation current aggressiveness (% cpu) | +| redis_server_allocator_active | Total used memory, including external fragmentation | +| redis_server_allocator_allocated | Total allocated memory | +| redis_server_allocator_resident | Total resident memory (RSS) | +| redis_server_aof_last_cow_size | Last AOFR, CopyOnWrite memory | +| redis_server_aof_rewrite_in_progress | The number of simultaneous AOF rewrites that are in progress | +| redis_server_aof_rewrites | Number of AOF rewrites this process executed | +| redis_server_aof_delayed_fsync | 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 | +| redis_server_blocked_clients | Count the clients waiting on a blocking call | +| redis_server_connected_clients | Number of client connections to the specific shard | +| redis_server_connected_slaves | Number of connected replicas | +| redis_server_db0_avg_ttl | Average TTL of all volatile keys | +| redis_server_expired_keys | Total count of volatile keys | +| redis_server_db0_keys | Total key count | +| redis_server_evicted_keys | Keys evicted so far (since restart) | +| redis_server_expire_cycle_cpu_milliseconds | The cumulative amount of time spent on active expiry cycles | +| redis_server_expired_keys | Keys expired so far (since restart) | +| redis_server_forwarding_state | Shard forwarding state (on or off) | +| redis_server_keys_trimmed | The number of keys that were trimmed in the current or last resharding process | +| redis_server_keyspace_read_hits | Number of read operations accessing an existing keyspace | +| redis_server_keyspace_read_misses | Number of read operations accessing a non-existing keyspace | +| redis_server_keyspace_write_hits | Number of write operations accessing an existing keyspace | +| redis_server_keyspace_write_misses | Number of write operations accessing a non-existing keyspace | +| redis_server_master_link_status | Indicates if the replica is connected to its master | +| redis_server_master_repl_offset | Number of bytes sent to replicas by the shard; calculate the throughput for a time period by comparing the value at different times | +| redis_server_master_sync_in_progress | The master shard is synchronizing (1 true | 0 false) | +| redis_server_max_process_mem | Current memory limit configured by redis_mgr according to node free memory | +| redis_server_maxmemory | Current memory limit configured by redis_mgr according to database memory limits | +| redis_server_mem_aof_buffer | Current size of AOF buffer | +| redis_server_mem_clients_normal | Current memory used for input and output buffers of non-replica clients | +| redis_server_mem_clients_slaves | Current memory used for input and output buffers of replica clients | +| redis_server_mem_fragmentation_ratio | Memory fragmentation ratio (1.3 means 30% overhead) | +| redis_server_mem_not_counted_for_evict | Portion of used_memory (in bytes) that's not counted for eviction and OOM error | +| redis_server_mem_replication_backlog | Size of replication backlog | +| redis_server_module_fork_in_progress | A binary value that indicates if there is an active fork spawned by a module (1) or not (0) | +| namedprocess_namegroup_cpu_seconds_total | Shard process CPU usage percentage | +| namedprocess_namegroup_thread_cpu_seconds_total | Shard main thread CPU time spent in seconds | +| namedprocess_namegroup_open_filedesc | Shard number of open file descriptors | +| namedprocess_namegroup_memory_bytes | Shard memory size in bytes | +| namedprocess_namegroup_oldest_start_time_seconds | Shard start time of the process since unix epoch in seconds | +| redis_server_rdb_bgsave_in_progress | Indication if bgsave is currently in progress | +| redis_server_rdb_last_cow_size | Last bgsave (or SYNC fork) used CopyOnWrite memory | +| redis_server_rdb_saves | Total count of bgsaves since the process was restarted (including replica fullsync and persistence) | +| redis_server_repl_touch_bytes | 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 | +| redis_server_total_commands_processed | Number of commands processed by the shard; calculate the number of commands for a time period by comparing the value at different times | +| redis_server_total_connections_received | Number of connections received by the shard; calculate the number of connections for a time period by comparing the value at different times | +| redis_server_total_net_input_bytes | Number of bytes received by the shard; calculate the throughput for a time period by comparing the value at different times | +| redis_server_total_net_output_bytes | Number of bytes sent by the shard; calculate the throughput for a time period by comparing the value at different times | +| redis_server_up | Shard is up and running | +| redis_server_used_memory | Memory used by shard (in BigRedis this includes flash) (bytes) | diff --git a/content/integrate/prometheus-with-redis-enterprise/prometheus-metrics-v1-to-v2.md b/content/integrate/prometheus-with-redis-enterprise/prometheus-metrics-v1-to-v2.md new file mode 100644 index 0000000000..4453785fae --- /dev/null +++ b/content/integrate/prometheus-with-redis-enterprise/prometheus-metrics-v1-to-v2.md @@ -0,0 +1,279 @@ +--- +Title: Transition from Prometheus v1 to Prometheus v2 +alwaysopen: false +categories: +- docs +- integrate +- rs +description: Transition from v1 metrics to v2 PromQL equivalents. +group: observability +linkTitle: Transition from Prometheus v1 to v2 +summary: Transition from v1 metrics to v2 PromQL equivalents. +type: integration +weight: 45 +--- + +You can [integrate Redis Enterprise Software with Prometheus and Grafana]({{}}) to create dashboards for important metrics. + +As of Redis Enterprise Software version 7.8.2, [PromQL (Prometheus Query Language)](https://prometheus.io/docs/prometheus/latest/querying/basics/) metrics are available, and v1 metrics are deprecated. You 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]({{}}). + +## Database metrics + +| V1 metric | Equivalent V2 PromQL | Description | +| --------- | :------------------- | :---------- | +| bdb_avg_latency | `sum by (bdb) (irate(endpoint_acc_latency[1m])) / sum by (bdb) (irate(endpoint_total_started_res[1m])) / 1000000` | Average latency of operations on the database (seconds); returned only when there is traffic | +| bdb_avg_latency_max | `sum by (bdb) (irate(endpoint_acc_latency[1m])) / sum by (bdb) (irate(endpoint_total_started_res[1m])) / 1000000` | Highest value of average latency of operations on the database (seconds); returned only when there is traffic | +| bdb_avg_read_latency | `sum by (bdb) (irate(endpoint_acc_read_latency[1m])) / sum by (bdb) (irate(endpoint_total_started_res[1m])) / 1000000` | Average latency of read operations (seconds); returned only when there is traffic | +| bdb_avg_read_latency_max | `sum by (bdb) (irate(endpoint_acc_read_latency[1m])) / sum by (bdb) (irate(endpoint_total_started_res[1m])) / 1000000` | Highest value of average latency of read operations (seconds); returned only when there is traffic | +| bdb_avg_write_latency | `sum by (bdb) (irate(endpoint_acc_write_latency[1m])) / sum by (bdb) (irate(endpoint_total_started_res[1m])) / 1000000` | Average latency of write operations (seconds); returned only when there is traffic | +| bdb_avg_write_latency_max | `sum by (bdb) (irate(endpoint_acc_write_latency[1m])) / sum by (bdb) (irate(endpoint_total_started_res[1m])) / 1000000` | Highest value of average latency of write operations (seconds); returned only when there is traffic | +| bdb_bigstore_shard_count | `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(bdb) redis_server_up) by (bdb, driver)` | Shard count by database and by storage engine (driver - rocksdb / speedb); Only for databases with Auto Tiering enabled | +| bdb_conns | `sum by(bdb) (endpoint_conns)` | Number of client connections to database | +| bdb_egress_bytes | `sum by(bdb) (irate(endpoint_egress_bytes[1m]))` | Rate of outgoing network traffic from the database (bytes/sec) | +| bdb_egress_bytes_max | `sum by(bdb) (irate(endpoint_egress_bytes[1m]))` | Highest value of the rate of outgoing network traffic from the database (bytes/sec) | +| bdb_evicted_objects | `sum by (bdb) (irate(redis_server_evicted_keys{role="master"}[1m]))` | Rate of key evictions from database (evictions/sec) | +| bdb_evicted_objects_max | `sum by (bdb) (irate(redis_server_evicted_keys{role="master"}[1m]))` | Highest value of the rate of key evictions from database (evictions/sec) | +| bdb_expired_objects | `sum by (bdb) (irate(redis_server_expired_keys{role="master"}[1m]))` | Rate keys expired in database (expirations/sec) | +| bdb_expired_objects_max | `sum by (bdb) (irate(redis_server_expired_keys{role="master"}[1m]))` | Highest value of the rate keys expired in database (expirations/sec) | +| bdb_fork_cpu_system | `sum by (bdb) (irate(namedprocess_namegroup_thread_cpu_seconds_total{mode="system"}[1m]))` | % cores utilization in system mode for all Redis shard fork child processes of this database | +| bdb_fork_cpu_system_max | `sum by (bdb) (irate(namedprocess_namegroup_thread_cpu_seconds_total{mode="system"}[1m]))` | Highest value of % cores utilization in system mode for all Redis shard fork child processes of this database | +| bdb_fork_cpu_user | `sum by (bdb) (irate(namedprocess_namegroup_thread_cpu_seconds_total{mode="user"}[1m]))` | % cores utilization in user mode for all Redis shard fork child processes of this database | +| bdb_fork_cpu_user_max | `sum by (bdb) (irate(namedprocess_namegroup_thread_cpu_seconds_total{mode="user"}[1m]))` | Highest value of % cores utilization in user mode for all Redis shard fork child processes of this database | +| bdb_ingress_bytes | `sum by(bdb) (irate(endpoint_ingress_bytes[1m]))` | Rate of incoming network traffic to database (bytes/sec) | +| bdb_ingress_bytes_max | `sum by(bdb) (irate(endpoint_ingress_bytes[1m]))` | Highest value of the rate of incoming network traffic to database (bytes/sec) | +| bdb_instantaneous_ops_per_sec | `sum by(bdb) (redis_server_instantaneous_ops_per_sec)` | Request rate handled by all shards of database (ops/sec) | +| bdb_main_thread_cpu_system | `sum by(bdb) (irate(namedprocess_namegroup_thread_cpu_seconds_total{mode="system", threadname=~"redis-server.*"}[1m]))` | % cores utilization in system mode for all Redis shard main threads of this database | +| bdb_main_thread_cpu_system_max | `sum by(bdb) (irate(namedprocess_namegroup_thread_cpu_seconds_total{mode="system", threadname=~"redis-server.*"}[1m]))` | Highest value of % cores utilization in system mode for all Redis shard main threads of this database | +| bdb_main_thread_cpu_user | `sum by(irate(namedprocess_namegroup_thread_cpu_seconds_total{mode="user", threadname=~"redis-server.*"}[1m]))` | % cores utilization in user mode for all Redis shard main threads of this database | +| bdb_main_thread_cpu_user_max | `sum by(irate(namedprocess_namegroup_thread_cpu_seconds_total{mode="user", threadname=~"redis-server.*"}[1m]))` | Highest value of % cores utilization in user mode for all Redis shard main threads of this database | +| bdb_mem_frag_ratio | `avg(redis_server_mem_fragmentation_ratio)` | RAM fragmentation ratio (RSS / allocated RAM) | +| bdb_mem_size_lua | `sum by(bdb) (redis_server_used_memory_lua)` | Redis lua scripting heap size (bytes) | +| bdb_memory_limit | `sum by(bdb) (redis_server_maxmemory)` | Configured RAM limit for the database | +| bdb_monitor_sessions_count | `sum by(bdb) (endpoint_monitor_sessions_count)` | Number of clients connected in monitor mode to the database | +| bdb_no_of_keys | `sum by (bdb) (redis_server_db_keys{role="master"})` | Number of keys in database | +| bdb_other_req | `sum by(bdb) (irate(endpoint_other_req[1m]))` | Rate of other (non read/write) requests on the database (ops/sec) | +| bdb_other_req_max | `sum by(bdb) (irate(endpoint_other_req[1m]))` | Highest value of the rate of other (non read/write) requests on the database (ops/sec) | +| bdb_other_res | `sum by(bdb) (irate(endpoint_other_res[1m]))` | Rate of other (non read/write) responses on the database (ops/sec) | +| bdb_other_res_max | `sum by(bdb) (irate(endpoint_other_res[1m]))` | Highest value of the rate of other (non read/write) responses on the database (ops/sec) | +| bdb_pubsub_channels | `sum by(bdb) (redis_server_pubsub_channels)` | Count the pub/sub channels with subscribed clients | +| bdb_pubsub_channels_max | `sum by(bdb) (redis_server_pubsub_channels)` | Highest value of count the pub/sub channels with subscribed clients | +| bdb_pubsub_patterns | `sum by(bdb) (redis_server_pubsub_patterns)` | Count the pub/sub patterns with subscribed clients | +| bdb_pubsub_patterns_max | `sum by(bdb) (redis_server_pubsub_patterns)` | Highest value of count the pub/sub patterns with subscribed clients | +| bdb_read_hits | `sum by (bdb) (irate(redis_server_keyspace_read_hits{role="master"}[1m]))` | Rate of read operations accessing an existing key (ops/sec) | +| bdb_read_hits_max | `sum by (bdb) (irate(redis_server_keyspace_read_hits{role="master"}[1m]))` | Highest value of the rate of read operations accessing an existing key (ops/sec) | +| bdb_read_misses | `sum by (bdb) (irate(redis_server_keyspace_read_misses{role="master"}[1m]))` | Rate of read operations accessing a non-existing key (ops/sec) | +| bdb_read_misses_max | `sum by (bdb) (irate(redis_server_keyspace_read_misses{role="master"}[1m]))` | Highest value of the rate of read operations accessing a non-existing key (ops/sec) | +| bdb_read_req | `sum by (bdb) (irate(endpoint_read_req[1m]))` | Rate of read requests on the database (ops/sec) | +| bdb_read_req_max | `sum by (bdb) (irate(endpoint_read_req[1m]))` | Highest value of the rate of read requests on the database (ops/sec) | +| bdb_read_res | `sum by(bdb) (irate(endpoint_read_res[1m]))` | Rate of read responses on the database (ops/sec) | +| bdb_read_res_max | `sum by(bdb) (irate(endpoint_read_res[1m]))` | Highest value of the rate of read responses on the database (ops/sec) | +| bdb_shard_cpu_system | `sum by(bdb) (irate(namedprocess_namegroup_thread_cpu_seconds_total{mode="system", role="master"}[1m]))` | % cores utilization in system mode for all Redis shard processes of this database | +| bdb_shard_cpu_system_max | `sum by(bdb) (irate(namedprocess_namegroup_thread_cpu_seconds_total{mode="system", role="master"}[1m]))` | Highest value of % cores utilization in system mode for all Redis shard processes of this database | +| bdb_shard_cpu_user | `sum by(bdb) (irate(namedprocess_namegroup_thread_cpu_seconds_total{mode="user", role="master"}[1m]))` | % cores utilization in user mode for the Redis shard process | +| bdb_shard_cpu_user_max | `sum by(bdb) (irate(namedprocess_namegroup_thread_cpu_seconds_total{mode="user", role="master"}[1m]))` | Highest value of % cores utilization in user mode for the Redis shard process | +| bdb_shards_used | `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(bdb) redis_server_up) by (bdb, shard_type)` | Used shard count by database and by shard type (ram / flash) | +| bdb_total_connections_received | `sum by(bdb) (irate(endpoint_total_connections_received[1m]))` | Rate of new client connections to database (connections/sec) | +| bdb_total_connections_received_max | `sum by(bdb) (irate(endpoint_total_connections_received[1m]))` | Highest value of the rate of new client connections to database (connections/sec) | +| bdb_total_req | `sum by (bdb) (irate(endpoint_total_req[1m]))` | Rate of all requests on the database (ops/sec) | +| bdb_total_req_max | `sum by (bdb) (irate(endpoint_total_req[1m]))` | Highest value of the rate of all requests on the database (ops/sec) | +| bdb_total_res | `sum by(bdb) (irate(endpoint_total_res[1m]))` | Rate of all responses on the database (ops/sec) | +| bdb_total_res_max | `sum by(bdb) (irate(endpoint_total_res[1m]))` | Highest value of the rate of all responses on the database (ops/sec) | +| bdb_up | `min by(bdb) (redis_up)` | Database is up and running | +| bdb_used_memory | `sum by (bdb) (redis_server_used_memory)` | Memory used by database (in BigRedis this includes flash) (bytes) | +| bdb_write_hits | `sum by (bdb) (irate(redis_server_keyspace_write_hits{role="master"}[1m]))` | Rate of write operations accessing an existing key (ops/sec) | +| bdb_write_hits_max | `sum by (bdb) (irate(redis_server_keyspace_write_hits{role="master"}[1m]))` | Highest value of the rate of write operations accessing an existing key (ops/sec) | +| bdb_write_misses | `sum by (bdb) (irate(redis_server_keyspace_write_misses{role="master"}[1m]))` | Rate of write operations accessing a non-existing key (ops/sec) | +| bdb_write_misses_max | `sum by (bdb) (irate(redis_server_keyspace_write_misses{role="master"}[1m]))` | Highest value of the rate of write operations accessing a non-existing key (ops/sec) | +| bdb_write_req | `sum by (bdb) (irate(endpoint_write_req[1m]))` | Rate of write requests on the database (ops/sec) | +| bdb_write_req_max | `sum by (bdb) (irate(endpoint_write_req[1m]))` | Highest value of the rate of write requests on the database (ops/sec) | +| bdb_write_res | `sum by(bdb) (irate(endpoint_write_responses[1m]))` | Rate of write responses on the database (ops/sec) | +| bdb_write_res_max | `sum by(bdb) (irate(endpoint_write_responses[1m]))` | Highest value of the rate of write responses on the database (ops/sec) | +| no_of_expires | `sum by(bdb) (redis_server_db_expires{role="master"})` | Current number of volatile keys in the database | + +## Node metrics + +| V1 metric | Equivalent V2 PromQL | Description | +| --------- | :------------------- | :---------- | +| node_available_flash | `node_available_flash_bytes` | Available flash in the node (bytes) | +| node_available_flash_no_overbooking | `node_available_flash_no_overbooking_bytes` | Available flash in the node (bytes), without taking into account overbooking | +| node_available_memory | `node_available_memory_bytes` | Amount of free memory in the node (bytes) that is available for database provisioning | +| node_available_memory_no_overbooking | `node_available_memory_no_overbooking_bytes` | Available RAM in the node (bytes) without taking into account overbooking | +| node_avg_latency | `sum by (proxy) (irate(endpoint_acc_latency[1m])) / sum by (proxy) (irate(endpoint_total_started_res[1m]))` | Average latency of requests handled by endpoints on the node in milliseconds; returned only when there is traffic | +| node_bigstore_free | `node_bigstore_free_bytes` | 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 | +| node_bigstore_iops | `node_flash_reads_total + node_flash_writes_total` | 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 | +| node_bigstore_kv_ops | `sum by (node) (irate(redis_server_big_io_dels[1m]) + irate(redis_server_big_io_reads[1m]) + irate(redis_server_big_io_writes[1m]))` | 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 | +| node_bigstore_throughput | `sum by (node) (irate(redis_server_big_io_read_bytes[1m]) + irate(redis_server_big_io_write_bytes[1m]))` | 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 | +| node_cert_expiration_seconds | `node_cert_expires_in_seconds` | Certificate expiration (in seconds) per given node; read more about [certificates in Redis Enterprise]({{< relref "/operate/rs/security/certificates" >}}) and [monitoring certificates]({{< relref "/operate/rs/security/certificates/monitor-certificates" >}}) | +| node_conns | `sum by (node) (endpoint_conns)` | Number of clients connected to endpoints on node | +| node_cpu_idle | `avg by (node) (irate(node_cpu_seconds_total{mode="idle"}[1m]))` | CPU idle time portion (0-1, multiply by 100 to get percent) | +| node_cpu_idle_max | N/A | Highest value of CPU idle time portion (0-1, multiply by 100 to get percent) | +| node_cpu_idle_median | N/A | Average value of CPU idle time portion (0-1, multiply by 100 to get percent) | +| node_cpu_idle_min | N/A | Lowest value of CPU idle time portion (0-1, multiply by 100 to get percent) | +| node_cpu_system | `avg by (node) (irate(node_cpu_seconds_total{mode="system"}[1m]))` | CPU time portion spent in the kernel (0-1, multiply by 100 to get percent) | +| node_cpu_system_max | N/A | Highest value of CPU time portion spent in the kernel (0-1, multiply by 100 to get percent) | +| node_cpu_system_median | N/A | Average value of CPU time portion spent in the kernel (0-1, multiply by 100 to get percent) | +| node_cpu_system_min | N/A | Lowest value of CPU time portion spent in the kernel (0-1, multiply by 100 to get percent) | +| node_cpu_user | `avg by (node) (irate(node_cpu_seconds_total{mode="user"}[1m]))` | CPU time portion spent by user-space processes (0-1, multiply by 100 to get percent) | +| node_cpu_user_max | N/A | Highest value of CPU time portion spent by user-space processes (0-1, multiply by 100 to get percent) | +| node_cpu_user_median | N/A | Average value of CPU time portion spent by user-space processes (0-1, multiply by 100 to get percent) | +| node_cpu_user_min | N/A | Lowest value of CPU time portion spent by user-space processes (0-1, multiply by 100 to get percent) | +| node_cur_aof_rewrites | `sum by (cluster, node) (redis_server_aof_rewrite_in_progress)` | Number of AOF rewrites that are currently performed by shards on this node | +| node_egress_bytes | `irate(node_network_transmit_bytes_total{device=""}[1m])` | Rate of outgoing network traffic to node (bytes/sec) | +| node_egress_bytes_max | N/A | Highest value of the rate of outgoing network traffic to node (bytes/sec) | +| node_egress_bytes_median | N/A | Average value of the rate of outgoing network traffic to node (bytes/sec) | +| node_egress_bytes_min | N/A | Lowest value of the rate of outgoing network traffic to node (bytes/sec) | +| node_ephemeral_storage_avail | `node_ephemeral_storage_avail_bytes` | Disk space available to RLEC processes on configured ephemeral disk (bytes) | +| node_ephemeral_storage_free | `node_ephemeral_storage_free_bytes` | Free disk space on configured ephemeral disk (bytes) | +| node_free_memory | `node_memory_MemFree_bytes` | Free memory in the node (bytes) | +| node_ingress_bytes | `irate(node_network_receive_bytes_total{device=""}[1m])` | Rate of incoming network traffic to node (bytes/sec) | +| node_ingress_bytes_max | N/A | Highest value of the rate of incoming network traffic to node (bytes/sec) | +| node_ingress_bytes_median | N/A | Average value of the rate of incoming network traffic to node (bytes/sec) | +| node_ingress_bytes_min | N/A | Lowest value of the rate of incoming network traffic to node (bytes/sec) | +| node_persistent_storage_avail | `node_persistent_storage_avail_bytes` | Disk space available to RLEC processes on configured persistent disk (bytes) | +| node_persistent_storage_free | `node_persistent_storage_free_bytes` | Free disk space on configured persistent disk (bytes) | +| node_provisional_flash | `node_provisional_flash_bytes` | 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) | +| node_provisional_flash_no_overbooking | `node_provisional_flash_no_overbooking_bytes` | 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) | +| node_provisional_memory | `node_provisional_memory_bytes` | Amount of RAM that is available for provisioning to databases out of the total RAM allocated for databases | +| node_provisional_memory_no_overbooking | `node_provisional_memory_no_overbooking_bytes` | Amount of RAM that is available for provisioning to databases out of the total RAM allocated for databases, without taking into account overbooking | +| node_total_req | `sum by (cluster, node) (irate(endpoint_total_req[1m]))` | Request rate handled by endpoints on node (ops/sec) | +| node_up | `node_metrics_up` | Node is part of the cluster and is connected | + +## Cluster metrics + +| V1 metric | Equivalent V2 PromQL | Description | +| --------- | :------------------- | :---------- | +| cluster_shards_limit | `license_shards_limit` | Total shard limit by the license by shard type (ram / flash) | + +## Proxy metrics + +| V1 metric | Equivalent V2 PromQL | Description | +| --------- | :------------------- | :---------- | +| listener_acc_latency | N/A | 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 | +| listener_acc_latency_max | N/A | Highest value of accumulative latency of all types of commands on the database | +| listener_acc_other_latency | N/A | 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 | +| listener_acc_other_latency_max | N/A | Highest value of accumulative latency of commands that are a type "other" on the database | +| listener_acc_read_latency | N/A | 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 | +| listener_acc_read_latency_max | N/A | Highest value of accumulative latency of commands that are a type "read" on the database | +| listener_acc_write_latency | N/A | 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 | +| listener_acc_write_latency_max | N/A | Highest value of accumulative latency of commands that are a type "write" on the database | +| listener_auth_cmds | N/A | Number of memcached AUTH commands sent to the database | +| listener_auth_cmds_max | N/A | Highest value of the number of memcached AUTH commands sent to the database | +| listener_auth_errors | N/A | Number of error responses to memcached AUTH commands | +| listener_auth_errors_max | N/A | Highest value of the number of error responses to memcached AUTH commands | +| listener_cmd_flush | N/A | Number of memcached FLUSH_ALL commands sent to the database | +| listener_cmd_flush_max | N/A | Highest value of the number of memcached FLUSH_ALL commands sent to the database | +| listener_cmd_get | N/A | Number of memcached GET commands sent to the database | +| listener_cmd_get_max | N/A | Highest value of the number of memcached GET commands sent to the database | +| listener_cmd_set | N/A | Number of memcached SET commands sent to the database | +| listener_cmd_set_max | N/A | Highest value of the number of memcached SET commands sent to the database | +| listener_cmd_touch | N/A | Number of memcached TOUCH commands sent to the database | +| listener_cmd_touch_max | N/A | Highest value of the number of memcached TOUCH commands sent to the database | +| listener_conns | N/A | Number of clients connected to the endpoint | +| listener_egress_bytes | N/A | Rate of outgoing network traffic to the endpoint (bytes/sec) | +| listener_egress_bytes_max | N/A | Highest value of the rate of outgoing network traffic to the endpoint (bytes/sec) | +| listener_ingress_bytes | N/A | Rate of incoming network traffic to the endpoint (bytes/sec) | +| listener_ingress_bytes_max | N/A | Highest value of the rate of incoming network traffic to the endpoint (bytes/sec) | +| listener_last_req_time | N/A | Time of last command sent to the database | +| listener_last_res_time | N/A | Time of last response sent from the database | +| listener_max_connections_exceeded | `irate(endpoint_maximal_connections_exceeded[1m])` | Number of times the number of clients connected to the database at the same time has exceeded the max limit | +| listener_max_connections_exceeded_max | N/A | Highest value of the number of times the number of clients connected to the database at the same time has exceeded the max limit | +| listener_monitor_sessions_count | N/A | Number of clients connected in monitor mode to the endpoint | +| listener_other_req | N/A | Rate of other (non-read/write) requests on the endpoint (ops/sec) | +| listener_other_req_max | N/A | Highest value of the rate of other (non-read/write) requests on the endpoint (ops/sec) | +| listener_other_res | N/A | Rate of other (non-read/write) responses on the endpoint (ops/sec) | +| listener_other_res_max | N/A | Highest value of the rate of other (non-read/write) responses on the endpoint (ops/sec) | +| listener_other_started_res | N/A | Number of responses sent from the database of type "other" | +| listener_other_started_res_max | N/A | Highest value of the number of responses sent from the database of type "other" | +| listener_read_req | `irate(endpoint_read_requests[1m])` | Rate of read requests on the endpoint (ops/sec) | +| listener_read_req_max | N/A | Highest value of the rate of read requests on the endpoint (ops/sec) | +| listener_read_res | `irate(endpoint_read_responses[1m])` | Rate of read responses on the endpoint (ops/sec) | +| listener_read_res_max | N/A | Highest value of the rate of read responses on the endpoint (ops/sec) | +| listener_read_started_res | N/A | Number of responses sent from the database of type "read" | +| listener_read_started_res_max | N/A | Highest value of the number of responses sent from the database of type "read" | +| listener_total_connections_received | `irate(endpoint_total_connections_received[1m])` | Rate of new client connections to the endpoint (connections/sec) | +| listener_total_connections_received_max | N/A | Highest value of the rate of new client connections to the endpoint (connections/sec) | +| listener_total_req | N/A | Request rate handled by the endpoint (ops/sec) | +| listener_total_req_max | N/A | Highest value of the rate of all requests on the endpoint (ops/sec) | +| listener_total_res | N/A | Rate of all responses on the endpoint (ops/sec) | +| listener_total_res_max | N/A | Highest value of the rate of all responses on the endpoint (ops/sec) | +| listener_total_started_res | N/A | Number of responses sent from the database of all types | +| listener_total_started_res_max | N/A | Highest value of the number of responses sent from the database of all types | +| listener_write_req | `irate(endpoint_write_requests[1m])` | Rate of write requests on the endpoint (ops/sec) | +| listener_write_req_max | N/A | Highest value of the rate of write requests on the endpoint (ops/sec) | +| listener_write_res | `irate(endpoint_write_responses[1m])` | Rate of write responses on the endpoint (ops/sec) | +| listener_write_res_max | N/A | Highest value of the rate of write responses on the endpoint (ops/sec) | +| listener_write_started_res | N/A | Number of responses sent from the database of type "write" | +| listener_write_started_res_max | N/A | Highest value of the number of responses sent from the database of type "write" | + +## Replication metrics + +| V1 metric | Equivalent V2 PromQL | Description | +| --------- | :------------------- | :---------- | +| bdb_replicaof_syncer_ingress_bytes | `rate(replica_src_ingress_bytes[1m])` | Rate of compressed incoming network traffic to a Replica Of database (bytes/sec) | +| bdb_replicaof_syncer_ingress_bytes_decompressed | `rate(replica_src_ingress_bytes_decompressed[1m])` | Rate of decompressed incoming network traffic to a Replica Of database (bytes/sec) | +| bdb_replicaof_syncer_local_ingress_lag_time | `database_syncer_lag_ms{syncer_type="replicaof"}` | Lag time between the source and the destination for Replica Of traffic (ms) | +| bdb_replicaof_syncer_status | `database_syncer_current_status{syncer_type="replicaof"}` | Syncer status for Replica Of traffic; 0 = in-sync, 1 = syncing, 2 = out of sync | +| bdb_crdt_syncer_ingress_bytes | `rate(crdt_src_ingress_bytes[1m])` | Rate of compressed incoming network traffic to CRDB (bytes/sec) | +| bdb_crdt_syncer_ingress_bytes_decompressed | `rate(crdt_src_ingress_bytes_decompressed[1m])` | Rate of decompressed incoming network traffic to CRDB (bytes/sec) | +| bdb_crdt_syncer_local_ingress_lag_time | `database_syncer_lag_ms{syncer_type="crdt"}` | Lag time between the source and the destination (ms) for CRDB traffic | +| bdb_crdt_syncer_status | `database_syncer_current_status{syncer_type="crdt"}` | Syncer status for CRDB traffic; 0 = in-sync, 1 = syncing, 2 = out of sync | + +## Shard metrics + +| V1 metric | Equivalent V2 PromQL | Description | +| --------- | :------------------- | :---------- | +| redis_active_defrag_running | `redis_server_active_defrag_running` | Automatic memory defragmentation current aggressiveness (% cpu) | +| redis_allocator_active | `redis_server_allocator_active` | Total used memory, including external fragmentation | +| redis_allocator_allocated | `redis_server_allocator_allocated` | Total allocated memory | +| redis_allocator_resident | `redis_server_allocator_resident` | Total resident memory (RSS) | +| redis_aof_last_cow_size | `redis_server_aof_last_cow_size` | Last AOFR, CopyOnWrite memory | +| redis_aof_rewrite_in_progress | `redis_server_aof_rewrite_in_progress` | The number of simultaneous AOF rewrites that are in progress | +| redis_aof_rewrites | `redis_server_aof_rewrites` | Number of AOF rewrites this process executed | +| redis_aof_delayed_fsync | `redis_server_aof_delayed_fsync` | 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 | +| redis_blocked_clients | `redis_server_blocked_clients` | Count the clients waiting on a blocking call | +| redis_connected_clients | `redis_server_connected_clients` | Number of client connections to the specific shard | +| redis_connected_slaves | `redis_server_connected_slaves` | Number of connected replicas | +| redis_db0_avg_ttl | `redis_server_db0_avg_ttl` | Average TTL of all volatile keys | +| redis_db0_expires | `redis_server_expired_keys` | Total count of volatile keys | +| redis_db0_keys | `redis_server_db0_keys` | Total key count | +| redis_evicted_keys | `redis_server_evicted_keys` | Keys evicted so far (since restart) | +| redis_expire_cycle_cpu_milliseconds | `redis_server_expire_cycle_cpu_milliseconds` | The cumulative amount of time spent on active expiry cycles | +| redis_expired_keys | `redis_server_expired_keys` | Keys expired so far (since restart) | +| redis_forwarding_state | `redis_server_forwarding_state` | Shard forwarding state (on or off) | +| redis_keys_trimmed | `redis_server_keys_trimmed` | The number of keys that were trimmed in the current or last resharding process | +| redis_keyspace_read_hits | `redis_server_keyspace_read_hits` | Number of read operations accessing an existing keyspace | +| redis_keyspace_read_misses | `redis_server_keyspace_read_misses` | Number of read operations accessing a non-existing keyspace | +| redis_keyspace_write_hits | `redis_server_keyspace_write_hits` | Number of write operations accessing an existing keyspace | +| redis_keyspace_write_misses | `redis_server_keyspace_write_misses` | Number of write operations accessing a non-existing keyspace | +| redis_master_link_status | `redis_server_master_link_status` | Indicates if the replica is connected to its master | +| redis_master_repl_offset | `redis_server_master_repl_offset` | Number of bytes sent to replicas by the shard; calculate the throughput for a time period by comparing the value at different times | +| redis_master_sync_in_progress | `redis_server_master_sync_in_progress` | The master shard is synchronizing (1 true | 0 false) | +| redis_max_process_mem | `redis_server_max_process_mem` | Current memory limit configured by redis_mgr according to node free memory | +| redis_maxmemory | `redis_server_maxmemory` | Current memory limit configured by redis_mgr according to database memory limits | +| redis_mem_aof_buffer | `redis_server_mem_aof_buffer` | Current size of AOF buffer | +| redis_mem_clients_normal | `redis_server_mem_clients_normal` | Current memory used for input and output buffers of non-replica clients | +| redis_mem_clients_slaves | `redis_server_mem_clients_slaves` | Current memory used for input and output buffers of replica clients | +| redis_mem_fragmentation_ratio | `redis_server_mem_fragmentation_ratio` | Memory fragmentation ratio (1.3 means 30% overhead) | +| redis_mem_not_counted_for_evict | `redis_server_mem_not_counted_for_evict` | Portion of used_memory (in bytes) that's not counted for eviction and OOM error | +| redis_mem_replication_backlog | `redis_server_mem_replication_backlog` | Size of replication backlog | +| redis_module_fork_in_progress | `redis_server_module_fork_in_progress` | A binary value that indicates if there is an active fork spawned by a module (1) or not (0) | +| redis_process_cpu_system_seconds_total | `namedprocess_namegroup_cpu_seconds_total{mode="system"}` | Shard process system CPU time spent in seconds | +| redis_process_cpu_usage_percent | `namedprocess_namegroup_cpu_seconds_total{mode=~"system\|user"}` | Shard process CPU usage percentage | +| redis_process_cpu_user_seconds_total | `namedprocess_namegroup_cpu_seconds_total{mode="user"}` | Shard user CPU time spent in seconds | +| redis_process_main_thread_cpu_system_seconds_total | `namedprocess_namegroup_thread_cpu_seconds_total{mode="system",threadname="redis-server"}` | Shard main thread system CPU time spent in seconds | +| redis_process_main_thread_cpu_user_seconds_total | `namedprocess_namegroup_thread_cpu_seconds_total{mode="user",threadname="redis-server"}` | Shard main thread user CPU time spent in seconds | +| redis_process_max_fds | `max(namedprocess_namegroup_open_filedesc)` | Shard maximum number of open file descriptors | +| redis_process_open_fds | `namedprocess_namegroup_open_filedesc` | Shard number of open file descriptors | +| redis_process_resident_memory_bytes | `namedprocess_namegroup_memory_bytes{memtype="resident"}` | Shard resident memory size in bytes | +| redis_process_start_time_seconds | `namedprocess_namegroup_oldest_start_time_seconds` | Shard start time of the process since unix epoch in seconds | +| redis_process_virtual_memory_bytes | `namedprocess_namegroup_memory_bytes{memtype="virtual"}` | Shard virtual memory in bytes | +| redis_rdb_bgsave_in_progress | `redis_server_rdb_bgsave_in_progress` | Indication if bgsave is currently in progress | +| redis_rdb_last_cow_size | `redis_server_rdb_last_cow_size` | Last bgsave (or SYNC fork) used CopyOnWrite memory | +| redis_rdb_saves | `redis_server_rdb_saves` | Total count of bgsaves since the process was restarted (including replica fullsync and persistence) | +| redis_repl_touch_bytes | `redis_server_repl_touch_bytes` | 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 | +| redis_total_commands_processed | `redis_server_total_commands_processed` | Number of commands processed by the shard; calculate the number of commands for a time period by comparing the value at different times | +| redis_total_connections_received | `redis_server_total_connections_received` | Number of connections received by the shard; calculate the number of connections for a time period by comparing the value at different times | +| redis_total_net_input_bytes | `redis_server_total_net_input_bytes` | Number of bytes received by the shard; calculate the throughput for a time period by comparing the value at different times | +| redis_total_net_output_bytes | `redis_server_total_net_output_bytes` | Number of bytes sent by the shard; calculate the throughput for a time period by comparing the value at different times | +| redis_up | `redis_server_up` | Shard is up and running | +| redis_used_memory | `redis_server_used_memory` | Memory used by shard (in BigRedis this includes flash) (bytes) | diff --git a/content/operate/oss_and_stack/stack-with-enterprise/bloom/config.md b/content/operate/oss_and_stack/stack-with-enterprise/bloom/config.md index ed0e99cd3c..abcf8e3360 100644 --- a/content/operate/oss_and_stack/stack-with-enterprise/bloom/config.md +++ b/content/operate/oss_and_stack/stack-with-enterprise/bloom/config.md @@ -5,17 +5,34 @@ categories: - docs - operate - stack -description: Probabilistic data structure configuration settings supported by Redis - Enterprise. +description: Probabilistic data structure configuration settings supported by Redis Enterprise Software and Redis Cloud. linkTitle: Configuration toc: 'false' weight: 30 --- +## Configure probabilistic data structures in Redis Software + [Redis Enterprise Software]({{< relref "/operate/rs" >}}) lets you manually change any [RedisBloom configuration setting]({{< relref "/develop/data-types/probabilistic/" >}}configuration/#redisbloom-configuration-parameters). +To change the RedisBloom configuration using the Redis Software Cluster Manager UI: + + 1. From the **Databases** list, select the database, then click **Configuration**. + + 1. Select the **Edit** button. + + 1. In the **Capabilities** section, click **Parameters**. + + 1. After you finish editing the module's configuration parameters, click **Done** to close the parameter editor. + + 1. Click **Save**. + +## Configure probabilistic data structures in Redis Cloud + [Redis Cloud]({{< relref "/operate/rc" >}}) does not let you configure RedisBloom manually. However, if you have a Flexible or Annual [subscription]({{< relref "/operate/rc/subscriptions" >}}), you can contact [support](https://redis.com/company/support/) to request a configuration change. You cannot change RedisBloom configuration for Free or Fixed subscriptions. +## Configuration settings + | Setting | Redis
Enterprise | Redis
Cloud | Notes | |:--------|:----------------------|:-----------------|:------| | [CF_MAX_EXPANSIONS]({{< relref "/develop/data-types/probabilistic/" >}}configuration/#cf_max_expansions) | ✅ Supported

| ✅ Flexible & Annual
❌ Free & Fixed | Default: 32 | diff --git a/content/operate/oss_and_stack/stack-with-enterprise/install/_index.md b/content/operate/oss_and_stack/stack-with-enterprise/install/_index.md index 7b059d3d25..7f68824fed 100644 --- a/content/operate/oss_and_stack/stack-with-enterprise/install/_index.md +++ b/content/operate/oss_and_stack/stack-with-enterprise/install/_index.md @@ -11,7 +11,7 @@ linkTitle: Install and upgrade modules weight: 4 --- -Several modules, which provide Redis Stack features, come packaged with [Redis Enterprise]({{< relref "/operate/rs" >}}). As of version 7.4.2, Redis Enterprise includes two feature sets, compatible with different Redis database versions. However, if you want to use additional modules or upgrade a module to a more recent version, you need to: +Several modules, which provide Redis Stack features, come packaged with [Redis Enterprise Software]({{< relref "/operate/rs" >}}). As of version 7.8.2, Redis Enterprise Software includes three feature sets, compatible with different Redis database versions. However, if you want to use additional modules or upgrade a module to a more recent version, you need to: 1. [Install a module package]({{< relref "/operate/oss_and_stack/stack-with-enterprise/install/add-module-to-cluster" >}}) on the cluster. 1. [Enable a module]({{< relref "/operate/oss_and_stack/stack-with-enterprise/install/add-module-to-database" >}}) for a new database or [upgrade a module]({{< relref "/operate/oss_and_stack/stack-with-enterprise/install/upgrade-module" >}}) in an existing database. diff --git a/content/operate/oss_and_stack/stack-with-enterprise/install/add-module-to-cluster.md b/content/operate/oss_and_stack/stack-with-enterprise/install/add-module-to-cluster.md index 9ac78e6f55..21c56f5387 100644 --- a/content/operate/oss_and_stack/stack-with-enterprise/install/add-module-to-cluster.md +++ b/content/operate/oss_and_stack/stack-with-enterprise/install/add-module-to-cluster.md @@ -10,7 +10,7 @@ linkTitle: Install on a cluster weight: 10 --- -[Redis Enterprise]({{< relref "/operate/rs" >}}) comes packaged with several modules. As of version 7.4.2, Redis Enterprise includes two feature sets, compatible with different Redis database versions. You can view the installed modules, their versions, and their minimum compatible Redis database versions from **Cluster > Modules** in the Redis Enterprise Cluster Manager UI. +[Redis Enterprise Software]({{< relref "/operate/rs" >}}) comes packaged with several modules. As of version 7.8.2, Redis Enterprise Software includes three feature sets, compatible with different Redis database versions. You can view the installed modules, their versions, and their minimum compatible Redis database versions from **Cluster > Modules** in the Cluster Manager UI. To use other modules or upgrade an existing module to a more recent version, you need to install the new module package on your cluster. @@ -22,11 +22,9 @@ To use other modules or upgrade an existing module to a more recent version, you ## Get packaged modules -To install or upgrade a module on a [Redis Enterprise]({{< relref "/operate/rs" >}}) cluster, you need a module package. +To install or upgrade a module on a [Redis Enterprise Software]({{< relref "/operate/rs" >}}) cluster, you need a module package. -- For the latest Redis Enterprise modules, download packages from the [Redis download center](https://redislabs.com/download-center/modules/). - -- For earlier versions of Redis Enterprise modules that are no longer available from the Redis download center, [contact support](https://redis.com/company/support/). +- For versions of official Redis modules that are not available from the [Redis download center](https://redislabs.com/download-center/modules/), [contact support](https://redis.com/company/support/). - For custom-packaged modules, download a [custom-packaged module](https://redislabs.com/community/redis-modules-hub/) from the developer. diff --git a/content/operate/oss_and_stack/stack-with-enterprise/install/add-module-to-database.md b/content/operate/oss_and_stack/stack-with-enterprise/install/add-module-to-database.md index 0fa3a3fc8e..42f90583dd 100644 --- a/content/operate/oss_and_stack/stack-with-enterprise/install/add-module-to-database.md +++ b/content/operate/oss_and_stack/stack-with-enterprise/install/add-module-to-database.md @@ -30,7 +30,7 @@ In the Redis Enterprise Cluster Manager UI, follow these steps to add modules to 1. In the **Capabilities** section, select one or more capabilities: - {{Select which capabilities to add to your database.}} + {{Select which capabilities to add to your database.}} {{}} You cannot use RediSearch 1.x and RediSearch 2.x in the same database. diff --git a/content/operate/oss_and_stack/stack-with-enterprise/install/upgrade-module.md b/content/operate/oss_and_stack/stack-with-enterprise/install/upgrade-module.md index 86a4dcae6d..5edebe666a 100644 --- a/content/operate/oss_and_stack/stack-with-enterprise/install/upgrade-module.md +++ b/content/operate/oss_and_stack/stack-with-enterprise/install/upgrade-module.md @@ -53,17 +53,27 @@ To upgrade a module enabled for a database: - `rladmin status modules` - Shows the latest modules available on the cluster and the modules used by databases. - `rladmin status modules all` - Shows all of the modules available on the cluster and the modules used by databases. -1. To upgrade a database to the latest version of Redis and its modules to the latest version without changing the module arguments, run: +1. To upgrade a database to the latest version of Redis and its modules to the latest version without changing the module arguments: - ```sh - rladmin upgrade db < database_name | database_ID > latest_with_modules - ``` + - For clusters with Redis Enterprise Software versions 7.8.2 or later, run: + + ```sh + rladmin upgrade db < database_name | database_ID > + ``` + + - For clusters with versions earlier than 7.8.2, include the `latest_with_modules` option: + + ```sh + rladmin upgrade db < database_name | database_ID > latest_with_modules + ``` {{}} The upgrade process does not validate the module upgrade arguments, and incorrect arguments can cause unexpected downtime. Test module upgrade commands in a test environment before you upgrade modules in production. {{}} - Use `keep_redis_version` to upgrade the modules without upgrading the database to the latest Redis version. + + `keep_redis_version` is deprecated as of Redis Enterprise Software version 7.8.2. To upgrade modules without upgrading the Redis database version, set `redis_version` to the current Redis database version instead. - To specify the modules to upgrade, add the following for each module: @@ -79,9 +89,25 @@ The upgrade process does not validate the module upgrade arguments, and incorrec - `module_args keep_args` to use the existing module arguments. -## Examples +## Examples for Redis Software v7.8.2 and later + +The following module upgrade examples are supported for Redis Enterprise Software versions 7.8.2 and later: + +- Keep the current Redis database version, which is 7.2 in this example, and upgrade to the latest version of the enabled modules: + + ```sh + rladmin upgrade db shopping_cart redis_version 7.2 + ``` + +- Upgrade the database to use the latest version of Redis and the latest versions of the enabled modules: + + ```sh + rladmin upgrade db shopping_cart + ``` + +## Deprecated examples -Here are some module upgrade examples: +As of Redis Enterprise Software version 7.8.2, the following module upgrade examples are deprecated but still supported. - Keep the current version of Redis and upgrade to the latest version of the enabled modules: diff --git a/content/operate/oss_and_stack/stack-with-enterprise/search/config.md b/content/operate/oss_and_stack/stack-with-enterprise/search/config.md index 3b5464fbae..eb43029fbb 100644 --- a/content/operate/oss_and_stack/stack-with-enterprise/search/config.md +++ b/content/operate/oss_and_stack/stack-with-enterprise/search/config.md @@ -5,13 +5,15 @@ categories: - docs - operate - stack -description: Search and query configuration settings supported by Redis Enterprise. +description: Search and query configuration settings supported by Redis Enterprise Software and Redis Cloud. linkTitle: Configuration toc: 'false' weight: 15 --- -You cannot use [`FT.CONFIG SET`]({{< baseurl >}}/commands/ft.config-set) to configure RediSearch in [Redis Enterprise Software]({{< relref "/operate/rs" >}}) or [Redis Cloud]({{< relref "/operate/rc" >}}). Instead, use one of the following methods. +To configure RediSearch in [Redis Enterprise Software]({{< relref "/operate/rs" >}}) or [Redis Cloud]({{< relref "/operate/rc" >}}), use one of the following methods instead of [`FT.CONFIG SET`]({{< baseurl >}}/commands/ft.config-set). + +## Configure search in Redis Cloud For Redis Cloud: @@ -19,7 +21,27 @@ For Redis Cloud: - _Free or Fixed subscriptions_: you cannot change RediSearch configuration. -For Redis Enterprise Software, use either: +## Configure search in Redis Software + +For Redis Enterprise Software, use one of the following methods: + +- Cluster Manager UI: + + 1. From the **Databases** list, select the database, then click **Configuration**. + + 1. Select the **Edit** button. + + 1. In the **Capabilities** section, click **Parameters**. + + 1. Enter the setting name and setting value in the **RediSearch** box. + + In the **Query Performance Factor** section, you can configure settings to improve query performance. See [Configure the query performance factor for Redis Query Engine in Redis Enterprise]({{}}) for more information. + + {{The Parameters dialog includes sections to edit RediSearch settings and the Query Performance Factor settings.}} + + 1. After you finish editing the module's configuration parameters, click **Done** to close the parameter editor. + + 1. Click **Save**. - [`rladmin tune db`]({{< relref "/operate/rs/references/cli-utilities/rladmin/tune#tune-db" >}}): @@ -42,6 +64,8 @@ For Redis Enterprise Software, use either: } ``` +## Configuration settings + | Setting | Redis
Enterprise | Redis
Cloud | Notes | |:--------|:----------------------|:-----------------|:------| | [CONCURRENT_WRITE_MODE]({{< relref "/develop/interact/search-and-query/basic-constructs/configuration-parameters" >}}) | ✅ Supported

| ✅ Flexible & Annual
❌ Free & Fixed | Default: Not enabled | diff --git a/content/operate/oss_and_stack/stack-with-enterprise/search/query-performance-factor.md b/content/operate/oss_and_stack/stack-with-enterprise/search/query-performance-factor.md index 2dced5729a..d6a25ebc37 100644 --- a/content/operate/oss_and_stack/stack-with-enterprise/search/query-performance-factor.md +++ b/content/operate/oss_and_stack/stack-with-enterprise/search/query-performance-factor.md @@ -34,9 +34,9 @@ If you do not have a cluster that supports Redis Query Engine, [install Redis En 1. [Determine the query performance factor](#calculate-performance-factor) you want and the required number of CPUs. Unused CPUs, above the 20% necessary for Redis, can be used for the scalable Redis Query Engine. -1. Create a new Redis database with the number of CPUs configured for the Query performance factor. +1. Create a new Redis database with the number of CPUs configured for the query performance factor. -## Calculate performance factor +## Calculate query performance factor ### CPUs for query performance factor @@ -73,11 +73,92 @@ The following table shows the number of CPUs required for each performance facto | Scale factor | 4x | | Minimum CPUs required for scale factor | 6 | -## Configure query performance factor +## Configure query performance factor manually -To configure the query performance factor in Redis Enterprise, use the [REST API]({{}}) to create a new database or update an existing database. +To manually configure the query performance factor in Redis Enterprise Software: -### Create new database +1. [Configure query performance factor parameters](#config-db-ui) when you create a new database or edit an existing database's configuration in the Cluster Manager UI. + +1. If you configure the query performance factor for an existing database, you also need to [restart shards](#restart-shards). Newly created databases can skip this step. + +### Configure query performance factor parameters in the Cluster Manager UI {#config-db-ui} + +You can use the Cluster Manager UI to configure the query performance factor when you [create a new database]({{}}) or [edit an existing database]({{}}) with search enabled. + +1. In the **Capabilities** section of the database configuration screen, click **Parameters**. + +1. If you are creating a new database, select **Search and query**. + +1. Adjust the **RediSearch** parameters to include: + + `MT_MODE MT_MODE_FULL WORKER_THREADS ` + + See [Calculate query performance factor](#calculate-query-performance-factor) to determine the minimum CPUs required to use for ``. + +1. Expand the **Query Performance Factor** section and enter the following values: + + - `mnp` for **Connections routing** + + - `32` for **Connections limit** + + {{Configure search parameters and query performance factor.}} + +1. Click **Done** to close the parameter editor. + +1. Click **Create** or **Save**. + +### Restart shards {#restart-shards} + +After you update the query performance factor for an existing database, restart all shards to apply the new settings. You can migrate shards to restart them. Newly created databases can skip this step. + +1. Use [`rladmin status shards db `]({{}}) to list all shards for your database: + + ```sh + rladmin status shards db db-name + ``` + + Example output: + + ```sh + SHARDS: + DB:ID NAME ID NODE ROLE SLOTS USED_MEMORY STATUS + db:2 db-name redis:1 node:1 master 0-16383 1.95MB OK + db:2 db-name redis:2 node:2 slave 0-16383 1.95MB OK + ``` + + Note the following fields for the next steps: + - `ID`: the Redis shard's ID. + - `NODE`: the node on which the shard currently resides. + - `ROLE`: `master` is a primary shard; `slave` is a replica shard. + +1. For each replica shard, use [`rladmin migrate shard`]({{}}) to move it to a different node and restart it: + + ```sh + rladmin migrate shard target_node + ``` + +1. After you migrate the replica shards, migrate the original primary shards. + +1. Rerun `rladmin status shards db ` to verify the shards migrated to different nodes: + + ```sh + rladmin status shards db db-name + ``` + + Example output: + + ```sh + SHARDS: + DB:ID NAME ID NODE ROLE SLOTS USED_MEMORY STATUS + db:2 db-name redis:1 node:2 master 0-16383 1.95MB OK + db:2 db-name redis:2 node:1 slave 0-16383 1.95MB OK + ``` + +## Configure query performance factor with the REST API + +You can configure the query performance factor when you [create a new database](#create-db-rest-api) or [update an existing database](#update-db-rest-api) using the Redis Enterprise Software [REST API]({{}}). + +### Create new database with the REST API {#create-db-rest-api} To create a database and configure the query performance factor, use the [create database REST API endpoint]({{}}) with a [BDB object]({{}}) that includes the following parameters: @@ -126,7 +207,7 @@ The following [cURL](https://curl.se/docs/) request creates a new database from curl -k -u ":" https://:9443/v1/bdbs -H "Content-Type:application/json" -d @scalable-search-db.json ``` -### Update existing database +### Update existing database with the REST API {#update-db-rest-api} To configure the query performance factor for an existing database, use the following REST API requests: diff --git a/content/operate/oss_and_stack/stack-with-enterprise/timeseries/config.md b/content/operate/oss_and_stack/stack-with-enterprise/timeseries/config.md index bd874d707b..c44d040f57 100644 --- a/content/operate/oss_and_stack/stack-with-enterprise/timeseries/config.md +++ b/content/operate/oss_and_stack/stack-with-enterprise/timeseries/config.md @@ -5,16 +5,34 @@ categories: - docs - operate - stack -description: Time series configuration settings supported by Redis Enterprise. +description: Time series configuration settings supported by Redis Enterprise Software and Redis Cloud. linkTitle: Configuration toc: 'false' weight: 30 --- +## Configure time series in Redis Software + [Redis Enterprise Software]({{< relref "/operate/rs" >}}) lets you manually change any [RedisTimeSeries configuration setting]({{< relref "/develop/data-types/timeseries/" >}}configuration/#redistimeseries-configuration-parameters). +To change RedisTimeSeries configuration using the Redis Software Cluster Manager UI: + + 1. From the **Databases** list, select the database, then click **Configuration**. + + 1. Select the **Edit** button. + + 1. In the **Capabilities** section, click **Parameters**. + + 1. After you finish editing the module's configuration parameters, click **Done** to close the parameter editor. + + 1. Click **Save**. + +## Configure time series in Redis Cloud + [Redis Cloud]({{< relref "/operate/rc" >}}) does not let you configure RedisTimeSeries manually. However, if you have a Flexible or Annual [subscription]({{< relref "/operate/rc/subscriptions" >}}), you can contact [support](https://redis.com/company/support/) to request a configuration change. You cannot change RedisTimeSeries configuration for Free or Fixed subscriptions. +## Configuration settings + | Setting | Redis
Enterprise | Redis
Cloud | Notes | |:--------|:----------------------|:-----------------|:------| | [CHUNK_SIZE_BYTES]({{< relref "/develop/data-types/timeseries/configuration" >}}) | ✅ Supported

| ✅ Flexible & Annual
❌ Free & Fixed | Default: `4096` | diff --git a/content/operate/rc/compatibility.md b/content/operate/rc/compatibility.md index 849c9fded3..f32823050b 100644 --- a/content/operate/rc/compatibility.md +++ b/content/operate/rc/compatibility.md @@ -19,6 +19,10 @@ Both [Redis Enterprise Software]({{< relref "/operate/rs" >}}) and Redis Cloud a Redis Enterprise Software and Redis Cloud support RESP2 and RESP3. In Redis Cloud, you can choose between RESP2 and RESP3 when you [create a database]({{< relref "/operate/rc/databases/create-database" >}}) and you can change it when you [edit a database]({{< relref "/operate/rc/databases/view-edit-database" >}}). For more information about the different RESP versions, see the [Redis serialization protocol specification]({{< relref "/develop/reference/protocol-spec" >}}#resp-versions). +## Client-side caching compatibility + +Redis Software and Redis Cloud support [client-side caching]({{}}) for databases with Redis versions 7.4 or later. See [Client-side caching compatibility with Redis Software and Redis Cloud]({{}}) for more information about compatibility. + ## Compatibility with Redis Cluster API Redis Cloud supports [Redis Cluster API]({{< relref "/operate/rc/databases/configuration/clustering#oss-cluster-api" >}}) on Redis Cloud Pro if it is enabled for a database. Review [Redis Cluster API architecture]({{< relref "/operate/rs/clusters/optimize/oss-cluster-api" >}}) to determine if you should enable this feature for your database. \ No newline at end of file diff --git a/content/operate/rs/clusters/add-node.md b/content/operate/rs/clusters/add-node.md index e43d2f7620..e97a7f51da 100644 --- a/content/operate/rs/clusters/add-node.md +++ b/content/operate/rs/clusters/add-node.md @@ -1,5 +1,5 @@ --- -Title: Add a cluster node +Title: Add a node alwaysopen: false categories: - docs @@ -12,7 +12,8 @@ weight: 20 When you install Redis Enterprise Software on the first node of a cluster, you create the new cluster. After you install the first node, you can add more nodes to the cluster. -{{< note >}} +## Prerequisites + Before you add a node to the cluster: - The clocks on all nodes must always be [synchronized]({{< relref "/operate/rs/clusters/configure/sync-clocks.md" >}}). @@ -25,7 +26,8 @@ Before you add a node to the cluster: - We recommend that you add nodes one after the other rather than in parallel to avoid errors that occur because the connection to the other nodes in the cluster cannot be verified. -{{< /note >}} + +## Add node To add a node to an existing cluster: @@ -75,7 +77,18 @@ You can see it in the list of nodes in the cluster. If you see an error when you add the node, try adding the node again. -{{< tip >}} -We recommend that you run the [rlcheck utility]({{< relref "/operate/rs/references/cli-utilities/rlcheck" >}}) to verify that the node is functioning properly. -{{< /tip >}} +## Verify node + +We recommend that you verify the node is functioning properly using one of the following methods: + +- Cluster Manager UI method: + + 1. On the **Nodes** screen, click {{< image filename="/images/rs/buttons/button-toggle-actions-vertical.png#no-click" alt="More actions button" width="22px" class="inline" >}} for the node you want to verify. + + 1. Select **Verify node** from the list. + + {{Click the more actions button for a node to access node actions.}} + +- Command-line method: + Run the [`rlcheck`]({{< relref "/operate/rs/references/cli-utilities/rlcheck" >}}) utility from the node's command line. diff --git a/content/operate/rs/clusters/change-node-role.md b/content/operate/rs/clusters/change-node-role.md new file mode 100644 index 0000000000..7849da8509 --- /dev/null +++ b/content/operate/rs/clusters/change-node-role.md @@ -0,0 +1,47 @@ +--- +Title: Change node roles +alwaysopen: false +categories: +- docs +- operate +- rs +description: Change node roles to demote the primary node to a secondary node or promote a secondary node to become the primary node. +linkTitle: Change node roles +weight: 65 +--- + +A Redis Software cluster contains a primary node, which coordinates cluster-wide management operations, and multiple secondary nodes. Nodes with either role can host database shards. + +## Demote primary node + +To demote the primary node to a secondary node using the Cluster Manager UI: + +1. On the **Nodes** screen, click {{< image filename="/images/rs/buttons/button-toggle-actions-vertical.png#no-click" alt="More actions button" width="22px" class="inline" >}} for the node you want to promote. + + {{Click the more actions button for a node to access node actions.}} + +1. Select **Set as a secondary node** from the list. + +1. Select one of the options to determine the new primary node: + + - **Automatically**: The cluster decides which node becomes the new primary node. + + - **Choose specific node**: You can manually select which node becomes the new primary node. + + {{The Set as a secondary node dialog has two options to select the new primary node, either automatically or manually.}} + +1. Click **Confirm**. + +## Promote secondary node + +To promote a secondary node to become the primary node using the Cluster Manager UI: + +1. On the **Nodes** screen, click {{< image filename="/images/rs/buttons/button-toggle-actions-vertical.png#no-click" alt="More actions button" width="22px" class="inline" >}} for the node you want to promote. + + {{Click the more actions button for a node to access node actions.}} + +1. Select **Set as the primary node** from the list. + +1. Click **Confirm**. + +After this node becomes the primary node, all cluster management traffic is directed to it. diff --git a/content/operate/rs/clusters/configure/license-keys.md b/content/operate/rs/clusters/configure/license-keys.md index 22d21473ef..de7fe71182 100644 --- a/content/operate/rs/clusters/configure/license-keys.md +++ b/content/operate/rs/clusters/configure/license-keys.md @@ -88,7 +88,46 @@ When the license is expired: - Fail over when a node fails and explicitly migrate shards between nodes. - Upgrade a node to a new version of Redis Enterprise Software. - + +## Configure license expiration alert + +By default, a cluster license alert is scheduled to occur 7 days before the cluster license expiration date. + +{{An alert appears in the Cluster Manager UI that says 'Your license will expire on day-month-year time. Contact support to renew your license.'}} + +You can adjust the threshold value of the cluster license expiration alert based on how far in advance you want to be notified of the license expiration. The value should be within a reasonable range that allows your organization enough time to take action, such as renewing the license, before it expires. + +To change the cluster license alert settings, use one of the following methods: + +- Cluster Manager UI: + + 1. On the **Cluster > Configuration** screen, select the **Alerts Settings** tab. + + 1. Click **Edit**. + + 1. In the **Cluster utilization** section, enable the alert setting "License expiry notifications will be sent \ days before the license expires" and enter a new value in the box. + + {{Cluster utilization alert settings.}} + + 1. Click **Save**. + + +- [Update cluster]({{}}) REST API request: + + The following example changes the cluster license alert to occur 30 days before the cluster license expiration date: + + ```sh + PUT /v1/cluster + { + "alert_settings": { + "cluster_license_about_to_expire": { + "enabled": true, + "threshold": "30" + } + } + } + ``` + ## Monitor cluster license As of version 7.2, Redis Enterprise exposes the license quotas and the shards consumption metrics in the Cluster Manager UI or via the [Prometheus integration]({{< relref "/integrate/prometheus-with-redis-enterprise/" >}}). diff --git a/content/operate/rs/clusters/logging/log-security.md b/content/operate/rs/clusters/logging/log-security.md index 6ba7e715aa..e0e15ecc74 100644 --- a/content/operate/rs/clusters/logging/log-security.md +++ b/content/operate/rs/clusters/logging/log-security.md @@ -26,13 +26,13 @@ By default, log rotation occurs when a log exceeds 200 MB. We recommend sending The following log rotation policy is enabled by default in Redis Enterprise Software, but you can modify it as needed. ```sh -/var/opt/redislabs/log/*.log { +${logdir}/*.log { su ${osuser} ${osgroup} - size 200M + maxsize 200M + daily missingok copytruncate - # 2000 is logrotate's way of saying 'infinite' - rotate 2000 + rotate 10 maxage 7 compress notifempty @@ -40,12 +40,12 @@ The following log rotation policy is enabled by default in Redis Enterprise Soft nosharedscripts prerotate # copy cluster_wd log to another file that will have longer retention - if [ "\$1" = "/var/opt/redislabs/log/cluster_wd.log" ]; then - cp -p /var/opt/redislabs/log/cluster_wd.log /var/opt/redislabs/log/cluster_wd.log.long_retention + if [ "\$1" = "${logdir}/cluster_wd.log" ]; then + cp -p ${logdir}/cluster_wd.log ${logdir}/cluster_wd.log.long_retention fi endscript } -/var/opt/redislabs/log/cluster_wd.log.long_retention { +${logdir}/cluster_wd.log.long_retention { su ${osuser} ${osgroup} daily missingok @@ -57,23 +57,25 @@ The following log rotation policy is enabled by default in Redis Enterprise Soft } ``` -- `/var/opt/redislabs/log/*.log` - `logrotate` checks the files under the `$logdir` directory (`/var/opt/redislabs/log/`) and rotates any files that end with the extension `.log`. +- `${logdir}/*.log`: `logrotate` checks the files under the `$logdir` directory (`/var/opt/redislabs/log/`) and rotates any files that end with the extension `.log`. + +- `${logdir}/cluster_wd.log.long_retention`: `cluster_wd.log` is copied to `cluster_wd.log.long_retention` before rotation. This copy is kept longer than usual, which is 30 days by default. -- `/var/opt/redislabs/log/cluster_wd.log.long_retention` - The contents of `cluster_wd.log` is copied to `cluster_wd.log.long_retention` before rotation, and this copy is kept for longer than normal (30 days). +- `maxsize 200M`: Rotate log files that exceed 200 MB. -- `size 200M` - Rotate log files that exceed 200 MB. +- `daily`: Rotate logs every day regardless of their size. -- `missingok` - If there are missing log files, do nothing. +- `missingok`: If there are missing log files, do nothing. -- `copytruncate` - Truncate the original log file to zero sizes after creating a copy. +- `copytruncate`: Truncate the original log file to zero sizes after creating a copy. -- `rotate 2000` - Keep up to 2000 (effectively infinite) log files. +- `rotate 10`: Save a maximum of 10 rotated log files. To keep effectively infinite log files, use `rotate 2000` instead. -- `compress` - gzip log files. +- `compress`: gzip log files. -- `maxage 7` - Keep the rotated log files for 7 days. +- `maxage 7`: Keep the rotated log files for 7 days. -- `notifempty` - Don't rotate the log file if it is empty. +- `notifempty`: Don't rotate the log file if it is empty. {{}} For large scale deployments, you might need to rotate logs at faster intervals than daily. You can also use a cronjob or external vendor solutions. diff --git a/content/operate/rs/clusters/monitoring/_index.md b/content/operate/rs/clusters/monitoring/_index.md index ad6d62cfc3..becff8195e 100644 --- a/content/operate/rs/clusters/monitoring/_index.md +++ b/content/operate/rs/clusters/monitoring/_index.md @@ -13,14 +13,21 @@ weight: 96 --- You can use the metrics that measure the performance of your Redis Enterprise Software clusters, nodes, databases, and shards to monitor the performance of your databases. -In the Redis Enterprise Cluster Manager UI, you can see real-time metrics and configure alerts that send notifications based on alert parameters. You can also access metrics and configure alerts through the REST API. +In the Redis Enterprise Cluster Manager UI, you can view metrics, configure alerts, and send notifications based on alert parameters. You can also access metrics and configure alerts through the REST API. + +Redis Enterprise version 7.8.2 introduces a preview of the new metrics stream engine that exposes the v2 Prometheus scraping endpoint at `https://:8070/v2`. +This new engine exports all time-series metrics to external monitoring tools such as Grafana, DataDog, NewRelic, and Dynatrace using Prometheus. + +The new engine enables real-time monitoring, including full monitoring during maintenance operations, providing full visibility into performance during events such as shards' failovers and scaling operations. + +If you are already using the existing scraping endpoint for integration, follow [this guide]({{}}) to transition and try the new engine. It is possible to scrape both existing and new endpoints simultaneously, allowing advanced dashboard preparation and a smooth transition. To integrate Redis Enterprise metrics into your monitoring environment, see the integration guides for [Prometheus and Grafana]({{< relref "/integrate/prometheus-with-redis-enterprise/" >}}) or [Uptrace]({{< relref "/integrate/uptrace-with-redis-enterprise/" >}}). Make sure you read the [definition of each metric]({{< relref "/operate/rs/references/metrics/" >}}) so that you understand exactly what it represents. -## Real-time metrics +## Cluster manager metrics You can see the metrics of the cluster in: diff --git a/content/operate/rs/clusters/remove-node.md b/content/operate/rs/clusters/remove-node.md index b81b711e76..3748e78331 100644 --- a/content/operate/rs/clusters/remove-node.md +++ b/content/operate/rs/clusters/remove-node.md @@ -1,5 +1,5 @@ --- -Title: Remove a cluster node +Title: Remove a node alwaysopen: false categories: - docs @@ -73,25 +73,25 @@ The [DNS records]({{< relref "/operate/rs/networking/cluster-dns" >}}) must be u To remove a node using the Cluster Manager UI: -1. If you are using the new Cluster Manager UI, switch to the legacy admin console. +1. On the **Nodes** screen, click {{< image filename="/images/rs/buttons/button-toggle-actions-vertical.png#no-click" alt="More actions button" width="22px" class="inline" >}} for the node you want to remove. - {{Select switch to legacy admin console from the dropdown.}} + {{Click the more actions button for a node to access node actions.}} -1. On the **nodes** page, select the node you want to remove. +1. Select **Remove node** from the list. -1. Click **Remove** at the top of the **node** page. +1. If there are shards on the node, select **Confirm node removal**. -1. Confirm you want to **Remove** the node when prompted. + {{The Confirm node removal checkbox is selected, and the Remove button is clickable.}} -1. Redis Enterprise Software examines the node and the cluster and takes the actions required - to remove the node. + If the node has no shards, the **Confirm node removal** checkbox does not appear. -1. At any point, you can click the **Abort** button to stop the - process. When aborted, the current internal action is completed, and - then the process stops. - -1. Once the process finishes, the node is no longer shown in - the UI. +1. Click **Remove**. + + Redis Enterprise Software examines the node and the cluster, then takes the actions required to remove the node, such as migrating shards to other nodes. After the process finishes, the node is no longer shown in the UI. + + {{}} +At any point, you can click the **Cancel removal** button to stop the process. When cancelled, the current internal action is completed, and then the process stops. + {{}} To remove a node using the REST API, use [`POST /v1/nodes//actions/remove`]({{< relref "/operate/rs/references/rest-api/requests/nodes/actions#post-node-action" >}}). diff --git a/content/operate/rs/databases/active-active/create.md b/content/operate/rs/databases/active-active/create.md index 1c9576ba12..c2bc8d1247 100644 --- a/content/operate/rs/databases/active-active/create.md +++ b/content/operate/rs/databases/active-active/create.md @@ -132,6 +132,8 @@ If you create a database with Auto Tiering enabled, you also need to set the RAM for this database. Minimum RAM is 10%. Maximum RAM is 50%. {{< /note >}} +- **Memory eviction** - The default [eviction policy]({{}}) for Active-Active databases is `noeviction`. Redis Enterprise versions 6.0.20 and later support all eviction policies for Active-Active databases, unless [Auto Tiering]({{}}) is enabled. + - [**Capabilities**]({{< relref "/operate/oss_and_stack/stack-with-enterprise" >}}) (previously **Modules**) - When you create a new in-memory database, you can enable multiple Redis Stack capabilities in the database. For Auto Tiering databases, you can enable capabilities that support Auto Tiering. See [Redis Enterprise and Redis Stack feature compatibility ]({{< relref "/operate/oss_and_stack/stack-with-enterprise/enterprise-capabilities" >}}) for compatibility details. @@ -154,38 +156,39 @@ If you enable TLS when you create the Active-Active database, the nodes use the After you create the Active-Active database, you can set the TLS mode to **Require TLS for all communications** so client communication from applications are also authenticated and encryption. -### High availability & durability +### High availability - [**Replication**]({{< relref "/operate/rs/databases/durability-ha/replication" >}}) - We recommend that all Active-Active database use replication for best intercluster synchronization performance. When replication is enabled, every Active-Active database master shard is replicated to a corresponding replica shard. The replica shards are then used to synchronize data between the instances, and the master shards are dedicated to handling client requests. - We also recommend that you enable [replica HA]({{< relref "/operate/rs/databases/configure/replica-ha" >}}) to ensure that the replica shards are highly-available for this synchronization. - -- [**Data persistence**]({{< relref "/operate/rs/databases/configure/database-persistence.md" >}}) - To protect against loss of data stored in RAM, you can enable data persistence to store a copy of the data on disk. - - Active-Active databases support append-only file (AOF) persistence only. Snapshot persistence is not supported for Active-Active databases. - -- **Eviction policy** - The default eviction policy for Active-Active databases is `noeviction`. Redis Enterprise version 6.0.20 and later support all eviction policies for Active-Active databases, unless [Auto Tiering]({{< relref "/operate/rs/databases/auto-tiering" >}}) is enabled. +- [**Replica high availability**]({{< relref "/operate/rs/databases/configure/replica-ha" >}}) - We also recommend that you enable replica high availability to ensure replica shards are highly-available for this synchronization. ### Clustering -- In the **Database clustering** option, you can either: +- In the [**Clustering**]({{}}) section, you can either: - - Make sure the Database clustering is enabled and select the number of shards - that you want to have in the database. When database clustering is enabled, - databases are subject to limitations on [Multi-key commands]({{< relref "/operate/rs/databases/durability-ha/clustering.md" >}}). + - **Enable sharding** and select the number of shards you want to have in the database. When database clustering is enabled, databases have limitations for [multi-key operations]({{}}). + You can increase the number of shards in the database at any time. - - Clear the **Database clustering** option to use only one shard so that you - can use [Multi-key commands]({{< relref "/operate/rs/databases/durability-ha/clustering.md" >}}) - without the limitations. + - Clear the **Enable sharding** option to use only one shard, which allows you to use [multi-key operations]({{}}) without the limitations. {{}} You cannot enable or turn off database clustering after the Active-Active database is created. {{}} -- [**OSS Cluster API**]({{< relref "/operate/rs/databases/configure/oss-cluster-api.md" >}}) - {{< embed-md "oss-cluster-api-intro.md" >}} +- [**OSS Cluster API**]({{< relref "/operate/rs/databases/configure/oss-cluster-api.md" >}}) - The OSS Cluster API configuration allows access to multiple endpoints for increased throughput. The OSS Cluster API setting applies to all instances of the Active-Active database across participating clusters. + + This configuration requires clients to connect to the primary node to retrieve the cluster topology before they can connect directly to proxies on each node. + + When you enable the OSS Cluster API, shard placement changes to _Sparse_, and the database proxy policy changes to _All primary shards_ automatically. + +### Durability + +To protect against loss of data stored in RAM, you can enable [**Persistence**]({{}}) to store a copy of the data on disk. + +Active-Active databases support append-only file (AOF) persistence only. Snapshot persistence is not supported for Active-Active databases. ### Access control diff --git a/content/operate/rs/databases/active-active/get-started.md b/content/operate/rs/databases/active-active/get-started.md index 506f71f313..fdc04e64af 100644 --- a/content/operate/rs/databases/active-active/get-started.md +++ b/content/operate/rs/databases/active-active/get-started.md @@ -128,9 +128,9 @@ Each Active-Active instance must have a unique fully-qualified domain name (FQDN 1. Configure additional settings: - 1. In the **High availability & durability** section, turn off **Replication** since each cluster has only one node in this setup: + 1. In the **High availability** section, turn off **Replication** since each cluster has only one node in this setup: - {{Turn off replication in the High availability & durability section.}} + {{Turn off replication in the High availability section.}} 1. In the **Clustering** section, either: diff --git a/content/operate/rs/databases/auto-tiering/quickstart.md b/content/operate/rs/databases/auto-tiering/quickstart.md index e225900612..48a02b4f63 100644 --- a/content/operate/rs/databases/auto-tiering/quickstart.md +++ b/content/operate/rs/databases/auto-tiering/quickstart.md @@ -103,7 +103,7 @@ On the **Databases** screen: 1. Verify **Flash** is selected for **Runs on**. - {{Create a quick database with Runs on Flash selected.}} + {{Create a quick database with Runs on Flash selected.}} 1. Enter `12000` for the endpoint **Port** number. @@ -115,11 +115,8 @@ You now have a database with Auto Tiering enabled! ## Connect to your database -You are ready to connect to your database to store data. See the [test connectivity]({{< relref "/operate/rs/databases/connect/test-client-connectivity.md" >}}) page to learn how to connect to your database. +After you create the database, you can connect to it and store data. See [Test client connection]({{}}) for connection options and examples. ## Next steps -If you want to generate load against the -database or add a bunch of data for cluster testing, see the [memtier_benchmark quick start]({{< relref "/operate/rs/clusters/optimize/memtier-benchmark.md" >}}) for help. - To see the true performance and scale of Auto Tiering, you must tune your I/O path and set the flash path to the mounted path of SSD or NVMe flash memory as that is what it is designed to run on. For more information, see [Auto Tiering]({{< relref "/operate/rs/databases/auto-tiering/" >}}). diff --git a/content/operate/rs/databases/configure/_index.md b/content/operate/rs/databases/configure/_index.md index 9dd066054b..f4ffb3fb61 100644 --- a/content/operate/rs/databases/configure/_index.md +++ b/content/operate/rs/databases/configure/_index.md @@ -46,9 +46,13 @@ For [Active-Active database instances]({{< relref "/operate/rs/databases/active- ## Configuration settings {#config-settings} +### General + +- [**Tags**]({{}}) - Add custom tags to categorize the database. + - **Database version** - Select the Redis version when you create a database. -- **Name** - The database name requirements are: +- **Database name** - The database name requirements are: - Maximum of 63 characters @@ -65,32 +69,43 @@ You cannot change the [port number]({{< relref "/operate/rs/networking/port-conf after the database is created. {{< /note >}} +### Capacity + - **Memory limit** - [Database memory limits]({{< relref "/operate/rs/databases/memory-performance/memory-limit.md" >}}) include all database replicas and shards, including replica shards in database replication and database shards in database clustering. - If the total size of the database in the cluster reaches the memory limit, the data eviction policy for the database is enforced. + If the total size of the database in the cluster reaches the memory limit, the memory eviction policy for the database is enforced. - {{< note >}} -If you create a database with Auto Tiering enabled, you also need to set the RAM-to-Flash ratio -for this database. Minimum RAM is 10%. Maximum RAM is 50%. - {{< /note >}} +- **RAM limit** - If you create a database with Auto Tiering enabled, you also need to set the RAM-to-Flash ratio. Minimum RAM is 10%. Maximum RAM is 50%. + +- [**Memory eviction**]({{}}) - By default, when the total size of the database reaches its memory limit, the database evicts keys according to the least recently used keys out of all keys with an "expire" field set to make room for new keys. You can select a different eviction policy. -- [**Capabilities**]({{< relref "/operate/oss_and_stack/stack-with-enterprise" >}}) (previously **Modules**) - When you create a new in-memory database, you can enable multiple Redis Stack capabilities in the database. For Auto Tiering databases, you can enable capabilities that support Auto Tiering. See [Redis Enterprise and Redis Stack feature compatibility +### Capabilities + +When you create a new in-memory database, you can enable multiple Redis Stack [**Capabilities**]({{}}). + +For Auto Tiering databases, you can enable capabilities that support Auto Tiering. See [Redis Enterprise and Redis Stack feature compatibility ]({{< relref "/operate/oss_and_stack/stack-with-enterprise/enterprise-capabilities" >}}) for compatibility details. - - {{< note >}} + +{{}} To use Redis Stack capabilities, enable them when you create a new database. You cannot enable them after database creation. - {{< /note >}} - - To add capabilities to the database: +{{}} - 1. In the **Capabilities** section, select one or more capabilities. +To add capabilities to the database: + +1. In the **Capabilities** section, select one or more capabilities. - 1. To customize capabilities, select **Parameters** and enter the optional custom configuration. +1. To customize capabilities, click **Parameters** and enter the optional custom configuration. - 1. Select **Done**. +1. Click **Done**. + +To change capabilities' parameters for an existing database using the Cluster Manager UI: + + 1. In the **Capabilities** section, click **Edit Parameters**. -### High availability & durability + 1. After you finish editing the module's configuration parameters, click **Done** to close the parameter editor. + +### High Availability - [**Replication**]({{< relref "/operate/rs/databases/durability-ha/replication.md" >}}) - We recommend you use intra-cluster replication to create replica shards for each database for high availability. @@ -98,22 +113,23 @@ You cannot enable them after database creation. - [**Replica high availability**]({{< relref "/operate/rs/databases/configure/replica-ha" >}}) - Automatically migrates replica shards to an available node if a replica node fails or is promoted to primary. -- [**Persistence**]({{< relref "/operate/rs/databases/configure/database-persistence.md" >}}) - To protect against loss of data stored in RAM, you can enable data persistence and store a copy of the data on disk with snapshots or an Append Only File. - -- [**Data eviction policy**]({{< relref "/operate/rs/databases/memory-performance/eviction-policy.md" >}}) - By default, when the total size of the database reaches its memory limit the database evicts keys according to the least recently used keys out of all keys with an "expire" field set in order to make room for new keys. You can select a different data eviction policy. - ### Clustering -- **Sharding** - You can either: - - Turn on **Sharding** to enable [database clustering]({{< relref "/operate/rs/databases/durability-ha/clustering.md" >}}) and select the number of database shards. +- **Enable sharding** - You can either: + + - Turn on sharding to enable [database clustering]({{< relref "/operate/rs/databases/durability-ha/clustering.md" >}}) and select the number of database shards. When database clustering is enabled, databases are subject to limitations on [Multi-key commands]({{< relref "/operate/rs/databases/durability-ha/clustering.md" >}}). You can increase the number of shards in the database at any time. - You can accept the [standard hashing policy]({{< relref "/operate/rs/databases/durability-ha/clustering#standard-hashing-policy" >}}), which is compatible with Redis Community Edition, or define a [custom hashing policy]({{< relref "/operate/rs/databases/durability-ha/clustering#custom-hashing-policy" >}}) to define where keys are located in the clustered database. + - Turn off sharding to use only one shard so that you can use [Multi-key commands]({{< relref "/operate/rs/databases/durability-ha/clustering.md" >}}) without the limitations. - - Turn off **Sharding** to use only one shard so that you can use [Multi-key commands]({{< relref "/operate/rs/databases/durability-ha/clustering.md" >}}) without the limitations. +- [**Shards placement**]({{< relref "/operate/rs/databases/memory-performance/shard-placement-policy" >}}) - Determines how to distribute database shards across nodes in the cluster. + + - _Dense_ places shards on the smallest number of nodes. + + - _Sparse_ spreads shards across many nodes. - [**OSS Cluster API**]({{< relref "/operate/rs/databases/configure/oss-cluster-api.md" >}}) - The OSS Cluster API configuration allows access to multiple endpoints for increased throughput. @@ -125,27 +141,15 @@ You cannot enable them after database creation. You must use a client that supports the cluster API to connect to a database that has the cluster API enabled. {{}} -- [**Shards placement**]({{< relref "/operate/rs/databases/memory-performance/shard-placement-policy" >}}) - Determines how to distribute database shards across nodes in the cluster. - - - _Dense_ places shards on the smallest number of nodes. - - - _Sparse_ spreads shards across many nodes. +- **Hashing policy** - You can accept the [standard hashing policy]({{}}), which is compatible with Redis Community Edition, or define a [custom hashing policy]({{}}) to define where keys are located in the clustered database. - [**Database proxy**]({{< relref "/operate/rs/databases/configure/proxy-policy" >}}) - Determines the number and location of active proxies, which manage incoming database operation requests. -### Replica Of - -With [**Replica Of**]({{< relref "/operate/rs/databases/import-export/replica-of/create.md" >}}), you can make the database a repository for keys from other databases. - -### Scheduled backup - -You can configure [periodic backups]({{< relref "/operate/rs/databases/import-export/schedule-backups" >}}) of the database, including the interval and backup location parameters. - -### Alerts +### Durability -Select [alerts]({{< relref "/operate/rs/clusters/monitoring#database-alerts" >}}) to show in the database status and configure their thresholds. +- [**Persistence**]({{}}) - To protect against loss of data stored in RAM, you can enable data persistence and store a copy of the data on disk with snapshots or an append-only file. -You can also choose to [send alerts by email]({{< relref "/operate/rs/clusters/monitoring#send-alerts-by-email" >}}) to relevant users. +- **Scheduled backup** - You can configure [periodic backups]({{}}) of the database, including the interval and backup location parameters. ### TLS @@ -173,6 +177,22 @@ You can require [**TLS**]({{< relref "/operate/rs/security/encryption/tls/" >}}) 1. Select the check mark to add the ACL. +### Alerts + +Select [alerts]({{}}) to show in the database status and configure their thresholds. + +You can also choose to [send alerts by email]({{}}) to relevant users. + +### Replica Of + +With [**Replica Of**]({{}}), you can make the database a repository for keys from other databases. + +### RESP3 support + +[RESP]({{}}) (Redis Serialization Protocol) is the protocol clients use to communicate with Redis databases. If you enable RESP3 support, the database will support the RESP3 protocol in addition to RESP2. + +For more information about Redis Software's compatibility with RESP3, see [RESP compatibility with Redis Enterprise]({{}}). + ### Internode encryption Enable **Internode encryption** to encrypt data in transit between nodes for this database. See [Internode encryption]({{< relref "/operate/rs/security/encryption/internode-encryption" >}}) for more information. diff --git a/content/operate/rs/databases/configure/database-persistence.md b/content/operate/rs/databases/configure/database-persistence.md index bda89b73e8..7bf2810ff7 100644 --- a/content/operate/rs/databases/configure/database-persistence.md +++ b/content/operate/rs/databases/configure/database-persistence.md @@ -10,12 +10,10 @@ description: How to configure database persistence with either an append-only fi linktitle: Persistence weight: 30 --- -All data is stored and managed exclusively in either RAM or RAM + flash Memory ([Auto Tiering]({{< relref "/operate/rs/databases/auto-tiering/" >}})) and therefore, is at risk of being lost upon a process or server -failure. As Redis Enterprise Software is not just a caching solution, but also a full-fledged database, [persistence](https://redis.com/redis-enterprise/technology/durable-redis/) to disk -is critical. Therefore, Redis Enterprise Software supports persisting data to disk on a per-database basis and in multiple ways. -[Persistence](https://redis.com/redis-enterprise/technology/durable-redis/) can be configured either during database creation or by editing an existing -database's configuration. While the persistence model can be changed dynamically, it can take time for your database to switch from one persistence model to the other. It depends on what you are switching from and to, but also on the size of your database. +Data is stored in RAM or a combination of RAM and flash memory ([Auto Tiering]({{< relref "/operate/rs/databases/auto-tiering/" >}})), which risks data loss during process or server failures. Redis Enterprise Software supports multiple methods to persist data to disk on a per-database basis to ensure data durability. + +You can configure [persistence](https://redis.com/redis-enterprise/technology/durable-redis/) during database creation or by editing an existing database. Although the persistence model can be changed dynamically, the switch can take time depending on the database size and the models being switched. ## Configure database persistence @@ -25,7 +23,7 @@ You can configure persistence when you [create a database]({{< relref "/operate/ 1. Select **Edit**. -1. Expand the **High Availability** section. +1. Expand the **Durability** section. 1. For **Persistence**, select an [option](#data-persistence-options) from the list. diff --git a/content/operate/rs/databases/configure/db-tags.md b/content/operate/rs/databases/configure/db-tags.md new file mode 100644 index 0000000000..e05bf76d88 --- /dev/null +++ b/content/operate/rs/databases/configure/db-tags.md @@ -0,0 +1,54 @@ +--- +Title: Manage database tags +alwaysopen: false +categories: +- docs +- operate +- rs +description: Manage tags for databases in a Redis Software cluster. +linkTitle: Database tags +toc: 'true' +weight: 17 +--- + +You can create custom tags to categorize databases in a Redis Software cluster. + +The **Databases** screen shows tags for each database in the list. + +{{The databases screen includes tags for each database.}} + +## Add database tags + +You can add tags when you [create a database]({{}}) or [edit an existing database's configuration]({{}}). + +To add tags to a database using the Cluster Manager UI: + +1. While in edit mode on the database's configuration screen, click **Add tags**. + + {{The Add tags button on the database configuration screen.}} + +1. Enter a key and value for the tag. Keys and values previously used by existing tags will appear as suggestions. + + {{The Manage tags dialog lets you add, edit, or delete tags.}} + +1. To add additional tags, click **Add tag**. + +1. After you finish adding tags, click **Done** to close the tag manager. + +1. Click **Create** or **Save**. + +## Edit database tags + +To edit a database's existing tags using the Cluster Manager UI: + +1. Go to the database's **Configuration** screen, then click **Edit**. + +1. Next to the existing **Tags**, click {{< image filename="/images/rs/buttons/edit-db-tags-button.png#no-click" alt="Edit tags button" width="22px" class="inline" >}}. + + {{The Edit tags button on the database configuration screen.}} + +1. Edit or delete existing tags, or click **Add tag** to add new tags. + +1. After you finish editing tags, click **Done** to close the tag manager. + +1. Click **Save**. diff --git a/content/operate/rs/databases/configure/oss-cluster-api.md b/content/operate/rs/databases/configure/oss-cluster-api.md index ced02078c5..60bb5dd69c 100644 --- a/content/operate/rs/databases/configure/oss-cluster-api.md +++ b/content/operate/rs/databases/configure/oss-cluster-api.md @@ -21,7 +21,7 @@ The Redis OSS Cluster API is supported only when a database meets specific crite The database must: - Use the standard [hashing policy]({{< relref "/operate/rs/databases/durability-ha/clustering#supported-hashing-policies" >}}). -- Have the [proxy policy]({{< relref "/operate/rs/databases/configure/proxy-policy" >}}) set to either `all-master-shards` or `all-nodes`. +- Have the [proxy policy]({{< relref "/operate/rs/databases/configure/proxy-policy" >}}) set to either _All primary shards_ or _All nodes_. In addition, the database must _not_: @@ -44,9 +44,11 @@ To enable the OSS Cluster API for an existing database in the Cluster Manager UI 1. Expand the **Clustering** section. -1. Turn on the **OSS Cluster API** toggle. +1. Select **Enable sharding**. - {{Use the *OSS Cluster API* setting to enable the API for the selected database.}} +1. Select **OSS Cluster API**. + + {{Use the *OSS Cluster API* setting to enable the API for the selected database.}} 1. Select **Save**. @@ -75,29 +77,25 @@ The OSS Cluster API setting applies to the specified database only; it does not ### Active-Active databases -Ensure the [prerequisites]({{< relref "/operate/rs/databases/configure/oss-cluster-api#prerequisites" >}}) have been configured. Then, use the `crdb-cli` utility to enable the OSS Cluster API for Active-Active databases: +The OSS Cluster API setting applies to all instances of the Active-Active database across participating clusters. To enable the OSS Cluster API for Active-Active databases, use the [Cluster Manager UI](#cluster-manager-ui) or the [`crdb-cli`]({{}}) utility. + +To create an Active-Active database and enable the OSS Cluster API with `crdb-cli`: ```sh -$ crdb-cli crdb update --crdb-guid --oss-cluster true +$ crdb-cli crdb create --name \ + --memory-size 10g --port \ + --sharding true --shards-count 2 \ + --replication true --oss-cluster true --proxy-policy all-master-shards \ + --instance fqdn=,username=,password= \ + --instance fqdn=,username=,password= \ + --instance fqdn=,username=,password= ``` -For best results, you should do this when you first create the database. +See the [`crdb-cli crdb create`]({{}}) reference for more options. -Here's the basic process: +To enable the OSS Cluster API for an existing Active-Active database with `crdb-cli`: -1. Create the Active-Active database: - - ```sh - $ crdb-cli crdb create --name \ - --memory-size 10g --port \ - --sharding true --shards-count 2 \ - --replication true --oss-cluster true --proxy-policy all-master-shards \ - --instance fqdn=,username=,password= \ - --instance fqdn=,username=,password= \ - --instance fqdn=,username=,password= - ``` - -1. Obtain the CRDB-GUID ID for the new database: +1. Obtain the `CRDB-GUID` for the new database: ```sh $ crdb-cli crdb list @@ -105,20 +103,18 @@ Here's the basic process: Test 4 cluster1.local ``` -1. Use the CRDB-GUID ID to enable the OSS Cluster API: +1. Use the `CRDB-GUID` to enable the OSS Cluster API: ```sh $ crdb-cli crdb update --crdb-guid \ --oss-cluster true ``` -The OSS Cluster API setting applies to all of the instances of the Active-Active database. - ## Turn off OSS Cluster API support To deactivate OSS Cluster API support for a database, either: -- Use the Cluster Manager UI to turn off the **OSS Cluster API** toggle from the database **Configuration** settings. +- Use the Cluster Manager UI to turn off the **OSS Cluster API** in the **Clustering** section of the database **Configuration** settings. - Use the appropriate utility to deactivate the OSS Cluster API setting. @@ -128,7 +124,7 @@ To deactivate OSS Cluster API support for a database, either: $ rladmin tune db oss_cluster disabled ``` - For Active-Active databases, use `crdb-cli`: + For Active-Active databases, use the Cluster Manager UI or `crdb-cli`: ```sh $ crdb-cli crdb update --crdb-guid \ diff --git a/content/operate/rs/databases/configure/proxy-policy.md b/content/operate/rs/databases/configure/proxy-policy.md index e224da374f..3d1744bf75 100644 --- a/content/operate/rs/databases/configure/proxy-policy.md +++ b/content/operate/rs/databases/configure/proxy-policy.md @@ -19,11 +19,11 @@ and wait for failovers. A database can have one of these proxy policies: -| **Proxy Policy** | **Description** | +| **Proxy policy** | **Description** | |------------|-----------------| | Single | There is only a single proxy that is bound to the database. This is the default database configuration and preferable in most use cases. | -| All Master Shards | There are multiple proxies that are bound to the database, one on each node that hosts a database master shard. This mode fits most use cases that require multiple proxies. | -| All Nodes | There are multiple proxies that are bound to the database, one on each node in the cluster, regardless of whether or not there is a shard from this database on the node. This mode should be used only in special cases, such as [using a load balancer]({{< relref "/operate/rs/networking/cluster-lba-setup.md" >}}). | +| All primary shards | There are multiple proxies that are bound to the database, one on each node that hosts a database primary shard. This mode fits most use cases that require multiple proxies. | +| All nodes | There are multiple proxies that are bound to the database, one on each node in the cluster, regardless of whether or not there is a shard from this database on the node. This mode should be used only in special cases, such as [using a load balancer]({{< relref "/operate/rs/networking/cluster-lba-setup.md" >}}). | {{< note >}} Manual intervention is also available via the rladmin bind add and @@ -64,7 +64,7 @@ cluster configuration: You can configure the proxy policy using the `bind` command in rladmin. The following command is an example that changes the bind policy for a database named "db1" with an endpoint id "1:1" to "All -Master Shards" proxy policy. +primary shards" proxy policy. ```sh rladmin bind db db1 endpoint 1:1 policy all-master-shards diff --git a/content/operate/rs/databases/configure/replica-ha.md b/content/operate/rs/databases/configure/replica-ha.md index 803acb1e21..5a111ea66f 100644 --- a/content/operate/rs/databases/configure/replica-ha.md +++ b/content/operate/rs/databases/configure/replica-ha.md @@ -12,7 +12,7 @@ weight: 50 --- When you enable [database replication]({{< relref "/operate/rs/databases/durability-ha/replication.md" >}}), -Redis Enterprise Software creates a replica of each primary (master) shard. The replica shard will always be +Redis Enterprise Software creates a replica of each primary shard. The replica shard will always be located on a different node than the primary shard to make your data highly available. If the primary shard fails or if the node hosting the primary shard fails, then the replica is promoted to primary. @@ -27,20 +27,20 @@ An available node: 1. Meets replica migration requirements, such as [rack-awareness]({{< relref "/operate/rs/clusters/configure/rack-zone-awareness.md" >}}). 1. Has enough available RAM to store the replica shard. -1. Does not also contain the master shard. +1. Does not also contain the primary shard. -In practice, replica migration creates a new replica shard and copies the data from the master shard to the new replica shard. +In practice, replica migration creates a new replica shard and copies the data from the primary shard to the new replica shard. For example: -1. Node:2 has a master shard and node:3 has the corresponding replica shard. +1. Node:2 has a primary shard and node:3 has the corresponding replica shard. 1. Either: - - Node:2 fails and the replica shard on node:3 is promoted to master. - - Node:3 fails and the master shard is no longer replicated to the replica shard on the failed node. + - Node:2 fails and the replica shard on node:3 is promoted to primary. + - Node:3 fails and the primary shard is no longer replicated to the replica shard on the failed node. 1. If replica HA is enabled, a new replica shard is created on an available node. -1. The data from the master shard is replicated to the new replica shard. +1. The data from the primary shard is replicated to the new replica shard. {{< note >}} - Replica HA follows all prerequisites of replica migration, such as [rack-awareness]({{< relref "/operate/rs/clusters/configure/rack-zone-awareness.md" >}}). @@ -50,7 +50,7 @@ For example: ## Configure high availability for replica shards If replica high availability is enabled for both the cluster and a database, -the database's replica shards automatically migrate to another node when a master or replica shard fails. +the database's replica shards automatically migrate to another node when a primary or replica shard fails. If replica HA is not enabled at the cluster level, replica HA will not migrate replica shards even if replica HA is enabled for a database. @@ -58,7 +58,7 @@ Replica high availability is enabled for the cluster by default. When you create a database using the Cluster Manager UI, replica high availability is enabled for the database by default if you enable replication. -{{When you select the Replication checkbox in the High availability & durability section of the database configuration screen, the Replica high availability checkbox is also selected by default.}} +{{When you select the Replication checkbox in the High availability section of the database configuration screen, the Replica high availability checkbox is also selected by default.}} To use replication without replication high availability, clear the **Replica high availability** checkbox. @@ -70,10 +70,6 @@ For Active-Active databases, replica HA is enabled for the database by default t ### Configure cluster policy for replica HA -{{}} -The replica HA cluster policy is deprecated as of Redis Enterprise Software version 7.2.4. -{{}} - To enable or turn off replica high availability by default for the entire cluster, use one of the following methods: - [rladmin tune cluster]({{< relref "/operate/rs/references/cli-utilities/rladmin/tune#tune-cluster" >}}): diff --git a/content/operate/rs/databases/durability-ha/db-availability.md b/content/operate/rs/databases/durability-ha/db-availability.md new file mode 100644 index 0000000000..870179667b --- /dev/null +++ b/content/operate/rs/databases/durability-ha/db-availability.md @@ -0,0 +1,59 @@ +--- +alwaysopen: false +categories: +- docs +- operate +- rs +db_type: database +description: Verify if a Redis Software database is available to perform read and write operations and can respond to queries from client applications. +linkTitle: Database availability +title: Check database availability +toc: 'true' +weight: 30 +--- + +You can use the [database availability API]({{}}) to verify whether a Redis Software database is available to perform read and write operations and can respond to queries from client applications. Load balancers and automated monitoring tools can use this API to monitor database availability. + +{{}} +Database availability does not guarantee data availability. +{{}} + +## Check database availability for monitoring + +To monitor database availability, use the following REST API request: + +```sh +GET /v1/bdbs//availability +``` + +If the OSS Cluster API is enabled, this request verifies all endpoints for this database are available. Otherwise, it verifies the database has at least one available endpoint. + +Returns the status code 200 OK if the database is available. + +If the database is unavailable, returns an error status code and a JSON object that contains [`error_code` and `description` fields]({{}}). + +## Check local database endpoint availability for load balancers + +To check database availability when using a load balancer and the recommended `all-nodes` proxy policy, use the local database endpoints for each node: + +```sh +GET /v1/local/bdbs//endpoint/availability +``` + +Returns the status code 200 OK if the local database endpoint is available. + +If the local database endpoint is unavailable, returns an error status code and a JSON object that contains [`error_code` and `description` fields]({{}}). + +## Availability by database status + +The following table shows the relationship between a database's status and availability. For more details about the database status values, see [BDB status field]({{}}). + +| Database status | Availability | +|-----------------|--------------| +| active | Available | +| active-change-pending | Available | +| creation-failed | :x: Not available | +| delete-pending | :warning: Availability not guaranteed | +| import-pending | Available | +| pending | Available | +| recovery | :x: Not available | diff --git a/content/operate/rs/databases/import-export/flush.md b/content/operate/rs/databases/import-export/flush.md index e0ae5e95fa..309ae15c81 100644 --- a/content/operate/rs/databases/import-export/flush.md +++ b/content/operate/rs/databases/import-export/flush.md @@ -46,18 +46,20 @@ Port 9443 is the default [port configuration]({{< relref "/operate/rs/networking When you flush an Active-Active database (formerly known as CRDB), all of the replicas flush their data at the same time. -To flush data from an Active-Active database: +To flush data from an Active-Active database, use one of the following methods: - Cluster Manager UI - 1. If you are using the new Cluster Manager UI, switch to the legacy admin console. + 1. On the **Databases** screen, select the database from the list, then click **Configuration**. - {{Select switch to legacy admin console from the dropdown.}} + 1. Click {{< image filename="/images/rs/buttons/button-toggle-actions-vertical.png#no-click" alt="Toggle actions button" width="22px" class="inline" >}} to open a list of additional actions. + + 1. Select **Flush database**. - 1. Go to **database** and select the Active-Active database that you want to flush. - 1. Go to **configuration** and click **Flush** at the bottom of the page. 1. Enter the name of the Active-Active database to confirm that you want to flush the data. + 1. Click **Flush**. + - Command line 1. To find the ID of the Active-Active database, run: diff --git a/content/operate/rs/databases/import-export/schedule-backups.md b/content/operate/rs/databases/import-export/schedule-backups.md index 192ba0dd30..bfb49e1a97 100644 --- a/content/operate/rs/databases/import-export/schedule-backups.md +++ b/content/operate/rs/databases/import-export/schedule-backups.md @@ -57,9 +57,9 @@ To schedule periodic backups for a database: 1. Select the **Edit** button. -1. Expand the **Scheduled backup** section. +1. Expand the **Durability** section. -1. Select **Add backup path** to open the **Path configuration** dialog. +1. In the **Scheduled backup** section, click **Add backup path** to open the **Path configuration** dialog. 1. Select the tab that corresponds to your storage location type, enter the location details, and select **Done**. diff --git a/content/operate/rs/databases/memory-performance/_index.md b/content/operate/rs/databases/memory-performance/_index.md index ccb9bc1cd2..9bf073ccb0 100644 --- a/content/operate/rs/databases/memory-performance/_index.md +++ b/content/operate/rs/databases/memory-performance/_index.md @@ -104,4 +104,10 @@ If applications need to access a value that is in flash, Redis Enterprise automatically brings the value into RAM. Depending on the flash hardware in use, applications experience slightly higher latency when bringing values back into RAM from flash. However subsequent -accesses to the same value is fast, once the value is in RAM. \ No newline at end of file +accesses to the same value is fast, once the value is in RAM. + +## Client-side caching + +Client-side caching allows Redis clients to store a subset of data in a local cache and avoid sending repeated requests to the Redis database. When used to cache frequently accessed data, this technique can improve performance by decreasing network traffic, latency, and load on the database. For more information about client-side caching, see the [client-side caching introduction]({{}}). + +Redis Software supports client-side caching for databases with Redis versions 7.4 and later. See [Client-side caching compatibility with Redis Software]({{}}) for more information about compatibility and configuration options. diff --git a/content/operate/rs/installing-upgrading/product-lifecycle.md b/content/operate/rs/installing-upgrading/product-lifecycle.md index 53cb837c9b..fd7622216e 100644 --- a/content/operate/rs/installing-upgrading/product-lifecycle.md +++ b/content/operate/rs/installing-upgrading/product-lifecycle.md @@ -40,7 +40,8 @@ This update to the EOL policy allows a lead time of at least 24 months to upgrad | Version - Release date | End of Life (EOL) | | ----------------------------------------- | ------------------ | -| 7.4 – February 2024 | - | +| 7.8 – November 2024 | - | +| 7.4 – February 2024 | November 30, 2026 | | 7.2 – August 2023 | February 28, 2026 | | 6.4 – February 2023 | August 31, 2025 | | 6.2 – August 2021 | February 28, 2025 | @@ -51,4 +52,8 @@ This update to the EOL policy allows a lead time of at least 24 months to upgrad {{}} -For detailed upgrade instructions, see [Upgrade a Redis Enterprise Software cluster]({{}}). \ No newline at end of file +For detailed upgrade instructions, see [Upgrade a Redis Enterprise Software cluster]({{}}). + +{{}} +Redis Enterprise for Kubernetes has its own support lifecycle, which accounts for the Kubernetes distribution lifecycle. For details, see [Supported Kubernetes distributions]({{}}). +{{}} diff --git a/content/operate/rs/installing-upgrading/quickstarts/docker-quickstart.md b/content/operate/rs/installing-upgrading/quickstarts/docker-quickstart.md index a77debbe13..267ac8ce36 100644 --- a/content/operate/rs/installing-upgrading/quickstarts/docker-quickstart.md +++ b/content/operate/rs/installing-upgrading/quickstarts/docker-quickstart.md @@ -70,7 +70,7 @@ with `-p :` or use the `--network host` option to ope ## Create a database -{{}} +{{}} {{< note >}} {{< embed-md "docker-memory-limitation.md" >}} diff --git a/content/operate/rs/installing-upgrading/quickstarts/redis-enterprise-software-quickstart.md b/content/operate/rs/installing-upgrading/quickstarts/redis-enterprise-software-quickstart.md index 7697342fcd..68ba845612 100644 --- a/content/operate/rs/installing-upgrading/quickstarts/redis-enterprise-software-quickstart.md +++ b/content/operate/rs/installing-upgrading/quickstarts/redis-enterprise-software-quickstart.md @@ -88,7 +88,7 @@ To set up your machine as a Redis Enterprise Software cluster: ## Create a database -{{}} +{{}} ## Connect to your database @@ -98,21 +98,5 @@ See [Test client connection]({{< relref "/operate/rs/databases/connect/test-clie ## Supported web browsers To use the Redis Enterprise Software Cluster Manager UI, you need a modern browser with JavaScript enabled. - -The following browsers have been tested with the current version of the Cluster Manager UI: - -- Microsoft Windows, version 10 or later. - - [Google Chrome](https://www.google.com/chrome/), version 48 and later - - [Microsoft Edge](https://www.microsoft.com/edge), version 20 and later - - [Mozilla Firefox](https://www.mozilla.org/firefox/), version 44 and and later - - [Opera](https://www.opera.com/), version 35 and later - -- Apple macOS: - - [Google Chrome](https://www.google.com/chrome/), version 48 and later - - [Mozilla Firefox](https://www.mozilla.org/firefox/), version 44 and and later - - [Opera](https://www.opera.com/), version 35 and later - -- Linux: - - [Google Chrome](https://www.google.com/chrome/), version 49 and later - - [Mozilla Firefox](https://www.mozilla.org/firefox/), version 44 and and later - - [Opera](https://www.opera.com/), version 35 and later + +The Cluster Manager UI is officially supported for the latest version of [Google Chrome](https://www.google.com/chrome/), as well as the three previous and three subsequent versions. diff --git a/content/operate/rs/installing-upgrading/upgrading/upgrade-active-active.md b/content/operate/rs/installing-upgrading/upgrading/upgrade-active-active.md index c06a7efd16..8ffe7c742e 100644 --- a/content/operate/rs/installing-upgrading/upgrading/upgrade-active-active.md +++ b/content/operate/rs/installing-upgrading/upgrading/upgrade-active-active.md @@ -68,15 +68,11 @@ To upgrade an Active-Active database (CRDB) instance: {{< image filename="/images/rs/crdb-upgrade-node.png" >}} -1. To upgrade each Active-Active instance, including the Redis version and CRDB protocol version, run: +1. To upgrade each Active-Active instance and its modules, including the Redis version and CRDB protocol version, run: - - To upgrade a database without modules: - - ```sh - rladmin upgrade db - ``` - - - If the database has modules enabled and new module versions are available in the cluster, run `rladmin upgrade db` with additional parameters to upgrade the module versions when you upgrade the database. See [Upgrade modules]({{< relref "/operate/oss_and_stack/stack-with-enterprise/install/upgrade-module" >}}) for more details. + ```sh + rladmin upgrade db + ``` If the protocol version is old, read the warning message carefully and confirm. diff --git a/content/operate/rs/installing-upgrading/upgrading/upgrade-cluster.md b/content/operate/rs/installing-upgrading/upgrading/upgrade-cluster.md index e050ce9633..51c4ff0fbf 100644 --- a/content/operate/rs/installing-upgrading/upgrading/upgrade-cluster.md +++ b/content/operate/rs/installing-upgrading/upgrading/upgrade-cluster.md @@ -16,6 +16,10 @@ tocEmbedHeaders: true See the [Redis Enterprise Software product lifecycle]({{}}) for more information about release numbers and the end-of-life schedule. +{{}} +Redis Enterprise for Kubernetes has its own support lifecycle, which accounts for the Kubernetes distribution lifecycle. For details, see [Supported Kubernetes distributions]({{}}). +{{}} + ## Upgrade prerequisites Before upgrading a cluster: diff --git a/content/operate/rs/installing-upgrading/upgrading/upgrade-database.md b/content/operate/rs/installing-upgrading/upgrading/upgrade-database.md index 1996885082..17f4dd4e21 100644 --- a/content/operate/rs/installing-upgrading/upgrading/upgrade-database.md +++ b/content/operate/rs/installing-upgrading/upgrading/upgrade-database.md @@ -25,9 +25,10 @@ To view available Redis database versions: The default Redis database version differs between Redis Enterprise releases as follows: -| Redis
Enterprise | Bundled Redis
DB versions | Default DB version
(upgraded/new databases) | +| Redis
Software | Bundled Redis
DB versions | Default DB version
(upgraded/new databases) | |-------|----------|-----| -| 7.4.2 | 6.0, 6.2, 7.2 | 7.2 | +| 7.8.2 | 6.2, 7.2, 7.4 | 7.4 | +| 7.4.x | 6.0, 6.2, 7.2 | 7.2 | | 7.2.4 | 6.0, 6.2, 7.2 | 7.2 | | 6.4.2 | 6.0, 6.2 | 6.2 | | 6.2.x | 6.0, 6.2 | 6.0 | @@ -81,7 +82,7 @@ To upgrade a database: 1. Use [`rladmin`]({{< relref "/operate/rs/references/cli-utilities/rladmin/upgrade" >}}) to upgrade the database. During the upgrade process, the database will restart without losing any data. - - To upgrade a database without modules: + - To upgrade a database and its modules: ``` shell rladmin upgrade db @@ -99,8 +100,6 @@ To upgrade a database: Done ``` - - If the database has modules enabled and new module versions are available in the cluster, run `rladmin upgrade db` with additional parameters to upgrade the module versions when you upgrade the database. See [Upgrade modules]({{< relref "/operate/oss_and_stack/stack-with-enterprise/install/upgrade-module" >}}) for more details. - - To upgrade the database to a version other than the default version, use the `redis_version` parameter: ```sh diff --git a/content/operate/rs/networking/port-configurations.md b/content/operate/rs/networking/port-configurations.md index d0df735d01..388cf6141f 100644 --- a/content/operate/rs/networking/port-configurations.md +++ b/content/operate/rs/networking/port-configurations.md @@ -27,16 +27,16 @@ Redis Enterprise Software's port usage falls into three general categories: | Protocol | Port | Configurable | Connection source | Description | |----------|------|--------------|-------------------|-------------| | TCP | 8001 | ❌ No | Internal, External | Traffic from application to Redis Enterprise Software [Discovery Service]({{< relref "/operate/rs/databases/durability-ha/discovery-service.md" >}}) | -| TCP | 8000, 8070, 8071, 9090, 9125 | ❌ No | Internal, External | Metrics exported and managed by the web proxy | +| TCP | 8070 | ❌ No | External | Metrics exported and managed by the web proxy | +| TCP | 3347-3349, 8000, 8071, 9091, 9125 | ❌ No | Internal | Internal metrics ports | | TCP | 8443 | ✅ Yes | Internal, External | Secure (HTTPS) access to the management web UI | | TCP | 9081 | ✅ Yes | Internal | CRDB coordinator for Active-Active management (internal) | -| TCP | 9443 (Recommended), 8080 | ✅ Yes | Internal, External, Active-Active | REST API traffic, including cluster management and node bootstrap | +| TCP | 9443, 8080 | ✅ Yes | Internal, External, Active-Active | REST API traffic, including cluster management and node bootstrap | | TCP | 10050 | ❌ No | Internal | Zabbix monitoring | | TCP | 10000-10049, 10051-19999 | ✅ Yes | Internal, External, Active-Active | Database traffic | | UDP | 53, 5353 | ❌ No | Internal, External | DNS/mDNS traffic | -| ICMP | * | ❌ No | Internal | Connectivity checking between nodes | | TCP | 1968 | ❌ No | Internal | Proxy traffic | -| TCP | 3333-3345, 36379, 36380 | ❌ No | Internal | Internode communication | +| TCP | 3333-3345, 3350, 36379, 36380 | ❌ No | Internal | Internode communication | | TCP | 20000-29999 | ❌ No | Internal | Database shard traffic | | TCP | 8002, 8004, 8006 | ✅ Yes | Internal | Default system health monitoring (envoy admin, envoy management server, gossip envoy admin)| | TCP | 8444, 9080 | ❌ No | Internal | Traffic between web proxy and cnm_http/cm | diff --git a/content/operate/rs/references/cli-utilities/rladmin/status.md b/content/operate/rs/references/cli-utilities/rladmin/status.md index 39272159c3..f76fba1b19 100644 --- a/content/operate/rs/references/cli-utilities/rladmin/status.md +++ b/content/operate/rs/references/cli-utilities/rladmin/status.md @@ -189,7 +189,7 @@ Displays the current status of modules installed on the cluster and modules used ``` sh rladmin status modules [ db { db: | } ... { db: | } ] - [ extra { all | min_redis_version | module_id } ] + [ extra { all | compatible_redis_version | min_redis_version | module_id } ] ``` ### Parameters @@ -199,6 +199,7 @@ rladmin status modules | db db:\ | Provide a list of database IDs to show only modules used by the specified databases
(for example: `rladmin status modules db db:1 db:2`) | | db \ | Provide a list of database names to show only modules used by the specified databases
(for example: `rladmin status modules db name1 name2`) | | extra all | Shows all extra information | +| extra compatible_redis_version | Shows the compatible Redis database version for the module | | extra module_id | Shows module IDs | | extra min_redis_version | Shows the minimum compatible Redis database version for each module | diff --git a/content/operate/rs/references/cli-utilities/rladmin/tune.md b/content/operate/rs/references/cli-utilities/rladmin/tune.md index 189f4e32b9..30cf6a8006 100644 --- a/content/operate/rs/references/cli-utilities/rladmin/tune.md +++ b/content/operate/rs/references/cli-utilities/rladmin/tune.md @@ -47,6 +47,9 @@ rladmin tune cluster [ acl_pubsub_default { resetchannels | allchannels } ] [ resp3_default { enabled | disabled } ] [ automatic_node_offload { enabled | disabled } ] + [ default_tracking_table_max_keys_policy ] + [ default_oss_sharding { enabled | disabled } ] + ] ``` ### Parameters @@ -59,9 +62,11 @@ rladmin tune cluster | db_conns_auditing | `enabled`
`disabled` | Activates or deactivates [connection auditing]({{< relref "/operate/rs/security/audit-events" >}}) by default for new databases of a cluster | | default_concurrent_restore_actions | integer
`all` | Default number of concurrent actions when restoring a node from a snapshot (positive integer or "all") | | default_non_sharded_proxy_policy | `single`

`all-master-shards`

`all-nodes` | Default [proxy policy]({{< relref "/operate/rs/databases/configure/proxy-policy" >}}) for newly created non-sharded databases' endpoints | +| default_oss_sharding | `enabled`
`disabled` | Default hashing policy to use for new databases. Set to `disabled` by default. This field is for future use only and should not be changed. | | default_redis_version | version number | The default Redis database compatibility version used to create new databases.

The value parameter should be a version number in the form of "x.y" where _x_ represents the major version number and _y_ represents the minor version number. The final value corresponds to the desired version of Redis.

You cannot set _default_redis_version_ to a value higher than that supported by the current _redis_upgrade_policy_ value. | | default_sharded_proxy_policy | `single`

`all-master-shards`

`all-nodes` | Default [proxy policy]({{< relref "/operate/rs/databases/configure/proxy-policy" >}}) for newly created sharded databases' endpoints | | default_shards_placement | `dense`
`sparse` | New databases place shards according to the default [shard placement policy]({{< relref "/operate/rs/databases/memory-performance/shard-placement-policy" >}}) | +| default_tracking_table_max_keys_policy | integer (default: 1000000) | Defines the default value of the client-side caching invalidation table size for new databases. 0 makes the cache unlimited. | | expose_hostnames_for_all_suffixes | `enabled`
`disabled` | Exposes hostnames for all DNS suffixes | | failure_detection_sensitivity | `high`
`low` | Predefined thresholds and timeouts for failure detection (previously known as `watchdog_profile`)
• `high` (previously `local-network`) – high failure detection sensitivity, lower thresholds, faster failure detection and failover
• `low` (previously `cloud`) – low failure detection sensitivity, higher tolerance for latency variance (also called network jitter) | | login_lockout_counter_reset_after | time in seconds | Time after failed login attempt before the counter resets to 0 | @@ -141,6 +146,7 @@ rladmin tune db { db: | } [ data_internode_encryption { enabled | disabled } ] [ db_conns_auditing { enabled | disabled } ] [ resp3 { enabled | disabled } ] + [ tracking_table_max_keys ] ``` ### Parameters @@ -186,6 +192,7 @@ rladmin tune db { db: | } | slave_ha_priority | integer | Priority of the database in the replica high-availability mechanism | | syncer_mode | `distributed`
`centralized`| Configures syncer to run in distributed or centralized mode. For distributed syncer, the DMC policy must be all-nodes or all-master-nodes | | syncer_monitoring | `enabled`
`disabled` | Activates syncer monitoring | +| tracking_table_max_keys | integer | The client-side caching invalidation table size. 0 makes the cache unlimited. | | XADD behavior mode | Description | | - | - | diff --git a/content/operate/rs/references/cli-utilities/rladmin/upgrade.md b/content/operate/rs/references/cli-utilities/rladmin/upgrade.md index fca8a73a5b..8e61d84142 100644 --- a/content/operate/rs/references/cli-utilities/rladmin/upgrade.md +++ b/content/operate/rs/references/cli-utilities/rladmin/upgrade.md @@ -35,18 +35,20 @@ rladmin upgrade db { db: | } As of v6.2.4, the default behavior for `upgrade db` has changed. It is now controlled by a new parameter that sets the default upgrade policy used to create new databases and to upgrade ones already in the cluster. To learn more, see [`tune cluster default_redis_version`]({{< relref "/operate/rs/references/cli-utilities/rladmin/tune#tune-cluster" >}}). +As of Redis Enterprise Software version 7.8.2, `upgrade db` will always upgrade modules. + ### Parameters | Parameters | Type/Value | Description | |----------------------------|--------------------------|------------------------------------------------------------------------------------------------------------------------| | db | db:\
name | Database to upgrade | -| and module | [upgrade module](#upgrade-module) command | Clause that allows the upgrade of a database and a specified Redis module in a single step with only one restart (can be specified multiple times) | +| and module | [upgrade module](#upgrade-module) command | Clause that allows the upgrade of a database and a specified Redis module in a single step with only one restart (can be specified multiple times). Deprecated as of Redis Enterprise Software v7.8.2. | | discard_data | | Indicates that data will not be saved after the upgrade | | force | | Forces upgrade and skips warnings and confirmations | | force_discard | | Forces `discard_data` if replication or persistence is enabled | | keep_crdt_protocol_version | | Keeps the current CRDT protocol version | -| keep_redis_version | | Upgrades to a new patch release, not to the latest major.minor version | -| latest_with_modules | | Upgrades the Redis Enterprise Software version and all modules in the database | +| keep_redis_version | | Upgrades to a new patch release, not to the latest major.minor version. Deprecated as of Redis Enterprise Software v7.8.2. To upgrade modules without upgrading the Redis database version, set `redis_version` to the current Redis database version instead. | +| latest_with_modules | | Upgrades the Redis Enterprise Software version and all modules in the database. As of Redis Enterprise Software version 7.8.2, `upgrade db` will always upgrade modules. | | parallel_shards_upgrade | integer
'all' | Maximum number of shards to upgrade all at once | | preserve_roles | | Performs an additional failover to guarantee the shards' roles are preserved | | redis_version | Redis version | Upgrades the database to the specified version instead of the latest version | @@ -72,7 +74,7 @@ Done ## `upgrade module` -Upgrades Redis modules in use by a specific database. +Upgrades Redis modules in use by a specific database. Deprecated as of Redis Enterprise Software v7.8.2. Use [`upgrade db`](#upgrade-db) instead. For more information, see [Upgrade modules]({{< relref "/operate/oss_and_stack/stack-with-enterprise/install/upgrade-module" >}}). diff --git a/content/operate/rs/references/compatibility/_index.md b/content/operate/rs/references/compatibility/_index.md index 0c39452568..66ca2d873a 100644 --- a/content/operate/rs/references/compatibility/_index.md +++ b/content/operate/rs/references/compatibility/_index.md @@ -20,6 +20,10 @@ Both Redis Enterprise Software and [Redis Cloud]({{< relref "/operate/rc" >}}) a Redis Enterprise Software and Redis Cloud support RESP2 and RESP3. See [RESP compatibility with Redis Enterprise]({{< relref "/operate/rs/references/compatibility/resp" >}}) for more information. +## Client-side caching compatibility + +Redis Software and Redis Cloud support [client-side caching]({{}}) for databases with Redis versions 7.4 or later. See [Client-side caching compatibility with Redis Software and Redis Cloud]({{}}) for more information about compatibility and configuration options. + ## Compatibility with open source Redis Cluster API Redis Enterprise supports [Redis OSS Cluster API]({{< relref "/operate/rs/clusters/optimize/oss-cluster-api" >}}) if it is enabled for a database. For more information, see [Enable OSS Cluster API]({{< relref "/operate/rs/databases/configure/oss-cluster-api" >}}). diff --git a/content/operate/rs/references/compatibility/client-side-caching.md b/content/operate/rs/references/compatibility/client-side-caching.md new file mode 100644 index 0000000000..1a3c2859c1 --- /dev/null +++ b/content/operate/rs/references/compatibility/client-side-caching.md @@ -0,0 +1,84 @@ +--- +Title: Client-side caching compatibility with Redis Software and Redis Cloud +alwaysopen: false +categories: +- docs +- operate +- rs +description: Redis Software and Redis Cloud compatibility with client-side caching. +linkTitle: Client-side caching +toc: 'true' +weight: 80 +--- + +Redis Software and Redis Cloud support [client-side caching]({{}}) for databases with Redis versions 7.4 or later. + +## Required database versions + +Client-side caching in Redis Software and Redis Cloud requires Redis database versions 7.4 or later. + +The following table shows the differences in client-side caching support by product: + +| Redis product | Client-side caching support | +|-------------------------|-----------------------------| +| Redis Community Edition | Redis v6.0 and later | +| Redis Cloud | Redis database v7.4 and later | +| Redis Software | Redis database v7.4 and later | + +## Supported RESP versions + +Client-side caching in Redis Software and Redis Cloud requires [RESP3]({{< relref "/develop/reference/protocol-spec#resp-versions" >}}). + +The following table shows the differences in client-side caching support for RESP by product: + +| Redis product with client-side caching | RESP2 | RESP3 | +|-------------------------|-------|-------| +| Redis Community Edition | | | +| Redis Cloud | | | +| Redis Software | | | + +## Two connections mode with REDIRECT not supported + +Unlike Redis Community Edition, Redis Software and Redis Cloud do not support [two connections mode]({{}}) or the `REDIRECT` option for [`CLIENT TRACKING`]({{}}). + +## Change tracking_table_max_keys for a database + +When client-side caching is enabled, Redis uses an invalidation table to track which keys are cached by each connected client. + +The configuration setting `tracking-table-max-keys` determines the maximum number of keys stored in the invalidation table and is set to `1000000` keys by default. Redis Software does not support using `CONFIG SET` to change this value, but you can use the REST API or rladmin instead. + +To change `tracking_table_max_keys` for a database in a Redis Software cluster: + +- [`rladmin tune db`]({{}}): + + ```sh + rladmin tune db db: tracking_table_max_keys 2000000 + ``` + + You can use the database name in place of `db:` in the preceding command. + +- [Update database configuration]({{}}) REST API request: + + ```sh + PUT /v1/bdbs/ + { "tracking_table_max_keys": 2000000 } + ``` + +## Change default tracking_table_max_keys + +The cluster-wide option `default_tracking_table_max_keys_policy` determines the default value of `tracking_table_max_keys` for new databases in a Redis Software cluster. `default_tracking_table_max_keys_policy` is set to `1000000` keys by default. + +To change `default_tracking_table_max_keys_policy`, use one of the following methods: + +- [`rladmin tune cluster`]({{}}) + + ```sh + rladmin tune cluster default_tracking_table_max_keys_policy 2000000 + ``` + +- [Update cluster policy]({{}}) REST API request: + + ```sh + PUT /v1/cluster/policy + { "default_tracking_table_max_keys_policy": 2000000 } + ``` diff --git a/content/operate/rs/references/compatibility/commands/connection.md b/content/operate/rs/references/compatibility/commands/connection.md index 5d7375effb..bf297f2d3c 100644 --- a/content/operate/rs/references/compatibility/commands/connection.md +++ b/content/operate/rs/references/compatibility/commands/connection.md @@ -30,8 +30,8 @@ The following tables show which Redis Community Edition [connection management c | [CLIENT REPLY]({{< relref "/commands/client-reply" >}}) | ❌ Standard
❌ Active-Active | ❌ Standard
❌ Active-Active | | | [CLIENT SETINFO]({{< relref "/commands/client-setinfo" >}}) | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | | [CLIENT SETNAME]({{< relref "/commands/client-setname" >}}) | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | -| [CLIENT TRACKING]({{< relref "/commands/client-tracking" >}}) | ❌ Standard
❌ Active-Active | ❌ Standard
❌ Active-Active | | -| [CLIENT TRACKINGINFO]({{< relref "/commands/client-trackinginfo" >}}) | ❌ Standard
❌ Active-Active | ❌ Standard
❌ Active-Active | | +| [CLIENT TRACKING]({{< relref "/commands/client-tracking" >}}) | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | +| [CLIENT TRACKINGINFO]({{< relref "/commands/client-trackinginfo" >}}) |✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | | [CLIENT UNBLOCK]({{< relref "/commands/client-unblock" >}}) | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | | [CLIENT UNPAUSE]({{< relref "/commands/client-unpause" >}}) | ❌ Standard
❌ Active-Active | ❌ Standard
❌ Active-Active | | | [ECHO]({{< relref "/commands/echo" >}}) | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | diff --git a/content/operate/rs/references/compatibility/commands/data-types.md b/content/operate/rs/references/compatibility/commands/data-types.md index 0b5e08a01a..a2bc57cb13 100644 --- a/content/operate/rs/references/compatibility/commands/data-types.md +++ b/content/operate/rs/references/compatibility/commands/data-types.md @@ -50,6 +50,9 @@ The following tables show which Redis Community Edition data type commands are c |:--------|:----------------------|:-----------------|:------| | [HDEL]({{< relref "/commands/hdel" >}}) | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | | [HEXISTS]({{< relref "/commands/hexists" >}}) | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | +| [HEXPIRE]({{< relref "/commands/hexpire" >}}) | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | +| [HEXPIREAT]({{< relref "/commands/hexpireat" >}}) | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | +| [HEXPIRETIME]({{< relref "/commands/hexpiretime" >}}) | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | | [HGET]({{< relref "/commands/hget" >}}) | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | | [HGETALL]({{< relref "/commands/hgetall" >}}) | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | | [HINCRBY]({{< relref "/commands/hincrby" >}}) | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | @@ -58,11 +61,17 @@ The following tables show which Redis Community Edition data type commands are c | [HLEN]({{< relref "/commands/hlen" >}}) | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | | [HMGET]({{< relref "/commands/hmget" >}}) | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | | [HMSET]({{< relref "/commands/hmset" >}}) | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | Deprecated as of Redis v4.0.0. | +| [HPERSIST]({{< relref "/commands/hpersist" >}}) | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | +| [HPEXPIRE]({{< relref "/commands/hpexpire" >}}) | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | +| [HPEXPIREAT]({{< relref "/commands/hpexpireat" >}}) | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | +| [HPEXPIRETIME]({{< relref "/commands/hpexpiretime" >}}) | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | +| [HPTTL]({{< relref "/commands/hpttl" >}}) | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | | [HRANDFIELD]({{< relref "/commands/hrandfield" >}}) | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | | [HSCAN]({{< relref "/commands/hscan" >}}) | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | | [HSET]({{< relref "/commands/hset" >}}) | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | | [HSETNX]({{< relref "/commands/hsetnx" >}}) | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | | [HSTRLEN]({{< relref "/commands/hstrlen" >}}) | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | +| [HTTL]({{< relref "/commands/httl" >}}) | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | | [HVALS]({{< relref "/commands/hvals" >}}) | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | diff --git a/content/operate/rs/references/compatibility/config-settings.md b/content/operate/rs/references/compatibility/config-settings.md index 28cd81b7c9..df5ac53de0 100644 --- a/content/operate/rs/references/compatibility/config-settings.md +++ b/content/operate/rs/references/compatibility/config-settings.md @@ -32,6 +32,7 @@ Redis Enterprise Software and [Redis Cloud]({{< relref "/operate/rc" >}}) only s | slowlog-max-len | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | Value must be between 128 and 1024. | | stream-node-max-bytes | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | | stream-node-max-entries | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | +| tracking-table-max-keys | ❌ Standard
❌ Active-Active | ❌ Standard
❌ Active-Active | For Redis Software, use an [update database configuration]({{}}) REST API request or [`rladmin tune db`]({{}}) to set `tracking_table_max_keys` instead. | | zset-max-listpack-entries | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | | zset-max-listpack-value | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | | zset-max-ziplist-entries | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | diff --git a/content/operate/rs/references/rest-api/objects/bdb/_index.md b/content/operate/rs/references/rest-api/objects/bdb/_index.md index 32a56d1ca4..1628eefdbe 100644 --- a/content/operate/rs/references/rest-api/objects/bdb/_index.md +++ b/content/operate/rs/references/rest-api/objects/bdb/_index.md @@ -29,7 +29,7 @@ An API object that represents a managed database in the cluster. | authorized_subjects | {{}}[{
"CN": string,
"O": string,
"OU": [array of strings],
"L": string,
"ST": string,
"C": string
}, ...]{{
}} A list of valid subjects used for additional certificate validations during TLS client authentication. All subject attributes are case-sensitive.
**Required subject fields**:
"CN" for Common Name
**Optional subject fields:**
"O" for Organization
"OU" for Organizational Unit (array of strings)
"L" for Locality (city)
"ST" for State/Province
"C" for 2-letter country code | | auto_upgrade | boolean (default: false); Upgrade the database automatically after a cluster upgrade | | avoid_nodes | array of strings; Cluster node UIDs to avoid when placing the database's shards and binding its endpoints | -| background_op | {{}}[{
"status": string,
"name": string,
"error": object,
"progress": number
}, ...]{{
}} (read-only); **progress**: Percent of completed steps in current operation | +| background_op | Deprecated as of Redis Enterprise Software v7.8.2. Use [`GET /v1/actions/bdb/`]({{}}) instead.
{{}}[{
"status": string,
"name": string,
"error": object,
"progress": number
}, ...]{{
}} (read-only); **progress**: Percent of completed steps in current operation | | backup | boolean (default: false); Policy for periodic database backup | | backup_failure_reason | Reason of last failed backup process (read-only)
Values:
'no-permission'
'wrong-file-path'
'general-error' | | backup_history | integer (default: 0); Backup history retention policy (number of days, 0 is forever) | @@ -57,6 +57,7 @@ An API object that represents a managed database in the cluster. | crdt_replicas | string; Replica set configuration, for internal use only. | | crdt_sources | array of [syncer_sources]({{< relref "/operate/rs/references/rest-api/objects/bdb/syncer_sources" >}}) objects; Remote endpoints/peers of CRDB database to sync from. See the 'bdb -\> replica_sources' section | | crdt_sync | Enable, disable, or pause syncing from specified crdt_sources. Applicable only for Active-Active databases. See [replica_sync]({{< relref "/operate/rs/references/rest-api/objects/bdb/replica_sync" >}}) for more details.
Values:
'enabled'
**'disabled'**
'paused'
'stopped' | +| crdt_sync_connection_alarm_timeout_seconds | integer (default: 0); If the syncer takes longer than the specified number of seconds to connect to an Active-Active database, raise a connection alarm | | crdt_sync_dist | boolean; Enable/disable distributed syncer in master-master | | crdt_syncer_auto_oom_unlatch | boolean (default: true); Syncer automatically attempts to recover synchronisation from peers after this database throws an Out-Of-Memory error. Otherwise, the syncer exits | | crdt_xadd_id_uniqueness_mode | XADD strict ID uniqueness mode. CRDT only.
Values:
‘liberal’
**‘strict’**
‘semi-strict’ | @@ -101,7 +102,7 @@ An API object that represents a managed database in the cluster. | memory_size | integer (default: 0); Database memory limit (0 is unlimited), expressed in bytes. | | metrics_export_all | boolean; Enable/disable exposing all shard metrics through the metrics exporter | | mkms | boolean (default: true); Are MKMS (Multi Key Multi Slots) commands supported? | -| module_list | {{}}[{
"module_id": string,
"module_args": [
u'string',
u'null'],
"module_name": string,
"semantic_version": string
}, ...]{{
}} List of modules associated with the database

**module_id**: Module UID
**module_args**: Module command-line arguments (pattern does not allow special characters &,\<,>,")
**module_name**: Module's name
**semantic_version**: Module's semantic version

As of Redis Enterprise Software v7.4.2, **module_id** and **semantic_version** are optional. | +| module_list | {{}}[{
"module_id": string,
"module_args": [
u'string',
u'null'],
"module_name": string,
"semantic_version": string
}, ...]{{
}} List of modules associated with the database

**module_id**: Module UID (deprecated; use `module_name` instead)
**module_args**: Module command-line arguments (pattern does not allow special characters &,\<,>,")
**module_name**: Module's name
**semantic_version**: Module's semantic version (deprecated; use `module_args` instead)

**module_id** and **semantic_version** are optional as of Redis Enterprise Software v7.4.2 and deprecated as of v7.8.2. | | mtls_allow_outdated_certs | boolean; An optional mTLS relaxation flag for certs verification | | mtls_allow_weak_hashing | boolean; An optional mTLS relaxation flag for certs verification | | name | string; Database name. Only letters, numbers, or hyphens are valid characters. The name must start and end with a letter or number. | @@ -117,6 +118,7 @@ An API object that represents a managed database in the cluster. | repl_backlog_size | string; Redis replication backlog size ('auto' or size in bytes) | | replica_sources | array of [syncer_sources]({{< relref "/operate/rs/references/rest-api/objects/bdb/syncer_sources" >}}) objects; Remote endpoints of database to sync from. See the 'bdb -\> replica_sources' section | | [replica_sync]({{< relref "/operate/rs/references/rest-api/objects/bdb/replica_sync" >}}) | Enable, disable, or pause syncing from specified replica_sources
Values:
'enabled'
**'disabled'**
'paused'
'stopped' | +| replica_sync_connection_alarm_timeout_seconds | integer (default: 0); If the syncer takes longer than the specified number of seconds to connect to a replica, raise a connection alarm | | replica_sync_dist | boolean; Enable/disable distributed syncer in replica-of | | replication | boolean (default: false); In-memory database replication mode | | resp3 | boolean (default: true); Enables or deactivates RESP3 support | @@ -144,6 +146,7 @@ An API object that represents a managed database in the cluster. | syncer_mode | The syncer for replication between database instances is either on a single node (centralized) or on each node that has a proxy according to the proxy policy (distributed). (read-only)
Values:
'distributed'
'centralized' | | tags | {{}}[{
"key": string,
"value": string
}, ...]{{
}} Optional list of tag objects attached to the database. Each tag requires a key-value pair.
**key**: Represents the tag's meaning and must be unique among tags (pattern does not allow special characters &,\<,>,")
**value**: The tag's value.| | tls_mode | Require TLS-authenticated and encrypted connections to the database
Values:
'enabled'
**'disabled'**
'replica_ssl' | +| tracking_table_max_keys | integer; The client-side caching invalidation table size. 0 makes the cache unlimited. | | type | Type of database
Values:
**'redis'**
'memcached' | | use_nodes | array of strings; Cluster node UIDs to use for database shards and bound endpoints | | version | string; Database compatibility version: full Redis/memcached version number, such as 6.0.6. This value can only change during database creation and database upgrades.| diff --git a/content/operate/rs/references/rest-api/objects/cluster/_index.md b/content/operate/rs/references/rest-api/objects/cluster/_index.md index c54b49279b..71aa443db9 100644 --- a/content/operate/rs/references/rest-api/objects/cluster/_index.md +++ b/content/operate/rs/references/rest-api/objects/cluster/_index.md @@ -50,6 +50,7 @@ An API object that represents the cluster. | name | string | Cluster's fully qualified domain name (read-only) | | password_complexity | boolean (default: false) | Enforce password complexity policy | | password_expiration_duration | integer (default: 0) | The number of days a password is valid until the user is required to replace it | +| password_min_length | integer, (range: 8-256) (default: 8) | The minimum length required for a password. | | proxy_certificate | string | Cluster's proxy certificate | | proxy_max_ccs_disconnection_time | integer | Cluster-wide proxy timeout policy between proxy and CCS | | rack_aware | boolean | Cluster operates in a rack-aware mode (read-only) | diff --git a/content/operate/rs/references/rest-api/objects/cluster/alert_settings.md b/content/operate/rs/references/rest-api/objects/cluster/alert_settings.md index ddc9415b39..4203026ebb 100644 --- a/content/operate/rs/references/rest-api/objects/cluster/alert_settings.md +++ b/content/operate/rs/references/rest-api/objects/cluster/alert_settings.md @@ -13,30 +13,31 @@ weight: $weight | Name | Type/Value | Description | |------|------------|-------------| -| cluster_certs_about_to_expire | [cluster_alert_settings_with_threshold]({{< relref "/operate/rs/references/rest-api/objects/cluster/cluster_alert_settings_with_threshold" >}}) object | Cluster certificate will expire in x days | -| cluster_even_node_count | boolean (default: false) | True high availability requires an odd number of nodes in the cluster | -| cluster_flash_overcommit | boolean (default: false) | Flash memory committed to databases is larger than cluster total flash memory | -| cluster_inconsistent_redis_sw | boolean (default: false) | Some shards in the cluster are running different versions of Redis software | -| cluster_inconsistent_rl_sw | boolean (default: false) | Some nodes in the cluster are running different versions of Redis Enterprise software | -| cluster_internal_bdb | boolean (default: false) | Issues with internal cluster databases | -| cluster_multiple_nodes_down | boolean (default: false) | Multiple cluster nodes are down (this might cause data loss) | -| cluster_node_joined | boolean (default: false) | New node joined the cluster | -| cluster_node_remove_abort_completed | boolean (default: false) | Cancel node remove operation completed | -| cluster_node_remove_abort_failed | boolean (default: false) | Cancel node remove operation failed | -| cluster_node_remove_completed | boolean (default: false) | Node removed from the cluster | -| cluster_node_remove_failed | boolean (default: false) | Failed to remove a node from the cluster | -| cluster_ocsp_query_failed | boolean (default: false) | Failed to query the OCSP server | -| cluster_ocsp_status_revoked | boolean (default: false) | OCSP certificate status is REVOKED | -| cluster_ram_overcommit | boolean (default: false) | RAM committed to databases is larger than cluster total RAM | -| cluster_too_few_nodes_for_replication | boolean (default: false) | Replication requires at least 2 nodes in the cluster | -| node_aof_slow_disk_io | boolean (default: false) | AOF reaching disk I/O limits -| node_checks_error | boolean (default: false) | Some node checks have failed | -| node_cpu_utilization | [cluster_alert_settings_with_threshold]({{< relref "/operate/rs/references/rest-api/objects/cluster/cluster_alert_settings_with_threshold" >}}) object | Node CPU utilization has reached the threshold value (% of the utilization limit) | -| node_ephemeral_storage | [cluster_alert_settings_with_threshold]({{< relref "/operate/rs/references/rest-api/objects/cluster/cluster_alert_settings_with_threshold" >}}) object | Node ephemeral storage has reached the threshold value (% of the storage limit) | -| node_failed | boolean (default: false) | Node failed | -| node_free_flash | [cluster_alert_settings_with_threshold]({{< relref "/operate/rs/references/rest-api/objects/cluster/cluster_alert_settings_with_threshold" >}}) object | Node flash storage has reached the threshold value (% of the storage limit) | -| node_insufficient_disk_aofrw | boolean (default: false) | Insufficient AOF disk space | -| node_internal_certs_about_to_expire | [cluster_alert_settings_with_threshold]({{< relref "/operate/rs/references/rest-api/objects/cluster/cluster_alert_settings_with_threshold" >}}) object| Internal certificate on node will expire in x days | -| node_memory | [cluster_alert_settings_with_threshold]({{< relref "/operate/rs/references/rest-api/objects/cluster/cluster_alert_settings_with_threshold" >}}) object | Node memory has reached the threshold value (% of the memory limit) | -| node_net_throughput | [cluster_alert_settings_with_threshold]({{< relref "/operate/rs/references/rest-api/objects/cluster/cluster_alert_settings_with_threshold" >}}) object | Node network throughput has reached the threshold value (bytes/s) | -| node_persistent_storage | [cluster_alert_settings_with_threshold]({{< relref "/operate/rs/references/rest-api/objects/cluster/cluster_alert_settings_with_threshold" >}}) object | Node persistent storage has reached the threshold value (% of the storage limit) | +| cluster_certs_about_to_expire | [cluster_alert_settings_with_threshold]({{< relref "/operate/rs/references/rest-api/objects/cluster/cluster_alert_settings_with_threshold" >}}) object | Cluster certificate will expire in x days | +| cluster_even_node_count | boolean (default: false) | True high availability requires an odd number of nodes in the cluster | +| cluster_flash_overcommit | boolean (default: false) | Flash memory committed to databases is larger than cluster total flash memory | +| cluster_inconsistent_redis_sw | boolean (default: false) | Some shards in the cluster are running different versions of Redis software | +| cluster_inconsistent_rl_sw | boolean (default: false) | Some nodes in the cluster are running different versions of Redis Enterprise software | +| cluster_internal_bdb | boolean (default: false) | Issues with internal cluster databases | +| cluster_license_about_to_expire | [cluster_alert_settings_with_threshold]({{}}) object | Cluster license will expire in x days. This alert is enabled by default. Its default threshold is 7 days before license expiration. | +| cluster_multiple_nodes_down | boolean (default: false) | Multiple cluster nodes are down (this might cause data loss) | +| cluster_node_joined | boolean (default: false) | New node joined the cluster | +| cluster_node_remove_abort_completed | boolean (default: false) | Cancel node remove operation completed | +| cluster_node_remove_abort_failed | boolean (default: false) | Cancel node remove operation failed | +| cluster_node_remove_completed | boolean (default: false) | Node removed from the cluster | +| cluster_node_remove_failed | boolean (default: false) | Failed to remove a node from the cluster | +| cluster_ocsp_query_failed | boolean (default: false) | Failed to query the OCSP server | +| cluster_ocsp_status_revoked | boolean (default: false) | OCSP certificate status is REVOKED | +| cluster_ram_overcommit | boolean (default: false) | RAM committed to databases is larger than cluster total RAM | +| cluster_too_few_nodes_for_replication | boolean (default: false) | Replication requires at least 2 nodes in the cluster | +| node_aof_slow_disk_io | boolean (default: false) | AOF reaching disk I/O limits +| node_checks_error | boolean (default: false) | Some node checks have failed | +| node_cpu_utilization | [cluster_alert_settings_with_threshold]({{< relref "/operate/rs/references/rest-api/objects/cluster/cluster_alert_settings_with_threshold" >}}) object | Node CPU utilization has reached the threshold value (% of the utilization limit) | +| node_ephemeral_storage | [cluster_alert_settings_with_threshold]({{< relref "/operate/rs/references/rest-api/objects/cluster/cluster_alert_settings_with_threshold" >}}) object | Node ephemeral storage has reached the threshold value (% of the storage limit) | +| node_failed | boolean (default: false) | Node failed | +| node_free_flash | [cluster_alert_settings_with_threshold]({{< relref "/operate/rs/references/rest-api/objects/cluster/cluster_alert_settings_with_threshold" >}}) object | Node flash storage has reached the threshold value (% of the storage limit) | +| node_insufficient_disk_aofrw | boolean (default: false) | Insufficient AOF disk space | +| node_internal_certs_about_to_expire | [cluster_alert_settings_with_threshold]({{< relref "/operate/rs/references/rest-api/objects/cluster/cluster_alert_settings_with_threshold" >}}) object| Internal certificate on node will expire in x days | +| node_memory | [cluster_alert_settings_with_threshold]({{< relref "/operate/rs/references/rest-api/objects/cluster/cluster_alert_settings_with_threshold" >}}) object | Node memory has reached the threshold value (% of the memory limit) | +| node_net_throughput | [cluster_alert_settings_with_threshold]({{< relref "/operate/rs/references/rest-api/objects/cluster/cluster_alert_settings_with_threshold" >}}) object | Node network throughput has reached the threshold value (bytes/s) | +| node_persistent_storage | [cluster_alert_settings_with_threshold]({{< relref "/operate/rs/references/rest-api/objects/cluster/cluster_alert_settings_with_threshold" >}}) object | Node persistent storage has reached the threshold value (% of the storage limit) | diff --git a/content/operate/rs/references/rest-api/objects/cluster_settings.md b/content/operate/rs/references/rest-api/objects/cluster_settings.md index d5520294b1..410521b435 100644 --- a/content/operate/rs/references/rest-api/objects/cluster_settings.md +++ b/content/operate/rs/references/rest-api/objects/cluster_settings.md @@ -26,9 +26,11 @@ Cluster resources management policy | default_concurrent_restore_actions | integer | Default number of restore actions allowed at the same time. Set to 0 to allow any number of simultaneous restore actions. | | default_fork_evict_ram | boolean | If true, the bdbs should evict data from RAM to ensure successful replication or persistence | | default_non_sharded_proxy_policy | `single`

`all-master-shards`

`all-nodes` | Default proxy_policy for newly created non-sharded databases' endpoints | +| default_oss_sharding | boolean (default: false) | Default hashing policy to use for new databases. This field is for future use only and should not be changed. | | default_provisioned_redis_version | string | Default Redis version | | default_sharded_proxy_policy | `single`

`all-master-shards`

`all-nodes` | Default proxy_policy for newly created sharded databases' endpoints | | default_shards_placement | `dense`
`sparse` | Default shards_placement for a newly created databases | +| default_tracking_table_max_keys_policy | integer (default: 1000000) | Defines the default value of the client-side caching invalidation table size for new databases. 0 makes the cache unlimited. | | endpoint_rebind_propagation_grace_time | integer | Time to wait between the addition and removal of a proxy | | failure_detection_sensitivity | `high`
`low` | Predefined thresholds and timeouts for failure detection (previously known as `watchdog_profile`)
• `high` (previously `local-network`) – high failure detection sensitivity, lower thresholds, faster failure detection and failover
• `low` (previously `cloud`) – low failure detection sensitivity, higher tolerance for latency variance (also called network jitter) | | hide_user_data_from_log | boolean (default: false) | Set to `true` to enable the `hide-user-data-from-log` Redis configuration setting, which avoids logging user data | diff --git a/content/operate/rs/references/rest-api/objects/cm_settings.md b/content/operate/rs/references/rest-api/objects/cm_settings.md new file mode 100644 index 0000000000..9a8bfc619f --- /dev/null +++ b/content/operate/rs/references/rest-api/objects/cm_settings.md @@ -0,0 +1,15 @@ +--- +Title: Cluster Manager settings object +alwaysopen: false +categories: +- docs +- operate +- rs +description: A REST API object that represents Cluster Manager UI settings +linkTitle: cm_settings +weight: $weight +--- + +| Name | Type/Value | Description | +|------|------------|-------------| +| timezone | string | Configurable [time zone](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) for the Cluster Manager UI. The default time zone is UTC. | diff --git a/content/operate/rs/references/rest-api/objects/module.md b/content/operate/rs/references/rest-api/objects/module.md index 38dfa288dc..bff829b52b 100644 --- a/content/operate/rs/references/rest-api/objects/module.md +++ b/content/operate/rs/references/rest-api/objects/module.md @@ -20,6 +20,7 @@ Represents a [Redis module]({{< relref "/operate/oss_and_stack/stack-with-enterp | capabilities | array of strings | List of capabilities supported by this module | | capability_name | string | Short description of module functionality | | command_line_args | string | Command line arguments passed to the module | +| compatible_redis_version | string | Redis version required by this module | | config_command | string | Name of command to configure module arguments at runtime | | dependencies | object dependencies | Module dependencies | | description | string | Short description of the module @@ -29,7 +30,7 @@ Represents a [Redis module]({{< relref "/operate/oss_and_stack/stack-with-enterp | is_bundled | boolean | Whether module came bundled with a version of Redis Enterprise | | license | string | Module is distributed under this license | min_redis_pack_version | string | Minimum Redis Enterprise Software cluster version required by this module | -| min_redis_version | string | Minimum Redis database version required by this module | +| min_redis_version | string | Minimum Redis database version required by this module. Only relevant for Redis databases earlier than v7.4. | | module_file | string | Module filename | | module_name | `search`
`ReJSON`
`graph`
`timeseries`
`bf` | Module's name
| | os | string | Operating system used to compile the module | diff --git a/content/operate/rs/references/rest-api/objects/role.md b/content/operate/rs/references/rest-api/objects/role.md index dd5e78bce8..3478265baa 100644 --- a/content/operate/rs/references/rest-api/objects/role.md +++ b/content/operate/rs/references/rest-api/objects/role.md @@ -17,5 +17,5 @@ An API object that represents a role. | uid | integer | Role's unique ID | | account_id | integer | SM account ID | | action_uid | string | Action UID. If it exists, progress can be tracked by the GET /actions/{uid} API (read-only) | -| management | 'admin'
'db_member'
'db_viewer'
'cluster_member'
'cluster_viewer'
'none' | [Management role]({{< relref "/operate/rs/references/rest-api/permissions#roles" >}}) | +| management | 'admin'
'db_member'
'db_viewer'
'cluster_member'
'cluster_viewer'
'user_manager'
'none' | [Management role]({{< relref "/operate/rs/references/rest-api/permissions#roles" >}}) | | name | string | Role's name | diff --git a/content/operate/rs/references/rest-api/objects/user.md b/content/operate/rs/references/rest-api/objects/user.md index 4bbaa66e0d..ad1a2c03c6 100644 --- a/content/operate/rs/references/rest-api/objects/user.md +++ b/content/operate/rs/references/rest-api/objects/user.md @@ -5,19 +5,17 @@ categories: - docs - operate - rs -description: An object that represents a Redis Enterprise user +description: An API object that represents a Redis Enterprise user linkTitle: user weight: $weight --- -An API object that represents a Redis Enterprise user. - | Name | Type/Value | Description | |------|------------|-------------| | uid | integer | User's unique ID | | account_id | integer | SM account ID | | action_uid | string | Action UID. If it exists, progress can be tracked by the `GET` `/actions/{uid}` API request (read-only) | -| auth_method | **'regular'** | User's authentication method (deprecated as of Redis Enterprise v7.2) | +| auth_method | **'regular'**
'certificate'
'entraid' | User's authentication method | | bdbs_email_alerts | complex object | UIDs of databases that user will receive alerts for | | cluster_email_alerts | boolean | Activate cluster email alerts for a user | | email | string | User's email (pattern matching only ASCII characters) | @@ -26,6 +24,6 @@ An API object that represents a Redis Enterprise user. | password | string | User's password. If `password_hash_method` is set to `1`, the password should be hashed using SHA-256. The format before hashing is `username:clustername:password`. | | password_hash_method | '1' | Used when password is passed pre-hashed to specify the hashing method | | password_issue_date | string | The date in which the password was set (read-only) | -| role | 'admin'
'cluster_member'
'cluster_viewer'
'db_member'
**'db_viewer'**
'none' | User's [role]({{< relref "/operate/rs/references/rest-api/permissions#roles" >}}) | +| role | 'admin'
'cluster_member'
'cluster_viewer'
'db_member'
**'db_viewer'**
'user_manager'
'none' | User's [role]({{< relref "/operate/rs/references/rest-api/permissions#roles" >}}) | | role_uids | array of integers | UIDs of user's roles for role-based access control | -| status | 'active'
'locked' | User sign-in status (read-only)
**active**: able to sign in
**locked**: unable to sign in | +| status | 'active'
'locked'
'password_expired' | User sign-in status (read-only)
**active**: able to sign in
**locked**: unable to sign in
**password_expired**: unable to sign in because the password expired | diff --git a/content/operate/rs/references/rest-api/permissions.md b/content/operate/rs/references/rest-api/permissions.md index b4d7104eaa..bbaa2a9dda 100644 --- a/content/operate/rs/references/rest-api/permissions.md +++ b/content/operate/rs/references/rest-api/permissions.md @@ -26,6 +26,7 @@ Available management roles include: - **[db_member](#db-member-role)**: Can create or modify databases and view their info. - **[cluster_viewer](#cluster-viewer-role)**: Can view cluster and database info. - **[cluster_member](#cluster-member-role)**: Can modify the cluster and databases and view their info. +- **[user_manager](#user-manager-role)**: Can modify users and view their info. - **[admin](#admin-role)**: Can view and modify all elements of the cluster. ## Permissions list for each role @@ -33,11 +34,13 @@ Available management roles include: | Role | Permissions | |------|-------------| | none | No permissions | -| admin | [add_cluster_module](#add_cluster_module), [cancel_cluster_action](#cancel_cluster_action), [cancel_node_action](#cancel_node_action), [config_ldap](#config_ldap), [config_ocsp](#config_ocsp), [create_bdb](#create_bdb), [create_crdb](#create_crdb), [create_ldap_mapping](#create_ldap_mapping), [create_new_user](#create_new_user), [create_redis_acl](#create_redis_acl), [create_role](#create_role), [delete_bdb](#delete_bdb), [delete_cluster_module](#delete_cluster_module), [delete_crdb](#delete_crdb), [delete_ldap_mapping](#delete_ldap_mapping), [delete_redis_acl](#delete_redis_acl), [delete_role](#delete_role), [delete_user](#delete_user), [edit_bdb_module](#edit_bdb_module), [flush_crdb](#flush_crdb), [install_new_license](#install_new_license), [migrate_shard](#migrate_shard), [purge_instance](#purge_instance), [reset_bdb_current_backup_status](#reset_bdb_current_backup_status), [reset_bdb_current_export_status](#reset_bdb_current_export_status), [reset_bdb_current_import_status](#reset_bdb_current_import_status), [start_bdb_export](#start_bdb_export), [start_bdb_import](#start_bdb_import), [start_bdb_recovery](#start_bdb_recovery), [start_cluster_action](#start_cluster_action), [start_node_action](#start_node_action), [test_ocsp_status](#test_ocsp_status), [update_bdb](#update_bdb), [update_bdb_alerts](#update_bdb_alerts), [update_bdb_with_action](#update_bdb_with_action), [update_cluster](#update_cluster), [update_crdb](#update_crdb), [update_ldap_mapping](#update_ldap_mapping), [update_node](#update_node), [update_proxy](#update_proxy), [update_redis_acl](#update_redis_acl), [update_role](#update_role), [update_user](#update_user), [view_all_bdb_stats](#view_all_bdb_stats), [view_all_bdbs_alerts](#view_all_bdbs_alerts), [view_all_bdbs_info](#view_all_bdbs_info), [view_all_ldap_mappings_info](#view_all_ldap_mappings_info), [view_all_nodes_alerts](#view_all_nodes_alerts), [view_all_nodes_checks](#view_all_nodes_checks), [view_all_nodes_info](#view_all_nodes_info), [view_all_nodes_stats](#view_all_nodes_stats), [view_all_proxies_info](#view_all_proxies_info), [view_all_redis_acls_info](#view_all_redis_acls_info), [view_all_roles_info](#view_all_roles_info), [view_all_shard_stats](#view_all_shard_stats), [view_all_users_info](#view_all_users_info), [view_bdb_alerts](#view_bdb_alerts), [view_bdb_info](#view_bdb_info), [view_bdb_recovery_plan](#view_bdb_recovery_plan), [view_bdb_stats](#view_bdb_stats), [view_cluster_alerts](#view_cluster_alerts), [view_cluster_info](#view_cluster_info), [view_cluster_keys](#view_cluster_keys), [view_cluster_modules](#view_cluster_modules), [view_cluster_stats](#view_cluster_stats), [view_crdb](#view_crdb), [view_crdb_list](#view_crdb_list), [view_crdb_task](#view_crdb_task), [view_crdb_task_list](#view_crdb_task_list), [view_debugging_info](#view_debugging_info), [view_endpoint_stats](#view_endpoint_stats), [view_ldap_config](#view_ldap_config), [view_ldap_mapping_info](#view_ldap_mapping_info), [view_license](#view_license), [view_logged_events](#view_logged_events), [view_node_alerts](#view_node_alerts), [view_node_check](#view_node_check), [view_node_info](#view_node_info), [view_node_stats](#view_node_stats), [view_ocsp_config](#view_ocsp_config), [view_ocsp_status](#view_ocsp_status), [view_proxy_info](#view_proxy_info), [view_redis_acl_info](#view_redis_acl_info), [view_redis_pass](#view_redis_pass), [view_role_info](#view_role_info), [view_shard_stats](#view_shard_stats), [view_status_of_all_node_actions](#view_status_of_all_node_actions), [view_status_of_cluster_action](#view_status_of_cluster_action), [view_status_of_node_action](#view_status_of_node_action), [view_user_info](#view_user_info) | -| cluster_member | [create_bdb](#create_bdb), [create_crdb](#create_crdb), [delete_bdb](#delete_bdb), [delete_crdb](#delete_crdb), [edit_bdb_module](#edit_bdb_module), [flush_crdb](#flush_crdb), [migrate_shard](#migrate_shard), [purge_instance](#purge_instance), [reset_bdb_current_backup_status](#reset_bdb_current_backup_status), [reset_bdb_current_export_status](#reset_bdb_current_export_status), [reset_bdb_current_import_status](#reset_bdb_current_import_status), [start_bdb_export](#start_bdb_export), [start_bdb_import](#start_bdb_import), [start_bdb_recovery](#start_bdb_recovery), [update_bdb](#update_bdb), [update_bdb_alerts](#update_bdb_alerts), [update_bdb_with_action](#update_bdb_with_action), [update_crdb](#update_crdb), [view_all_bdb_stats](#view_all_bdb_stats), [view_all_bdbs_alerts](#view_all_bdbs_alerts), [view_all_bdbs_info](#view_all_bdbs_info), [view_all_nodes_alerts](#view_all_nodes_alerts), [view_all_nodes_checks](#view_all_nodes_checks), [view_all_nodes_info](#view_all_nodes_info), [view_all_nodes_stats](#view_all_nodes_stats), [view_all_proxies_info](#view_all_proxies_info), [view_all_redis_acls_info](#view_all_redis_acls_info), [view_all_roles_info](#view_all_roles_info), [view_all_shard_stats](#view_all_shard_stats), [view_bdb_alerts](#view_bdb_alerts), [view_bdb_info](#view_bdb_info), [view_bdb_recovery_plan](#view_bdb_recovery_plan), [view_bdb_stats](#view_bdb_stats), [view_cluster_alerts](#view_cluster_alerts), [view_cluster_info](#view_cluster_info), [view_cluster_keys](#view_cluster_keys), [view_cluster_modules](#view_cluster_modules), [view_cluster_stats](#view_cluster_stats), [view_crdb](#view_crdb), [view_crdb_list](#view_crdb_list), [view_crdb_task](#view_crdb_task), [view_crdb_task_list](#view_crdb_task_list), [view_debugging_info](#view_debugging_info), [view_endpoint_stats](#view_endpoint_stats), [view_license](#view_license), [view_logged_events](#view_logged_events), [view_node_alerts](#view_node_alerts), [view_node_check](#view_node_check), [view_node_info](#view_node_info), [view_node_stats](#view_node_stats), [view_proxy_info](#view_proxy_info), [view_redis_acl_info](#view_redis_acl_info), [view_redis_pass](#view_redis_pass), [view_role_info](#view_role_info), [view_shard_stats](#view_shard_stats), [view_status_of_all_node_actions](#view_status_of_all_node_actions), [view_status_of_cluster_action](#view_status_of_cluster_action), [view_status_of_node_action](#view_status_of_node_action) | +| admin | [add_cluster_module](#add_cluster_module), [cancel_cluster_action](#cancel_cluster_action), [cancel_node_action](#cancel_node_action), [config_ldap](#config_ldap), [config_ocsp](#config_ocsp), [create_bdb](#create_bdb), [create_crdb](#create_crdb), [create_ldap_mapping](#create_ldap_mapping), [create_new_user](#create_new_user), [create_redis_acl](#create_redis_acl), [create_role](#create_role), [delete_bdb](#delete_bdb), [delete_cluster_module](#delete_cluster_module), [delete_crdb](#delete_crdb), [delete_ldap_mapping](#delete_ldap_mapping), [delete_redis_acl](#delete_redis_acl), [delete_role](#delete_role), [delete_user](#delete_user), [edit_bdb_module](#edit_bdb_module), [failover_shard](#failover_shard), [flush_crdb](#flush_crdb), [install_new_license](#install_new_license), [migrate_shard](#migrate_shard), [purge_instance](#purge_instance), [reset_bdb_current_backup_status](#reset_bdb_current_backup_status), [reset_bdb_current_export_status](#reset_bdb_current_export_status), [reset_bdb_current_import_status](#reset_bdb_current_import_status), [start_bdb_export](#start_bdb_export), [start_bdb_import](#start_bdb_import), [start_bdb_recovery](#start_bdb_recovery), [start_cluster_action](#start_cluster_action), [start_node_action](#start_node_action), [test_ocsp_status](#test_ocsp_status), [update_bdb](#update_bdb), [update_bdb_alerts](#update_bdb_alerts), [update_bdb_with_action](#update_bdb_with_action), [update_cluster](#update_cluster), [update_crdb](#update_crdb), [update_ldap_mapping](#update_ldap_mapping), [update_node](#update_node), [update_proxy](#update_proxy), [update_redis_acl](#update_redis_acl), [update_role](#update_role), [update_user](#update_user), [view_all_bdb_stats](#view_all_bdb_stats), [view_all_bdbs_alerts](#view_all_bdbs_alerts), [view_all_bdbs_info](#view_all_bdbs_info), [view_all_ldap_mappings_info](#view_all_ldap_mappings_info), [view_all_nodes_alerts](#view_all_nodes_alerts), [view_all_nodes_checks](#view_all_nodes_checks), [view_all_nodes_info](#view_all_nodes_info), [view_all_nodes_stats](#view_all_nodes_stats), [view_all_proxies_info](#view_all_proxies_info), [view_all_redis_acls_info](#view_all_redis_acls_info), [view_all_roles_info](#view_all_roles_info), [view_all_shard_stats](#view_all_shard_stats), [view_all_users_info](#view_all_users_info), [view_bdb_alerts](#view_bdb_alerts), [view_bdb_info](#view_bdb_info), [view_bdb_recovery_plan](#view_bdb_recovery_plan), [view_bdb_stats](#view_bdb_stats), [view_cluster_alerts](#view_cluster_alerts), [view_cluster_info](#view_cluster_info), [view_cluster_keys](#view_cluster_keys), [view_cluster_modules](#view_cluster_modules), [view_cluster_stats](#view_cluster_stats), [view_crdb](#view_crdb), [view_crdb_list](#view_crdb_list), [view_crdb_task](#view_crdb_task), [view_crdb_task_list](#view_crdb_task_list), [view_debugging_info](#view_debugging_info), [view_endpoint_stats](#view_endpoint_stats), [view_ldap_config](#view_ldap_config), [view_ldap_mapping_info](#view_ldap_mapping_info), [view_license](#view_license), [view_logged_events](#view_logged_events), [view_node_alerts](#view_node_alerts), [view_node_check](#view_node_check), [view_node_info](#view_node_info), [view_node_stats](#view_node_stats), [view_ocsp_config](#view_ocsp_config), [view_ocsp_status](#view_ocsp_status), [view_proxy_info](#view_proxy_info), [view_redis_acl_info](#view_redis_acl_info), [view_redis_pass](#view_redis_pass), [view_role_info](#view_role_info), [view_shard_stats](#view_shard_stats), [view_status_of_all_node_actions](#view_status_of_all_node_actions), [view_status_of_cluster_action](#view_status_of_cluster_action), [view_status_of_node_action](#view_status_of_node_action), [view_user_info](#view_user_info) | +| cluster_member | [create_bdb](#create_bdb), [create_crdb](#create_crdb), [delete_bdb](#delete_bdb), [delete_crdb](#delete_crdb), [edit_bdb_module](#edit_bdb_module), [failover_shard](#failover_shard), [flush_crdb](#flush_crdb), [migrate_shard](#migrate_shard), [purge_instance](#purge_instance), [reset_bdb_current_backup_status](#reset_bdb_current_backup_status), [reset_bdb_current_export_status](#reset_bdb_current_export_status), [reset_bdb_current_import_status](#reset_bdb_current_import_status), [start_bdb_export](#start_bdb_export), [start_bdb_import](#start_bdb_import), [start_bdb_recovery](#start_bdb_recovery), [update_bdb](#update_bdb), [update_bdb_alerts](#update_bdb_alerts), [update_bdb_with_action](#update_bdb_with_action), [update_crdb](#update_crdb), [view_all_bdb_stats](#view_all_bdb_stats), [view_all_bdbs_alerts](#view_all_bdbs_alerts), [view_all_bdbs_info](#view_all_bdbs_info), [view_all_nodes_alerts](#view_all_nodes_alerts), [view_all_nodes_checks](#view_all_nodes_checks), [view_all_nodes_info](#view_all_nodes_info), [view_all_nodes_stats](#view_all_nodes_stats), [view_all_proxies_info](#view_all_proxies_info), [view_all_redis_acls_info](#view_all_redis_acls_info), [view_all_roles_info](#view_all_roles_info), [view_all_shard_stats](#view_all_shard_stats), [view_bdb_alerts](#view_bdb_alerts), [view_bdb_info](#view_bdb_info), [view_bdb_recovery_plan](#view_bdb_recovery_plan), [view_bdb_stats](#view_bdb_stats), [view_cluster_alerts](#view_cluster_alerts), [view_cluster_info](#view_cluster_info), [view_cluster_keys](#view_cluster_keys), [view_cluster_modules](#view_cluster_modules), [view_cluster_stats](#view_cluster_stats), [view_crdb](#view_crdb), [view_crdb_list](#view_crdb_list), [view_crdb_task](#view_crdb_task), [view_crdb_task_list](#view_crdb_task_list), [view_debugging_info](#view_debugging_info), [view_endpoint_stats](#view_endpoint_stats), [view_license](#view_license), [view_logged_events](#view_logged_events), [view_node_alerts](#view_node_alerts), [view_node_check](#view_node_check), [view_node_info](#view_node_info), [view_node_stats](#view_node_stats), [view_proxy_info](#view_proxy_info), [view_redis_acl_info](#view_redis_acl_info), [view_redis_pass](#view_redis_pass), [view_role_info](#view_role_info), [view_shard_stats](#view_shard_stats), [view_status_of_all_node_actions](#view_status_of_all_node_actions), [view_status_of_cluster_action](#view_status_of_cluster_action), [view_status_of_node_action](#view_status_of_node_action) | | cluster_viewer | [view_all_bdb_stats](#view_all_bdb_stats), [view_all_bdbs_alerts](#view_all_bdbs_alerts), [view_all_bdbs_info](#view_all_bdbs_info), [view_all_nodes_alerts](#view_all_nodes_alerts), [view_all_nodes_checks](#view_all_nodes_checks), [view_all_nodes_info](#view_all_nodes_info), [view_all_nodes_stats](#view_all_nodes_stats), [view_all_proxies_info](#view_all_proxies_info), [view_all_redis_acls_info](#view_all_redis_acls_info), [view_all_roles_info](#view_all_roles_info), [view_all_shard_stats](#view_all_shard_stats), [view_bdb_alerts](#view_bdb_alerts), [view_bdb_info](#view_bdb_info), [view_bdb_recovery_plan](#view_bdb_recovery_plan), [view_bdb_stats](#view_bdb_stats), [view_cluster_alerts](#view_cluster_alerts), [view_cluster_info](#view_cluster_info), [view_cluster_modules](#view_cluster_modules), [view_cluster_stats](#view_cluster_stats), [view_crdb](#view_crdb), [view_crdb_list](#view_crdb_list), [view_crdb_task](#view_crdb_task), [view_crdb_task_list](#view_crdb_task_list), [view_endpoint_stats](#view_endpoint_stats), [view_license](#view_license), [view_logged_events](#view_logged_events), [view_node_alerts](#view_node_alerts), [view_node_check](#view_node_check), [view_node_info](#view_node_info), [view_node_stats](#view_node_stats), [view_proxy_info](#view_proxy_info), [view_redis_acl_info](#view_redis_acl_info), [view_role_info](#view_role_info), [view_shard_stats](#view_shard_stats), [view_status_of_all_node_actions](#view_status_of_all_node_actions), [view_status_of_cluster_action](#view_status_of_cluster_action), [view_status_of_node_action](#view_status_of_node_action) | -| db_member | [create_bdb](#create_bdb), [create_crdb](#create_crdb), [delete_bdb](#delete_bdb), [delete_crdb](#delete_crdb), [edit_bdb_module](#edit_bdb_module), [flush_crdb](#flush_crdb), [migrate_shard](#migrate_shard), [purge_instance](#purge_instance), [reset_bdb_current_backup_status](#reset_bdb_current_backup_status), [reset_bdb_current_export_status](#reset_bdb_current_export_status), [reset_bdb_current_import_status](#reset_bdb_current_import_status), [start_bdb_export](#start_bdb_export), [start_bdb_import](#start_bdb_import), [start_bdb_recovery](#start_bdb_recovery), [update_bdb](#update_bdb), [update_bdb_alerts](#update_bdb_alerts), [update_bdb_with_action](#update_bdb_with_action), [update_crdb](#update_crdb), [view_all_bdb_stats](#view_all_bdb_stats), [view_all_bdbs_alerts](#view_all_bdbs_alerts), [view_all_bdbs_info](#view_all_bdbs_info), [view_all_nodes_alerts](#view_all_nodes_alerts), [view_all_nodes_checks](#view_all_nodes_checks), [view_all_nodes_info](#view_all_nodes_info), [view_all_nodes_stats](#view_all_nodes_stats), [view_all_proxies_info](#view_all_proxies_info), [view_all_redis_acls_info](#view_all_redis_acls_info), [view_all_roles_info](#view_all_roles_info), [view_all_shard_stats](#view_all_shard_stats), [view_bdb_alerts](#view_bdb_alerts), [view_bdb_info](#view_bdb_info), [view_bdb_recovery_plan](#view_bdb_recovery_plan), [view_bdb_stats](#view_bdb_stats), [view_cluster_alerts](#view_cluster_alerts), [view_cluster_info](#view_cluster_info), [view_cluster_modules](#view_cluster_modules), [view_cluster_stats](#view_cluster_stats), [view_crdb](#view_crdb), [view_crdb_list](#view_crdb_list), [view_crdb_task](#view_crdb_task), [view_crdb_task_list](#view_crdb_task_list), [view_debugging_info](#view_debugging_info), [view_endpoint_stats](#view_endpoint_stats), [view_license](#view_license), [view_logged_events](#view_logged_events), [view_node_alerts](#view_node_alerts), [view_node_check](#view_node_check), [view_node_info](#view_node_info), [view_node_stats](#view_node_stats), [view_proxy_info](#view_proxy_info), [view_redis_acl_info](#view_redis_acl_info), [view_redis_pass](#view_redis_pass), [view_role_info](#view_role_info), [view_shard_stats](#view_shard_stats), [view_status_of_all_node_actions](#view_status_of_all_node_actions), [view_status_of_cluster_action](#view_status_of_cluster_action), [view_status_of_node_action](#view_status_of_node_action) | +| db_member | [create_bdb](#create_bdb), [create_crdb](#create_crdb), [delete_bdb](#delete_bdb), [delete_crdb](#delete_crdb), [edit_bdb_module](#edit_bdb_module), [failover_shard](#failover_shard), [flush_crdb](#flush_crdb), [migrate_shard](#migrate_shard), [purge_instance](#purge_instance), [reset_bdb_current_backup_status](#reset_bdb_current_backup_status), [reset_bdb_current_export_status](#reset_bdb_current_export_status), [reset_bdb_current_import_status](#reset_bdb_current_import_status), [start_bdb_export](#start_bdb_export), [start_bdb_import](#start_bdb_import), [start_bdb_recovery](#start_bdb_recovery), [update_bdb](#update_bdb), [update_bdb_alerts](#update_bdb_alerts), [update_bdb_with_action](#update_bdb_with_action), [update_crdb](#update_crdb), [view_all_bdb_stats](#view_all_bdb_stats), [view_all_bdbs_alerts](#view_all_bdbs_alerts), [view_all_bdbs_info](#view_all_bdbs_info), [view_all_nodes_alerts](#view_all_nodes_alerts), [view_all_nodes_checks](#view_all_nodes_checks), [view_all_nodes_info](#view_all_nodes_info), [view_all_nodes_stats](#view_all_nodes_stats), [view_all_proxies_info](#view_all_proxies_info), [view_all_redis_acls_info](#view_all_redis_acls_info), [view_all_roles_info](#view_all_roles_info), [view_all_shard_stats](#view_all_shard_stats), [view_bdb_alerts](#view_bdb_alerts), [view_bdb_info](#view_bdb_info), [view_bdb_recovery_plan](#view_bdb_recovery_plan), [view_bdb_stats](#view_bdb_stats), [view_cluster_alerts](#view_cluster_alerts), [view_cluster_info](#view_cluster_info), [view_cluster_modules](#view_cluster_modules), [view_cluster_stats](#view_cluster_stats), [view_crdb](#view_crdb), [view_crdb_list](#view_crdb_list), [view_crdb_task](#view_crdb_task), [view_crdb_task_list](#view_crdb_task_list), [view_debugging_info](#view_debugging_info), [view_endpoint_stats](#view_endpoint_stats), [view_license](#view_license), [view_logged_events](#view_logged_events), [view_node_alerts](#view_node_alerts), [view_node_check](#view_node_check), [view_node_info](#view_node_info), [view_node_stats](#view_node_stats), [view_proxy_info](#view_proxy_info), [view_redis_acl_info](#view_redis_acl_info), [view_redis_pass](#view_redis_pass), [view_role_info](#view_role_info), [view_shard_stats](#view_shard_stats), [view_status_of_all_node_actions](#view_status_of_all_node_actions), [view_status_of_cluster_action](#view_status_of_cluster_action), [view_status_of_node_action](#view_status_of_node_action) | | db_viewer | [view_all_bdb_stats](#view_all_bdb_stats), [view_all_bdbs_alerts](#view_all_bdbs_alerts), [view_all_bdbs_info](#view_all_bdbs_info), [view_all_nodes_alerts](#view_all_nodes_alerts), [view_all_nodes_checks](#view_all_nodes_checks), [view_all_nodes_info](#view_all_nodes_info), [view_all_nodes_stats](#view_all_nodes_stats), [view_all_proxies_info](#view_all_proxies_info), [view_all_redis_acls_info](#view_all_redis_acls_info), [view_all_roles_info](#view_all_roles_info), [view_all_shard_stats](#view_all_shard_stats), [view_bdb_alerts](#view_bdb_alerts), [view_bdb_info](#view_bdb_info), [view_bdb_recovery_plan](#view_bdb_recovery_plan), [view_bdb_stats](#view_bdb_stats), [view_cluster_alerts](#view_cluster_alerts), [view_cluster_info](#view_cluster_info), [view_cluster_modules](#view_cluster_modules), [view_cluster_stats](#view_cluster_stats), [view_crdb](#view_crdb), [view_crdb_list](#view_crdb_list), [view_crdb_task](#view_crdb_task), [view_crdb_task_list](#view_crdb_task_list), [view_endpoint_stats](#view_endpoint_stats), [view_license](#view_license), [view_node_alerts](#view_node_alerts), [view_node_check](#view_node_check), [view_node_info](#view_node_info), [view_node_stats](#view_node_stats), [view_proxy_info](#view_proxy_info), [view_redis_acl_info](#view_redis_acl_info), [view_role_info](#view_role_info), [view_shard_stats](#view_shard_stats), [view_status_of_all_node_actions](#view_status_of_all_node_actions), [view_status_of_cluster_action](#view_status_of_cluster_action), [view_status_of_node_action](#view_status_of_node_action) | +| user_manager | [config_ldap](#config_ldap), [create_ldap_mapping](#create_ldap_mapping), [create_new_user](#create_new_user), [create_role](#create_role), [create_redis_acl](#create_redis_acl), [delete_ldap_mapping](#delete_ldap_mapping), [delete_redis_acl](#delete_redis_acl), [delete_role](#delete_role), [delete_user](#delete_user), [install_new_license](#install_new_license), [update_ldap_mapping](#update_ldap_mapping), [update_proxy](#update_proxy), [update_role](#update_role), [update_redis_acl](#update_redis_acl), [update_user](#update_user), [view_all_bdb_stats](#view_all_bdb_stats), [view_all_bdbs_alerts](#view_all_bdbs_alerts), [view_all_bdbs_info](#view_all_bdbs_info), [view_all_ldap_mappings_info](#view_all_ldap_mappings_info), [view_all_nodes_alerts](view_all_nodes_alerts), [view_all_nodes_checks](#view_all_nodes_checks), [view_all_nodes_info](#view_all_nodes_info), [view_all_nodes_stats](#view_all_nodes_stats), [view_all_proxies_info](#view_all_proxies_info), [view_all_redis_acls_info](#view_all_redis_acls_info), [view_all_roles_info](#view_all_roles_info), [view_all_shard_stats](#view_all_shard_stats), [view_all_users_info](#view_all_users_info), [view_bdb_alerts](#view_bdb_alerts), [view_bdb_info](#view_bdb_info), [view_bdb_stats](#view_bdb_stats), [view_cluster_alerts](#view_cluster_alerts), [view_cluster_info](#view_cluster_info), [view_cluster_keys](#view_cluster_keys), [view_cluster_modules](#view_cluster_modules), [view_cluster_stats](#view_cluster_stats), [view_crdb](#view_crdb), [view_crdb_list](#view_crdb_list), [view_crdb_task](#view_crdb_task), [view_crdb_task_list](#view_crdb_task_list), [view_endpoint_stats](#view_endpoint_stats), [view_ldap_config](#view_ldap_config), [view_ldap_mapping_info](#view_ldap_mapping_info), [view_license](#view_license), [view_logged_events](#view_logged_events), [view_node_alerts](#view_node_alerts), [view_node_check](#view_node_check), [view_node_info](#view_node_info), [view_node_stats](#view_node_stats), [view_proxy_info](#view_proxy_info), [view_redis_acl_info](#view_redis_acl_info), [view_redis_pass](#view_redis_pass), [view_role_info](#view_role_info), [view_shard_stats](#view_shard_stats), [view_status_of_all_node_actions](#view_status_of_all_node_actions), [view_status_of_cluster_action](#view_status_of_cluster_action), [view_status_of_node_action](#view_status_of_node_action), [view_user_info](#view_user_info) + | ## Roles list per permission @@ -46,24 +49,25 @@ Available management roles include: | add_cluster_module| admin | | cancel_cluster_action | admin | | cancel_node_action | admin | -| config_ldap | admin | +| config_ldap | admin
user_manager | | config_ocsp | admin | | create_bdb | admin
cluster_member
db_member | | create_crdb | admin
cluster_member
db_member | -| create_ldap_mapping | admin | -| create_new_user | admin | -| create_redis_acl | admin | -| create_role | admin | +| create_ldap_mapping | admin
user_manager | +| create_new_user | admin
user_manager | +| create_redis_acl | admin
user_manager | +| create_role | admin
user_manager | | delete_bdb | admin
cluster_member
db_member | | delete_cluster_module | admin | | delete_crdb | admin
cluster_member
db_member | -| delete_ldap_mapping | admin | -| delete_redis_acl | admin | -| delete_role | admin | -| delete_user | admin | +| delete_ldap_mapping | admin
user_manager | +| delete_redis_acl | admin
user_manager | +| delete_role | admin
user_manager | +| delete_user | admin
user_manager | | edit_bdb_module | admin
cluster_member
db_member | +| failover_shard | admin
cluster_member
db_member | | flush_crdb | admin
cluster_member
db_member | -| install_new_license | admin | +| install_new_license | admin
user_manager | | migrate_shard | admin
cluster_member
db_member | | purge_instance | admin
cluster_member
db_member | | reset_bdb_current_backup_status | admin
cluster_member
db_member | @@ -80,56 +84,56 @@ Available management roles include: | update_bdb_with_action | admin
cluster_member
db_member | | update_cluster | admin | | update_crdb | admin
cluster_member
db_member | -| update_ldap_mapping | admin | +| update_ldap_mapping | admin
user_manager | | update_node | admin | -| update_proxy | admin | -| update_redis_acl | admin | -| update_role | admin | -| update_user | admin | -| view_all_bdb_stats | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_all_bdbs_alerts | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_all_bdbs_info | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_all_ldap_mappings_info | admin | -| view_all_nodes_alerts | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_all_nodes_checks | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_all_nodes_info | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_all_nodes_stats | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_all_proxies_info | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_all_redis_acls_info | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_all_roles_info | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_all_shard_stats | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_all_users_info | admin | -| view_bdb_alerts | admin
cluster_member
cluster_viewer
db_member
db_viewer |view_bdb_info | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_bdb_recovery_plan | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_bdb_stats | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_cluster_alerts | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_cluster_info | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_cluster_keys | admin
cluster_member | -| view_cluster_modules | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_cluster_stats | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_crdb | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_crdb_list | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_crdb_task | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_crdb_task_list | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_debugging_info | admin
cluster_member
db_member
| -| view_endpoint_stats | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_ldap_config | admin | -| view_ldap_mapping_info | admin | -| view_license | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_logged_events | admin
cluster_member
cluster_viewer
db_member | -| view_node_alerts | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_node_check | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_node_info | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_node_stats | admin
cluster_member
cluster_viewer
db_member
db_viewer | +| update_proxy | admin
user_manager | +| update_redis_acl | admin
user_manager | +| update_role | admin
user_manager | +| update_user | admin
user_manager | +| view_all_bdb_stats | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_all_bdbs_alerts | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_all_bdbs_info | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_all_ldap_mappings_info | admin
user_manager | +| view_all_nodes_alerts | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_all_nodes_checks | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_all_nodes_info | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_all_nodes_stats | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_all_proxies_info | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_all_redis_acls_info | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_all_roles_info | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_all_shard_stats | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_all_users_info | admin
user_manager | +| view_bdb_alerts | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager |view_bdb_info | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_bdb_recovery_plan | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_bdb_stats | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_cluster_alerts | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_cluster_info | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_cluster_keys | admin
cluster_member
user_manager | +| view_cluster_modules | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_cluster_stats | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_crdb | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_crdb_list | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_crdb_task | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_crdb_task_list | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_debugging_info | admin
cluster_member
db_member
user_manager | +| view_endpoint_stats | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_ldap_config | admin
user_manager | +| view_ldap_mapping_info | admin
user_manager | +| view_license | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_logged_events | admin
cluster_member
cluster_viewer
db_member
user_manager | +| view_node_alerts | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_node_check | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_node_info | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_node_stats | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | | view_ocsp_config | admin | | view_ocsp_status | admin | -| view_proxy_info | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_redis_acl_info | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_redis_pass | admin
cluster_member
db_member | -| view_role_info | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_shard_stats | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_status_of_all_node_actions | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_status_of_cluster_action | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_status_of_node_action | admin
cluster_member
cluster_viewer
db_member
db_viewer | -| view_user_info | admin | +| view_proxy_info | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_redis_acl_info | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_redis_pass | admin
cluster_member
db_member
user_manager | +| view_role_info | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_shard_stats | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_status_of_all_node_actions | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_status_of_cluster_action | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_status_of_node_action | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | +| view_user_info | admin
user_manager | diff --git a/content/operate/rs/references/rest-api/requests/bdbs/_index.md b/content/operate/rs/references/rest-api/requests/bdbs/_index.md index d3fb1cc95c..e90102c7c1 100644 --- a/content/operate/rs/references/rest-api/requests/bdbs/_index.md +++ b/content/operate/rs/references/rest-api/requests/bdbs/_index.md @@ -34,7 +34,7 @@ Get all databases in the cluster. | Permission name | Roles | |-----------------|---------| -| [view_all_bdbs_info]({{< relref "/operate/rs/references/rest-api/permissions#view_all_bdbs_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer | +| [view_all_bdbs_info]({{< relref "/operate/rs/references/rest-api/permissions#view_all_bdbs_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | ### Request {#get-all-request} @@ -124,7 +124,7 @@ Get a single database. | Permission name | Roles | |-----------------|-------| -| [view_bdb_info]({{< relref "/operate/rs/references/rest-api/permissions#view_bdb_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer | +| [view_bdb_info]({{< relref "/operate/rs/references/rest-api/permissions#view_bdb_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | ### Request {#get-request} diff --git a/content/operate/rs/references/rest-api/requests/bdbs/actions/_index.md b/content/operate/rs/references/rest-api/requests/bdbs/actions/_index.md index e85f3cbe9e..43f2d79e55 100644 --- a/content/operate/rs/references/rest-api/requests/bdbs/actions/_index.md +++ b/content/operate/rs/references/rest-api/requests/bdbs/actions/_index.md @@ -38,9 +38,25 @@ weight: $weight |--------|------|-------------| | [GET]({{< relref "./optimize_shards_placement#get-bdbs-actions-optimize-shards-placement" >}}) | `/v1/bdbs/{uid}/actions/optimize_shards_placement` | Get optimized shards placement for a database | +## Rebalance + +| Method | Path | Description | +|--------|------|-------------| +| [PUT]({{}}) | `/v1/bdbs/{uid}/actions/rebalance` | Rebalance database shards | + ## Recover | Method | Path | Description | |--------|------|-------------| | [GET]({{}}) | `/v1/bdbs/{uid}/actions/recover` | Get database recovery plan | | [POST]({{}}) | `/v1/bdbs/{uid}/actions/recover` | Recover database | + +## Resume traffic +| Method | Path | Description | +|--------|------|-------------| +| [POST]({{}}) | `/v1/bdbs/{uid}/actions/resume_traffic` | Resume database traffic | + +## Stop traffic +| Method | Path | Description | +|--------|------|-------------| +| [POST]({{}}) | `/v1/bdbs/{uid}/actions/stop_traffic` | Stop database traffic | diff --git a/content/operate/rs/references/rest-api/requests/bdbs/actions/optimize_shards_placement.md b/content/operate/rs/references/rest-api/requests/bdbs/actions/optimize_shards_placement.md index 32a3e265ea..0b1cf7c7c5 100644 --- a/content/operate/rs/references/rest-api/requests/bdbs/actions/optimize_shards_placement.md +++ b/content/operate/rs/references/rest-api/requests/bdbs/actions/optimize_shards_placement.md @@ -28,7 +28,7 @@ Get optimized shards placement for the given database. | Permission name | Roles | |-----------------|-------| -| [view_bdb_info]({{< relref "/operate/rs/references/rest-api/permissions#view_bdb_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer | +| [view_bdb_info]({{< relref "/operate/rs/references/rest-api/permissions#view_bdb_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | ### Request {#get-request} diff --git a/content/operate/rs/references/rest-api/requests/bdbs/actions/rebalance.md b/content/operate/rs/references/rest-api/requests/bdbs/actions/rebalance.md new file mode 100644 index 0000000000..e90a7ec3fb --- /dev/null +++ b/content/operate/rs/references/rest-api/requests/bdbs/actions/rebalance.md @@ -0,0 +1,135 @@ +--- +Title: Rebalance database requests +alwaysopen: false +categories: +- docs +- operate +- rs +description: REST API requests to rebalance database shards +headerRange: '[1-2]' +linkTitle: rebalance +weight: $weight +--- + +| Method | Path | Description | +|--------|------|-------------| +| [PUT](#put-bdbs-actions-rebalance) | `/v1/bdbs/{uid}/actions/rebalance` | Rebalance database shards | + +## Rebalance database shards {#put-bdbs-actions-rebalance} + +```sh +PUT /v1/bdbs/{int: uid}/actions/rebalance +``` + +Distributes the database's shards across nodes based on the database's shard placement policy. See [Shard placement policy]({{}}) for more information about shard placement and available policies. + +#### Required permissions + +| Permission name | Roles | +|-----------------|-------| +| [view_bdb_info]({{< relref "/operate/rs/references/rest-api/permissions#view_bdb_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer | + +### Request {#put-request} + +#### Example HTTP request + +```sh +PUT /bdbs/1/actions/rebalance +``` + +Dry-run example: + +```sh +PUT /bdbs/1/actions/rebalance?only_failovers=true&dry_run=true +``` + +#### URL parameters + +| Field | Type | Description | +|-------|------|-------------| +| uid | integer | The unique ID of the database to rebalance. | + +#### Query parameters + +| Field | Type | Description | +|-------|------|-------------| +| dry_run | boolean | If true, returns the blueprint of the rebalanced database without actually changing the database. Default is false. | +| only_failovers | boolean | If true, only runs failovers and no migrations. Default is false. | +| max_operations | integer | Optional. The number of operations to do. Only works if `only_failovers` is true. If not provided, uses the number of the database's primary-replica pairs. | + +### Response {#put-response} + +- If `dry_run` is `false`, returns an `action_uid`. You can track the action's progress with a [`GET /v1/actions/`]({{}}) request. + +- If `dry_run` is `true`, returns the balanced shards' blueprint. + + You can rearrange shards according to this blueprint if you use it in the `shards_blueprint` field of a [rearrange database shards]({{}}) request. + + You should also pass the rebalance shards' `cluster-state-id` response header as a request header of the rearrange database shards request to make sure the optimized shard placement is relevant for the current cluster state. The cluster will reject the update if its state changed since the optimal shards placement blueprint was generated. + +#### Example response + +If `dry_run` is `false`: + +```sh +{ + "action_uid": "21ad01d5-55aa-4ec6-b5c0-44dc95176486" +} +``` + +If `dry_run` is `true`: + +```sh +[ + { + "nodes": [ + { + "node_uid": "3", + "role": "master" + }, + { + "node_uid": "1", + "role": "slave" + } + ], + "slot_range": "5461-10922" + }, + { + "nodes": [ + { + "node_uid": "3", + "role": "master" + }, + { + "node_uid": "1", + "role": "slave" + } + ], + "slot_range": "10923-16383" + }, + { + "nodes": [ + { + "node_uid": "3", + "role": "master" + }, + { + "node_uid": "1", + "role": "slave" + } + ], + "slot_range": "0-5460" + } +] +``` + +#### Status codes {#put-status-codes} + +| Code | Description | +|------|-------------| +| [200 OK](https://www.rfc-editor.org/rfc/rfc9110.html#name-200-ok) | When `dry_run` is false: The request is accepted and is being processed. When the database is recovered, its status will become active.
When `dry_run` is true: No error. | +| [400 Bad Request](https://www.rfc-editor.org/rfc/rfc9110.html#name-400-bad-request) | Bad request. Invalid input parameters. | +| [404 Not Found](https://www.rfc-editor.org/rfc/rfc9110.html#name-404-not-found) | Attempting to perform an action on a nonexistent database. | +| [406 Not Acceptable](https://www.rfc-editor.org/rfc/rfc9110.html#name-406-not-acceptable) | Not enough resources in the cluster to host the database. | +| [409 Conflict](https://www.rfc-editor.org/rfc/rfc9110.html#name-409-conflict) | Database is currently busy with another action, recovery is already in progress, or is not in a recoverable state. | +| [500 Internal Server Error](https://www.rfc-editor.org/rfc/rfc9110.html#name-500-internal-server-error) | Internal server error. | diff --git a/content/operate/rs/references/rest-api/requests/bdbs/actions/resume_traffic.md b/content/operate/rs/references/rest-api/requests/bdbs/actions/resume_traffic.md new file mode 100644 index 0000000000..a1d42001d5 --- /dev/null +++ b/content/operate/rs/references/rest-api/requests/bdbs/actions/resume_traffic.md @@ -0,0 +1,58 @@ +--- +Title: Resume database traffic requests +alwaysopen: false +categories: +- docs +- operate +- rs +description: REST API requests to resume traffic for a database +headerRange: '[1-2]' +linkTitle: resume_traffic +weight: $weight +--- + +| Method | Path | Description | +|--------|------|-------------| +| [POST](#post-bdbs-actions-resume-traffic) | `/v1/bdbs/{uid}/actions/resume_traffic` | Resume database traffic | + +## Resume database traffic {#post-bdbs-actions-resume-traffic} + +```sh +POST /v1/bdbs/{int: uid}/actions/resume_traffic +``` + +Resume traffic handling for the database. + +Use this action to resume read and write traffic on a database, where traffic was previously paused using the [`stop_traffic`]({{}}) action. + +#### Required permissions + +| Permission name | Roles | +|-----------------|-------| +| [update_bdb_with_action]({{< relref "/operate/rs/references/rest-api/permissions#update_bdb_with_action" >}}) | admin
cluster_member
db_member | + +### Request {#post-request} + +#### Example HTTP request + +```sh +POST /bdbs/1/actions/resume_traffic +``` + +#### URL parameters + +| Field | Type | Description | +|-------|------|-------------| +| uid | integer | The unique ID of the database. | + +### Response {#post-response} + +Returns a JSON object with an `action_uid`. You can track the action's progress with a [`GET /v1/actions/`]({{}}) request. + +#### Status codes {#post-status-codes} + +| Code | Description | +|------|-------------| +| [200 OK](https://www.rfc-editor.org/rfc/rfc9110.html#name-200-ok) | The request is accepted and is being processed. The database state will be `active-change-pending` until the request has been fully processed. | +| [404 Not Found](https://www.rfc-editor.org/rfc/rfc9110.html#name-404-not-found) | Attempting to perform an action on a nonexistent database. | +| [409 Conflict](https://www.rfc-editor.org/rfc/rfc9110.html#name-409-conflict) | Attempting to change a database while it is busy with another configuration change. This is a temporary condition, and the request should be reattempted later. | diff --git a/content/operate/rs/references/rest-api/requests/bdbs/actions/stop_traffic.md b/content/operate/rs/references/rest-api/requests/bdbs/actions/stop_traffic.md new file mode 100644 index 0000000000..d06fa0fe8e --- /dev/null +++ b/content/operate/rs/references/rest-api/requests/bdbs/actions/stop_traffic.md @@ -0,0 +1,58 @@ +--- +Title: Stop database traffic requests +alwaysopen: false +categories: +- docs +- operate +- rs +description: REST API requests to stop traffic for a database +headerRange: '[1-2]' +linkTitle: stop_traffic +weight: $weight +--- + +| Method | Path | Description | +|--------|------|-------------| +| [POST](#post-bdbs-actions-stop-traffic) | `/v1/bdbs/{uid}/actions/stop_traffic` | Stop database traffic | + +## Stop database traffic {#post-bdbs-actions-stop-traffic} + +```sh +POST /v1/bdbs/{int: uid}/actions/stop_traffic +``` + +Stop handling traffic for the database. + +Use this action to stop read and write traffic on a database. To resume traffic afterward, use the [`resume_traffic`]({{}}) action. + +#### Required permissions + +| Permission name | Roles | +|-----------------|-------| +| [update_bdb_with_action]({{< relref "/operate/rs/references/rest-api/permissions#update_bdb_with_action" >}}) | admin
cluster_member
db_member | + +### Request {#post-request} + +#### Example HTTP request + +```sh +POST /bdbs/1/actions/stop_traffic +``` + +#### URL parameters + +| Field | Type | Description | +|-------|------|-------------| +| uid | integer | The unique ID of the database. | + +### Response {#post-response} + +Returns a JSON object with an `action_uid`. You can track the action's progress with a [`GET /v1/actions/`]({{}}) request. + +#### Status codes {#post-status-codes} + +| Code | Description | +|------|-------------| +| [200 OK](https://www.rfc-editor.org/rfc/rfc9110.html#name-200-ok) | The request is accepted and is being processed. The database state will be `active-change-pending` until the request has been fully processed. | +| [404 Not Found](https://www.rfc-editor.org/rfc/rfc9110.html#name-404-not-found) | Attempting to perform an action on a nonexistent database. | +| [409 Conflict](https://www.rfc-editor.org/rfc/rfc9110.html#name-409-conflict) | Attempting to change a database while it is busy with another configuration change. This is a temporary condition, and the request should be reattempted later. | diff --git a/content/operate/rs/references/rest-api/requests/bdbs/availability.md b/content/operate/rs/references/rest-api/requests/bdbs/availability.md new file mode 100644 index 0000000000..143bcfc7e1 --- /dev/null +++ b/content/operate/rs/references/rest-api/requests/bdbs/availability.md @@ -0,0 +1,142 @@ +--- +Title: Database availability requests +alwaysopen: false +categories: +- docs +- operate +- rs +description: REST API requests to check database availability +headerRange: '[1-2]' +linkTitle: availability +weight: $weight +--- + +| Method | Path | Description | +|--------|------|-------------| +| [GET](#get-db-endpoint-availability) | `/v1/local/bdbs/{uid}/endpoint/availability` | Verifies local database endpoint availability | +| [GET](#get-db-availability) | `/v1/bdbs/{uid}/availability` | Verifies database availability | + +## Get database endpoint availability {#get-db-endpoint-availability} + +```sh +GET /v1/local/bdbs/{uid}/endpoint/availability +``` + +Verifies the local database endpoint is available. This request does not redirect to the primary node. + +### Permissions + +| Permission name | Roles | +|-----------------|-------| +| [view_bdb_info]({{< relref "/operate/rs/references/rest-api/permissions#view_bdb_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | + +### Request {#get-endpoint-request} + +#### Example HTTP request + +```sh +GET /local/bdbs/1/endpoint/availability +``` + +#### Headers + +| Key | Value | Description | +|-----|-------|-------------| +| Host | cnm.cluster.fqdn | Domain name | +| Accept | application/json | Accepted media type | + +#### URL parameters + +| Field | Type | Description | +|-------|------|-------------| +| uid | integer | The unique ID of the database. | + +### Response {#get-endpoint-response} + +Returns the status code `200 OK` if the local database endpoint is available. + +If the local database endpoint is unavailable, returns an error status code and a JSON object that contains `error_code` and `description` fields. + +### Error codes {#get-endpoint-error-codes} + +When errors are reported, the server may return a JSON object with +`error_code` and `description` fields that provide additional information. +The following are possible `error_code` values: + +| Code | Description | +|------|-------------| +| no_quorum | Master healthcheck failed (no quorum in the cluster) | +| db_not_found | Database does not exist in the cluster | +| bdb_endpoint_unavailable | Local database endpoint is not available | + +### Status codes {#get-endpoint-status-codes} + +| Code | Description | +|------|-------------| +| [200 OK](https://www.rfc-editor.org/rfc/rfc9110.html#name-200-ok) | Database endpoint is available. | +| [503 Service Unavailable](https://www.rfc-editor.org/rfc/rfc9110.html#name-503-service-unavailable) | Database endpoint is unavailable. | + + +## Get database availability {#get-db-availability} + +```sh +GET /v1/bdbs/{uid}/availability +``` + +Gets the availability status of a database. + +- If the OSS Cluster API is enabled, verifies all endpoints for this database are available. + +- Otherwise, verifies the database has at least one available endpoint. + +### Permissions + +| Permission name | Roles | +|-----------------|-------| +| [view_bdb_info]({{< relref "/operate/rs/references/rest-api/permissions#view_bdb_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | + +### Request {#get-db-request} + +#### Example HTTP request + +```sh +GET /bdbs/1/availability +``` + +#### Headers + +| Key | Value | Description | +|-----|-------|-------------| +| Host | cnm.cluster.fqdn | Domain name | +| Accept | application/json | Accepted media type | + +#### URL parameters + +| Field | Type | Description | +|-------|------|-------------| +| uid | integer | The unique ID of the database. | + +### Response {#get-db-response} + +Returns the status code `200 OK` if the database is available. + +If the database is unavailable, returns an error status code and a JSON object that contains `error_code` and `description` fields. + +### Error codes {#get-db-error-codes} + +When errors are reported, the server may return a JSON object with +`error_code` and `description` fields that provide additional information. +The following are possible `error_code` values: + +| Code | Description | +|------|-------------| +| no_quorum | Master healthcheck failed (no quorum in the cluster) | +| db_not_found | Database does not exist in the cluster | +| bdb_unavailable | Database is not available | + +### Status codes {#get-db-status-codes} + +| Code | Description | +|------|-------------| +| [200 OK](https://www.rfc-editor.org/rfc/rfc9110.html#name-200-ok) | Database is available. | +| [503 Service Unavailable](https://www.rfc-editor.org/rfc/rfc9110.html#name-503-service-unavailable) | Database is unavailable or doesn't have quorum. | diff --git a/content/operate/rs/references/rest-api/requests/bdbs/peer_stats.md b/content/operate/rs/references/rest-api/requests/bdbs/peer_stats.md index 72402fd2cd..00e92f0973 100644 --- a/content/operate/rs/references/rest-api/requests/bdbs/peer_stats.md +++ b/content/operate/rs/references/rest-api/requests/bdbs/peer_stats.md @@ -28,7 +28,7 @@ Get statistics for all peer instances of a local CRDB instance. | Permission name | Roles | |-----------------|-------| -| [view_bdb_stats]({{< relref "/operate/rs/references/rest-api/permissions#view_bdb_stats" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer | +| [view_bdb_stats]({{< relref "/operate/rs/references/rest-api/permissions#view_bdb_stats" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | ### Request {#get-all-request} @@ -120,7 +120,7 @@ Get statistics for a specific CRDB peer instance. | Permission name | Roles | |-----------------|-------| -| [view_bdb_stats]({{< relref "/operate/rs/references/rest-api/permissions#view_bdb_stats" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer | +| [view_bdb_stats]({{< relref "/operate/rs/references/rest-api/permissions#view_bdb_stats" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | ### Request {#get-request} diff --git a/content/operate/rs/references/rest-api/requests/bdbs/stats/_index.md b/content/operate/rs/references/rest-api/requests/bdbs/stats/_index.md index 603afbf14b..80b25ab042 100644 --- a/content/operate/rs/references/rest-api/requests/bdbs/stats/_index.md +++ b/content/operate/rs/references/rest-api/requests/bdbs/stats/_index.md @@ -29,7 +29,7 @@ Get statistics for all databases. | Permission name | Roles | |-----------------|-------| -| [view_all_bdb_stats]({{< relref "/operate/rs/references/rest-api/permissions#view_all_bdb_stats" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer | +| [view_all_bdb_stats]({{< relref "/operate/rs/references/rest-api/permissions#view_all_bdb_stats" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | ### Request {#get-all-request} @@ -170,7 +170,7 @@ Get statistics for a specific database. | Permission name | Roles | |-----------------|-------| -| [view_bdb_stats]({{< relref "/operate/rs/references/rest-api/permissions#view_bdb_stats" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer | +| [view_bdb_stats]({{< relref "/operate/rs/references/rest-api/permissions#view_bdb_stats" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | ### Request {#get-request} diff --git a/content/operate/rs/references/rest-api/requests/bdbs/stats/last.md b/content/operate/rs/references/rest-api/requests/bdbs/stats/last.md index 17ad2b3e03..6bef3c195f 100644 --- a/content/operate/rs/references/rest-api/requests/bdbs/stats/last.md +++ b/content/operate/rs/references/rest-api/requests/bdbs/stats/last.md @@ -28,7 +28,7 @@ Get the most recent statistics for all databases. | Permission name | Roles | |-----------------|-------| -| [view_all_bdb_stats]({{< relref "/operate/rs/references/rest-api/permissions#view_all_bdb_stats" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer | +| [view_all_bdb_stats]({{< relref "/operate/rs/references/rest-api/permissions#view_all_bdb_stats" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | ### Request {#get-all-request} @@ -146,7 +146,7 @@ Get the most recent statistics for a specific database. | Permission name | Roles | |-----------------|-------| -| [view_bdb_stats]({{< relref "/operate/rs/references/rest-api/permissions#view_bdb_stats" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer | +| [view_bdb_stats]({{< relref "/operate/rs/references/rest-api/permissions#view_bdb_stats" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | ### Request {#get-request} diff --git a/content/operate/rs/references/rest-api/requests/bdbs/sync_source_stats.md b/content/operate/rs/references/rest-api/requests/bdbs/sync_source_stats.md index dcc49c5d74..3e4fc426fe 100644 --- a/content/operate/rs/references/rest-api/requests/bdbs/sync_source_stats.md +++ b/content/operate/rs/references/rest-api/requests/bdbs/sync_source_stats.md @@ -28,7 +28,7 @@ Get stats for all syncer sources of a local database. | Permission name | Roles | |-----------------|-------| -| [view_bdb_stats]({{< relref "/operate/rs/references/rest-api/permissions#view_bdb_stats" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer | +| [view_bdb_stats]({{< relref "/operate/rs/references/rest-api/permissions#view_bdb_stats" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | ### Request {#get-all-request} @@ -111,7 +111,7 @@ Get stats for a specific syncer (Replica Of) instance. | Permission name | Roles | |-----------------|-------| -| [view_bdb_stats]({{< relref "/operate/rs/references/rest-api/permissions#view_bdb_stats" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer | +| [view_bdb_stats]({{< relref "/operate/rs/references/rest-api/permissions#view_bdb_stats" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | ### Request {#get-request} diff --git a/content/operate/rs/references/rest-api/requests/bdbs/syncer_state/_index.md b/content/operate/rs/references/rest-api/requests/bdbs/syncer_state/_index.md index e999fd26d4..ad593f9954 100644 --- a/content/operate/rs/references/rest-api/requests/bdbs/syncer_state/_index.md +++ b/content/operate/rs/references/rest-api/requests/bdbs/syncer_state/_index.md @@ -32,7 +32,7 @@ This endpoint is deprecated as of Redis Enterprise Software version 7.2.4 and wi | Permission name | Roles | |-----------------|---------| -| [view_bdb_info]({{< relref "/operate/rs/references/rest-api/permissions#view_bdb_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer | +| [view_bdb_info]({{< relref "/operate/rs/references/rest-api/permissions#view_bdb_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | ### Request {#get-request} diff --git a/content/operate/rs/references/rest-api/requests/bdbs/syncer_state/crdt.md b/content/operate/rs/references/rest-api/requests/bdbs/syncer_state/crdt.md index 3299535873..f14401513d 100644 --- a/content/operate/rs/references/rest-api/requests/bdbs/syncer_state/crdt.md +++ b/content/operate/rs/references/rest-api/requests/bdbs/syncer_state/crdt.md @@ -27,7 +27,7 @@ Get a CRDB's syncer state as JSON. | Permission name | Roles | |-----------------|---------| -| [view_bdb_info]({{< relref "/operate/rs/references/rest-api/permissions#view_bdb_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer | +| [view_bdb_info]({{< relref "/operate/rs/references/rest-api/permissions#view_bdb_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager| ### Request {#get-request} diff --git a/content/operate/rs/references/rest-api/requests/bdbs/syncer_state/replica.md b/content/operate/rs/references/rest-api/requests/bdbs/syncer_state/replica.md index 18cc8d2ddf..dd6a9388e6 100644 --- a/content/operate/rs/references/rest-api/requests/bdbs/syncer_state/replica.md +++ b/content/operate/rs/references/rest-api/requests/bdbs/syncer_state/replica.md @@ -27,7 +27,7 @@ Get a CRDB replica's syncer state as JSON. | Permission name | Roles | |-----------------|---------| -| [view_bdb_info]({{< relref "/operate/rs/references/rest-api/permissions#view_bdb_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer | +| [view_bdb_info]({{< relref "/operate/rs/references/rest-api/permissions#view_bdb_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | ### Request {#get-request} diff --git a/content/operate/rs/references/rest-api/requests/bdbs/upgrade.md b/content/operate/rs/references/rest-api/requests/bdbs/upgrade.md index f960b7e479..d257bce995 100644 --- a/content/operate/rs/references/rest-api/requests/bdbs/upgrade.md +++ b/content/operate/rs/references/rest-api/requests/bdbs/upgrade.md @@ -54,15 +54,15 @@ Upgrade a database. | Field | Type | Description | |-------|------|-------------| | force_restart | boolean | Restart shards even if no version change (default: false) | -| keep_redis_version | boolean | Keep current Redis version (default: false) | +| keep_redis_version | boolean | Keep current Redis version (default: false). Deprecated as of Redis Enterprise Software v7.8.2. To upgrade modules without upgrading the Redis database version, set `redis_version` to the current Redis database version instead. | | keep_crdt_protocol_version | boolean | Keep current crdt protocol version (default: false) | | may_discard_data | boolean | Discard data in a non-replicated, non-persistent bdb (default: false) | | force_discard | boolean | Discard data even if the bdb is replicated and/or persistent (default: false) | | preserve_roles | boolean | Preserve shards' master/replica roles (requires an extra failover) (default: false) | | parallel_shards_upgrade | integer | Max number of shards to upgrade in parallel (default: all) | -| modules | list of modules | List of dicts representing the modules that will be upgraded.

Each dict includes:

• `current_module`: uid of a module to upgrade

• `new_module`: uid of the module we want to upgrade to

• `new_module_args`: args list for the new module (no defaults for the three module-related parameters). -| redis_version | version number | Upgrades the database to the specified Redis version instead of the latest version | -| latest_with_modules | boolean | Upgrades the database to the latest Redis version and latest supported versions of modules available in the cluster | +| modules | list of modules | List of dicts representing the modules that will be upgraded. As of Redis Enterprise Software v7.8.2, `current_module` and `new_module` are deprecated.

Each dict includes:

• `current_module`: uid of a module to upgrade (deprecated)

• `new_module`: uid of the module we want to upgrade to (deprecated)

• `new_module_args`: args list for the new module (no defaults for the three module-related parameters). +| redis_version | version number | Upgrades the database to the specified Redis version instead of the latest version. To upgrade modules without upgrading the Redis database version, set `redis_version` to the current Redis database version instead. | +| latest_with_modules | boolean | Upgrades the database to the latest Redis version and latest supported versions of modules available in the cluster. (default: true as of v7.8.2) Deprecated as of Redis Enterprise Software v7.8.2. | ### Response {#post-response} diff --git a/content/operate/rs/references/rest-api/requests/cluster/stats/_index.md b/content/operate/rs/references/rest-api/requests/cluster/stats/_index.md index a06a6fd2a2..938449166c 100644 --- a/content/operate/rs/references/rest-api/requests/cluster/stats/_index.md +++ b/content/operate/rs/references/rest-api/requests/cluster/stats/_index.md @@ -28,7 +28,7 @@ Get cluster statistics. | Permission name | Roles | |-----------------|-------| -| [view_cluster_stats]({{< relref "/operate/rs/references/rest-api/permissions#view_cluster_stats" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer | +| [view_cluster_stats]({{< relref "/operate/rs/references/rest-api/permissions#view_cluster_stats" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | ### Request {#get-request} diff --git a/content/operate/rs/references/rest-api/requests/cm_settings/_index.md b/content/operate/rs/references/rest-api/requests/cm_settings/_index.md new file mode 100644 index 0000000000..19fb278e98 --- /dev/null +++ b/content/operate/rs/references/rest-api/requests/cm_settings/_index.md @@ -0,0 +1,126 @@ +--- +Title: Cluster Manager settings requests +alwaysopen: false +categories: +- docs +- operate +- rs +description: REST API requests for Cluster Manager UI settings +headerRange: '[1-2]' +hideListLinks: true +linkTitle: cm_settings +weight: $weight +--- + +| Method | Path | Description | +|--------|------|-------------| +| [GET](#get-cm-settings) | `/v1/cm_settings` | Get Cluster Manager UI settings | +| [PUT](#put-cm-settings) | `/v1/cm_settings` | Update Cluster Manager UI settings | + +## Get CM settings {#get-cm-settings} + +```sh +GET /v1/cm_settings +``` + +Get Cluster Manager UI settings. + +### Permissions + +| Permission name | Roles | +|-----------------|-------| +| [view_cluster_info]({{< relref "/operate/rs/references/rest-api/permissions#view_cluster_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | + +### Request {#get-request} + +#### Example HTTP request + +```sh +GET /cm_settings +``` + +#### Headers + +| Key | Value | Description | +|-----|-------|-------------| +| Host | cnm.cluster.fqdn | Domain name | +| Accept | application/json | Accepted media type | + +### Response {#get-response} + +Returns a [cm_settings object]({{}}). + +#### Example JSON body + +```json +{ + "timezone": "UTC" +} +``` + +#### Status codes {#get-status-codes} + +| Code | Description | +|------|-------------| +| [200 OK](https://www.rfc-editor.org/rfc/rfc9110.html#name-200-ok) | No error | + +## Update CM settings {#put-cm-settings} + +```sh +PUT /v1/cm_settings +``` + +Update Cluster Manager UI settings. + +### Permissions + +| Permission name | Roles | +|-----------------|-------| +| [update_cluster]({{< relref "/operate/rs/references/rest-api/permissions#update_cluster" >}}) | admin | + +### Request {#put-request} + +#### Example HTTP request + +```sh +PUT /cm_settings +``` + +#### Example JSON body + +```json +{ + "timezone": "US/Pacific" +} +``` + +#### Headers + +| Key | Value | Description | +|-----|-------|-------------| +| Host | cnm.cluster.fqdn | Domain name | +| Accept | application/json | Accepted media type | + + +#### Body + +Include a [cm_settings object]({{}}) with updated fields in the request body. + +### Response {#put-response} + +Returns a [cm_settings object]({{}}) with the updated fields. + +#### Example JSON body + +```json +{ + "timezone": "US/Pacific" +} +``` + +#### Status codes {#put-status-codes} + +| Code | Description | +|------|-------------| +| [200 OK](https://www.rfc-editor.org/rfc/rfc9110.html#name-200-ok) | Success, time zone config has been set. | +| [400 Bad Request](https://www.rfc-editor.org/rfc/rfc9110.html#name-400-bad-request) | Bad or missing configuration parameters. | diff --git a/content/operate/rs/references/rest-api/requests/modules/_index.md b/content/operate/rs/references/rest-api/requests/modules/_index.md index 3d714990a7..1fd703474d 100644 --- a/content/operate/rs/references/rest-api/requests/modules/_index.md +++ b/content/operate/rs/references/rest-api/requests/modules/_index.md @@ -33,7 +33,7 @@ List available modules, i.e. modules stored within the CCS. | Permission name | Roles | |-----------------|-------| -| [view_cluster_modules]({{< relref "/operate/rs/references/rest-api/permissions#view_cluster_modules" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer | +| [view_cluster_modules]({{< relref "/operate/rs/references/rest-api/permissions#view_cluster_modules" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | ### Request {#list-request} @@ -72,7 +72,7 @@ Get specific available modules, i.e. modules stored within the CCS. | Permission name | Roles | |-----------------|-------| -| [view_cluster_modules]({{< relref "/operate/rs/references/rest-api/permissions#view_cluster_modules" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer | +| [view_cluster_modules]({{< relref "/operate/rs/references/rest-api/permissions#view_cluster_modules" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | ### Request {#get-request} diff --git a/content/operate/rs/references/rest-api/requests/modules/upgrade.md b/content/operate/rs/references/rest-api/requests/modules/upgrade.md index f289bd1bb3..6e443ba9e8 100644 --- a/content/operate/rs/references/rest-api/requests/modules/upgrade.md +++ b/content/operate/rs/references/rest-api/requests/modules/upgrade.md @@ -19,7 +19,7 @@ weight: $weight POST /v1/modules/upgrade/bdb/{string: uid} -Upgrades the module version on a specific database. +Upgrades the module version on a specific database. Deprecated as of Redis Enterprise Software v7.8.2. Use [`POST /v1/bdbs//upgrade`]({{}}) instead. #### Required permissions diff --git a/content/operate/rs/references/rest-api/requests/nodes/_index.md b/content/operate/rs/references/rest-api/requests/nodes/_index.md index ffc7086f92..13f8947415 100644 --- a/content/operate/rs/references/rest-api/requests/nodes/_index.md +++ b/content/operate/rs/references/rest-api/requests/nodes/_index.md @@ -30,7 +30,7 @@ Get all cluster nodes. | Permission name | Roles | |-----------------|-------| -| [view_all_nodes_info]({{< relref "/operate/rs/references/rest-api/permissions#view_all_nodes_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer | +| [view_all_nodes_info]({{< relref "/operate/rs/references/rest-api/permissions#view_all_nodes_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | ### Request {#get-all-request} @@ -114,7 +114,7 @@ Get a single cluster node. | Permission name | Roles | |-----------------|-------| -| [view_node_info]({{< relref "/operate/rs/references/rest-api/permissions#view_node_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer | +| [view_node_info]({{< relref "/operate/rs/references/rest-api/permissions#view_node_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | ### Request {#get-request} diff --git a/content/operate/rs/references/rest-api/requests/nodes/actions.md b/content/operate/rs/references/rest-api/requests/nodes/actions.md index 461a7bd7e8..00c2f1ca43 100644 --- a/content/operate/rs/references/rest-api/requests/nodes/actions.md +++ b/content/operate/rs/references/rest-api/requests/nodes/actions.md @@ -32,7 +32,7 @@ actions on all nodes. | Permission name | Roles | |-----------------|-------| -| [view_status_of_all_node_actions]({{< relref "/operate/rs/references/rest-api/permissions#view_status_of_all_node_actions" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer | +| [view_status_of_all_node_actions]({{< relref "/operate/rs/references/rest-api/permissions#view_status_of_all_node_actions" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | ### Request {#get-all-request} @@ -71,7 +71,7 @@ Get the status of all actions on a specific node. | Permission name | Roles | |-----------------|-------| -| [view_status_of_node_action]({{< relref "/operate/rs/references/rest-api/permissions#view_status_of_node_action" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer | +| [view_status_of_node_action]({{< relref "/operate/rs/references/rest-api/permissions#view_status_of_node_action" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | ### Request {#get-request-all-actions} diff --git a/content/operate/rs/references/rest-api/requests/nodes/snapshots.md b/content/operate/rs/references/rest-api/requests/nodes/snapshots.md index 4c1d1bdbab..62ecebb9d2 100644 --- a/content/operate/rs/references/rest-api/requests/nodes/snapshots.md +++ b/content/operate/rs/references/rest-api/requests/nodes/snapshots.md @@ -28,7 +28,7 @@ Get all cluster node snapshots of the specified node. | Permission name | Roles | |-----------------|-------| -| [view_node_info]({{< relref "/operate/rs/references/rest-api/permissions#view_node_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer | +| [view_node_info]({{< relref "/operate/rs/references/rest-api/permissions#view_node_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | ### Request {#get-request} diff --git a/content/operate/rs/references/rest-api/requests/proxies/_index.md b/content/operate/rs/references/rest-api/requests/proxies/_index.md index 5d65fe1c4a..5513a44d05 100644 --- a/content/operate/rs/references/rest-api/requests/proxies/_index.md +++ b/content/operate/rs/references/rest-api/requests/proxies/_index.md @@ -31,7 +31,7 @@ Get all the proxies in the cluster. | Permission name | Roles | |-----------------|-------| -| [view_all_proxies_info]({{< relref "/operate/rs/references/rest-api/permissions#view_all_proxies_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer | +| [view_all_proxies_info]({{< relref "/operate/rs/references/rest-api/permissions#view_all_proxies_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | ### Request {#get-all-request} @@ -102,7 +102,7 @@ Get a single proxy's info. | Permission name | Roles | |-----------------|-------| -| [view_proxy_info]({{< relref "/operate/rs/references/rest-api/permissions#view_proxy_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer | +| [view_proxy_info]({{< relref "/operate/rs/references/rest-api/permissions#view_proxy_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | ### Request {#get-request} @@ -177,7 +177,7 @@ However, if `allow_restart` is `false`, such changes only take effect after the | Permission name | Roles | |-----------------|-------| -| [update_proxy]({{< relref "/operate/rs/references/rest-api/permissions#update_proxy" >}}) | admin | +| [update_proxy]({{< relref "/operate/rs/references/rest-api/permissions#update_proxy" >}}) | admin
user_manager | ### Request {#put-request} @@ -246,7 +246,7 @@ However, if `allow_restart` is `false`, such changes only take effect after the | Permission name | Roles | |-----------------|-------| -| [update_proxy]({{< relref "/operate/rs/references/rest-api/permissions#update_proxy" >}}) | admin | +| [update_proxy]({{< relref "/operate/rs/references/rest-api/permissions#update_proxy" >}}) | admin
user_manager | ### Request {#put-all-request} diff --git a/content/operate/rs/references/rest-api/requests/redis_acls/_index.md b/content/operate/rs/references/rest-api/requests/redis_acls/_index.md index ec9e9f022e..48dccc189d 100644 --- a/content/operate/rs/references/rest-api/requests/redis_acls/_index.md +++ b/content/operate/rs/references/rest-api/requests/redis_acls/_index.md @@ -32,7 +32,7 @@ Get all Redis ACL objects. | Permission name | Roles | |-----------------|-------| -| [view_all_redis_acls_info]({{< relref "/operate/rs/references/rest-api/permissions#view_all_redis_acls_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer | +| [view_all_redis_acls_info]({{< relref "/operate/rs/references/rest-api/permissions#view_all_redis_acls_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | ### Request {#get-all-request} @@ -99,7 +99,7 @@ Get a single Redis ACL object. | Permission name | Roles | |-----------------|-------| -| [view_redis_acl_info]({{< relref "/operate/rs/references/rest-api/permissions#view_redis_acl_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer | +| [view_redis_acl_info]({{< relref "/operate/rs/references/rest-api/permissions#view_redis_acl_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | ### Request {#get-request} @@ -158,7 +158,7 @@ Update an existing Redis ACL object. | Permission name | Roles | |-----------------|-------| -| [update_redis_acl]({{< relref "/operate/rs/references/rest-api/permissions#update_redis_acl" >}}) | admin | +| [update_redis_acl]({{< relref "/operate/rs/references/rest-api/permissions#update_redis_acl" >}}) | admin
user_manager | ### Request {#put-request} @@ -232,7 +232,7 @@ Create a new Redis ACL object. | Permission name | Roles | |-----------------|-------| -| [create_redis_acl]({{< relref "/operate/rs/references/rest-api/permissions#create_redis_acl" >}}) | admin | +| [create_redis_acl]({{< relref "/operate/rs/references/rest-api/permissions#create_redis_acl" >}}) | admin
user_manager | ### Request {#post-request} @@ -343,7 +343,7 @@ Delete a Redis ACL object. | Permission name | Roles | |-----------------|-------| -| [delete_redis_acl]({{< relref "/operate/rs/references/rest-api/permissions#delete_redis_acl" >}}) | admin | +| [delete_redis_acl]({{< relref "/operate/rs/references/rest-api/permissions#delete_redis_acl" >}}) | admin
user_manager | ### Request {#delete-request} diff --git a/content/operate/rs/references/rest-api/requests/roles/_index.md b/content/operate/rs/references/rest-api/requests/roles/_index.md index 0925e13858..165d5a8394 100644 --- a/content/operate/rs/references/rest-api/requests/roles/_index.md +++ b/content/operate/rs/references/rest-api/requests/roles/_index.md @@ -32,7 +32,7 @@ Get all roles' details. | Permission name | Roles | |-----------------|-------| -| [view_all_roles_info]({{< relref "/operate/rs/references/rest-api/permissions#view_all_roles_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer | +| [view_all_roles_info]({{< relref "/operate/rs/references/rest-api/permissions#view_all_roles_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | ### Request {#get-all-request} @@ -114,7 +114,7 @@ Get the details of a single role. | Permission name | Roles | |-----------------|-------| -| [view_role_info]({{< relref "/operate/rs/references/rest-api/permissions#view_role_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer | +| [view_role_info]({{< relref "/operate/rs/references/rest-api/permissions#view_role_info" >}}) | admin
cluster_member
cluster_viewer
db_member
db_viewer
user_manager | ### Request {#get-request} @@ -174,7 +174,7 @@ Update an existing role's details. | Permission name | Roles | |-----------------|-------| -| [update_role]({{< relref "/operate/rs/references/rest-api/permissions#update_role" >}}) | admin | +| [update_role]({{< relref "/operate/rs/references/rest-api/permissions#update_role" >}}) | admin
user_manager | ### Request {#put-request} @@ -249,7 +249,7 @@ Create a new role. | Permission name | Roles | |-----------------|-------| -| [create_role]({{< relref "/operate/rs/references/rest-api/permissions#create_role" >}}) | admin | +| [create_role]({{< relref "/operate/rs/references/rest-api/permissions#create_role" >}}) | admin
user_manager | ### Request {#post-request} @@ -359,7 +359,7 @@ Delete a role object. | Permission name | Roles | |-----------------|-------| -| [delete_role]({{< relref "/operate/rs/references/rest-api/permissions#delete_role" >}}) | admin | +| [delete_role]({{< relref "/operate/rs/references/rest-api/permissions#delete_role" >}}) | admin
user_manager | ### Request {#delete-request} diff --git a/content/operate/rs/references/rest-api/requests/shards/actions/failover.md b/content/operate/rs/references/rest-api/requests/shards/actions/failover.md new file mode 100644 index 0000000000..9099c31cd2 --- /dev/null +++ b/content/operate/rs/references/rest-api/requests/shards/actions/failover.md @@ -0,0 +1,186 @@ +--- +Title: Shard failover requests +alwaysopen: false +categories: +- docs +- operate +- rs +description: REST API requests to fail over database shards +headerRange: '[1-2]' +linkTitle: failover +weight: $weight +--- + +| Method | Path | Description | +|--------|------|-------------| +| [POST](#post-multi-shards) | `/v1/shards/actions/failover` | Fail over multiple shards | +| [POST](#post-shard) | `/v1/shards/{uid}/actions/failover` | Fail over a specific shard | + +## Fail over multiple shards {#post-multi-shards} + + POST /v1/shards/actions/failover + +Performs failover on the primary shards specified by `shard_uids` in the request body, and promotes their replicas to primary shards. This request is asynchronous. + +The cluster automatically manages failover to ensure high availability. Use this failover REST API request only for testing and planned maintenance. + +#### Required permissions + +| Permission name | Roles | +|-----------------|-------| +| [failover_shard]({{< relref "/operate/rs/references/rest-api/permissions#failover_shard" >}}) | admin
cluster_member
db_member | + +### Request {#post-multi-request} + +#### Example HTTP request + + POST /shards/actions/failover + +#### Example JSON body + +```json +{ + "shard_uids": ["2","4","6"] +} +``` + +#### Request headers + +| Key | Value | Description | +|-----|-------|-------------| +| Host | cnm.cluster.fqdn | Domain name | +| Accept | application/json | Accepted media type | + +#### Request body {#post-multi-request-body} + +The request body is a JSON object that can contain the following fields: + +| Field | Type | Description | +|-------|------|-------------| +| shard_uids | array of strings | List of primary shard UIDs to fail over. The shards must belong to the same database. | +| dead_uids | array of strings | Primary shards to avoid stopping. Optional. | +| dead_nodes | array of strings | Nodes that should not be drained or used for promoted replica shards. Optional. | +| dry_run | boolean | Determines whether the failover is actually done. If true, will just do a dry run. If the dry run succeeds, the request returns a `200 OK` status code. Otherwise, it returns a JSON object with an error code and description. Optional. | +| force_rebind | boolean | Rebind after promotion. Optional. | +| redis_version_upgrade | string | New version of the promoted primary shards. Optional. | + +### Response {#post-multi-response} + +Returns a JSON object with an `action_uid`. You can track the action's progress with a [`GET /v1/actions/`]({{}}) request. + +#### Example JSON body + +```json +{ + "action_uid": "e5e24ddf-a456-4a7e-ad53-4463cd44880e", + "description": "Failover was triggered" +} +``` + +### Status codes {#post-multi-status-codes} + +| Code | Description | +|------|-------------| +| [200 OK](https://www.rfc-editor.org/rfc/rfc9110.html#name-200-ok) | No error. | +| [400 Bad Request](https://www.rfc-editor.org/rfc/rfc9110.html#name-400-bad-request) | Shard is a replica or the specified failover shards are not in the same database. | +| [404 Not Found](https://www.rfc-editor.org/rfc/rfc9110.html#name-404-not-found) | A list of shard UIDs is required and not given, or a specified shard does not exist. | +| [409 Conflict](https://www.rfc-editor.org/rfc/rfc9110.html#name-409-conflict) | Database is currently busy. | + +### Error codes {#put-multi-error-codes} + +When errors are reported, the server may return a JSON object with `error_code` and `message` field that provide additional information. The following are possible `error_code` values: + +| Code | Description | +|------|-------------| +| db_busy | Database is currently busy. | +| failover_shards_different_bdb | All failover shards should be in the same database. | +| shard_is_slave | Shard is a replica. | +| shard_not_exist | Shard does not exist. | +| shard_uids_required | List of shard UIDs is required and not given. | + +## Fail over shard {#post-shard} + + POST /v1/shards/{int: uid}/actions/failover + +Performs failover on the primary shard with the specified `shard_uid`, and promotes its replica shard to a primary shard. This request is asynchronous. + +The cluster automatically manages failover to ensure high availability. Use this failover REST API request only for testing and planned maintenance. + +#### Required permissions + +| Permission name | Roles | +|-----------------|-------| +| [failover_shard]({{< relref "/operate/rs/references/rest-api/permissions#failover_shard" >}}) | admin
cluster_member
db_member | + +### Request {#post-request} + +#### Example HTTP request + + POST /shards/1/actions/failover + +#### Example JSON body + +```json +{ + "force_rebind": true +} +``` + +#### Request headers + +| Key | Value | Description | +|-----|-------|-------------| +| Host | cnm.cluster.fqdn | Domain name | +| Accept | application/json | Accepted media type | + + +#### URL parameters + +| Field | Type | Description | +|-------|------|-------------| +| uid | integer | The unique ID of the shard to fail over. | + + +#### Request body {#post-request-body} + +The request body is a JSON object that can contain the following fields: + +| Field | Type | Description | +|-------|------|-------------| +| dead_uid | string | Primary shard to avoid stopping. Optional. | +| dead_nodes | array of strings | Nodes that should not be drained or used for promoted replica shards. Optional. | +| dry_run | boolean | Determines whether the failover is actually done. If true, will just do a dry run. If the dry run succeeds, the request returns a `200 OK` status code. Otherwise, it returns a JSON object with an error code and description. Optional. | +| force_rebind | boolean | Rebind after promotion. Optional. | +| redis_version_upgrade | string | New version of the promoted primary shards. Optional. | + +### Response {#post-response} + +Returns a JSON object with an `action_uid`. You can track the action's progress with a [`GET /v1/actions/`]({{}}) request. + +#### Example JSON body + +```json +{ + "action_uid": "e5e24ddf-a456-4a7e-ad53-4463cd44880e", + "description": "Failover was triggered" +} +``` + +### Status codes {#post-status-codes} + +| Code | Description | +|------|-------------| +| [200 OK](https://www.rfc-editor.org/rfc/rfc9110.html#name-200-ok) | No error. | +| [400 Bad Request](https://www.rfc-editor.org/rfc/rfc9110.html#name-400-bad-request) | Shard is a replica. | +| [404 Not Found](https://www.rfc-editor.org/rfc/rfc9110.html#name-404-not-found) | Specified shard does not exist. | +| [409 Conflict](https://www.rfc-editor.org/rfc/rfc9110.html#name-409-conflict) | Database is currently busy. | + +### Error codes {#put-error-codes} + +When errors are reported, the server may return a JSON object with `error_code` and `message` field that provide additional information. The following are possible `error_code` values: + +| Code | Description | +|------|-------------| +| db_busy | Database is currently busy. | +| shard_is_slave | Shard is a replica. | +| shard_not_exist | Shard does not exist. | diff --git a/content/operate/rs/references/rest-api/requests/users/_index.md b/content/operate/rs/references/rest-api/requests/users/_index.md index 8ccdfb417c..14c6a9e847 100644 --- a/content/operate/rs/references/rest-api/requests/users/_index.md +++ b/content/operate/rs/references/rest-api/requests/users/_index.md @@ -32,7 +32,7 @@ Get a list of all users. | Permission name | Roles | |-----------------|-------| -| [view_all_users_info]({{< relref "/operate/rs/references/rest-api/permissions#view_all_users_info" >}}) | admin | +| [view_all_users_info]({{< relref "/operate/rs/references/rest-api/permissions#view_all_users_info" >}}) | admin
user_manager | ### Request {#get-all-request} @@ -99,7 +99,7 @@ Get a single user's details. | Permission name | Roles | |-----------------|-------| -| [view_user_info]({{< relref "/operate/rs/references/rest-api/permissions#view_user_info" >}}) | admin | +| [view_user_info]({{< relref "/operate/rs/references/rest-api/permissions#view_user_info" >}}) | admin
user_manager | ### Request {#get-request} @@ -162,7 +162,7 @@ Update an existing user's configuration. | Permission name | Roles | |-----------------|-------| -| [update_user]({{< relref "/operate/rs/references/rest-api/permissions#update_user" >}}) | admin | +| [update_user]({{< relref "/operate/rs/references/rest-api/permissions#update_user" >}}) | admin
user_manager | Any user can change their own name, password, or alert preferences. @@ -257,7 +257,7 @@ Create a new user. | Permission name | Roles | |-----------------|-------| -| [create_new_user]({{< relref "/operate/rs/references/rest-api/permissions#create_new_user" >}}) | admin | +| [create_new_user]({{< relref "/operate/rs/references/rest-api/permissions#create_new_user" >}}) | admin
user_manager | ### Request {#post-request} @@ -405,7 +405,7 @@ Delete a user. | Permission name | Roles | |-----------------|-------| -| [delete_user]({{< relref "/operate/rs/references/rest-api/permissions#delete_user" >}}) | admin | +| [delete_user]({{< relref "/operate/rs/references/rest-api/permissions#delete_user" >}}) | admin
user_manager | ### Request {#delete-request} diff --git a/content/operate/rs/references/upgrade-paths.md b/content/operate/rs/references/upgrade-paths.md index 4d7c6b63eb..1b6773f112 100644 --- a/content/operate/rs/references/upgrade-paths.md +++ b/content/operate/rs/references/upgrade-paths.md @@ -16,3 +16,7 @@ tocEmbedHeaders: true For detailed upgrade instructions, see [Upgrade a Redis Enterprise Software cluster]({{}}). See the [Redis Enterprise Software product lifecycle]({{}}) for more information about release numbers and the end-of-life schedule. + +{{}} +Redis Enterprise for Kubernetes has its own support lifecycle, which accounts for the Kubernetes distribution lifecycle. For details, see [Supported Kubernetes distributions]({{}}). +{{}} diff --git a/content/operate/rs/release-notes/_index.md b/content/operate/rs/release-notes/_index.md index 2da6b6d67a..f259f930cd 100644 --- a/content/operate/rs/release-notes/_index.md +++ b/content/operate/rs/release-notes/_index.md @@ -12,4 +12,4 @@ weight: 90 Here's what changed recently in Redis Enterprise Software: -{{< table-children columnNames="Version (Release date) ,Major changes,OSS Redis compatibility" columnSources="LinkTitle,Description,compatibleOSSVersion" enableLinks="LinkTitle" >}} +{{< table-children columnNames="Version (Release date) ,Major changes,Redis CE compatibility" columnSources="LinkTitle,Description,compatibleOSSVersion" enableLinks="LinkTitle" >}} diff --git a/content/operate/rs/release-notes/rs-7-8-releases/_index.md b/content/operate/rs/release-notes/rs-7-8-releases/_index.md new file mode 100644 index 0000000000..8ab06b97a4 --- /dev/null +++ b/content/operate/rs/release-notes/rs-7-8-releases/_index.md @@ -0,0 +1,248 @@ +--- +Title: Redis Software release notes 7.8.2 +alwaysopen: false +categories: +- docs +- operate +- rs +compatibleOSSVersion: Redis 7.4.0 +description: Redis Community Edition 7.4 features. Hash field expiration. Client-side caching support. Metrics stream engine preview. New APIs to check database availability, rebalance shards, fail over shards, and control database traffic. Cluster Manager UI enhancements for node actions, database tags, and database configuration. User manager role. Log rotation based on both size and time. Module management enhancements. Configurable minimum password length. Configurable license expiration alert threshold. +hideListLinks: true +linkTitle: 7.8.2 releases +toc: 'true' +weight: 69 +--- + +​[​Redis Software version 7.8.2](https://redis.com/redis-enterprise-software/download-center/software/) is now available! + +## Highlights + +This version offers: + +- Redis Community Edition 7.4 features + +- Hash field expiration + +- Client-side caching support + +- Metrics stream engine preview + +- New APIs to check database availability, rebalance shards, fail over shards, and control database traffic + +- Cluster Manager UI enhancements for node actions, database tags, and database configuration + +- User manager role + +- Log rotation based on both size and time + +- Module management enhancements + +- Configurable minimum password length + +- Configurable license expiration alert threshold + +## Detailed release notes + +For more detailed release notes, select a build version from the following table: + +{{}} + +## Version changes + +- Added validation to verify the LDAP server URI contains a host and port when updating LDAP configuration. + +- The value of the `oss_sharding` API field had no effect in previous versions of Redis Software. However, `oss_sharding` is now set to take effect as part of future plans. Until further notice, set this field to `false` to avoid unintended impacts. + +### Breaking changes + +Redis Software version 7.8.2 introduces the following breaking changes: + +- When you upgrade a database, the upgrade process also attempts to upgrade database modules by default. + + - The default value of `latest_with_modules` has changed to `true`. + + - [`rladmin upgrade db`]({{}}) will always upgrade the database's modules. + + - When you [upgrade a database]({{}}) using the REST API, you can set `"latest_with_modules": false` in the request body to prevent module upgrades. + +#### Redis database version 7.4 breaking changes {#redis-74-breaking-changes} + +When new major versions of Redis Community Edition change existing commands, upgrading your database to a new version can potentially break some functionality. Before you upgrade, read the provided list of breaking changes that affect Redis Software and update any applications that connect to your database to handle these changes. + +Confirm your Redis database version (`redis_version`) using the Cluster Manager UI or run the following [`INFO`]({{< relref "/commands/info" >}}) command with [`redis-cli`]({{< relref "/operate/rs/references/cli-utilities/redis-cli" >}}): + +```sh +$ redis-cli -p INFO +"# Server +redis_version:7.0.8 +..." +``` + +##### Security behavior changes + +- [#13108](https://github.com/redis/redis/pull/13108) Lua: LRU eviction for scripts generated with `EVAL`. + +##### Other general behavior changes + +- [#13133](https://github.com/redis/redis/pull/13133) Lua: allocate VM code with jemalloc instead of libc and count it as used memory. + +- [#12171](https://github.com/redis/redis/pull/12171) `ACL LOAD`: do not disconnect all clients. + +### Product lifecycle updates + +#### End-of-life policy extension + +The end-of-life policy for Redis Software versions 6.2 and later has been extended to 24 months after the formal release of the subsequent major version. For the updated end-of-life schedule, see the [Redis Software product lifecycle]({{}}). + +#### Supported upgrade paths + +Redis Software versions 6.2.4 and 6.2.8 do not support direct upgrades beyond version 7.4.x. Versions 6.2.10, 6.2.12, and 6.2.18 are part of the [upgrade path]({{}}). To upgrade from 6.2.4 or 6.2.8 to versions later than 7.4.x, an intermediate upgrade is required. + +The next major Redis Software release will still bundle Redis database version 6.2 and allow database upgrades from Redis database version 6.2 to 7.x. + +See the [Redis Software product lifecycle]({{}}) for more information about release numbers. + +#### End of triggers and functions preview + +The [triggers and functions]({{}}) (RedisGears) preview has been discontinued. + +- Commands such as `TFCALL`, `TFCALLASYNC`, and `TFUNCTION` will be deprecated and will return error messages. + +- Any JavaScript functions stored in Redis will be removed. + +- JavaScript-based triggers will be blocked. + +- Lua functions and scripts will not be affected. + +If your database currently uses triggers and functions, you need to: + +1. Adjust your applications to accommodate these changes. + +1. Delete all triggers and functions libraries from your existing database: + + 1. Run `TFUNCTION LIST`. + + 1. Copy all library names. + + 1. Run `TFUNCTION DELETE` for each library in the list. + + If any triggers and functions libraries remain in the database, the RDB snapshot won't load on a cluster without RedisGears. + +1. Migrate your database to a new database without the RedisGears module. + +### Deprecations + +#### API deprecations + +- Deprecated `background_op` field from BDB REST API object. Use [`GET /v1/actions/bdb/`]({{}}) instead. + +- Deprecated the following fields for [upgrade database]({{}}) REST API requests: + + - `keep_redis_version`; use `redis_version` instead + + - `current_module`; use `new_module_args` instead + + - `new_module`; use `new_module_args` instead + +- Deprecated the following `module_list` fields for [create database]({{}}) REST API requests: + + - `module_id`; use `module_name` instead + + - `semantic_version`; use module_args instead + +- `min_redis_version` is only relevant to Redis database versions earlier than 7.4 and is replaced with `compatible_redis_version` in [module REST API]({{}}) responses. + +- Deprecated the [`rladmin upgrade modules`]({{}}) command. Use [`rladmin upgrade db`]({{}}) instead. + +- Deprecated [`POST /v1/modules/upgrade/bdb/`]({{}}) REST API request. Use [`POST /v1/bdbs//upgrade`]({{}}) to upgrade modules instead. + +#### V1 Prometheus metrics deprecation + + V1 Prometheus metrics are deprecated. To transition to the new metrics stream engine, either migrate your existing dashboards using [Prometheus v1 metrics and equivalent v2 PromQL]({{}}) now, or wait to use new preconfigured dashboards when they become available in a future release. + +#### Download center modules deprecation + +New Redis modules will not be available for download from the Redis download center. + +#### Legacy UI not supported + +The legacy UI was deprecated in favor of the new Cluster Manager UI in Redis Software version 7.2.4 and is no longer supported as of Redis Software version 7.8.2. + +#### Redis 6.0 databases not supported + +Redis database version 6.0 was deprecated in Redis Software version 7.4.2 and is no longer supported as of Redis Software version 7.8.2. + +To prepare for the removal of Redis database version 6.0 before you upgrade to Redis Software version 7.8.2: + +- For Redis Software 6.2.* clusters, upgrade Redis 6.0 databases to Redis 6.2. See the [Redis 6.2 release notes](https://raw.githubusercontent.com/redis/redis/6.2/00-RELEASENOTES) for the list of changes. + +- For Redis Software 7.2.4 and 7.4.2 clusters, upgrade Redis 6.0 databases to Redis 7.2. Before you upgrade your databases, see the list of [Redis 7.2 breaking changes]({{< relref "/operate/rs/release-notes/rs-7-2-4-releases/rs-7-2-4-52#redis-72-breaking-changes" >}}) and update any applications that connect to your database to handle these changes. + +#### Ubuntu 18.04 not supported + +Ubuntu 18.04 was deprecated in Redis Software version 7.2.4 and is no longer supported as of Redis Software version 7.8.2. + +### Upcoming changes + +#### Default image change for Redis Software containers + +Starting with version 7.8, Redis Software containers with the image tag `x.y.z-build` will be based on RHEL instead of Ubuntu. + +This change will only affect you if you use containers outside the official [Redis Enterprise for Kubernetes]({{}}) product and use Ubuntu-specific commands. + +To use Ubuntu-based images after this change, you can specify the operating system suffix in the image tag. For example, use the image tag `7.4.2-216.focal` instead of `7.4.2-216`. + +### Supported platforms + +The following table provides a snapshot of supported platforms as of this Redis Software release. See the [supported platforms reference]({{< relref "/operate/rs/references/supported-platforms" >}}) for more details about operating system compatibility. + + Supported – The platform is supported for this version of Redis Software and Redis Stack modules. + +:warning: Deprecation warning – The platform is still supported for this version of Redis Software, but support will be removed in a future release. + +| Redis Software
major versions | 7.8 | 7.4 | 7.2 | 6.4 | 6.2 | +|---------------------------------|:-----:|:-----:|:-----:|:-----:|:-----:| +| **Release date** | Nov 2024 | Feb 2024 | Aug 2023 | Feb 2023 | Aug 2021 | +| [**End-of-life date**]({{< relref "/operate/rs/installing-upgrading/product-lifecycle#endoflife-schedule" >}}) | Determined after
next major release | Nov 2026 | Feb 2026 | Aug 2025 | Feb 2025 | +| **Platforms** | | | | | | +| RHEL 9 &
compatible distros[1](#table-note-1) | | | – | – | – | +| RHEL 9
FIPS mode[5](#table-note-5) | | – | – | – | – | +| RHEL 8 &
compatible distros[1](#table-note-1) | | | | | | +| RHEL 7 &
compatible distros[1](#table-note-1) | – | – | :warning: | | | +| Ubuntu 20.04[2](#table-note-2) | | | | | – | +| Ubuntu 18.04[2](#table-note-2) | – | :warning: | :warning: | | | +| Ubuntu 16.04[2](#table-note-2) | – | – | :warning: | | | +| Amazon Linux 2 | | | | | – | +| Amazon Linux 1 | – | – | | | | +| Kubernetes[3](#table-note-3) | | | | | | +| Docker[4](#table-note-4) | | | | | | + +1. The RHEL-compatible distributions CentOS, CentOS Stream, Alma, and Rocky are supported if they have full RHEL compatibility. Oracle Linux running the Red Hat Compatible Kernel (RHCK) is supported, but the Unbreakable Enterprise Kernel (UEK) is not supported. + +2. The server version of Ubuntu is recommended for production installations. The desktop version is only recommended for development deployments. + +3. See the [Redis Enterprise for Kubernetes documentation]({{< relref "/operate/kubernetes/reference/supported_k8s_distributions" >}}) for details about support per version and Kubernetes distribution. + +4. [Docker images]({{< relref "/operate/rs/installing-upgrading/quickstarts/docker-quickstart" >}}) of Redis Software are certified for development and testing only. + +5. Supported only if [FIPS was enabled during RHEL installation](https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/security_hardening/switching-rhel-to-fips-mode_security-hardening#proc_installing-the-system-with-fips-mode-enabled_switching-rhel-to-fips-mode) to ensure FIPS compliance. + +## Known issues + +- RS131972: Creating an ACL that contains a line break in the Cluster Manager UI can cause shard migration to fail due to ACL errors. + +## Known limitations + +#### New Cluster Manager UI limitations + +The following legacy UI features are not yet available in the new Cluster Manager UI: + +- Purge an Active-Active instance. + + Use [`crdb-cli crdb purge-instance`]({{< relref "/operate/rs/references/cli-utilities/crdb-cli/crdb/purge-instance" >}}) instead. + +- Search and export the log. + +#### RedisGraph prevents upgrade to RHEL 9 + +You cannot upgrade from a prior RHEL version to RHEL 9 if the Redis Software cluster contains a RedisGraph module, even if unused by any database. The [RedisGraph module has reached end-of-life](https://redis.com/blog/redisgraph-eol/) and is completely unavailable in RHEL 9. diff --git a/content/operate/rs/release-notes/rs-7-8-releases/rs-7-8-2-34.md b/content/operate/rs/release-notes/rs-7-8-releases/rs-7-8-2-34.md new file mode 100644 index 0000000000..f03267471d --- /dev/null +++ b/content/operate/rs/release-notes/rs-7-8-releases/rs-7-8-2-34.md @@ -0,0 +1,525 @@ +--- +Title: Redis Software release notes 7.8.2-34 (November 2024) +alwaysopen: false +categories: +- docs +- operate +- rs +compatibleOSSVersion: Redis 7.4.0 +description: Redis Community Edition 7.4 features. Hash field expiration. Client-side caching support. Metrics stream engine preview. New APIs to check database availability, rebalance shards, fail over shards, and control database traffic. Cluster Manager UI enhancements for node actions, database tags, and database configuration. User manager role. Log rotation based on both size and time. Module management enhancements. Configurable minimum password length. Configurable license expiration alert threshold. +linkTitle: 7.8.2-34 (November 2024) +weight: 90 +aliases: /operate/rs/release-notes/rs-7-8-releases/rs-7-8-2-tba/ +--- + +​[​Redis Software version 7.8.2](https://redis.com/redis-enterprise-software/download-center/software/) is now available! + +## Highlights + +This version offers: + +- Redis Community Edition 7.4 features + +- Hash field expiration + +- Client-side caching support + +- Metrics stream engine preview + +- New APIs to check database availability, rebalance shards, fail over shards, and control database traffic + +- Cluster Manager UI enhancements for node actions, database tags, and database configuration + +- User manager role + +- Log rotation based on both size and time + +- Module management enhancements + +- Configurable minimum password length + +- Configurable license expiration alert threshold + +## New in this release + +### New features + +- Redis Community Edition and Redis Stack 7.4 features are now available when you [create]({{}}) or [upgrade]({{}}) a database with database version 7.4, including: + + - [Hash field expiration]({{}}) + + - New vector data types to reduce ‌memory usage + + - Time series insertion filters + + - See the [Redis 7.4 release blog post](https://redis.io/blog/announcing-redis-community-edition-and-redis-stack-74/) and [Redis Community Edition 7.4 release notes]({{}}) for details. + +- Client-side caching support: + + - Client-side caching allows Redis clients to store a subset of data in a local cache and avoid sending repeated read requests to the Redis database. + + - When used to cache frequently accessed data, this technique can improve performance by decreasing network traffic, latency, and load on the database. + + - Supported for Redis databases with Redis versions 7.4 and later. + + - For more information, see the [client-side caching introduction]({{}}) and [client-side caching compatibility with Redis Software]({{}}). + +- Database availability API: + + - Verifies whether a Redis Software database is available to perform read and write operations and can respond to queries from client applications. + + - Load balancers and automated monitoring tools can use this API to monitor database availability. + + - See [Check database availability]({{}}) and the [REST API reference]({{}}) for details. + +- Metrics stream engine preview: + + - The new metrics stream engine's exporter-based infrastructure provides access to more accurate, real-time data. This enhanced, scalable monitoring system allows you to set up more effective alerts and respond to issues faster. + + - Exposes a new `/v2` Prometheus scraping endpoint that you can use to export metrics to external monitoring tools such as Grafana, DataDog, NewRelic, and Dynatrace. + + - Exports raw data instead of aggregated data to improve monitoring at scale and accuracy compared to v1 Prometheus metrics. + + - For an initial list of metrics exported by the new metrics stream engine, see [Prometheus metrics v2]({{}}). While the metrics stream engine is in preview, this document provides only a partial list. More metrics will be added. + + - V1 Prometheus metrics are deprecated. To transition to the new metrics stream engine, either migrate your existing dashboards using [Prometheus v1 metrics and equivalent v2 PromQL]({{}}) now, or wait to use new preconfigured dashboards when they become available in a future release. + +- [Rebalance shard placement REST API request]({{}}), which distributes the database's shards across nodes based on the database's shard placement policy. See [Shard placement policy]({{}}) for more information about shard placement and available policies. + +- [Shard failover REST API requests]({{}}), which perform failover on specified primary shards and promotes their replicas to primary shards. + +- REST API requests to [stop traffic]({{}}) or [resume traffic]({{}}) to a database. + +### Enhancements + +- New Cluster Manager UI enhancements: + + - Perform node actions from the **Nodes** screen to [verify nodes]({{}}), [set a node as primary or secondary]({{}}), [remove nodes]({{}}), and manage node alert settings. + + - Categorize databases with [custom tags]({{}}). When you add new tags to a database, the keys and values already used by existing tags will appear as suggestions. + + - Moved several settings on the database configuration screen: + + - The eviction setting now appears in the [**Capacity**]({{}}) section. + + - [**High availability**]({{}}) and [**Durability**]({{}}) have separate sections. + + - Improved error messages on the sign-in screen for locked out users versus incorrect or expired passwords. + + - Flush an Active-Active database. + +- A new **User Manager** role designed for user administration is available for [role-based access control]({{}}). + + - This management role allows assigned users to create, edit, and delete users using the Cluster Manager UI and REST API. + + - For more details about the privileges granted by the **User Manager** role, see [Cluster Manager UI permissions]({{}}) and [REST API permissions]({{}}). + +- When you upgrade a database, the upgrade process also attempts to upgrade database modules by default. + + - [`rladmin upgrade db`]({{}}) will always upgrade the database's modules. + + - If you [upgrade a database]({{}}) using the REST API, you can set `"latest_with_modules": false` in the request body to prevent module upgrades. + +- Added support for [log rotation]({{}}) based on both size and time. + +- [Minimum password length]({{}}), previously hardcoded as 8 characters, is now configurable in the Cluster Manager UI and the REST API. + +- The [cluster license expiration alert threshold]({{}}), which determines how far in advance you want to be notified of the license expiration, is configurable in the Cluster Manager UI and the REST API. + +- The Cluster Manager UI's time zone can be configured with an [update CM settings REST API request]({{}}). + +- Timeouts for raising connection alarms can be configured with an [update database configuration REST API request]({{}}): + + - `crdt_sync_connection_alarm_timeout_seconds`: if the syncer takes longer than the specified number of seconds to connect to an Active-Active database, raise a connection alarm. + + - `replica_sync_connection_alarm_timeout_seconds`: if the syncer takes longer than the specified number of seconds to connect to a replica, raise a connection alarm. + +- Reserved the following ports: + + | Port | Process name | Usage | + |------|--------------|-------| + | 3347 | cert_exporter | Reports cluster certificate metrics | + | 3348 | process_exporter | Reports process metrics for DMC and Redis processes | + | 3349 | cluster_wd_exporter | Reports cluster watchdog metrics | + | 3350 | db_controller | Internode communication | + | 9091 | node_exporter | Reports host node metrics related to CPU, memory, disk, and more | + | 9125 | statsd_exporter | Reports push metrics related to the DMC and syncer, and some cluster and node metrics | + +### Redis database versions + +Redis Software version 7.8.2 includes three Redis database versions: 7.4, 7.2, and 6.2. + +The [default Redis database version]({{}}) is 7.4. + +### Redis module feature sets + +Redis Software comes packaged with several modules. As of version 7.8.2, Redis Software includes three feature sets, compatible with different Redis database versions. + +The following table shows which Redis modules are compatible with each Redis database version included in this release. + +| Redis database version | Compatible Redis modules | +|------------------------|--------------------------| +| 7.4 | [RediSearch 2.10.8]({{< relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redisearch/redisearch-2.10-release-notes.md" >}})
[RedisJSON 2.8.4]({{< relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redisjson/redisjson-2.8-release-notes.md" >}})
[RedisTimeSeries 1.12.3]({{< relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redistimeseries/redistimeseries-1.12-release-notes.md" >}})
[RedisBloom 2.8.2]({{< relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redisbloom/redisbloom-2.8-release-notes.md" >}}) | +| 7.2 | [RediSearch 2.8.19]({{< relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redisearch/redisearch-2.8-release-notes.md" >}})
[RedisJSON 2.6.13]({{< relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redisjson/redisjson-2.6-release-notes.md" >}})
[RedisTimeSeries 1.10.15]({{< relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redistimeseries/redistimeseries-1.10-release-notes.md" >}})
[RedisBloom 2.6.15]({{< relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redisbloom/redisbloom-2.6-release-notes.md" >}}) | +| 6.2 | [RediSearch 2.6.23]({{< relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redisearch/redisearch-2.6-release-notes.md" >}})
[RedisJSON 2.4.9]({{< relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redisjson/redisjson-2.4-release-notes.md" >}})
[RedisTimeSeries 1.8.15]({{< relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redistimeseries/redistimeseries-1.8-release-notes.md" >}})
[RedisBloom 2.4.12]({{< relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redisbloom/redisbloom-2.4-release-notes.md" >}})
[RedisGraph v2.10.15]({{< relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redisgraph/redisgraph-2.10-release-notes.md" >}})[1](#module-note-1) | + +1. RedisGraph end-of-life has been announced and will be removed in a future release. See the [RedisGraph end-of-life announcement](https://redis.io/blog/redisgraph-eol/) for more details. + +### Resolved issues + +- RS123645: Fixed inconsistent behavior for shard creation when you enable sharding. Now, when creating a database with sharding enabled, you must always provide a `shard_key_regex`. + +- RS130444: Fixed an issue that prevented creating or editing users without an email address in the Cluster Manager UI. + +- RS121796: The "multiple endpoint" configuration database default setting should also enable sharding when selected. + +- RS128768: Fixed an issue that prevented metric graph timestamp details from displaying in the Cluster Manager UI. + +- RS127120: Fixed an issue where `crdt_replicas` were not properly updated when flushing an Active-Active database. + +- RS127054: Fixed an issue where the install script incorrectly reported "Port 53 is occupied" instead of the correct value of the occupied port. + +- RS125934: Fixed validation that prevented updating the Active-Active database configuration if existing TLS certificates expired. + +- RS125412: Fixed an issue where deleted external IP addresses were still listed as available during node configuration when joining a cluster. + +- RS122012: Fixed an issue that sent a cutoff email message for long-running alerts. + +- RS121726: Block the `remove_shards` option for `rlutil`. You can use Replica Of to decrease the shard count instead. + +- RS121076: Added a 5-minute connection timeout when promoting a replica shard to a primary role. + +- RS118103: Removed the inaccurate shard `BACKUP_PROGRESS` column from the `rladmin status` command's output. + +- RS116990: Fixed an issue with flash-enabled databases where `FLUSHDB` could cause shard crashes in versions 7.0 and 7.2, and cause clients to stop responding in earlier versions. + +- RS114923: Fixed an issue where the legacy RDB parser could generate an `XGROUP CREATE` command with an incorrect `ENTRIESREAD` value when syncing a source RDB to a database with Redis version 7.0 or later. + +- RS114258: Fixed an issue where an Active-Active database instance could lose keys during partial syncing if the destination shard was stale. + +- RS133653: Fixed a validation issue where expired client certificates prevented updates to database configuration unrelated to TLS. + +- RS126235: Fixed an issue where database updates could time out and enter a change pending state due to outdated shard data. + +- RS125128: Improved real-time logging for installation and upgrade for better visibility. + +- RS119958: Removed the log file limit that caused the debuginfo script to fail with the error "/bin/tar: Argument list too long" in Auto Tiering clusters and improved RocksDB log file rotation. + +- RS137396: Providing an email address is no longer mandatory when creating new ACL users in the Cluster Manager UI. + +- RS134238: Improved database sorting performance in the Cluster Manager UI. + +- RS129418: Improved log rotation mechanism for Auto Tiering clusters to reduce excessive logs. + +- RS137231: Fixed an issue where database shards could become stuck during migration due to outdated node data. + +## Version changes + +- Added validation to verify the LDAP server URI contains a host and port when updating LDAP configuration. + +- The value of the `oss_sharding` API field had no effect in previous versions of Redis Software. However, `oss_sharding` is now set to take effect as part of future plans. Until further notice, set this field to `false` to avoid unintended impacts. + +### Breaking changes + +Redis Software version 7.8.2 introduces the following breaking changes: + +- When you upgrade a database, the upgrade process also attempts to upgrade database modules by default. + + - The default value of `latest_with_modules` has changed to `true`. + + - [`rladmin upgrade db`]({{}}) will always upgrade the database's modules. + + - When you [upgrade a database]({{}}) using the REST API, you can set `"latest_with_modules": false` in the request body to prevent module upgrades. + +### Redis database version 7.4 breaking changes {#redis-74-breaking-changes} + +When new major versions of Redis Community Edition change existing commands, upgrading your database to a new version can potentially break some functionality. Before you upgrade, read the provided list of breaking changes that affect Redis Software and update any applications that connect to your database to handle these changes. + +Confirm your Redis database version (`redis_version`) using the Cluster Manager UI or run the following [`INFO`]({{< relref "/commands/info" >}}) command with [`redis-cli`]({{< relref "/operate/rs/references/cli-utilities/redis-cli" >}}): + +```sh +$ redis-cli -p INFO +"# Server +redis_version:7.0.8 +..." +``` + +#### Security behavior changes + +- [#13108](https://github.com/redis/redis/pull/13108) Lua: LRU eviction for scripts generated with `EVAL`. + +#### Other general behavior changes + +- [#13133](https://github.com/redis/redis/pull/13133) Lua: allocate VM code with jemalloc instead of libc and count it as used memory. + +- [#12171](https://github.com/redis/redis/pull/12171) `ACL LOAD`: do not disconnect all clients. + +### Product lifecycle updates + +#### End-of-life policy extension + +The end-of-life policy for Redis Software versions 6.2 and later has been extended to 24 months after the formal release of the subsequent major version. For the updated end-of-life schedule, see the [Redis Software product lifecycle]({{}}). + +#### Supported upgrade paths + +Redis Software versions 6.2.4 and 6.2.8 do not support direct upgrades beyond version 7.4.x. Versions 6.2.10, 6.2.12, and 6.2.18 are part of the [upgrade path]({{}}). To upgrade from 6.2.4 or 6.2.8 to versions later than 7.4.x, an intermediate upgrade is required. + +The next major Redis Software release will still bundle Redis database version 6.2 and allow database upgrades from Redis database version 6.2 to 7.x. + +See the [Redis Software product lifecycle]({{}}) for more information about release numbers. + +#### End of triggers and functions preview + +The [triggers and functions]({{}}) (RedisGears) preview has been discontinued. + +- Commands such as `TFCALL`, `TFCALLASYNC`, and `TFUNCTION` will be deprecated and will return error messages. + +- Any JavaScript functions stored in Redis will be removed. + +- JavaScript-based triggers will be blocked. + +- Lua functions and scripts will not be affected. + +If your database currently uses triggers and functions, you need to: + +1. Adjust your applications to accommodate these changes. + +1. Delete all triggers and functions libraries from your existing database: + + 1. Run `TFUNCTION LIST`. + + 1. Copy all library names. + + 1. Run `TFUNCTION DELETE` for each library in the list. + + If any triggers and functions libraries remain in the database, the RDB snapshot won't load on a cluster without RedisGears. + +1. Migrate your database to a new database without the RedisGears module. + +### Deprecations + +#### API deprecations + +- Deprecated `background_op` field from BDB REST API object. Use [`GET /v1/actions/bdb/`]({{}}) instead. + +- Deprecated the following fields for [upgrade database]({{}}) REST API requests: + + - `keep_redis_version`; use `redis_version` instead + + - `current_module`; use `new_module_args` instead + + - `new_module`; use `new_module_args` instead + +- Deprecated the following `module_list` fields for [create database]({{}}) REST API requests: + + - `module_id`; use `module_name` instead + + - `semantic_version`; use module_args instead + +- `min_redis_version` is only relevant to Redis database versions earlier than 7.4 and is replaced with `compatible_redis_version` in [module REST API]({{}}) responses. + +- Deprecated the [`rladmin upgrade modules`]({{}}) command. Use [`rladmin upgrade db`]({{}}) instead. + +- Deprecated [`POST /v1/modules/upgrade/bdb/`]({{}}) REST API request. Use [`POST /v1/bdbs//upgrade`]({{}}) to upgrade modules instead. + +#### V1 Prometheus metrics deprecation + + V1 Prometheus metrics are deprecated. To transition to the new metrics stream engine, either migrate your existing dashboards using [Prometheus v1 metrics and equivalent v2 PromQL]({{}}) now, or wait to use new preconfigured dashboards when they become available in a future release. + +#### Download center modules deprecation + +New Redis modules will not be available for download from the Redis download center. + +#### Legacy UI not supported + +The legacy UI was deprecated in favor of the new Cluster Manager UI in Redis Software version 7.2.4 and is no longer supported as of Redis Software version 7.8.2. + +#### Redis 6.0 databases not supported + +Redis database version 6.0 was deprecated in Redis Software version 7.4.2 and is no longer supported as of Redis Software version 7.8.2. + +To prepare for the removal of Redis database version 6.0 before you upgrade to Redis Software version 7.8.2: + +- For Redis Software 6.2.* clusters, upgrade Redis 6.0 databases to Redis 6.2. See the [Redis 6.2 release notes](https://raw.githubusercontent.com/redis/redis/6.2/00-RELEASENOTES) for the list of changes. + +- For Redis Software 7.2.4 and 7.4.2 clusters, upgrade Redis 6.0 databases to Redis 7.2. Before you upgrade your databases, see the list of [Redis 7.2 breaking changes]({{< relref "/operate/rs/release-notes/rs-7-2-4-releases/rs-7-2-4-52#redis-72-breaking-changes" >}}) and update any applications that connect to your database to handle these changes. + +#### Ubuntu 18.04 not supported + +Ubuntu 18.04 was deprecated in Redis Software version 7.2.4 and is no longer supported as of Redis Software version 7.8.2. + +### Upcoming changes + +#### Default image change for Redis Software containers + +Starting with version 7.8, Redis Software containers with the image tag `x.y.z-build` will be based on RHEL instead of Ubuntu. + +This change will only affect you if you use containers outside the official [Redis Enterprise for Kubernetes]({{}}) product and use Ubuntu-specific commands. + +To use Ubuntu-based images after this change, you can specify the operating system suffix in the image tag. For example, use the image tag `7.4.2-216.focal` instead of `7.4.2-216`. + +### Supported platforms + +The following table provides a snapshot of supported platforms as of this Redis Software release. See the [supported platforms reference]({{< relref "/operate/rs/references/supported-platforms" >}}) for more details about operating system compatibility. + + Supported – The platform is supported for this version of Redis Software and Redis Stack modules. + +:warning: Deprecation warning – The platform is still supported for this version of Redis Software, but support will be removed in a future release. + +| Redis Software
major versions | 7.8 | 7.4 | 7.2 | 6.4 | 6.2 | +|---------------------------------|:-----:|:-----:|:-----:|:-----:|:-----:| +| **Release date** | Nov 2024 | Feb 2024 | Aug 2023 | Feb 2023 | Aug 2021 | +| [**End-of-life date**]({{< relref "/operate/rs/installing-upgrading/product-lifecycle#endoflife-schedule" >}}) | Determined after
next major release | Nov 2026 | Feb 2026 | Aug 2025 | Feb 2025 | +| **Platforms** | | | | | | +| RHEL 9 &
compatible distros[1](#table-note-1) | | | – | – | – | +| RHEL 9
FIPS mode[5](#table-note-5) | | – | – | – | – | +| RHEL 8 &
compatible distros[1](#table-note-1) | | | | | | +| RHEL 7 &
compatible distros[1](#table-note-1) | – | – | :warning: | | | +| Ubuntu 20.04[2](#table-note-2) | | | | | – | +| Ubuntu 18.04[2](#table-note-2) | – | :warning: | :warning: | | | +| Ubuntu 16.04[2](#table-note-2) | – | – | :warning: | | | +| Amazon Linux 2 | | | | | – | +| Amazon Linux 1 | – | – | | | | +| Kubernetes[3](#table-note-3) | | | | | | +| Docker[4](#table-note-4) | | | | | | + +1. The RHEL-compatible distributions CentOS, CentOS Stream, Alma, and Rocky are supported if they have full RHEL compatibility. Oracle Linux running the Red Hat Compatible Kernel (RHCK) is supported, but the Unbreakable Enterprise Kernel (UEK) is not supported. + +2. The server version of Ubuntu is recommended for production installations. The desktop version is only recommended for development deployments. + +3. See the [Redis Enterprise for Kubernetes documentation]({{< relref "/operate/kubernetes/reference/supported_k8s_distributions" >}}) for details about support per version and Kubernetes distribution. + +4. [Docker images]({{< relref "/operate/rs/installing-upgrading/quickstarts/docker-quickstart" >}}) of Redis Software are certified for development and testing only. + +5. Supported only if [FIPS was enabled during RHEL installation](https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/security_hardening/switching-rhel-to-fips-mode_security-hardening#proc_installing-the-system-with-fips-mode-enabled_switching-rhel-to-fips-mode) to ensure FIPS compliance. + +## Downloads + +The following table shows the SHA256 checksums for the available packages: + +| Package | SHA256 checksum (7.8.2-34 Nov release) | +|---------|---------------------------------------| +| Ubuntu 20 | 17500356d8338e4f8fd8a37e7b39a190d05ca66d35ae6c4aa3aa8cbc7bb99864 | +| Red Hat Enterprise Linux (RHEL) 8 | caa2ccd24749ae1fb904841df50a8b69b69c74441458649ca49b9b617e286191 | +| Red Hat Enterprise Linux (RHEL) 9 | 31f9d07beb7dfd9239083ecad99ecbfe3cdfcf96673881ebed08171d8194bff3 | +| Amazon Linux 2 | a737ca86d800caf9ca266d5771fbcffd3f973a7fb8e63e7b819681322ff6ed67 | + +## Known issues + +- RS131972: Creating an ACL that contains a line break in the Cluster Manager UI can cause shard migration to fail due to ACL errors. + +## Known limitations + +#### New Cluster Manager UI limitations + +The following legacy UI features are not yet available in the new Cluster Manager UI: + +- Purge an Active-Active instance. + + Use [`crdb-cli crdb purge-instance`]({{< relref "/operate/rs/references/cli-utilities/crdb-cli/crdb/purge-instance" >}}) instead. + +- Search and export the log. + +#### RedisGraph prevents upgrade to RHEL 9 + +You cannot upgrade from a prior RHEL version to RHEL 9 if the Redis Software cluster contains a RedisGraph module, even if unused by any database. The [RedisGraph module has reached End-of-Life](https://redis.com/blog/redisgraph-eol/) and is completely unavailable in RHEL 9. + +## Security + +#### Open source Redis security fixes compatibility + +As part of Redis's commitment to security, Redis Software implements the latest [security fixes](https://github.com/redis/redis/releases) available with [open source Redis](https://github.com/redis/redis). Redis Software has already included the fixes for the relevant CVEs. + +Some CVEs announced for open source Redis do not affect Redis Software due to different or additional functionality available in Redis Software that is not available in open source Redis. + +Redis Software 7.8.2-34 supports open source Redis 7.4, 7.2, and 6.2. Below is the list of open source Redis CVEs fixed by version. + +Redis 7.2.x: + +- (CVE-2024-31449) An authenticated user may use a specially crafted Lua script to trigger a stack buffer overflow in the bit library, which may potentially lead to remote code execution. + +- (CVE-2024-31228) An authenticated user can trigger a denial-of-service by using specially crafted, long string match patterns on supported commands such as `KEYS`, `SCAN`, `PSUBSCRIBE`, `FUNCTION LIST`, `COMMAND LIST`, and ACL definitions. Matching of extremely long patterns may result in unbounded recursion, leading to stack overflow and process crashes. + +- (CVE-2023-41056) In some cases, Redis may incorrectly handle resizing of memory buffers, which can result in incorrect accounting of buffer sizes and lead to heap overflow and potential remote code execution. + +- (CVE-2023-41053) Redis does not correctly identify keys accessed by `SORT_RO` and, as a result, may grant users executing this command access to keys that are not explicitly authorized by the ACL configuration. (Redis 7.2.1) + +Redis 7.0.x: + +- (CVE-2024-31449) An authenticated user may use a specially crafted Lua script to trigger a stack buffer overflow in the bit library, which may potentially lead to remote code execution. + +- (CVE-2024-31228) An authenticated user can trigger a denial-of-service by using specially crafted, long string match patterns on supported commands such as `KEYS`, `SCAN`, `PSUBSCRIBE`, `FUNCTION LIST`, `COMMAND LIST`, and ACL definitions. Matching of extremely long patterns may result in unbounded recursion, leading to stack overflow and process crashes. + +- (CVE-2023-41056) In some cases, Redis may incorrectly handle resizing of memory buffers, which can result in incorrect accounting of buffer sizes and lead to heap overflow and potential remote code execution. + +- (CVE-2023-41053) Redis does not correctly identify keys accessed by `SORT_RO` and, as a result, may grant users executing this command access to keys that are not explicitly authorized by the ACL configuration. (Redis 7.0.13) + +- (CVE-2023-36824) Extracting key names from a command and a list of arguments may, in some cases, trigger a heap overflow and result in reading random heap memory, heap corruption, and potentially remote code execution. Specifically: using `COMMAND GETKEYS*` and validation of key names in ACL rules. (Redis 7.0.12) + +- (CVE-2023-28856) Authenticated users can use the `HINCRBYFLOAT` command to create an invalid hash field that will crash Redis on access. (Redis 7.0.11) + +- (CVE-2023-28425) Specially crafted `MSETNX` commands can lead to assertion and denial-of-service. (Redis 7.0.10) + +- (CVE-2023-25155) Specially crafted `SRANDMEMBER`, `ZRANDMEMBER`, and `HRANDFIELD` commands can trigger an integer overflow, resulting in a runtime assertion and termination of the Redis server process. (Redis 7.0.9) + +- (CVE-2023-22458) Integer overflow in the Redis `HRANDFIELD` and `ZRANDMEMBER` commands can lead to denial-of-service. (Redis 7.0.8) + +- (CVE-2022-36021) String matching commands (like `SCAN` or `KEYS`) with a specially crafted pattern to trigger a denial-of-service attack on Redis can cause it to hang and consume 100% CPU time. (Redis 7.0.9) + +- (CVE-2022-35977) Integer overflow in the Redis `SETRANGE` and `SORT`/`SORT_RO` commands can drive Redis to OOM panic. (Redis 7.0.8) + +- (CVE-2022-35951) Executing an `XAUTOCLAIM` command on a stream key in a specific state, with a specially crafted `COUNT` argument, may cause an integer overflow, a subsequent heap overflow, and potentially lead to remote code execution. The problem affects Redis versions 7.0.0 or newer. (Redis 7.0.5) + +- (CVE-2022-31144) A specially crafted `XAUTOCLAIM` command on a stream key in a specific state may result in heap overflow and potentially remote code execution. The problem affects Redis versions 7.0.0 or newer. (Redis 7.0.4) + +- (CVE-2022-24834) A specially crafted Lua script executing in Redis can trigger a heap overflow in the cjson and cmsgpack libraries, and result in heap corruption and potentially remote code execution. The problem exists in all versions of Redis with Lua scripting support, starting from 2.6, and affects only authenticated and authorized users. (Redis 7.0.12) + +- (CVE-2022-24736) An attacker attempting to load a specially crafted Lua script can cause NULL pointer dereference which will result in a crash of the `redis-server` process. This issue affects all versions of Redis. (Redis 7.0.0) + +- (CVE-2022-24735) By exploiting weaknesses in the Lua script execution environment, an attacker with access to Redis can inject Lua code that will execute with the (potentially higher) privileges of another Redis user. (Redis 7.0.0) + +Redis 6.2.x: + +- (CVE-2024-31449) An authenticated user may use a specially crafted Lua script to trigger a stack buffer overflow in the bit library, which may potentially lead to remote code execution. + +- (CVE-2024-31228) An authenticated user can trigger a denial-of-service by using specially crafted, long string match patterns on supported commands such as `KEYS`, `SCAN`, `PSUBSCRIBE`, `FUNCTION LIST`, `COMMAND LIST`, and ACL definitions. Matching of extremely long patterns may result in unbounded recursion, leading to stack overflow and process crashes. + +- (CVE-2023-28856) Authenticated users can use the `HINCRBYFLOAT` command to create an invalid hash field that will crash Redis on access. (Redis 6.2.12) + +- (CVE-2023-25155) Specially crafted `SRANDMEMBER`, `ZRANDMEMBER`, and `HRANDFIELD` commands can trigger an integer overflow, resulting in a runtime assertion and termination of the Redis server process. (Redis 6.2.11) + +- (CVE-2023-22458) Integer overflow in the Redis `HRANDFIELD` and `ZRANDMEMBER` commands can lead to denial-of-service. (Redis 6.2.9) + +- (CVE-2022-36021) String matching commands (like `SCAN` or `KEYS`) with a specially crafted pattern to trigger a denial-of-service attack on Redis can cause it to hang and consume 100% CPU time. (Redis 6.2.11) + +- (CVE-2022-35977) Integer overflow in the Redis `SETRANGE` and `SORT`/`SORT_RO` commands can drive Redis to OOM panic. (Redis 6.2.9) + +- (CVE-2022-24834) A specially crafted Lua script executing in Redis can trigger a heap overflow in the cjson and cmsgpack libraries, and result in heap corruption and potentially remote code execution. The problem exists in all versions of Redis with Lua scripting support, starting from 2.6, and affects only authenticated and authorized users. (Redis 6.2.13) + +- (CVE-2022-24736) An attacker attempting to load a specially crafted Lua script can cause NULL pointer dereference which will result in a crash of the `redis-server` process. This issue affects all versions of Redis. (Redis 6.2.7) + +- (CVE-2022-24735) By exploiting weaknesses in the Lua script execution environment, an attacker with access to Redis can inject Lua code that will execute with the (potentially higher) privileges of another Redis user. (Redis 6.2.7) + +- (CVE-2021-41099) Integer to heap buffer overflow handling certain string commands and network payloads, when `proto-max-bulk-len` is manually configured to a non-default, very large value. (Redis 6.2.6) + +- (CVE-2021-32762) Integer to heap buffer overflow issue in `redis-cli` and `redis-sentinel` parsing large multi-bulk replies on some older and less common platforms. (Redis 6.2.6) + +- (CVE-2021-32761) An integer overflow bug in Redis version 2.2 or newer can be exploited using the `BITFIELD` command to corrupt the heap and potentially result with remote code execution. (Redis 6.2.5) + +- (CVE-2021-32687) Integer to heap buffer overflow with intsets, when `set-max-intset-entries` is manually configured to a non-default, very large value. (Redis 6.2.6) + +- (CVE-2021-32675) Denial Of Service when processing RESP request payloads with a large number of elements on many connections. (Redis 6.2.6) + +- (CVE-2021-32672) Random heap reading issue with Lua Debugger. (Redis 6.2.6) + +- (CVE-2021-32628) Integer to heap buffer overflow handling ziplist-encoded data types, when configuring a large, non-default value for `hash-max-ziplist-entries`, `hash-max-ziplist-value`, `zset-max-ziplist-entries` or `zset-max-ziplist-value`. (Redis 6.2.6) + +- (CVE-2021-32627) Integer to heap buffer overflow issue with streams, when configuring a non-default, large value for `proto-max-bulk-len` and `client-query-buffer-limit`. (Redis 6.2.6) + +- (CVE-2021-32626) Specially crafted Lua scripts may result with Heap buffer overflow. (Redis 6.2.6) + +- (CVE-2021-32625) An integer overflow bug in Redis version 6.0 or newer can be exploited using the STRALGO LCS command to corrupt the heap and potentially result with remote code execution. This is a result of an incomplete fix by CVE-2021-29477. (Redis 6.2.4) + +- (CVE-2021-29478) An integer overflow bug in Redis 6.2 could be exploited to corrupt the heap and potentially result with remote code execution. The vulnerability involves changing the default set-max-intset-entries configuration value, creating a large set key that consists of integer values and using the COPY command to duplicate it. The integer overflow bug exists in all versions of Redis starting with 2.6, where it could result with a corrupted RDB or DUMP payload, but not exploited through COPY (which did not exist before 6.2). (Redis 6.2.3) + +- (CVE-2021-29477) An integer overflow bug in Redis version 6.0 or newer could be exploited using the STRALGO LCS command to corrupt the heap and potentially result in remote code execution. The integer overflow bug exists in all versions of Redis starting with 6.0. (Redis 6.2.3) diff --git a/content/operate/rs/security/access-control/create-cluster-roles.md b/content/operate/rs/security/access-control/create-cluster-roles.md index 86af595694..27b8424842 100644 --- a/content/operate/rs/security/access-control/create-cluster-roles.md +++ b/content/operate/rs/security/access-control/create-cluster-roles.md @@ -22,6 +22,7 @@ Redis Enterprise Software includes five predefined roles that determine a user's 1. **DB Member** - Administer databases 1. **Cluster Viewer** - Read cluster settings 1. **Cluster Member** - Administer the cluster +1. **User Manager** - Administer users 1. **Admin** - Full cluster access 1. **None** - For data access only - cannot access the Cluster Manager UI or use the REST API @@ -31,21 +32,22 @@ For more details about the privileges granted by each of these roles, see [Clust Here's a summary of the Cluster Manager UI actions permitted by each default management role: -| Action | DB Viewer | DB Member | Cluster Viewer | Cluster Member | Admin | -|--------|:---------:|:---------:|:--------------:|:-----------:|:------:| -| Create support package | ❌ No | ✅ Yes | ❌ No | ✅ Yes | ✅ Yes | -| Edit database configuration | ❌ No | ✅ Yes | ❌ No | ✅ Yes | ✅ Yes | -| Reset slow log | ❌ No | ✅ Yes | ❌ No | ✅ Yes | ✅ Yes | -| View cluster configuration | ❌ No | ❌ No | ✅ Yes | ✅ Yes | ✅ Yes | -| View cluster logs | ❌ No | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes
| -| View cluster metrics | ❌ No | ❌ No | ✅ Yes | ✅ Yes | ✅ Yes | -| View database configuration | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | -| View database metrics | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | -| View node configuration | ❌ No | ❌ No | ✅ Yes | ✅ Yes | ✅ Yes | -| View node metrics | ❌ No | ❌ No | ✅ Yes | ✅ Yes | ✅ Yes | -| View Redis database password | ❌ No | ✅ Yes | ❌ No | ✅ Yes | ✅ Yes | -| View slow log | ❌ No | ✅ Yes | ❌ No | ✅ Yes | ✅ Yes | -| View and edit cluster settings |❌ No | ❌ No | ❌ No | ❌ No | ✅ Yes | +| Action | DB Viewer | DB Member | Cluster Viewer | Cluster Member | Admin | User Manager | +|--------|:---------:|:---------:|:--------------:|:-----------:|:------:|:------:| +| Create, edit, delete users and LDAP mappings | ❌ No | ❌ No | ❌ No | ❌ No | ✅ Yes | ✅ Yes | +| Create support package | ❌ No | ✅ Yes | ❌ No | ✅ Yes | ✅ Yes | ❌ No | +| Edit database configuration | ❌ No | ✅ Yes | ❌ No | ✅ Yes | ✅ Yes | ❌ No | +| Reset slow log | ❌ No | ✅ Yes | ❌ No | ✅ Yes | ✅ Yes | ❌ No | +| View cluster configuration | ❌ No | ❌ No | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | +| View cluster logs | ❌ No | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes
| ✅ Yes
| +| View cluster metrics | ❌ No | ❌ No | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | +| View database configuration | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | +| View database metrics | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | +| View node configuration | ❌ No | ❌ No | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | +| View node metrics | ❌ No | ❌ No | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | +| View Redis database password | ❌ No | ✅ Yes | ❌ No | ✅ Yes | ✅ Yes | ✅ Yes | +| View slow log | ❌ No | ✅ Yes | ❌ No | ✅ Yes | ✅ Yes | ❌ No | +| View and edit cluster settings | ❌ No | ❌ No | ❌ No | ❌ No | ✅ Yes | ❌ No | ## Create roles for cluster access {#create-cluster-role} diff --git a/content/operate/rs/security/access-control/manage-passwords/password-complexity-rules.md b/content/operate/rs/security/access-control/manage-passwords/password-complexity-rules.md index 1859817040..1fa73c1467 100644 --- a/content/operate/rs/security/access-control/manage-passwords/password-complexity-rules.md +++ b/content/operate/rs/security/access-control/manage-passwords/password-complexity-rules.md @@ -1,11 +1,11 @@ --- -Title: Enable password complexity rules +Title: Configure password complexity rules alwaysopen: false categories: - docs - operate - rs -description: Enable password complexity rules. +description: Enable password complexity rules and configure minimum password length. linkTitle: Password complexity rules toc: 'true' weight: 30 @@ -28,32 +28,59 @@ In addition, the password: Password complexity rules apply when a new user account is created and when the password is changed. Password complexity rules are not applied to accounts authenticated by an external identity provider. -You can use the Cluster Manager UI or the REST API to enable password complexity rules. +## Enable password complexity rules -## Enable using the Cluster Manager UI +To enable password complexity rules, use one of the following methods: -To enable password complexity rules using the Cluster Manager UI: +- Cluster Manager UI: -1. Go to **Cluster > Security > Preferences**, then select **Edit**. + 1. Go to **Cluster > Security > Preferences**, then select **Edit**. + + 1. In the **Password** section, enable **Complexity rules**. + + 1. Select **Save**. + +- [Update cluster]({{}}) REST API request: + + ```sh + PUT https://[host][:port]/v1/cluster + { "password_complexity": true } + ``` + +## Change minimum password length -1. In the **Password** section, turn on **Complexity rules**. +When password complexity rules are enabled, passwords must have at least 8 characters by default. -1. Select **Save**. +If you change the minimum password length, the new minimum is enforced for new users and when existing users change their passwords. -## Enable using the REST API +To change the minimum password length, use one of the following methods: -To use the REST API to enable password complexity rules: +- Cluster Manager UI: -``` REST -PUT https://[host][:port]/v1/cluster -{"password_complexity":true} -``` + 1. Go to **Cluster > Security > Preferences**. + + 1. Click **Edit**. + + 1. In the **Password** section, enable **Complexity rules**. + + 1. Set the number of characters for **Minimum password length**. + + {{The minimum password length setting appears in the password section of the cluster security preferences screen when complexity rules are enabled.}} + + 1. Click **Save**. + +- [Update cluster]({{}}) REST API request: + + ```sh + PUT https://[host][:port]/v1/cluster + { "password_min_length": } + ``` ## Deactivate password complexity rules -To deactivate password complexity rules: +To deactivate password complexity rules, use one of the following methods: -- Use the Cluster Manager UI: +- Cluster Manager UI: 1. Go to **Cluster > Security > Preferences**, then select **Edit**. @@ -61,4 +88,9 @@ To deactivate password complexity rules: 1. Select **Save**. -- Use the `cluster` REST API endpoint to set `password_complexity` to `false` +- [Update cluster]({{}}) REST API request: + + ```sh + PUT https://[host][:port]/v1/cluster + { "password_complexity": false } + ``` diff --git a/content/operate/rs/security/encryption/tls/enable-tls.md b/content/operate/rs/security/encryption/tls/enable-tls.md index 102c8e4b5e..4c9a10dffc 100644 --- a/content/operate/rs/security/encryption/tls/enable-tls.md +++ b/content/operate/rs/security/encryption/tls/enable-tls.md @@ -36,11 +36,11 @@ To enable mutual TLS for client connections: 1. Select **Mutual TLS (Client authentication)**. - {{Mutual TLS authentication configuration.}} + {{Mutual TLS authentication configuration.}} 1. For each client certificate, select **+ Add certificate**, paste or upload the client certificate, then select **Done**. - If your database uses Replica Of or Active-Active replication, you also need to add the syncer certificates for the participating clusters. See [Enable TLS for Replica Of cluster connections](#enable-tls-for-replica-of-cluster-connections) or [Enable TLS for Active-Active cluster connections](#enable-tls-for-active-active-cluster-connections) for instructions. + If your database uses Replica Of, you also need to add the syncer certificates for the participating clusters. See [Enable TLS for Replica Of cluster connections](#enable-tls-for-replica-of-cluster-connections) for instructions. 1. You can configure **Additional certificate validations** to further limit connections to clients with valid certificates. @@ -73,59 +73,27 @@ To enable mutual TLS for client connections: 1. Select **Save**. - {{< note >}} By default, Redis Enterprise Software validates client certificate expiration dates. You can use `rladmin` to turn off this behavior. ```sh rladmin tune db < db:id | name > mtls_allow_outdated_certs enabled ``` - - {{< /note >}} ## Enable TLS for Active-Active cluster connections -To enable TLS for Active-Active cluster connections: - -1. If you are using the new Cluster Manager UI, switch to the legacy admin console. - - {{Select switch to legacy admin console from the dropdown.}} - -1. [Retrieve syncer certificates.](#retrieve-syncer-certificates) - -1. [Configure TLS certificates for Active-Active.](#configure-tls-certificates-for-active-active) - -1. [Configure TLS on all participating clusters.](#configure-tls-on-all-participating-clusters) - -{{< note >}} You cannot enable or turn off TLS after the Active-Active database is created, but you can change the TLS configuration. -{{< /note >}} - -### Retrieve syncer certificates -For each participating cluster, copy the syncer certificate from the **general** settings tab. - -{{< image filename="/images/rs/general-settings-syncer-cert.png" alt="general-settings-syncer-cert" >}} +To enable TLS for Active-Active cluster connections: -### Configure TLS certificates for Active-Active +1. During [database creation]({{}}), expand the **TLS** configuration section. -1. During database creation (see [Create an Active-Active Geo-Replicated Database]({{< relref "/operate/rs/databases/active-active/create.md" >}}), select **Edit** from the **configuration** tab. -1. Enable **TLS**. - - **Enforce client authentication** is selected by default. If you clear this option, you will still enforce encryption, but TLS client authentication will be deactivated. -1. Select **Require TLS for CRDB communication only** from the dropdown menu. - {{< image filename="/images/rs/crdb-tls-all.png" alt="crdb-tls-all" >}} -1. Select **Add** {{< image filename="/images/rs/icon_add.png#no-click" alt="Add" >}} -1. Paste a syncer certificate into the text box. - {{< image filename="/images/rs/database-tls-replica-certs.png" alt="Database TLS Configuration" >}} -1. Save the syncer certificate. {{< image filename="/images/rs/icon_save.png#no-click" alt="Save" >}} -1. Repeat this process, adding the syncer certificate for each participating cluster. -1. Optional: If also you want to require TLS for client connections, select **Require TLS for All Communications** from the dropdown and add client certificates as well. -1. Select **Update** at the bottom of the screen to save your configuration. +1. Select **On** to enable TLS. -### Configure TLS on all participating clusters + {{TLS is enabled on the Cluster Manager UI screen.}} -Repeat this process on all participating clusters. +1. Click **Create**. -To enforce TLS authentication, Active-Active databases require syncer certificates for each cluster connection. If every participating cluster doesn't have a syncer certificate for every other participating cluster, synchronization will fail. +If you also want to require TLS for client connections, you must edit the Active-Active database configuration after creation. See [Enable TLS for client connections](#client) for instructions. ## Enable TLS for Replica Of cluster connections diff --git a/static/images/rs/buttons/edit-db-tags-button.png b/static/images/rs/buttons/edit-db-tags-button.png new file mode 100644 index 0000000000..b7943746c5 Binary files /dev/null and b/static/images/rs/buttons/edit-db-tags-button.png differ diff --git a/static/images/rs/screenshots/cluster/cluster-config-alert-settings-utilization.png b/static/images/rs/screenshots/cluster/cluster-config-alert-settings-utilization.png new file mode 100644 index 0000000000..573ccfa10d Binary files /dev/null and b/static/images/rs/screenshots/cluster/cluster-config-alert-settings-utilization.png differ diff --git a/static/images/rs/screenshots/cluster/cluster-license-expiration-alert.png b/static/images/rs/screenshots/cluster/cluster-license-expiration-alert.png new file mode 100644 index 0000000000..b6cb31285c Binary files /dev/null and b/static/images/rs/screenshots/cluster/cluster-license-expiration-alert.png differ diff --git a/static/images/rs/screenshots/cluster/security-preferences-min-password-length.png b/static/images/rs/screenshots/cluster/security-preferences-min-password-length.png new file mode 100644 index 0000000000..f89569de5f Binary files /dev/null and b/static/images/rs/screenshots/cluster/security-preferences-min-password-length.png differ diff --git a/static/images/rs/screenshots/databases/active-active-databases/enable-tls-for-active-active-db.png b/static/images/rs/screenshots/databases/active-active-databases/enable-tls-for-active-active-db.png new file mode 100644 index 0000000000..d45e3039ab Binary files /dev/null and b/static/images/rs/screenshots/databases/active-active-databases/enable-tls-for-active-active-db.png differ diff --git a/static/images/rs/screenshots/databases/active-active-databases/quickstart-ha-turn-off-replication-7-8-2.png b/static/images/rs/screenshots/databases/active-active-databases/quickstart-ha-turn-off-replication-7-8-2.png new file mode 100644 index 0000000000..e1f516e219 Binary files /dev/null and b/static/images/rs/screenshots/databases/active-active-databases/quickstart-ha-turn-off-replication-7-8-2.png differ diff --git a/static/images/rs/screenshots/databases/add-db-tags-button.png b/static/images/rs/screenshots/databases/add-db-tags-button.png new file mode 100644 index 0000000000..df0813e1d3 Binary files /dev/null and b/static/images/rs/screenshots/databases/add-db-tags-button.png differ diff --git a/static/images/rs/screenshots/databases/config-clustering-oss-cluster-api-7-8-2.png b/static/images/rs/screenshots/databases/config-clustering-oss-cluster-api-7-8-2.png new file mode 100644 index 0000000000..e6da5b7cff Binary files /dev/null and b/static/images/rs/screenshots/databases/config-clustering-oss-cluster-api-7-8-2.png differ diff --git a/static/images/rs/screenshots/databases/config-replica-ha-enabled-7-8-2.png b/static/images/rs/screenshots/databases/config-replica-ha-enabled-7-8-2.png new file mode 100644 index 0000000000..33cd2c20e4 Binary files /dev/null and b/static/images/rs/screenshots/databases/config-replica-ha-enabled-7-8-2.png differ diff --git a/static/images/rs/screenshots/databases/edit-db-tags-button-location.png b/static/images/rs/screenshots/databases/edit-db-tags-button-location.png new file mode 100644 index 0000000000..45af51bd3f Binary files /dev/null and b/static/images/rs/screenshots/databases/edit-db-tags-button-location.png differ diff --git a/static/images/rs/screenshots/databases/manage-db-tags-dialog-suggestions.png b/static/images/rs/screenshots/databases/manage-db-tags-dialog-suggestions.png new file mode 100644 index 0000000000..214a577ef5 Binary files /dev/null and b/static/images/rs/screenshots/databases/manage-db-tags-dialog-suggestions.png differ diff --git a/static/images/rs/screenshots/databases/quick-db-7-8-2.png b/static/images/rs/screenshots/databases/quick-db-7-8-2.png new file mode 100644 index 0000000000..ff87ac6c99 Binary files /dev/null and b/static/images/rs/screenshots/databases/quick-db-7-8-2.png differ diff --git a/static/images/rs/screenshots/databases/quick-db-capabilities-7-8-2.png b/static/images/rs/screenshots/databases/quick-db-capabilities-7-8-2.png new file mode 100644 index 0000000000..e3d3410982 Binary files /dev/null and b/static/images/rs/screenshots/databases/quick-db-capabilities-7-8-2.png differ diff --git a/static/images/rs/screenshots/databases/quick-db-flash-7-8-2.png b/static/images/rs/screenshots/databases/quick-db-flash-7-8-2.png new file mode 100644 index 0000000000..166a38779b Binary files /dev/null and b/static/images/rs/screenshots/databases/quick-db-flash-7-8-2.png differ diff --git a/static/images/rs/screenshots/databases/rs-config-query-performance-factor.png b/static/images/rs/screenshots/databases/rs-config-query-performance-factor.png new file mode 100644 index 0000000000..6d877c2437 Binary files /dev/null and b/static/images/rs/screenshots/databases/rs-config-query-performance-factor.png differ diff --git a/static/images/rs/screenshots/databases/rs-config-search-params.png b/static/images/rs/screenshots/databases/rs-config-search-params.png new file mode 100644 index 0000000000..abcc99e879 Binary files /dev/null and b/static/images/rs/screenshots/databases/rs-config-search-params.png differ diff --git a/static/images/rs/screenshots/databases/security-mtls-clients-7-8-2.png b/static/images/rs/screenshots/databases/security-mtls-clients-7-8-2.png new file mode 100644 index 0000000000..c39fc8f8da Binary files /dev/null and b/static/images/rs/screenshots/databases/security-mtls-clients-7-8-2.png differ diff --git a/static/images/rs/screenshots/databases/view-db-list-tags.png b/static/images/rs/screenshots/databases/view-db-list-tags.png new file mode 100644 index 0000000000..bfc5ce53ad Binary files /dev/null and b/static/images/rs/screenshots/databases/view-db-list-tags.png differ diff --git a/static/images/rs/screenshots/nodes/confirm-node-removal-selected.png b/static/images/rs/screenshots/nodes/confirm-node-removal-selected.png new file mode 100644 index 0000000000..0d18a61455 Binary files /dev/null and b/static/images/rs/screenshots/nodes/confirm-node-removal-selected.png differ diff --git a/static/images/rs/screenshots/nodes/primary-node-more-actions.png b/static/images/rs/screenshots/nodes/primary-node-more-actions.png new file mode 100644 index 0000000000..140ab3fd96 Binary files /dev/null and b/static/images/rs/screenshots/nodes/primary-node-more-actions.png differ diff --git a/static/images/rs/screenshots/nodes/primary-node-set-as-secondary-dialog.png b/static/images/rs/screenshots/nodes/primary-node-set-as-secondary-dialog.png new file mode 100644 index 0000000000..650808965d Binary files /dev/null and b/static/images/rs/screenshots/nodes/primary-node-set-as-secondary-dialog.png differ diff --git a/static/images/rs/screenshots/nodes/secondary-nodes-more-actions.png b/static/images/rs/screenshots/nodes/secondary-nodes-more-actions.png new file mode 100644 index 0000000000..42f8440912 Binary files /dev/null and b/static/images/rs/screenshots/nodes/secondary-nodes-more-actions.png differ diff --git a/static/images/rs/screenshots/nodes/tmp.txt b/static/images/rs/screenshots/nodes/tmp.txt deleted file mode 100644 index d4ea3ca148..0000000000 --- a/static/images/rs/screenshots/nodes/tmp.txt +++ /dev/null @@ -1 +0,0 @@ -Placeholder file \ No newline at end of file