Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 28 additions & 14 deletions content/embeds/rs-observability.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -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.

Expand All @@ -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

Expand Down Expand Up @@ -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

Expand All @@ -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.
Expand All @@ -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.
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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:

Expand All @@ -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.
Expand All @@ -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

Expand All @@ -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:
Expand All @@ -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

Expand All @@ -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.
Expand Down Expand Up @@ -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 |
| ------ | :------ |
Expand Down
3 changes: 2 additions & 1 deletion content/operate/kubernetes/7.4.6/faqs/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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?
Expand Down
3 changes: 2 additions & 1 deletion content/operate/kubernetes/7.8.4/faqs/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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?
Expand Down
10 changes: 7 additions & 3 deletions content/operate/rc/cloud-integrations/vercel.md
Original file line number Diff line number Diff line change
Expand Up @@ -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**.
{{<image filename="/images/rc/vercel-storage-create-database-button.png" alt="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.

Expand All @@ -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**.
{{<image filename="/images/rc/vercel-connect-project-button.png" alt="Connect Project button">}}

![Connect Project button](/images/rc/vercel-connect-project-button.png)

1. Choose your project and environments and select **Connect**.
{{<image filename="/images/rc/vercel-connect-project.png" alt="Connect project">}}

![Connect project](/images/rc/vercel-connect-project.png)

## Manage your database

Expand Down
14 changes: 11 additions & 3 deletions content/operate/rc/databases/connect/insight-cloud.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
{{<image filename="images/rc/rc-ri-browser-group.png" alt="Keys in a database grouped by namespace." width=50% >}}

![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)
{{<image filename="images/rc/rc-ri-browser-view.png" alt="Human-readable view of a hash key." width=50% >}}

![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)
{{<image filename="images/rc/rc-ri-browser-search.png" alt="Search for keys using a search index." width=50% >}}

![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.

Expand Down
5 changes: 4 additions & 1 deletion content/operate/rc/databases/import-data.md
Original file line number Diff line number Diff line change
Expand Up @@ -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**.
{{<image filename="images/rc/database-configuration-import.png" alt="The Import dataset section and Import button." width="50%" >}}

![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.
Expand Down
8 changes: 6 additions & 2 deletions content/operate/rc/rc-quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
{{<image filename="images/rc/rc-ri-load-data.png" alt="Load Sample Data button" width=300px >}}

![Load Sample Data button](/images/rc/rc-ri-load-data.png)
{width="300px"}

- Select **Insights** to learn how to use Redis.
{{<image filename="images/rc/rc-ri-explore-icon.png" alt="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).

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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.
{{<image filename="images/rc/database-configuration-security-passwordless.png" alt="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
Expand Down
8 changes: 6 additions & 2 deletions content/operate/rs/7.4/security/encryption/tls/enable-tls.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
Loading