From e44a0b12309da281bf333c55aac33e24958e6e13 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Mon, 31 Aug 2026 10:29:35 -0400 Subject: [PATCH] Add Redis Cloud Database dashboard to redis_enterprise_prometheus Adds a database-level dashboard for Redis Cloud deployments. Unlike the existing Redis Enterprise Software dashboards, which scope by the `cluster` and `db` tags, this one is scoped by the Redis Cloud `sub_id` and `db_name` tags. Co-Authored-By: Claude Opus 5 --- redis_enterprise_prometheus/CHANGELOG.md | 6 + ..._enterprise-prometheus_cloud-database.json | 1542 +++++++++++++++++ .../redis_enterprise_prometheus/__about__.py | 2 +- redis_enterprise_prometheus/manifest.json | 3 +- 4 files changed, 1551 insertions(+), 2 deletions(-) create mode 100644 redis_enterprise_prometheus/assets/dashboards/redis_enterprise-prometheus_cloud-database.json diff --git a/redis_enterprise_prometheus/CHANGELOG.md b/redis_enterprise_prometheus/CHANGELOG.md index 535e54ec8c..32f638b6ff 100644 --- a/redis_enterprise_prometheus/CHANGELOG.md +++ b/redis_enterprise_prometheus/CHANGELOG.md @@ -1,5 +1,11 @@ # CHANGELOG - Redis Enterprise Prometheus +## 1.2.0 / 2026-08-31 + +***Added***: + +* Add the "Redis Enterprise Prometheus - Redis Cloud Database" dashboard, which visualizes database-level metrics for Redis Cloud deployments. It is scoped by the Redis Cloud `sub_id` and `db_name` tags rather than the `cluster` and `db` tags used by the Redis Enterprise Software dashboards. + ## 1.1.0 / 2026-07-29 ***Deprecated***: diff --git a/redis_enterprise_prometheus/assets/dashboards/redis_enterprise-prometheus_cloud-database.json b/redis_enterprise_prometheus/assets/dashboards/redis_enterprise-prometheus_cloud-database.json new file mode 100644 index 0000000000..eb97bf417d --- /dev/null +++ b/redis_enterprise_prometheus/assets/dashboards/redis_enterprise-prometheus_cloud-database.json @@ -0,0 +1,1542 @@ +{ + "title": "Redis Enterprise Prometheus - Redis Cloud Database", + "description": "The Database dashboard provides a visualization of metrics at the Redis Cloud database level. In Redis Cloud, a database is an abstraction over a collection of Redis Shards fronted by a single endpoint (or several when using the OSS cluster API). Key metrics such as memory usage, connections and latency are observable at the Database level.", + "widgets": [ + { + "id": 1293369821290651, + "definition": { + "title": "Cluster", + "background_color": "purple", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ + { + "id": 6803354942270630, + "definition": { + "title": "Total Keys", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "metrics", + "query": "sum:rdse2.redis_server_db_keys{$sub_id,role:master}", + "aggregator": "last" + } + ], + "response_format": "scalar" + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "yaxis": { + "include_zero": false + }, + "type": "bars" + } + }, + "layout": { + "x": 0, + "y": 0, + "width": 4, + "height": 2 + } + }, + { + "id": 5245386771011794, + "definition": { + "title": "Database List", + "title_size": "16", + "title_align": "left", + "type": "query_table", + "requests": [ + { + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:rdse2.db_config{$sub_id,$Database} by {db_name,db,sub_id}", + "aggregator": "avg" + } + ], + "response_format": "scalar", + "sort": { + "count": 500, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + }, + "formulas": [ + { + "cell_display_mode": "number", + "alias": "Up", + "conditional_formats": [ + { + "comparator": ">", + "value": 0, + "palette": "white_on_green" + }, + { + "comparator": "<", + "value": 1, + "palette": "white_on_red" + } + ], + "formula": "query1" + } + ] + } + ], + "has_search_bar": "auto" + }, + "layout": { + "x": 4, + "y": 0, + "width": 4, + "height": 3 + } + }, + { + "id": 189891539085719, + "definition": { + "title": "Clients", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "response_format": "timeseries", + "queries": [ + { + "name": "query1", + "data_source": "metrics", + "query": "avg:rdse2.endpoint_client_connections{$sub_id} by {db_name}" + }, + { + "name": "query2", + "data_source": "metrics", + "query": "avg:rdse2.endpoint_client_disconnections{$sub_id} by {db_name}" + }, + { + "name": "query3", + "data_source": "metrics", + "query": "avg:rdse2.endpoint_proxy_disconnections{$sub_id} by {db_name}" + } + ], + "formulas": [ + { + "formula": "query1 - query2 - query3" + } + ], + "style": { + "palette": "dog_classic", + "order_by": "values", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 8, + "y": 0, + "width": 4, + "height": 3 + } + }, + { + "id": 6771547333476773, + "definition": { + "title": "CPU System & User", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "response_format": "timeseries", + "queries": [ + { + "name": "query1", + "data_source": "metrics", + "query": "sum:rdse2.namedprocess_namegroup_cpu_seconds_total{mode:system,$sub_id,$Database} by {cluster,db_name,redis}.as_rate()" + }, + { + "name": "query2", + "data_source": "metrics", + "query": "sum:rdse2.namedprocess_namegroup_cpu_seconds_total{mode:user,$sub_id,$Database} by {cluster,db_name,redis}.as_rate()" + } + ], + "formulas": [ + { + "alias": "system", + "formula": "derivative(query1)" + }, + { + "alias": "user", + "formula": "derivative(query2)" + } + ], + "style": { + "palette": "dog_classic", + "order_by": "values", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 0, + "y": 3, + "width": 12, + "height": 4 + } + }, + { + "id": 3271515933965638, + "definition": { + "title": "Ingress/Egress", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "response_format": "timeseries", + "queries": [ + { + "name": "query1", + "data_source": "metrics", + "query": "avg:rdse2.redis_server_total_net_input_bytes{$sub_id,$Database} by {cluster,db_name}.as_count()" + }, + { + "name": "query2", + "data_source": "metrics", + "query": "avg:rdse2.redis_server_total_net_output_bytes{$sub_id,$Database} by {cluster,db_name}.as_count()" + } + ], + "formulas": [ + { + "alias": "Input", + "number_format": { + "unit": { + "type": "canonical_unit", + "unit_name": "byte_in_decimal_bytes_family" + } + }, + "formula": "derivative(query1)" + }, + { + "alias": "Output", + "number_format": { + "unit": { + "type": "canonical_unit", + "unit_name": "byte_in_decimal_bytes_family" + } + }, + "formula": "derivative(query2)" + } + ], + "style": { + "palette": "dog_classic", + "order_by": "values", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 0, + "y": 7, + "width": 12, + "height": 4 + } + }, + { + "id": 9001267998694399, + "definition": { + "title": "Latency", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "response_format": "timeseries", + "queries": [ + { + "name": "query1", + "data_source": "metrics", + "query": "avg:rdse2.endpoint_read_requests_latency_histogram_count{$sub_id, $Database} by {cluster,db_name}" + }, + { + "name": "query2", + "data_source": "metrics", + "query": "avg:rdse2.endpoint_write_requests_latency_histogram_count{$sub_id, $Database} by {cluster,db_name}" + }, + { + "name": "query3", + "data_source": "metrics", + "query": "avg:rdse2.endpoint_other_requests_latency_histogram_count{$sub_id, $Database} by {cluster,db_name}" + }, + { + "name": "query4", + "data_source": "metrics", + "query": "avg:rdse2.endpoint_read_requests_latency_histogram_sum{$sub_id, $Database} by {cluster,db_name}" + }, + { + "name": "query5", + "data_source": "metrics", + "query": "avg:rdse2.endpoint_write_requests_latency_histogram_sum{$sub_id, $Database} by {cluster,db_name}" + }, + { + "name": "query6", + "data_source": "metrics", + "query": "avg:rdse2.endpoint_other_requests_latency_histogram_sum{$sub_id, $Database} by {cluster,db_name}" + } + ], + "formulas": [ + { + "alias": "Read", + "formula": "derivative(query4) / derivative(query1) / 1000" + }, + { + "alias": "Write", + "formula": "derivative(query5) / derivative(query2) / 1000" + }, + { + "alias": "Other", + "formula": "derivative(query6) / derivative(query3) / 1000" + } + ], + "style": { + "palette": "dog_classic", + "order_by": "values", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 0, + "y": 11, + "width": 12, + "height": 4 + } + } + ] + }, + "layout": { + "x": 0, + "y": 0, + "width": 12, + "height": 16 + } + }, + { + "id": 8148371123349408, + "definition": { + "title": "Database", + "background_color": "pink", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ + { + "id": 1494422943739930, + "definition": { + "title": "Database List", + "title_size": "16", + "title_align": "left", + "type": "query_table", + "requests": [ + { + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:rdse2.db_config{$sub_id,$Database} by {db_name,db,sub_id}", + "aggregator": "avg" + } + ], + "response_format": "scalar", + "sort": { + "count": 500, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + }, + "formulas": [ + { + "cell_display_mode": "number", + "alias": "Up", + "conditional_formats": [ + { + "comparator": ">", + "value": 0, + "palette": "white_on_green" + }, + { + "comparator": "<", + "value": 1, + "palette": "white_on_red" + } + ], + "formula": "query1" + } + ] + } + ], + "has_search_bar": "auto" + }, + "layout": { + "x": 0, + "y": 0, + "width": 6, + "height": 3 + } + }, + { + "id": 2897465224634902, + "definition": { + "title": "Total Keys", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "response_format": "scalar", + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:rdse2.redis_server_db_keys{$sub_id,$Database}", + "aggregator": "last" + } + ], + "formulas": [ + { + "formula": "query1" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "yaxis": { + "include_zero": false + }, + "type": "area" + } + }, + "layout": { + "x": 6, + "y": 0, + "width": 3, + "height": 3 + } + }, + { + "id": 1837158733093732, + "definition": { + "title": "Connections", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "response_format": "scalar", + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:rdse2.endpoint_client_connections{$sub_id, $Database}", + "aggregator": "last" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "sum:rdse2.endpoint_client_disconnections{$sub_id, $Database}", + "aggregator": "last" + }, + { + "data_source": "metrics", + "name": "query3", + "query": "sum:rdse2.endpoint_proxy_disconnections{$sub_id, $Database}.weighted()", + "aggregator": "last" + } + ], + "formulas": [ + { + "formula": "query1 - query2 - query3" + } + ] + } + ], + "autoscale": true, + "precision": 0, + "timeseries_background": { + "yaxis": { + "include_zero": false + }, + "type": "area" + } + }, + "layout": { + "x": 9, + "y": 0, + "width": 3, + "height": 3 + } + }, + { + "id": 3549639331207229, + "definition": { + "title": "Used Memory", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "response_format": "timeseries", + "queries": [ + { + "name": "query1", + "data_source": "metrics", + "query": "avg:rdse2.redis_server_used_memory{$sub_id,$Database,role:master} by {db_name}" + } + ], + "formulas": [ + { + "formula": "query1" + } + ], + "style": { + "palette": "dog_classic", + "order_by": "values", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 0, + "y": 3, + "width": 6, + "height": 4 + } + }, + { + "id": 5228948460391968, + "definition": { + "title": "Memory Percentage", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "formulas": [ + { + "number_format": { + "unit": { + "type": "canonical_unit", + "unit_name": "percent" + } + }, + "alias": "Used Memory (%)", + "formula": "query3 / query2 * 100" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query3", + "query": "sum:rdse2.redis_server_used_memory{$sub_id,$Database} by {sub_id,db_name}" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "avg:rdse2.db_memory_limit_bytes{$sub_id,$Database} by {sub_id,db_name}" + } + ], + "response_format": "timeseries", + "style": { + "palette": "dog_classic", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ], + "yaxis": { + "include_zero": true, + "min": "0", + "max": "100" + } + }, + "layout": { + "x": 6, + "y": 3, + "width": 6, + "height": 4 + } + }, + { + "id": 7010480394605244, + "definition": { + "title": "Latency", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "formulas": [ + { + "alias": "Reads", + "number_format": { + "unit": { + "type": "canonical_unit", + "unit_name": "millisecond" + }, + "unit_scale": { + "type": "canonical_unit", + "unit_name": "millisecond" + } + }, + "formula": "derivative(query1) / derivative(query5) / 1000" + }, + { + "alias": "Writes", + "number_format": { + "unit": { + "type": "canonical_unit", + "unit_name": "millisecond" + }, + "unit_scale": { + "type": "canonical_unit", + "unit_name": "millisecond" + } + }, + "formula": "derivative(query4) / derivative(query3) / 1000" + }, + { + "alias": "Others", + "number_format": { + "unit": { + "type": "canonical_unit", + "unit_name": "millisecond" + }, + "unit_scale": { + "type": "canonical_unit", + "unit_name": "millisecond" + } + }, + "formula": "derivative(query2) / derivative(query6) / 1000" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "max:rdse2.endpoint_read_requests_latency_histogram_sum{$sub_id,$Database} by {cluster,db_name}" + }, + { + "data_source": "metrics", + "name": "query5", + "query": "max:rdse2.endpoint_read_requests_latency_histogram_count{$sub_id,$Database} by {cluster,db_name}" + }, + { + "data_source": "metrics", + "name": "query4", + "query": "max:rdse2.endpoint_write_requests_latency_histogram_sum{$sub_id,$Database} by {cluster,db_name}" + }, + { + "data_source": "metrics", + "name": "query3", + "query": "max:rdse2.endpoint_write_requests_latency_histogram_count{$sub_id,$Database} by {cluster,db_name}" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "max:rdse2.endpoint_other_requests_latency_histogram_sum{$sub_id,$Database} by {cluster,db_name}" + }, + { + "data_source": "metrics", + "name": "query6", + "query": "max:rdse2.endpoint_other_requests_latency_histogram_count{$sub_id,$Database} by {cluster,db_name}" + } + ], + "response_format": "timeseries", + "style": { + "palette": "dog_classic", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 0, + "y": 7, + "width": 6, + "height": 4 + } + }, + { + "id": 7994983708933516, + "definition": { + "title": "Requests & Responses", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "formulas": [ + { + "alias": "requests", + "formula": "derivative(query1) + derivative(query2) + derivative(query3)" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:rdse2.endpoint_read_requests{$sub_id,$Database} by {db_name}.as_count()" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "sum:rdse2.endpoint_write_requests{$sub_id,$Database} by {db_name}.as_count()" + }, + { + "data_source": "metrics", + "name": "query3", + "query": "sum:rdse2.endpoint_other_requests{$sub_id,$Database} by {db_name}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "palette": "dog_classic", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 6, + "y": 7, + "width": 6, + "height": 4 + } + }, + { + "id": 4002654924526334, + "definition": { + "title": "Read Latency", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "response_format": "timeseries", + "queries": [ + { + "name": "query2", + "data_source": "metrics", + "query": "avg:rdse2.endpoint_read_requests_latency_histogram_sum{$sub_id,$Database} by {db_name}" + }, + { + "name": "query1", + "data_source": "metrics", + "query": "avg:rdse2.endpoint_read_requests_latency_histogram_count{$sub_id,$Database} by {db_name}" + } + ], + "formulas": [ + { + "number_format": { + "unit": { + "type": "canonical_unit", + "unit_name": "millisecond" + }, + "unit_scale": { + "type": "canonical_unit", + "unit_name": "millisecond" + } + }, + "formula": "derivative(query2) / derivative(query1) / 1000" + } + ], + "style": { + "palette": "dog_classic", + "order_by": "values", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 0, + "y": 11, + "width": 6, + "height": 4 + } + }, + { + "id": 7894481361610923, + "definition": { + "title": "Read Throughput", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "response_format": "timeseries", + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:rdse2.endpoint_read_requests{$sub_id, $Database} by {sub_id,db_name}" + } + ], + "formulas": [ + { + "formula": "derivative(query1)" + } + ], + "style": { + "palette": "dog_classic", + "order_by": "values", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 6, + "y": 11, + "width": 6, + "height": 4 + } + }, + { + "id": 3679114411423457, + "definition": { + "title": "Write Latency", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "response_format": "timeseries", + "queries": [ + { + "name": "query2", + "data_source": "metrics", + "query": "avg:rdse2.endpoint_write_requests_latency_histogram_sum{$sub_id,$Database} by {db_name}" + }, + { + "name": "query1", + "data_source": "metrics", + "query": "avg:rdse2.endpoint_write_requests_latency_histogram_count{$sub_id,$Database} by {db_name}" + } + ], + "formulas": [ + { + "number_format": { + "unit": { + "type": "canonical_unit", + "unit_name": "millisecond" + }, + "unit_scale": { + "type": "canonical_unit", + "unit_name": "millisecond" + } + }, + "formula": "derivative(query2) / derivative(query1) / 1000" + } + ], + "style": { + "palette": "dog_classic", + "order_by": "values", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 0, + "y": 15, + "width": 6, + "height": 4 + } + }, + { + "id": 4670258731071630, + "definition": { + "title": "Write Throughput", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "response_format": "timeseries", + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:rdse2.endpoint_write_requests{$sub_id, $Database} by {sub_id,db_name}" + } + ], + "formulas": [ + { + "formula": "derivative(query1)" + } + ], + "style": { + "palette": "dog_classic", + "order_by": "values", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 6, + "y": 15, + "width": 6, + "height": 4 + } + }, + { + "id": 3872947886624295, + "definition": { + "title": "Other Latency", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "response_format": "timeseries", + "queries": [ + { + "name": "query2", + "data_source": "metrics", + "query": "avg:rdse2.endpoint_other_requests_latency_histogram_sum{$sub_id,$Database} by {db_name}" + }, + { + "name": "query1", + "data_source": "metrics", + "query": "avg:rdse2.endpoint_other_requests_latency_histogram_count{$sub_id,$Database} by {db_name}" + } + ], + "formulas": [ + { + "number_format": { + "unit": { + "type": "canonical_unit", + "unit_name": "nanosecond" + }, + "unit_scale": { + "type": "canonical_unit", + "unit_name": "millisecond" + } + }, + "formula": "query2 / query1 / 1000" + } + ], + "style": { + "palette": "dog_classic", + "order_by": "values", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 0, + "y": 19, + "width": 6, + "height": 4 + } + }, + { + "id": 453940227720216, + "definition": { + "title": "Other Throughput", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "response_format": "timeseries", + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:rdse2.endpoint_other_requests{$sub_id, $Database} by {sub_id,db_name}" + } + ], + "formulas": [ + { + "formula": "derivative(query1)" + } + ], + "style": { + "palette": "dog_classic", + "order_by": "values", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 6, + "y": 19, + "width": 6, + "height": 4 + } + } + ] + }, + "layout": { + "x": 0, + "y": 16, + "width": 12, + "height": 24 + } + }, + { + "id": 6310722542080518, + "definition": { + "title": "Cache Statistics", + "background_color": "green", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ + { + "id": 7079674751612840, + "definition": { + "title": "Read Hit Rate", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "formulas": [ + { + "formula": "(derivative(query1) / (derivative(query1) + derivative(query2))) * 100", + "number_format": { + "unit": { + "type": "canonical_unit", + "unit_name": "percent" + } + } + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:rdse2.redis_server_keyspace_read_hits{$sub_id,$Database} by {cluster,db_name,redis,slots,node}" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "avg:rdse2.redis_server_keyspace_read_misses{$sub_id,$Database} by {cluster,db_name,redis,slots,node}" + } + ], + "response_format": "timeseries", + "style": { + "palette": "dog_classic", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 0, + "y": 0, + "width": 6, + "height": 4 + } + }, + { + "id": 4555818748372412, + "definition": { + "title": "Write Hit Rate", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "formulas": [ + { + "formula": "(derivative(query1) / (derivative(query1) + derivative(query2))) * 100", + "number_format": { + "unit": { + "type": "canonical_unit", + "unit_name": "percent" + } + } + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:rdse2.redis_server_keyspace_write_hits{$sub_id,$Database} by {cluster,db_name,node,redis,slots}" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "avg:rdse2.redis_server_keyspace_write_misses{$sub_id,$Database} by {cluster,db_name,node,redis,slots}" + } + ], + "response_format": "timeseries", + "style": { + "palette": "dog_classic", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 6, + "y": 0, + "width": 6, + "height": 4 + } + }, + { + "id": 5965375903891770, + "definition": { + "title": "Expired Keys", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "formulas": [ + { + "alias": "expired keys", + "formula": "derivative(query1)" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "max:rdse2.redis_server_expired_keys{$sub_id,$Database} by {cluster,db_name,node,redis,slots}" + } + ], + "response_format": "timeseries", + "style": { + "palette": "dog_classic", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 0, + "y": 4, + "width": 6, + "height": 4 + } + }, + { + "id": 5783010566074628, + "definition": { + "title": "Evicted Keys", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "formulas": [ + { + "alias": "evicted keys", + "formula": "derivative(query1)" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "max:rdse2.redis_server_evicted_keys{$sub_id,$Database} by {cluster,db_name,node,redis,slots}" + } + ], + "response_format": "timeseries", + "style": { + "palette": "dog_classic", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 6, + "y": 4, + "width": 6, + "height": 4 + } + } + ] + }, + "layout": { + "x": 0, + "y": 80, + "width": 12, + "height": 9, + "is_column_break": true + } + }, + { + "id": 3609676942871052, + "definition": { + "title": "Shard", + "background_color": "yellow", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ + { + "id": 4394117303218296, + "definition": { + "title": "Keys Distribution", + "title_size": "16", + "title_align": "left", + "type": "query_table", + "requests": [ + { + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:rdse2.redis_server_db_keys{$sub_id,$Database,role:master} by {cluster,db_name,node,redis,status,slots}", + "aggregator": "last" + } + ], + "response_format": "scalar", + "sort": { + "count": 500, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + }, + "formulas": [ + { + "cell_display_mode": "bar", + "alias": "Keys", + "formula": "query1" + } + ] + } + ], + "has_search_bar": "auto" + }, + "layout": { + "x": 0, + "y": 0, + "width": 12, + "height": 4 + } + }, + { + "id": 1968294987823335, + "definition": { + "title": "CPU Usage", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "formulas": [ + { + "alias": "CPU", + "number_format": { + "unit": { + "type": "canonical_unit", + "unit_name": "percent" + } + }, + "formula": "derivative(query1)" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "metrics", + "query": "sum:rdse2.namedprocess_namegroup_cpu_seconds_total{$sub_id,$Database,role:master} by {cluster,db_name,node,mode,groupname}.as_rate()" + } + ], + "response_format": "timeseries", + "style": { + "palette": "dog_classic", + "order_by": "values", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 0, + "y": 4, + "width": 12, + "height": 3 + } + } + ] + }, + "layout": { + "x": 0, + "y": 89, + "width": 12, + "height": 8 + } + } + ], + "template_variables": [ + { + "name": "sub_id", + "prefix": "sub_id", + "available_values": [], + "default": "*" + }, + { + "name": "Database", + "prefix": "db_name", + "available_values": [], + "default": "*" + } + ], + "layout_type": "ordered", + "notify_list": [], + "reflow_type": "fixed" +} diff --git a/redis_enterprise_prometheus/datadog_checks/redis_enterprise_prometheus/__about__.py b/redis_enterprise_prometheus/datadog_checks/redis_enterprise_prometheus/__about__.py index 6849410aae..c68196d1cb 100644 --- a/redis_enterprise_prometheus/datadog_checks/redis_enterprise_prometheus/__about__.py +++ b/redis_enterprise_prometheus/datadog_checks/redis_enterprise_prometheus/__about__.py @@ -1 +1 @@ -__version__ = "1.1.0" +__version__ = "1.2.0" diff --git a/redis_enterprise_prometheus/manifest.json b/redis_enterprise_prometheus/manifest.json index 554410670f..12f9fbdbe0 100644 --- a/redis_enterprise_prometheus/manifest.json +++ b/redis_enterprise_prometheus/manifest.json @@ -69,7 +69,8 @@ "redis-enterprise-prometheus-replication": "assets/dashboards/redis_enterprise-prometheus_active-active.json", "redis-enterprise-prometheus-proxy-threads": "assets/dashboards/redis_enterprise-prometheus_proxy-threads.json", "redis-enterprise-prometheus-shard": "assets/dashboards/redis_enterprise-prometheus_shard.json", - "redis-enterprise-prometheus-search": "assets/dashboards/redis_enterprise-prometheus_search.json" + "redis-enterprise-prometheus-search": "assets/dashboards/redis_enterprise-prometheus_search.json", + "redis-enterprise-prometheus-cloud-database": "assets/dashboards/redis_enterprise-prometheus_cloud-database.json" } }, "author": {