Skip to content

Commit ec366d7

Browse files
committed
updating docs
1 parent 72e9660 commit ec366d7

File tree

5 files changed

+211
-175
lines changed

5 files changed

+211
-175
lines changed

docs/modules/ROOT/pages/platforms/grafana.adoc

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ Name: cluster
174174
Label: Cluster
175175
Type: Query
176176
Data source: Redis-Enterprise-Prometheus
177-
Query: label_values(redis_enterprise_cluster_health, cluster)
177+
Query: label_values(node_metrics_up, cluster)
178178
Regex: .*
179179
Multi-value: true
180180
Include All option: true
@@ -184,11 +184,11 @@ Example variable for database selection:
184184

185185
[source,text]
186186
----
187-
Name: database
188-
Label: Database
187+
Name: db
188+
Label: db
189189
Type: Query
190190
Data source: Redis-Enterprise-Prometheus
191-
Query: label_values(redis_enterprise_database_up{cluster="$cluster"}, database)
191+
Query: label_values(endpoint_client_connections{cluster="$cluster"}, db)
192192
Refresh: On Dashboard Load
193193
Multi-value: true
194194
Include All option: true
@@ -201,13 +201,10 @@ Use variables in your panel queries:
201201
[source,promql]
202202
----
203203
# Filter by selected cluster and database
204-
redis_enterprise_database_ops_per_sec{cluster="$cluster", database="$database"}
204+
rate(endpoint_read_requests{cluster="$cluster", db="$db"}[5m]) + rate(endpoint_write_requests{cluster="$cluster", db="$db"}[5m]) + rate(endpoint_other_requests{cluster="$cluster", db="$db"}[5m])
205205
206206
# Multi-value variable example
207-
redis_enterprise_database_ops_per_sec{cluster=~"$cluster", database=~"$database"}
208-
209-
# With regex
210-
redis_enterprise_database_ops_per_sec{cluster=~"$cluster", database=~"$database|prod-.*"}
207+
rate(endpoint_read_requests{cluster=~"$cluster", db=~"$db"}[5m]) + rate(endpoint_write_requests{cluster=~"$cluster", db=~"$db"}[5m]) + rate(endpoint_other_requests{cluster=~"$cluster", db=~"$db"}[5m])
211208
----
212209

213210
=== Panel Configuration Examples
@@ -220,8 +217,8 @@ redis_enterprise_database_ops_per_sec{cluster=~"$cluster", database=~"$database|
220217
"title": "Operations Per Second",
221218
"targets": [
222219
{
223-
"expr": "rate(redis_enterprise_database_total_ops{cluster=\"$cluster\", database=\"$database\"}[5m])",
224-
"legendFormat": "{{database}} - {{cluster}}",
220+
"expr": "rate(endpoint_read_requests{cluster=\"$cluster\", db=\"$db\"}[5m]) + rate(endpoint_write_requests{cluster=\"$cluster\", db=\"$db\"}[5m]) + rate(endpoint_other_requests{cluster=\"$cluster\", db=\"$db\"}[5m])",
221+
"legendFormat": "{{db}} - {{cluster}}",
225222
"refId": "A"
226223
}
227224
],
@@ -243,7 +240,7 @@ redis_enterprise_database_ops_per_sec{cluster=~"$cluster", database=~"$database|
243240
"title": "Memory Usage",
244241
"targets": [
245242
{
246-
"expr": "(redis_enterprise_database_used_memory{cluster=\"$cluster\", database=\"$database\"} / redis_enterprise_database_memory_limit{cluster=\"$cluster\", database=\"$database\"}) * 100",
243+
"expr": "(sum by(cluster,db)(redis_server_used_memory{cluster=\"$cluster\", db=\"$db\", role=\"master\"}) / (avg by(cluster,db)(db_memory_limit_bytes{cluster=\"$cluster\", db=\"$db\"}) / avg by(cluster,db)(db_replication_factor{cluster=\"$cluster\", db=\"$db\"}))) * 100",
247244
"refId": "A"
248245
}
249246
],
@@ -273,7 +270,7 @@ redis_enterprise_database_ops_per_sec{cluster=~"$cluster", database=~"$database|
273270
"title": "Active Databases",
274271
"targets": [
275272
{
276-
"expr": "count(redis_enterprise_database_up{cluster=\"$cluster\"} == 1)",
273+
"expr": "count(endpoint_client_connections{cluster=\"$cluster\"})",
277274
"refId": "A"
278275
}
279276
],
@@ -306,7 +303,7 @@ Conditions:
306303
WHEN avg() OF query(A, 5m, now) IS ABOVE 90
307304
308305
Query A:
309-
(redis_enterprise_database_used_memory / redis_enterprise_database_memory_limit) * 100
306+
(sum by(cluster,db)(redis_server_used_memory{role="master"}) / (avg by(cluster,db)(db_memory_limit_bytes) / avg by(cluster,db)(db_replication_factor))) * 100
310307
----
311308

312309
==== Alert via Configuration
@@ -332,7 +329,7 @@ groups:
332329
to: 0
333330
datasourceUid: redis-prometheus
334331
model:
335-
expr: (redis_enterprise_database_used_memory / redis_enterprise_database_memory_limit) * 100 > 90
332+
expr: (sum by(cluster,db)(redis_server_used_memory{role="master"}) / (avg by(cluster,db)(db_memory_limit_bytes) / avg by(cluster,db)(db_replication_factor))) * 100 > 90
336333
intervalMs: 1000
337334
maxDataPoints: 43200
338335
noDataState: NoData

docs/modules/ROOT/pages/platforms/newrelic.adoc

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ integrations:
4646
config:
4747
# Redis Enterprise metrics endpoint
4848
standalone_urls:
49-
- http://redis-cluster.example.com:8070/metrics
49+
- http://redis-cluster.example.com:8070/v2
5050
5151
# Scrape interval
5252
scrape_duration: "30s"
@@ -95,7 +95,7 @@ remote_write:
9595
write_relabel_configs:
9696
# Only send Redis Enterprise metrics
9797
- source_labels: [__name__]
98-
regex: 'redis_enterprise_.*'
98+
regex: '(redis_server_.*|endpoint_.*|db_.*|node_.*)'
9999
action: keep
100100
----
101101

@@ -124,7 +124,7 @@ data:
124124
targets:
125125
- description: "Redis Enterprise pods"
126126
urls:
127-
- "http://redis-enterprise-cluster:8070/metrics"
127+
- "http://redis-enterprise-cluster:8070/v2"
128128
interval: 30s
129129
----
130130

@@ -159,46 +159,46 @@ Use NRQL (New Relic Query Language) to query Redis Enterprise metrics:
159159
[source,sql]
160160
----
161161
-- Operations per second by database
162-
SELECT average(redis_enterprise_database_ops_per_sec)
162+
SELECT rate(endpoint_read_requests, 1 minute) + rate(endpoint_write_requests, 1 minute) + rate(endpoint_other_requests, 1 minute)
163163
FROM Metric
164164
WHERE cluster = 'production'
165-
FACET database
165+
FACET db
166166
TIMESERIES AUTO
167167
168168
-- Memory usage percentage
169-
SELECT (average(redis_enterprise_database_used_memory) /
170-
average(redis_enterprise_database_memory_limit)) * 100
169+
SELECT (average(redis_server_used_memory) /
170+
average(db_memory_limit_bytes)) * 100
171171
AS 'Memory Usage %'
172172
FROM Metric
173-
WHERE cluster = 'production'
174-
FACET database
173+
WHERE cluster = 'production' AND role = 'master'
174+
FACET db
175175
TIMESERIES AUTO
176176
177177
-- Database availability
178-
SELECT sum(redis_enterprise_database_up)
178+
SELECT sum(redis_server_up)
179179
FROM Metric
180180
WHERE cluster = 'production'
181-
FACET database
181+
FACET db
182182
TIMESERIES AUTO
183183
184184
-- Top 5 databases by operations
185-
SELECT average(redis_enterprise_database_ops_per_sec) AS 'Ops/Sec'
185+
SELECT rate(endpoint_read_requests, 1 minute) + rate(endpoint_write_requests, 1 minute) + rate(endpoint_other_requests, 1 minute) AS 'Ops/Sec'
186186
FROM Metric
187187
WHERE cluster = 'production'
188-
FACET database
188+
FACET db
189189
LIMIT 5
190190
191191
-- Connection count over time
192-
SELECT average(redis_enterprise_database_connections)
192+
SELECT average(endpoint_client_connections)
193193
FROM Metric
194-
WHERE cluster = 'production' AND database = 'prod-cache'
194+
WHERE cluster = 'production' AND db = 'prod-cache'
195195
TIMESERIES AUTO
196196
197197
-- P99 Latency trend
198-
SELECT percentile(redis_enterprise_database_latency, 99) AS 'P99 Latency'
198+
SELECT percentile(endpoint_latency, 99) AS 'P99 Latency'
199199
FROM Metric
200200
WHERE cluster = 'production'
201-
FACET database
201+
FACET db
202202
TIMESERIES 5 minutes
203203
----
204204

@@ -229,7 +229,7 @@ curl -X POST 'https://api.newrelic.com/graphql' \
229229
rawConfiguration: {
230230
nrqlQueries: [{
231231
accountId: YOUR_ACCOUNT_ID,
232-
query: \"SELECT average(redis_enterprise_database_ops_per_sec) FROM Metric FACET database TIMESERIES\"
232+
query: \"SELECT rate(endpoint_read_requests, 1 minute) + rate(endpoint_write_requests, 1 minute) + rate(endpoint_other_requests, 1 minute) FROM Metric FACET db TIMESERIES\"
233233
}]
234234
}
235235
}]
@@ -260,11 +260,11 @@ curl -X POST 'https://api.newrelic.com/graphql' \
260260
[source,sql]
261261
----
262262
-- Alert when memory usage > 90%
263-
SELECT (average(redis_enterprise_database_used_memory) /
264-
average(redis_enterprise_database_memory_limit)) * 100
263+
SELECT (average(redis_server_used_memory) /
264+
average(db_memory_limit_bytes)) * 100
265265
FROM Metric
266-
WHERE cluster = 'production'
267-
FACET database
266+
WHERE cluster = 'production' AND role = 'master'
267+
FACET db
268268
269269
-- Threshold: Above 90 for at least 5 minutes
270270
-- Severity: Critical
@@ -275,10 +275,10 @@ FACET database
275275
[source,sql]
276276
----
277277
-- Alert when database is down
278-
SELECT sum(redis_enterprise_database_up)
278+
SELECT sum(redis_server_up)
279279
FROM Metric
280280
WHERE cluster = 'production'
281-
FACET database
281+
FACET db
282282
283283
-- Threshold: Equal to 0 for at least 1 minute
284284
-- Severity: Critical
@@ -289,10 +289,10 @@ FACET database
289289
[source,sql]
290290
----
291291
-- Alert when P99 latency exceeds threshold
292-
SELECT percentile(redis_enterprise_database_latency, 99)
292+
SELECT percentile(endpoint_latency, 99)
293293
FROM Metric
294294
WHERE cluster = 'production'
295-
FACET database
295+
FACET db
296296
297297
-- Threshold: Above 0.1 (100ms) for at least 5 minutes
298298
-- Severity: Warning
@@ -318,11 +318,11 @@ resource "newrelic_nrql_alert_condition" "high_memory" {
318318
319319
nrql {
320320
query = <<-EOT
321-
SELECT (average(redis_enterprise_database_used_memory) /
322-
average(redis_enterprise_database_memory_limit)) * 100
321+
SELECT (average(redis_server_used_memory) /
322+
average(db_memory_limit_bytes)) * 100
323323
FROM Metric
324-
WHERE cluster = 'production'
325-
FACET database
324+
WHERE cluster = 'production' AND role = 'master'
325+
FACET db
326326
EOT
327327
}
328328
@@ -351,10 +351,10 @@ resource "newrelic_nrql_alert_condition" "database_down" {
351351
352352
nrql {
353353
query = <<-EOT
354-
SELECT sum(redis_enterprise_database_up)
354+
SELECT sum(redis_server_up)
355355
FROM Metric
356356
WHERE cluster = 'production'
357-
FACET database
357+
FACET db
358358
EOT
359359
}
360360

docs/modules/ROOT/pages/platforms/prometheus.adoc

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ scrape_configs:
3030
- job_name: 'redis-enterprise'
3131
static_configs:
3232
- targets: ['redis-cluster-1.example.com:8070']
33-
metrics_path: '/metrics'
33+
metrics_path: '/v2'
3434
scrape_interval: 30s
3535
scrape_timeout: 10s
3636
----
@@ -216,14 +216,14 @@ Test that metrics are being collected:
216216

217217
[source,bash]
218218
----
219-
# Check if Redis Enterprise is up
220-
curl -g 'http://localhost:9090/api/v1/query?query=redis_enterprise_database_up' | jq
219+
# Check if Redis Enterprise databases are up
220+
curl -g 'http://localhost:9090/api/v1/query?query=redis_server_up' | jq
221221
222222
# Check database operations per second
223-
curl -g 'http://localhost:9090/api/v1/query?query=redis_enterprise_database_ops_per_sec' | jq
223+
curl -g 'http://localhost:9090/api/v1/query?query=rate(endpoint_read_requests[5m])' | jq
224224
225225
# Check memory usage
226-
curl -g 'http://localhost:9090/api/v1/query?query=redis_enterprise_database_used_memory' | jq
226+
curl -g 'http://localhost:9090/api/v1/query?query=redis_server_used_memory' | jq
227227
----
228228

229229
=== Test with PromQL
@@ -233,16 +233,16 @@ Use Prometheus query language to verify data:
233233
[source,promql]
234234
----
235235
# Show all Redis Enterprise databases
236-
redis_enterprise_database_up
236+
redis_server_up
237237
238238
# Calculate operations per second (5min average)
239-
rate(redis_enterprise_database_total_ops[5m])
239+
rate(endpoint_read_requests[5m]) + rate(endpoint_write_requests[5m]) + rate(endpoint_other_requests[5m])
240240
241241
# Memory usage percentage
242-
(redis_enterprise_database_used_memory / redis_enterprise_database_memory_limit) * 100
242+
(sum by(cluster,db)(redis_server_used_memory{role="master"}) / (avg by(cluster,db)(db_memory_limit_bytes) / avg by(cluster,db)(db_replication_factor))) * 100
243243
244244
# Top 5 databases by ops
245-
topk(5, rate(redis_enterprise_database_total_ops[5m]))
245+
topk(5, rate(endpoint_read_requests[5m]) + rate(endpoint_write_requests[5m]) + rate(endpoint_other_requests[5m]))
246246
----
247247

248248
== Recording Rules
@@ -257,30 +257,28 @@ groups:
257257
rules:
258258
# Pre-calculate ops per second
259259
- record: redis_enterprise:database:ops_per_sec:rate5m
260-
expr: rate(redis_enterprise_database_total_ops[5m])
261-
labels:
262-
job: redis-enterprise
260+
expr: rate(endpoint_read_requests[5m]) + rate(endpoint_write_requests[5m]) + rate(endpoint_other_requests[5m])
263261
264262
# Pre-calculate memory usage percentage
265263
- record: redis_enterprise:database:memory_usage_pct
266264
expr: |
267-
(redis_enterprise_database_used_memory /
268-
redis_enterprise_database_memory_limit) * 100
265+
(sum by(cluster,db)(redis_server_used_memory{role="master"}) /
266+
(avg by(cluster,db)(db_memory_limit_bytes) / avg by(cluster,db)(db_replication_factor))) * 100
269267
270268
# Pre-calculate hit rate
271269
- record: redis_enterprise:database:hit_rate:rate5m
272270
expr: |
273-
rate(redis_enterprise_database_keyspace_hits[5m]) /
274-
(rate(redis_enterprise_database_keyspace_hits[5m]) +
275-
rate(redis_enterprise_database_keyspace_misses[5m]))
271+
rate(redis_server_keyspace_read_hits{role="master"}[5m]) /
272+
(rate(redis_server_keyspace_read_hits{role="master"}[5m]) +
273+
rate(redis_server_keyspace_read_misses{role="master"}[5m]))
276274
277275
# Pre-calculate eviction rate
278276
- record: redis_enterprise:database:evictions_per_sec:rate5m
279-
expr: rate(redis_enterprise_database_evicted_keys[5m])
277+
expr: rate(redis_server_evicted_keys{role="master"}[5m])
280278
281279
# Aggregate cluster-wide operations
282280
- record: redis_enterprise:cluster:total_ops:rate5m
283-
expr: sum(rate(redis_enterprise_database_total_ops[5m])) by (cluster)
281+
expr: sum(rate(endpoint_read_requests[5m]) + rate(endpoint_write_requests[5m]) + rate(endpoint_other_requests[5m])) by (cluster)
284282
----
285283

286284
Save this to `/etc/prometheus/rules/redis-enterprise.yml` and reference it in `prometheus.yml`:
@@ -333,13 +331,13 @@ If targets show as "DOWN":
333331
[source,bash]
334332
----
335333
# Test connectivity
336-
curl http://redis-cluster.example.com:8070/metrics
334+
curl http://redis-cluster.example.com:8070/v2
337335
338336
# Check Prometheus logs
339337
docker logs prometheus | grep redis-enterprise
340338
341339
# Verify authentication
342-
curl -u prometheus:password http://redis-cluster.example.com:8070/metrics
340+
curl -u prometheus:password http://redis-cluster.example.com:8070/v2
343341
----
344342

345343
=== Missing Metrics
@@ -349,7 +347,7 @@ If expected metrics are missing:
349347
[source,bash]
350348
----
351349
# List all available metrics
352-
curl http://redis-cluster.example.com:8070/metrics | grep redis_enterprise
350+
curl http://redis-cluster.example.com:8070/v2 | grep redis_enterprise
353351
354352
# Check metric cardinality
355353
curl http://localhost:9090/api/v1/label/__name__/values | jq '.data[] | select(startswith("redis_enterprise"))'
@@ -365,12 +363,12 @@ scrape_configs:
365363
- job_name: 'redis-enterprise'
366364
# ... other config ...
367365
metric_relabel_configs:
368-
# Keep only essential metrics
366+
# Keep only essential metrics (adjust based on your actual needs)
369367
- source_labels: [__name__]
370-
regex: 'redis_enterprise_(database|cluster|node)_.*'
368+
regex: '(redis_server_.*|endpoint_.*|db_.*|cluster_.*|node_.*)'
371369
action: keep
372-
# Drop high-cardinality labels
373-
- regex: 'instance_id'
370+
# Drop high-cardinality labels if needed
371+
- regex: 'shard_id'
374372
action: labeldrop
375373
----
376374

0 commit comments

Comments
 (0)