diff --git a/content/embeds/rs-observability.md b/content/embeds/rs-observability.md index 65e7a09c93..4572d90cba 100644 --- a/content/embeds/rs-observability.md +++ b/content/embeds/rs-observability.md @@ -6,7 +6,8 @@ that connect to Redis Software. In particular, this guide focuses on the systems and resources that are most likely to impact the performance of your application. The screenshot below shows a dashboard with relevant statistics for a node: -{{< image filename="/images/node_summary.png" alt="Dashboard showing relevant statistics for a Node" >}} + +![Dashboard showing relevant statistics for a Node](/images/node_summary.png) To effectively monitor a Redis Software cluster you need to observe core cluster resources and key database performance indicators as described in the following sections for this guide. @@ -27,7 +28,8 @@ Key database performance indicators include: * Proxy Performance Dashboard showing an overview of cluster metrics: -{{< image filename="/images/cluster_overview.png" alt="Dashboard showing an overview of cluster metrics" >}} + +![Dashboard showing an overview of cluster metrics](/images/cluster_overview.png) In addition to manually monitoring these resources and indicators, it is best practice to set up alerts. @@ -49,7 +51,8 @@ in a multi-database cluster. | Memory usage percentage metric | Percentage of used memory relative to the configured memory limit for a given database | Percentage | Dashboard displaying high-level cluster metrics - [Cluster Dashboard](https://github.com/redis-field-engineering/redis-enterprise-observability/blob/main/grafana/dashboards/grafana_v9-11/software/classic/cluster_dashboard_v9-11.json) -{{< image filename="/images/playbook_used-memory.png" alt="Dashboard displaying high-level cluster metrics" >}} + +![Dashboard displaying high-level cluster metrics](/images/playbook_used-memory.png) ### Thresholds @@ -184,7 +187,8 @@ In the dashboard, shard CPU is the CPU utilization of the processes that make up When diagnosing performance issues, start by looking at shard CPU. Dashboard displaying CPU usage - [Database Dashboard](https://github.com/redis-field-engineering/redis-enterprise-observability/blob/main/grafana/dashboards/grafana_v9-11/software/classic/database_dashboard_v9-11.json) -{{< image filename="/images/playbook_database-cpu-shard.png" alt="Dashboard displaying CPU usage" >}} + +![Dashboard displaying CPU usage](/images/playbook_database-cpu-shard.png) ### Thresholds @@ -193,7 +197,8 @@ In general, we define high CPU as any CPU utilization above 80% of total capacit Shard CPU should remain below 80%. Shards are single-threaded, so a shard CPU of 100% means that the shard is fully utilized. Display showing Proxy CPU usage - [Proxy Dashboard](https://github.com/redis-field-engineering/redis-enterprise-observability/blob/main/grafana/dashboards/grafana_v9-11/software/classic/proxy_dashboard_v9-11.json) -{{< image filename="/images/playbook_proxy-cpu-usage.png" alt="Display showing Proxy CPU usage" >}} + +![Display showing Proxy CPU usage](/images/playbook_proxy-cpu-usage.png) Proxy CPU should remain below 80% of total capacity. The proxy is a multi-threaded process that handles client connections and forwards requests to the appropriate shard. @@ -202,7 +207,8 @@ A proxy configured with 6 threads can reach 600% CPU utilization, so in this cas keeping utilization below 80% means keeping the total proxy CPU usage below 480%. Dashboard displaying an ensemble of Node CPU usage data - [Node Dashboard](https://github.com/redis-field-engineering/redis-enterprise-observability/blob/main/grafana/dashboards/grafana_v9-11/software/classic/node_dashboard_v9-11.json) -{{< image filename="/images/node_cpu.png" alt="Dashboard displaying an ensemble of Node CPU usage data" >}} + +![Dashboard displaying an ensemble of Node CPU usage data](/images/node_cpu.png) Node CPU should also remain below 80% of total capacity. As with the proxy, the node CPU is variable depending on the CPU capacity of the node. You will need to calibrate your alerting based on the number of cores in your nodes. @@ -240,7 +246,8 @@ This number should remain relatively constant over time. Dashboard displaying connections - [Database Dashboard](https://github.com/redis-field-engineering/redis-enterprise-observability/blob/main/grafana/dashboards/grafana_v9-11/software/classic/database_dashboard_v9-11.json) -{{< image filename="/images/playbook_database-used-connections.png" alt="Dashboard displaying connections" >}} + +![Dashboard displaying connections](/images/playbook_database-used-connections.png) ### Network ingress/egress @@ -273,7 +280,8 @@ The syncer keeps a replication backlog, which stores changes to the dataset that The syncer uses partial syncs to keep replicas up to date with changes, or a full sync in the event a replica or primary is lost. Dashboard displaying connection metrics between zones - [Synchronization Dashboard](https://github.com/redis-field-engineering/redis-enterprise-observability/blob/main/grafana/dashboards/grafana_v9-11/software/classic/synchronization_dashboard_v9-11.json) -{{< image filename="/images/playbook_network-connectivity.png" alt="Dashboard displaying connection metrics between zones" >}} + +![Dashboard displaying connection metrics between zones](/images/playbook_network-connectivity.png) CRDT provides three fundamental benefits over other geo-distributed solutions: @@ -299,7 +307,8 @@ latency in terms of microseconds. Businesses regularly achieve, and sometimes re microseconds. Dashboard display of latency metrics - [Database Dashboard](https://github.com/redis-field-engineering/redis-enterprise-observability/blob/main/grafana/dashboards/grafana_v9-11/software/classic/database_dashboard_v9-11.json) -{{< image filename="/images/playbook_database-cluster-latency.png" alt="Dashboard display of latency metrics" >}} + +![Dashboard display of latency metrics](/images/playbook_database-cluster-latency.png) The metrics distinguish between read and write latency. Understanding whether high latency is due to read or writes can help you to isolate the underlying issue. @@ -308,7 +317,8 @@ Note that these latency metrics do not include network round trip time or applic which is why it's essential to measure request latency at the application, as well. Display showing a noticeable spike in latency -{{< image filename="/images/latency_spike.png" alt="Display showing a noticeable spike in latency" >}} + +![Display showing a noticeable spike in latency](/images/latency_spike.png) ### Troubleshooting @@ -333,7 +343,8 @@ the exact ideal cache hit rate can vary greatly depending on the application and is already populated. Dashboard showing the cache hit ratio along with read/write misses - [Database Dashboard](https://github.com/redis-field-engineering/redis-enterprise-observability/blob/main/grafana/dashboards/grafana_v9-11/software/classic/database_dashboard_v9-11.json) -{{< image filename="/images/playbook_cache-hit.png" alt="Dashboard showing the cache hit ratio along with read/write misses" >}} + +![Dashboard showing the cache hit ratio along with read/write misses](/images/playbook_cache-hit.png) **Note:** Redis Software actually reports four different cache hit / miss metrics. These are defined as follows: @@ -360,7 +371,8 @@ They **key eviction rate** is rate at which objects are being evicted from the d See [eviction policy]({{< relref "/operate/rs/databases/memory-performance/eviction-policy" >}}) for a discussion of key eviction and its relationship with memory usage. Dashboard displaying object evictions - [Database Dashboard](https://github.com/redis-field-engineering/redis-enterprise-observability/blob/main/grafana/dashboards/grafana_v9-11/software/classic/database_dashboard_v9-11.json) -{{< image filename="/images/playbook_eviction-expiration.png" alt="Dashboard displaying object evictions">}} + +![Dashboard displaying object evictions](/images/playbook_eviction-expiration.png) ## Proxy performance @@ -376,7 +388,8 @@ Redis Software provides high-performance data access through a proxy process tha |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. | Dashboard displaying proxy thread activity - [Proxy Thread Dashboard](https://github.com/redis-field-engineering/redis-enterprise-observability/blob/main/grafana/dashboards/grafana_v9-11/cloud/basic/redis-cloud-proxy-dashboard_v9-11.json) -{{< image filename="/images/proxy-thread-dashboard.png" alt="Dashboard displaying proxy thread activity" >}} + +![Dashboard displaying proxy thread activity](/images/proxy-thread-dashboard.png) If you need to, you can tune the number of proxy threads using the [`rladmin tune proxy`]({{< relref "/operate/rs/references/cli-utilities/rladmin/tune#tune-proxy" >}}) command to make the proxy use more CPU cores. Cores used by the proxy won't be available for Redis, therefore we need to take into account the number of Redis nodes on the host and the total number of available cores. @@ -449,7 +462,8 @@ The slow log is available in the Redis Software and Redis Cloud consoles: * [Redis Cloud slow log docs]({{< relref "/operate/rc/databases/view-edit-database#other-actions-and-info" >}}) Redis Cloud dashboard showing slow database operations -{{< image filename="/images/slow_log.png" alt="Redis Cloud dashboard showing slow database operations" >}} + +![Redis Cloud dashboard showing slow database operations](/images/slow_log.png) | Issue | Remediation | | ------ | :------ | diff --git a/content/operate/kubernetes/7.4.6/faqs/_index.md b/content/operate/kubernetes/7.4.6/faqs/_index.md index e3c34110e6..46bc7b3a4b 100644 --- a/content/operate/kubernetes/7.4.6/faqs/_index.md +++ b/content/operate/kubernetes/7.4.6/faqs/_index.md @@ -131,7 +131,8 @@ echo "Q2h5N1BBY28=" | base64 –-decode To retrieve your password, navigate to the OpenShift management console, select your project name, go to Resources->Secrets->your_cluster_name Retrieve your password by selecting "Reveal Secret." -{{< image filename="/images/rs/openshift-password-retrieval.png" >}} + +![](/images/rs/openshift-password-retrieval.png) ## What capabilities, privileges and permissions are defined by the Security Context Constraint (SCC) yaml? diff --git a/content/operate/kubernetes/7.8.4/faqs/_index.md b/content/operate/kubernetes/7.8.4/faqs/_index.md index 28d95d5751..301f021ecb 100644 --- a/content/operate/kubernetes/7.8.4/faqs/_index.md +++ b/content/operate/kubernetes/7.8.4/faqs/_index.md @@ -132,7 +132,8 @@ echo "Q2h5N1BBY28=" | base64 –-decode To retrieve your password, navigate to the OpenShift management console, select your project name, go to Resources->Secrets->your_cluster_name Retrieve your password by selecting "Reveal Secret." -{{< image filename="/images/rs/openshift-password-retrieval.png" >}} + +![](/images/rs/openshift-password-retrieval.png) ## What capabilities, privileges and permissions are defined by the Security Context Constraint (SCC) yaml? diff --git a/content/operate/rc/cloud-integrations/vercel.md b/content/operate/rc/cloud-integrations/vercel.md index 28deac2530..62da4bd132 100644 --- a/content/operate/rc/cloud-integrations/vercel.md +++ b/content/operate/rc/cloud-integrations/vercel.md @@ -18,7 +18,8 @@ The [Redis Cloud Vercel integration](https://vercel.com/marketplace/redis-cloud) 1. Log in to your Vercel account (or create a new one). 1. Navigate to the **Storage** tab. Under **Marketplace Database Providers**, find **Redis** and select **Create**. - {{The Redis database provider in the Vercel Storage tab.}} + + ![The Redis database provider in the Vercel Storage tab.](/images/rc/vercel-storage-create-database-button.png) 1. In the **Install integration** dialog under **Configuration and plan**, select your region and [high availability](/content/operate/rc/databases/configuration/high-availability.md) settings. @@ -43,9 +44,12 @@ You can use the connection string shown under **Quickstart** to [connect to your 1. Navigate to the **Storage** tab. 1. Find your new database in the list of your team's databases. 1. Select **Connect Project**. - {{Connect Project button}} + + ![Connect Project button](/images/rc/vercel-connect-project-button.png) + 1. Choose your project and environments and select **Connect**. - {{Connect project}} + + ![Connect project](/images/rc/vercel-connect-project.png) ## Manage your database diff --git a/content/operate/rc/databases/connect/insight-cloud.md b/content/operate/rc/databases/connect/insight-cloud.md index 05d826acf3..24fce42ea3 100644 --- a/content/operate/rc/databases/connect/insight-cloud.md +++ b/content/operate/rc/databases/connect/insight-cloud.md @@ -35,11 +35,19 @@ The **Browse** tab lets you browse, filter, and visualize your Redis data struct - Create, read, update, and delete lists, hashes, strings, sets, sorted sets, streams, and [JSON](/content/develop/data-types/json/_index.md) - Filter keys by key name or pattern, and by key type - Group keys according to their namespaces - {{Keys in a database grouped by namespace.}} + + ![Keys in a database grouped by namespace.](/images/rc/rc-ri-browser-group.png) + {width="50%"} + - View, validate, and manage your key values in a human-readable format using formatters that prettify and highlight data in different formats (for example, Unicode, JSON, MessagePack, HEX, and ASCII) - {{Human-readable view of a hash key.}} + + ![Human-readable view of a hash key.](/images/rc/rc-ri-browser-view.png) + {width="50%"} + - Search by key values using your [search indexes](/content/develop/ai/search-and-query/_index.md) - {{Search for keys using a search index.}} + + ![Search for keys using a search index.](/images/rc/rc-ri-browser-search.png) + {width="50%"} If you don't have any Redis data yet, you can select **Load sample data** to add sample data into your database. diff --git a/content/operate/rc/databases/import-data.md b/content/operate/rc/databases/import-data.md index 7ebe0a8179..6fd14418c9 100644 --- a/content/operate/rc/databases/import-data.md +++ b/content/operate/rc/databases/import-data.md @@ -30,7 +30,10 @@ To import a dataset from any publicly available Redis Open Source server: 1. Select **Databases** from the Redis Cloud console menu and then select the target database from the database list. 1. Select **Import**. - {{The Import dataset section and Import button.}} + + ![The Import dataset section and Import button.](/images/rc/database-configuration-import.png) + {width="50%"} + 1. Enter the source database details: - Source type - Select **Redis**. - Redis Hostname/IP Address - Enter the hostname or the public IP address of the source Redis server. Do not include the port number in the hostname. diff --git a/content/operate/rc/rc-quickstart.md b/content/operate/rc/rc-quickstart.md index ea5b1d9b6c..0035802196 100644 --- a/content/operate/rc/rc-quickstart.md +++ b/content/operate/rc/rc-quickstart.md @@ -125,9 +125,13 @@ Redis Insight will open in a new tab. From there, you can: - Select **Load sample data** to add sample data into your database. - {{Load Sample Data button}} + + ![Load Sample Data button](/images/rc/rc-ri-load-data.png) + {width="300px"} + - Select **Insights** to learn how to use Redis. - {{The Insights icon}} + + ![The Insights icon](/images/rc/rc-ri-explore-icon.png) For more information on how to use Redis Insight in your browser, see [Open with Redis Insight on Redis Cloud](/content/operate/rc/databases/connect/insight-cloud.md). diff --git a/content/operate/rc/security/database-security/block-public-endpoints.md b/content/operate/rc/security/database-security/block-public-endpoints.md index 05b54e8f38..6ad5e30970 100644 --- a/content/operate/rc/security/database-security/block-public-endpoints.md +++ b/content/operate/rc/security/database-security/block-public-endpoints.md @@ -56,7 +56,9 @@ To turn on passwordless authentication: 1. From the database **Configuration** tab, select **Edit**. 1. In the **Security** section, select **Use passwordless auth** to turn on passwordless authentication. - {{Turn on passwordless authentication for the default user.}} + + ![Turn on passwordless authentication for the default user.](/images/rc/database-configuration-security-passwordless.png) + 1. Select **Save database** to save your changes. ## Private connectivity methods diff --git a/content/operate/rs/7.4/security/encryption/tls/enable-tls.md b/content/operate/rs/7.4/security/encryption/tls/enable-tls.md index acb99c22ab..6345356a98 100644 --- a/content/operate/rs/7.4/security/encryption/tls/enable-tls.md +++ b/content/operate/rs/7.4/security/encryption/tls/enable-tls.md @@ -135,10 +135,14 @@ For each participating cluster, copy the syncer certificate from the **general** 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" >}} + + ![crdb-tls-all](/images/rs/crdb-tls-all.png) + 1. Select **Add** ![Add](/images/rs/icon_add.png#no-click) 1. Paste a syncer certificate into the text box. - {{< image filename="/images/rs/database-tls-replica-certs.png" alt="Database TLS Configuration" >}} + + ![Database TLS Configuration](/images/rs/database-tls-replica-certs.png) + 1. Save the syncer certificate. ![Save](/images/rs/icon_save.png#no-click) 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.