From 845f8447cf8910cfd0a21b494f7a97553aa19484 Mon Sep 17 00:00:00 2001 From: mphanias Date: Mon, 23 Oct 2023 12:55:39 +0530 Subject: [PATCH 1/4] OM129 - unique data usgae initial commit modified queries according to the 7.0 stat and metrics added all-cluster master-object and unique-usage-bytes view which are all connected to a prometheus instance --- config/grafana/dashboards/uniquedata.json | 300 ++++++++++++++++++++-- 1 file changed, 279 insertions(+), 21 deletions(-) diff --git a/config/grafana/dashboards/uniquedata.json b/config/grafana/dashboards/uniquedata.json index 12d9bf4..d2f0df3 100644 --- a/config/grafana/dashboards/uniquedata.json +++ b/config/grafana/dashboards/uniquedata.json @@ -60,6 +60,227 @@ "links": [], "liveNow": false, "panels": [ + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 50, + "panels": [], + "title": "All Clusters - Summary ", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "description": "Display Unique Data Utilization across all cluster and namespaces connected to this prometheus instance", + "fieldConfig": { + "defaults": { + "color": { + "mode": "fixed" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "yellow", + "value": null + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 12, + "x": 0, + "y": 1 + }, + "id": 46, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "9.3.2", + "targets": [ + { + "datasource": { + "type": "__expr__", + "uid": "__expr__" + }, + "expression": "$Q_MEMORY_OBJECTS * $QR_RULE_CAN_SHOW", + "hide": false, + "refId": "All Master Objects", + "type": "math" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "(sum( # Running individual exporter for each node in a cluster\n (avg by (ns) ( aerospike_namespace_ns_cluster_size {job=\"$job_name\", } ))\n == bool \n (count by (ns) (aerospike_namespace_ns_cluster_size {job=\"$job_name\", } ))\n)> bool 0)\n* # migration check with RX metric\n(sum((sum by (ns) (aerospike_namespace_migrate_rx_partitions_remaining + aerospike_namespace_migrate_tx_partitions_remaining) != bool 0))\n== bool 0)\n* # Consistent Effective Replication factor across all nodes\n(sum(\n min by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", }) \n == bool \n max by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", })\n) > bool 0)", + "hide": true, + "legendFormat": "__auto", + "range": true, + "refId": "QR_RULE_CAN_SHOW" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum (aerospike_namespace_master_objects{job=\"$job_name\", })", + "format": "time_series", + "hide": true, + "instant": false, + "legendFormat": "All Master Objects", + "range": true, + "refId": "Q_MEMORY_OBJECTS" + } + ], + "title": "All Cluster - Master Objects (sum)", + "transformations": [], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "description": "Display Unique Data Utilization across all cluster and namespaces connected to this prometheus instance", + "fieldConfig": { + "defaults": { + "color": { + "mode": "fixed" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46", + "value": null + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 12, + "x": 12, + "y": 1 + }, + "id": 48, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "9.3.2", + "targets": [ + { + "datasource": { + "type": "__expr__", + "uid": "__expr__" + }, + "expression": "($6_Q_USAGE_BYTE + $7_Q_USAGE_BYTE) * $QR_RULE_CAN_SHOW", + "hide": false, + "refId": "Unique Data Bytes", + "type": "math" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "(sum( # Running individual exporter for each node in a cluster\n (avg by (ns) ( aerospike_namespace_ns_cluster_size {job=\"$job_name\", } ))\n == bool \n (count by (ns) (aerospike_namespace_ns_cluster_size {job=\"$job_name\", } ))\n)> bool 0)\n* # migration check with RX metric\n(sum((sum by (ns) (aerospike_namespace_migrate_rx_partitions_remaining + aerospike_namespace_migrate_tx_partitions_remaining) != bool 0))\n== bool 0)\n* # Consistent Effective Replication factor across all nodes\n(sum(\n min by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", }) \n == bool \n max by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", })\n) > bool 0)", + "hide": true, + "legendFormat": "__auto", + "range": true, + "refId": "QR_RULE_CAN_SHOW" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "(sum((sum((sum ( (((aerospike_namespace_memory_used_data_bytes {job=\"$job_name\", } + aerospike_namespace_memory_used_index_bytes {job=\"$job_name\", })\nunless # we pick namespace which are in memory but not using Disk or Pmem\n(aerospike_namespace_device_used_bytes {job=\"$job_name\", } or aerospike_namespace_pmem_used_bytes {job=\"$job_name\", } )\n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", }\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) or vector(0) ) by (ns))) \n+ on (job, cluster_name, instance, service,ns)\nsum (\n ( # device-used-bytes + pmem-used-bytes\n ( # sum disk device used bytes\n ( sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", }) /\n ( sum by (ns) ( (aerospike_namespace_device_compression_ratio{job=\"$job_name\", } )) \n *\n avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", } ))\n )\n or\n ( sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", }) /\n ( avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", } ))\n )\n) # end devide-used-bytes\nor\n( \n ( sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", }) /\n ( sum by (ns) ( (aerospike_namespace_pmem_compression_ratio{job=\"$job_name\", } )) \n * avg by (ns) (aerospike_namespace_effective_replication_factor{job=\"$job_name\", }) ))\nor\n ( sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", }) /\n ( avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", }) )) \n)\n)\n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build!~\"^5.*\"}*39) ) \n by (ns)\n) # end of header-byte calculation by aerospike version\nor vector(0)) # end of disk+pmem used bytes\n\n) # end paranthesis for whole sum", + "hide": true, + "legendFormat": "Unique Data Bytes", + "range": true, + "refId": "6_Q_USAGE_BYTE" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "(sum((sum((sum ( (((aerospike_namespace_data_used_bytes {job=\"$job_name\", })/\naerospike_namespace_data_compression_ratio {job=\"$job_name\", }\n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", }\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{ build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) or vector(0) ) by (ns))) \n\n) # end paranthesis for whole sum", + "hide": true, + "legendFormat": "Unique Data Bytes", + "range": true, + "refId": "7_Q_USAGE_BYTE" + } + ], + "title": "All Clusters - Unique Data Bytes (sum)", + "transformations": [], + "type": "stat" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 5 + }, + "id": 64, + "panels": [], + "title": "Unique Data Usage - $cluster", + "type": "row" + }, { "datasource": { "type": "prometheus", @@ -89,9 +310,9 @@ "h": 5, "w": 12, "x": 0, - "y": 0 + "y": 6 }, - "id": 4, + "id": 60, "links": [], "maxDataPoints": 100, "options": { @@ -116,7 +337,7 @@ "type": "__expr__", "uid": "__expr__" }, - "expression": "$Q_MEMORY_OBJECTS * $QR_RULE_CAN_SHOW", + "expression": "$Q_MEMORY_OBJECTS ", "hide": false, "refId": "All Master Objects", "type": "math" @@ -182,9 +403,9 @@ "h": 5, "w": 12, "x": 12, - "y": 0 + "y": 6 }, - "id": 27, + "id": 62, "links": [], "maxDataPoints": 100, "options": { @@ -209,7 +430,7 @@ "type": "__expr__", "uid": "__expr__" }, - "expression": "$Q_USAGE_BYTE * $QR_RULE_CAN_SHOW", + "expression": "($6_Q_USAGE_BYTE + $7_Q_USAGE_BYTE) * $QR_RULE_CAN_SHOW", "hide": false, "refId": "Unique Data Bytes", "type": "math" @@ -236,7 +457,19 @@ "hide": true, "legendFormat": "Unique Data Bytes", "range": true, - "refId": "Q_USAGE_BYTE" + "refId": "6_Q_USAGE_BYTE" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "(sum((sum((sum ( (((aerospike_namespace_data_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ) /\naerospike_namespace_data_compression_ratio {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{ build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) or vector(0) ) by (ns))) \n\n) # end paranthesis for whole sum", + "hide": true, + "legendFormat": "Unique Data Bytes", + "range": true, + "refId": "7_Q_USAGE_BYTE" } ], "title": "Cluster - Unique Data Bytes ", @@ -249,7 +482,7 @@ "h": 1, "w": 24, "x": 0, - "y": 5 + "y": 11 }, "id": 29, "panels": [ @@ -299,7 +532,8 @@ "mode": "absolute", "steps": [ { - "color": "#299c46" + "color": "#299c46", + "value": null } ] }, @@ -311,9 +545,9 @@ "h": 11, "w": 24, "x": 0, - "y": 6 + "y": 24 }, - "id": 36, + "id": 74, "interval": "5m", "links": [], "maxDataPoints": 150, @@ -336,7 +570,7 @@ "type": "__expr__", "uid": "__expr__" }, - "expression": "$Q_USAGE_BYTE * $QR_RULE_CAN_SHOW", + "expression": "($6_Q_USAGE_BYTE + $7_Q_USAGE_BYTE ) * $QR_RULE_CAN_SHOW", "hide": false, "refId": "Unique Data Bytes", "type": "math" @@ -363,15 +597,27 @@ "hide": true, "legendFormat": "Unique Data Bytes", "range": true, - "refId": "Q_USAGE_BYTE" + "refId": "6_Q_USAGE_BYTE" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "(sum((sum((sum ( (((aerospike_namespace_data_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}+\naerospike_namespace_index_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} +\naerospike_namespace_sindex_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) \n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{ build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) or vector(0) ) by (ns))) \n\n) # end paranthesis for whole sum", + "hide": true, + "legendFormat": "Unique Data Bytes", + "range": true, + "refId": "7_Q_USAGE_BYTE" } ], - "title": "Cluster - Unique Data Usage ", + "title": "Historical - Usage Bytes", "transformations": [], "type": "timeseries" } ], - "title": "Historical - Usage Bytes", + "title": "Historical - Usage Bytes - $cluster", "type": "row" }, { @@ -380,11 +626,11 @@ "h": 1, "w": 24, "x": 0, - "y": 6 + "y": 12 }, - "id": 2, + "id": 84, "panels": [], - "title": "Unique Data Usage", + "title": "Unique Data Usage - $cluster", "type": "row" }, { @@ -420,9 +666,9 @@ "h": 3, "w": 12, "x": 0, - "y": 7 + "y": 13 }, - "id": 6, + "id": 94, "links": [], "maxDataPoints": 100, "maxPerRow": 2, @@ -547,6 +793,18 @@ "legendFormat": "{{ns}} - in Memory", "range": true, "refId": "Q_MEMORY_USAGE" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "(sum((sum((sum ( (((aerospike_namespace_data_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ) /\naerospike_namespace_data_compression_ratio {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{ build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) ) by (ns))) \n\n) # end paranthesis for whole sum", + "hide": false, + "legendFormat": "Unique Bytes -", + "range": true, + "refId": "7_DATA_USAGE" } ], "title": "Namespace - $namespace", @@ -691,6 +949,6 @@ "timezone": "", "title": "Unique Data Usage", "uid": "QFY8EJfVk", - "version": 2, + "version": 6, "weekStart": "" } \ No newline at end of file From 9ea839f7854696f9b17ee256861216946b58da0c Mon Sep 17 00:00:00 2001 From: mphanias Date: Thu, 26 Oct 2023 21:25:50 +0530 Subject: [PATCH 2/4] OM129 - review feedback added historical view for all-cluster rows, --- config/grafana/dashboards/uniquedata.json | 837 +++++++++++++--------- 1 file changed, 484 insertions(+), 353 deletions(-) diff --git a/config/grafana/dashboards/uniquedata.json b/config/grafana/dashboards/uniquedata.json index d2f0df3..f442fb3 100644 --- a/config/grafana/dashboards/uniquedata.json +++ b/config/grafana/dashboards/uniquedata.json @@ -268,29 +268,46 @@ "transformations": [], "type": "stat" }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 5 - }, - "id": 64, - "panels": [], - "title": "Unique Data Usage - $cluster", - "type": "row" - }, { "datasource": { "type": "prometheus", "uid": "${DS_AEROSPIKE_PROMETHEUS}" }, - "description": "Display Unique Data Utilization across all namespaces", + "description": "Display Unique Data Utilization across all cluster and namespaces connected to this prometheus instance", "fieldConfig": { "defaults": { "color": { - "mode": "thresholds" + "mode": "fixed" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } }, "mappings": [], "thresholds": { @@ -307,121 +324,25 @@ "overrides": [] }, "gridPos": { - "h": 5, - "w": 12, + "h": 7, + "w": 24, "x": 0, - "y": 6 + "y": 5 }, - "id": 60, + "id": 98, "links": [], "maxDataPoints": 100, "options": { - "colorMode": "background", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "9.3.2", - "targets": [ - { - "datasource": { - "type": "__expr__", - "uid": "__expr__" - }, - "expression": "$Q_MEMORY_OBJECTS ", - "hide": false, - "refId": "All Master Objects", - "type": "math" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_AEROSPIKE_PROMETHEUS}" - }, - "editorMode": "code", - "expr": "(sum( # Running individual exporter for each node in a cluster\n (avg by (ns) ( aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n == bool \n (count by (ns) (aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n)> bool 0)\n* # migration check with RX metric\n(sum((sum by (ns) (aerospike_namespace_migrate_rx_partitions_remaining + aerospike_namespace_migrate_tx_partitions_remaining) != bool 0))\n== bool 0)\n* # Consistent Effective Replication factor across all nodes\n(sum(\n min by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) \n == bool \n max by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n) > bool 0)", - "hide": true, - "legendFormat": "__auto", - "range": true, - "refId": "QR_RULE_CAN_SHOW" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_AEROSPIKE_PROMETHEUS}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum (aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})", - "format": "time_series", - "hide": true, - "instant": false, - "legendFormat": "All Master Objects", - "range": true, - "refId": "Q_MEMORY_OBJECTS" + "tooltip": { + "mode": "single", + "sort": "none" } - ], - "title": "Cluster - All Master Objects", - "transformations": [], - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_AEROSPIKE_PROMETHEUS}" - }, - "description": "Display Unique Data Utilization across all namespaces", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#299c46", - "value": null - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 12, - "x": 12, - "y": 6 - }, - "id": 62, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "background", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" }, "pluginVersion": "9.3.2", "targets": [ @@ -441,7 +362,7 @@ "uid": "${DS_AEROSPIKE_PROMETHEUS}" }, "editorMode": "code", - "expr": "(sum( # Running individual exporter for each node in a cluster\n (avg by (ns) ( aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n == bool \n (count by (ns) (aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n)> bool 0)\n* # migration check with RX metric\n(sum((sum by (ns) (aerospike_namespace_migrate_rx_partitions_remaining + aerospike_namespace_migrate_tx_partitions_remaining) != bool 0))\n== bool 0)\n* # Consistent Effective Replication factor across all nodes\n(sum(\n min by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) \n == bool \n max by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n) > bool 0)", + "expr": "(sum( # Running individual exporter for each node in a cluster\n (avg by (ns) ( aerospike_namespace_ns_cluster_size {job=\"$job_name\", } ))\n == bool \n (count by (ns) (aerospike_namespace_ns_cluster_size {job=\"$job_name\", } ))\n)> bool 0)\n* # migration check with RX metric\n(sum((sum by (ns) (aerospike_namespace_migrate_rx_partitions_remaining + aerospike_namespace_migrate_tx_partitions_remaining) != bool 0))\n== bool 0)\n* # Consistent Effective Replication factor across all nodes\n(sum(\n min by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", }) \n == bool \n max by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", })\n) > bool 0)", "hide": true, "legendFormat": "__auto", "range": true, @@ -453,7 +374,7 @@ "uid": "${DS_AEROSPIKE_PROMETHEUS}" }, "editorMode": "code", - "expr": "(sum((sum((sum ( (((aerospike_namespace_memory_used_data_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} + aerospike_namespace_memory_used_index_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\nunless # we pick namespace which are in memory but not using Disk or Pmem\n(aerospike_namespace_device_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} or aerospike_namespace_pmem_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} )\n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) or vector(0) ) by (ns))) \n+ on (job, cluster_name, instance, service,ns)\nsum (\n ( # device-used-bytes + pmem-used-bytes\n ( # sum disk device used bytes\n ( sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) /\n ( sum by (ns) ( (aerospike_namespace_device_compression_ratio{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} )) \n *\n avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n )\n or\n ( sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) /\n ( avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n )\n) # end devide-used-bytes\nor\n( \n ( sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) /\n ( sum by (ns) ( (aerospike_namespace_pmem_compression_ratio{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} )) \n * avg by (ns) (aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) ))\nor\n ( sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) /\n ( avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) )) \n)\n)\n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build!~\"^5.*\"}*39) ) \n by (ns)\n) # end of header-byte calculation by aerospike version\nor vector(0)) # end of disk+pmem used bytes\n\n) # end paranthesis for whole sum", + "expr": "(sum((sum((sum ( (((aerospike_namespace_memory_used_data_bytes {job=\"$job_name\", } + aerospike_namespace_memory_used_index_bytes {job=\"$job_name\", })\nunless # we pick namespace which are in memory but not using Disk or Pmem\n(aerospike_namespace_device_used_bytes {job=\"$job_name\", } or aerospike_namespace_pmem_used_bytes {job=\"$job_name\", } )\n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", }\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) or vector(0) ) by (ns))) \n+ on (job, cluster_name, instance, service,ns)\nsum (\n ( # device-used-bytes + pmem-used-bytes\n ( # sum disk device used bytes\n ( sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", }) /\n ( sum by (ns) ( (aerospike_namespace_device_compression_ratio{job=\"$job_name\", } )) \n *\n avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", } ))\n )\n or\n ( sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", }) /\n ( avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", } ))\n )\n) # end devide-used-bytes\nor\n( \n ( sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", }) /\n ( sum by (ns) ( (aerospike_namespace_pmem_compression_ratio{job=\"$job_name\", } )) \n * avg by (ns) (aerospike_namespace_effective_replication_factor{job=\"$job_name\", }) ))\nor\n ( sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", }) /\n ( avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", }) )) \n)\n)\n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build!~\"^5.*\"}*39) ) \n by (ns)\n) # end of header-byte calculation by aerospike version\nor vector(0)) # end of disk+pmem used bytes\n\n) # end paranthesis for whole sum", "hide": true, "legendFormat": "Unique Data Bytes", "range": true, @@ -465,16 +386,16 @@ "uid": "${DS_AEROSPIKE_PROMETHEUS}" }, "editorMode": "code", - "expr": "(sum((sum((sum ( (((aerospike_namespace_data_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ) /\naerospike_namespace_data_compression_ratio {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{ build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) or vector(0) ) by (ns))) \n\n) # end paranthesis for whole sum", + "expr": "(sum((sum((sum ( (((aerospike_namespace_data_used_bytes {job=\"$job_name\", })/\naerospike_namespace_data_compression_ratio {job=\"$job_name\", }\n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", }\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{ build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) or vector(0) ) by (ns))) \n\n) # end paranthesis for whole sum", "hide": true, "legendFormat": "Unique Data Bytes", "range": true, "refId": "7_Q_USAGE_BYTE" } ], - "title": "Cluster - Unique Data Bytes ", + "title": "All Clusters - Historical - Usage Bytes", "transformations": [], - "type": "stat" + "type": "timeseries" }, { "collapsed": true, @@ -482,9 +403,9 @@ "h": 1, "w": 24, "x": 0, - "y": 11 + "y": 12 }, - "id": 29, + "id": 64, "panels": [ { "datasource": { @@ -495,37 +416,7 @@ "fieldConfig": { "defaults": { "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } + "mode": "thresholds" }, "mappings": [], "thresholds": { @@ -537,31 +428,126 @@ } ] }, - "unit": "bytes" + "unit": "none" }, "overrides": [] }, "gridPos": { - "h": 11, - "w": 24, + "h": 5, + "w": 12, "x": 0, - "y": 24 + "y": 2 }, - "id": 74, - "interval": "5m", + "id": 60, "links": [], - "maxDataPoints": 150, + "maxDataPoints": 100, "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true + "colorMode": "background", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false }, - "tooltip": { - "mode": "single", - "sort": "none" + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "9.3.2", + "targets": [ + { + "datasource": { + "type": "__expr__", + "uid": "__expr__" + }, + "expression": "$Q_MEMORY_OBJECTS ", + "hide": false, + "refId": "All Master Objects", + "type": "math" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "(sum( # Running individual exporter for each node in a cluster\n (avg by (ns) ( aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n == bool \n (count by (ns) (aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n)> bool 0)\n* # migration check with RX metric\n(sum((sum by (ns) (aerospike_namespace_migrate_rx_partitions_remaining + aerospike_namespace_migrate_tx_partitions_remaining) != bool 0))\n== bool 0)\n* # Consistent Effective Replication factor across all nodes\n(sum(\n min by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) \n == bool \n max by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n) > bool 0)", + "hide": true, + "legendFormat": "__auto", + "range": true, + "refId": "QR_RULE_CAN_SHOW" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum (aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})", + "format": "time_series", + "hide": true, + "instant": false, + "legendFormat": "All Master Objects", + "range": true, + "refId": "Q_MEMORY_OBJECTS" } + ], + "title": "Cluster - All Master Objects", + "transformations": [], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "description": "Display Unique Data Utilization across all namespaces", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46", + "value": null + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 12, + "x": 12, + "y": 2 + }, + "id": 62, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" }, "pluginVersion": "9.3.2", "targets": [ @@ -570,7 +556,7 @@ "type": "__expr__", "uid": "__expr__" }, - "expression": "($6_Q_USAGE_BYTE + $7_Q_USAGE_BYTE ) * $QR_RULE_CAN_SHOW", + "expression": "($6_Q_USAGE_BYTE + $7_Q_USAGE_BYTE) * $QR_RULE_CAN_SHOW", "hide": false, "refId": "Unique Data Bytes", "type": "math" @@ -605,216 +591,361 @@ "uid": "${DS_AEROSPIKE_PROMETHEUS}" }, "editorMode": "code", - "expr": "(sum((sum((sum ( (((aerospike_namespace_data_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}+\naerospike_namespace_index_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} +\naerospike_namespace_sindex_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) \n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{ build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) or vector(0) ) by (ns))) \n\n) # end paranthesis for whole sum", + "expr": "(sum((sum((sum ( (((aerospike_namespace_data_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ) /\naerospike_namespace_data_compression_ratio {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{ build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) or vector(0) ) by (ns))) \n\n) # end paranthesis for whole sum", "hide": true, "legendFormat": "Unique Data Bytes", "range": true, "refId": "7_Q_USAGE_BYTE" } ], - "title": "Historical - Usage Bytes", + "title": "Cluster - Unique Data Bytes ", "transformations": [], - "type": "timeseries" + "type": "stat" } ], - "title": "Historical - Usage Bytes - $cluster", + "title": "Cluster - $cluster", "type": "row" }, { - "collapsed": false, + "collapsed": true, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 12 - }, - "id": 84, - "panels": [], - "title": "Unique Data Usage - $cluster", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_AEROSPIKE_PROMETHEUS}" + "y": 13 }, - "description": "Display Unique Data Utilization by namespaces in bytes", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#6a9f78", - "value": null - }, - { - "color": "green", - "value": 1 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 12, - "x": 0, - "y": 13 - }, - "id": 94, - "links": [], - "maxDataPoints": 100, - "maxPerRow": 2, - "options": { - "colorMode": "background", - "graphMode": "none", - "justifyMode": "center", - "orientation": "vertical", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "value_and_name" - }, - "pluginVersion": "9.3.2", - "repeat": "namespace", - "repeatDirection": "h", - "targets": [ + "id": 29, + "panels": [ { "datasource": { "type": "prometheus", "uid": "${DS_AEROSPIKE_PROMETHEUS}" }, - "editorMode": "code", - "exemplar": false, - "expr": "(sum (aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) by (ns) ) ", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "master objects - ", - "range": true, - "refId": "master objects" - }, - { - "datasource": { - "type": "__expr__", - "uid": "__expr__" - }, - "expression": "$Q_MEMORY_USAGE * $QR_RULE_CAN_SHOW", - "hide": false, - "refId": "in Memory -", - "type": "math" - }, - { - "datasource": { - "type": "__expr__", - "uid": "__expr__" + "description": "Display Unique Data Utilization across all namespaces", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46", + "value": null + } + ] + }, + "unit": "bytes" + }, + "overrides": [] }, - "expression": "$Q_DISK_USAGE * $QR_RULE_CAN_SHOW", - "hide": false, - "refId": "bytes on Disk -", - "type": "math" - }, - { - "datasource": { - "type": "__expr__", - "uid": "__expr__" + "gridPos": { + "h": 11, + "w": 24, + "x": 0, + "y": 3 }, - "expression": "$Q_PMEM_DISK_USAGE * $QR_RULE_CAN_SHOW", - "hide": false, - "refId": "on Pmem -", - "type": "math" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_AEROSPIKE_PROMETHEUS}" + "id": 74, + "interval": "5m", + "links": [], + "maxDataPoints": 150, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } }, - "editorMode": "code", - "expr": "# above query should work only if the below condition satisfy\n(sum( # Running individual exporter for each node in a cluster\n (avg by (ns) ( aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}))\n == bool \n (count by (ns) (aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n) by (ns)> bool 0)\n* # migration check with RX + TX metric - for each Namespace\n(\n (sum (aerospike_namespace_migrate_rx_partitions_remaining {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}+ aerospike_namespace_migrate_tx_partitions_remaining {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) \nby (ns) == bool 0)\n)\n* # Consistent Effective Replication factor across all nodes\n(sum(\n min by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) \n == bool \n max by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n) by (ns) > bool 0)", - "hide": true, - "legendFormat": "__auto", - "range": true, - "refId": "QR_RULE_CAN_SHOW" - }, + "pluginVersion": "9.3.2", + "targets": [ + { + "datasource": { + "type": "__expr__", + "uid": "__expr__" + }, + "expression": "($6_Q_USAGE_BYTE + $7_Q_USAGE_BYTE ) * $QR_RULE_CAN_SHOW", + "hide": false, + "refId": "Unique Data Bytes", + "type": "math" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "(sum( # Running individual exporter for each node in a cluster\n (avg by (ns) ( aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n == bool \n (count by (ns) (aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n)> bool 0)\n* # migration check with RX metric\n(sum((sum by (ns) (aerospike_namespace_migrate_rx_partitions_remaining + aerospike_namespace_migrate_tx_partitions_remaining) != bool 0))\n== bool 0)\n* # Consistent Effective Replication factor across all nodes\n(sum(\n min by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) \n == bool \n max by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n) > bool 0)", + "hide": true, + "legendFormat": "__auto", + "range": true, + "refId": "QR_RULE_CAN_SHOW" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "(sum((sum((sum ( (((aerospike_namespace_memory_used_data_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} + aerospike_namespace_memory_used_index_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\nunless # we pick namespace which are in memory but not using Disk or Pmem\n(aerospike_namespace_device_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} or aerospike_namespace_pmem_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} )\n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) or vector(0) ) by (ns))) \n+ on (job, cluster_name, instance, service,ns)\nsum (\n ( # device-used-bytes + pmem-used-bytes\n ( # sum disk device used bytes\n ( sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) /\n ( sum by (ns) ( (aerospike_namespace_device_compression_ratio{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} )) \n *\n avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n )\n or\n ( sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) /\n ( avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n )\n) # end devide-used-bytes\nor\n( \n ( sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) /\n ( sum by (ns) ( (aerospike_namespace_pmem_compression_ratio{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} )) \n * avg by (ns) (aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) ))\nor\n ( sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) /\n ( avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) )) \n)\n)\n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build!~\"^5.*\"}*39) ) \n by (ns)\n) # end of header-byte calculation by aerospike version\nor vector(0)) # end of disk+pmem used bytes\n\n) # end paranthesis for whole sum", + "hide": true, + "legendFormat": "Unique Data Bytes", + "range": true, + "refId": "6_Q_USAGE_BYTE" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "(sum((sum((sum ( (((aerospike_namespace_data_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}+\naerospike_namespace_index_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} +\naerospike_namespace_sindex_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) \n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{ build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) or vector(0) ) by (ns))) \n\n) # end paranthesis for whole sum", + "hide": true, + "legendFormat": "Unique Data Bytes", + "range": true, + "refId": "7_Q_USAGE_BYTE" + } + ], + "title": "Historical - Usage Bytes", + "transformations": [], + "type": "timeseries" + } + ], + "title": "Historical - Usage Bytes - $cluster", + "type": "row" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 14 + }, + "id": 84, + "panels": [ { "datasource": { "type": "prometheus", "uid": "${DS_AEROSPIKE_PROMETHEUS}" }, - "editorMode": "code", - "exemplar": false, - "expr": "((\n (sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} / aerospike_namespace_device_compression_ratio{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n ) /\n(avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}))\nOR\n (sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} )\n ) /\n(avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}))\n)- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) !=0\n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) !=0\n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^6.*\"}*39) !=0) by (ns)\n ) # end calculation of header-byte by server-version\n)", - "format": "time_series", - "hide": true, - "instant": false, - "interval": "", - "legendFormat": "{{service}} {{ns}} - on Disk ", - "range": true, - "refId": "Q_DISK_USAGE" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_AEROSPIKE_PROMETHEUS}" + "description": "Display Unique Data Utilization by namespaces in bytes", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#6a9f78", + "value": null + }, + { + "color": "#299c46", + "value": 1 + } + ] + }, + "unit": "none" + }, + "overrides": [] }, - "editorMode": "code", - "exemplar": false, - "expr": "((\n (sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} / aerospike_namespace_pmem_compression_ratio{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n ) /\n(avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}))\nOR\n (sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} )\n ) /\n(avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}))\n)- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) !=0\n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) !=0\n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^6.*\"}*39) !=0) by (ns)\n ) # end calculation of header-byte by server-version\n)", - "format": "time_series", - "hide": true, - "instant": false, - "interval": "", - "legendFormat": "{{service}} {{ns}} - on Disk ", - "range": true, - "refId": "Q_PMEM_DISK_USAGE" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_AEROSPIKE_PROMETHEUS}" + "gridPos": { + "h": 3, + "w": 12, + "x": 0, + "y": 4 }, - "editorMode": "code", - "exemplar": false, - "expr": "((sum((sum ( ((((aerospike_namespace_memory_used_data_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} + aerospike_namespace_memory_used_index_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) )\nunless # We pick up namespace which use memory, but not Disk or Pmem\n(aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} or aerospike_namespace_pmem_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n) \n/aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n- on (job, cluster_name, instance, service,ns) \n ( # calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns)\n ) \n) by (service, ns)) ) by (ns))\n)", - "hide": true, - "instant": false, - "legendFormat": "{{ns}} - in Memory", - "range": true, - "refId": "Q_MEMORY_USAGE" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_AEROSPIKE_PROMETHEUS}" + "id": 94, + "links": [], + "maxDataPoints": 100, + "maxPerRow": 2, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "center", + "orientation": "vertical", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "value_and_name" }, - "editorMode": "code", - "expr": "(sum((sum((sum ( (((aerospike_namespace_data_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ) /\naerospike_namespace_data_compression_ratio {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{ build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) ) by (ns))) \n\n) # end paranthesis for whole sum", - "hide": false, - "legendFormat": "Unique Bytes -", - "range": true, - "refId": "7_DATA_USAGE" - } - ], - "title": "Namespace - $namespace", - "transformations": [ - { - "id": "labelsToFields", - "options": {} + "pluginVersion": "9.3.2", + "repeat": "namespace", + "repeatDirection": "h", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "(sum (aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) by (ns) ) ", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "master objects - ", + "range": true, + "refId": "master objects" + }, + { + "datasource": { + "type": "__expr__", + "uid": "__expr__" + }, + "expression": "$Q_MEMORY_USAGE * $QR_RULE_CAN_SHOW", + "hide": false, + "refId": "in Memory -", + "type": "math" + }, + { + "datasource": { + "type": "__expr__", + "uid": "__expr__" + }, + "expression": "$Q_DISK_USAGE * $QR_RULE_CAN_SHOW", + "hide": false, + "refId": "bytes on Disk -", + "type": "math" + }, + { + "datasource": { + "type": "__expr__", + "uid": "__expr__" + }, + "expression": "$Q_PMEM_DISK_USAGE * $QR_RULE_CAN_SHOW", + "hide": false, + "refId": "on Pmem -", + "type": "math" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "# above query should work only if the below condition satisfy\n(sum( # Running individual exporter for each node in a cluster\n (avg by (ns) ( aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}))\n == bool \n (count by (ns) (aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n) by (ns)> bool 0)\n* # migration check with RX + TX metric - for each Namespace\n(\n (sum (aerospike_namespace_migrate_rx_partitions_remaining {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}+ aerospike_namespace_migrate_tx_partitions_remaining {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) \nby (ns) == bool 0)\n)\n* # Consistent Effective Replication factor across all nodes\n(sum(\n min by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) \n == bool \n max by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n) by (ns) > bool 0)", + "hide": true, + "legendFormat": "__auto", + "range": true, + "refId": "QR_RULE_CAN_SHOW" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "((\n (sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} / aerospike_namespace_device_compression_ratio{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n ) /\n(avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}))\nOR\n (sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} )\n ) /\n(avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}))\n)- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) !=0\n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) !=0\n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^6.*\"}*39) !=0) by (ns)\n ) # end calculation of header-byte by server-version\n)", + "format": "time_series", + "hide": true, + "instant": false, + "interval": "", + "legendFormat": "{{service}} {{ns}} - on Disk ", + "range": true, + "refId": "Q_DISK_USAGE" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "((\n (sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} / aerospike_namespace_pmem_compression_ratio{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n ) /\n(avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}))\nOR\n (sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} )\n ) /\n(avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}))\n)- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) !=0\n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) !=0\n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^6.*\"}*39) !=0) by (ns)\n ) # end calculation of header-byte by server-version\n)", + "format": "time_series", + "hide": true, + "instant": false, + "interval": "", + "legendFormat": "{{service}} {{ns}} - on Disk ", + "range": true, + "refId": "Q_PMEM_DISK_USAGE" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "((sum((sum ( ((((aerospike_namespace_memory_used_data_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} + aerospike_namespace_memory_used_index_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) )\nunless # We pick up namespace which use memory, but not Disk or Pmem\n(aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} or aerospike_namespace_pmem_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n) \n/aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n- on (job, cluster_name, instance, service,ns) \n ( # calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns)\n ) \n) by (service, ns)) ) by (ns))\n)", + "hide": true, + "instant": false, + "legendFormat": "{{ns}} - in Memory", + "range": true, + "refId": "Q_MEMORY_USAGE" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "(sum((sum((sum ( (((aerospike_namespace_data_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ) /\naerospike_namespace_data_compression_ratio {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{ build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) ) by (ns))) \n\n) # end paranthesis for whole sum", + "hide": false, + "legendFormat": "Unique Bytes -", + "range": true, + "refId": "7_DATA_USAGE" + } + ], + "title": "Namespace - $namespace", + "transformations": [ + { + "id": "labelsToFields", + "options": {} + } + ], + "type": "stat" } ], - "type": "stat" + "title": "Namespace - $cluster", + "type": "row" } ], "refresh": false, @@ -949,6 +1080,6 @@ "timezone": "", "title": "Unique Data Usage", "uid": "QFY8EJfVk", - "version": 6, + "version": 3, "weekStart": "" } \ No newline at end of file From 8db0ad9e31719b85d2f8a7fc60da8f33c21ed37e Mon Sep 17 00:00:00 2001 From: mphanias Date: Mon, 30 Oct 2023 11:55:32 +0530 Subject: [PATCH 3/4] OM129 - review feedback updated panel title to standard total updated color for all-cluster panels --- config/grafana/dashboards/uniquedata.json | 733 +++++++++++----------- 1 file changed, 367 insertions(+), 366 deletions(-) diff --git a/config/grafana/dashboards/uniquedata.json b/config/grafana/dashboards/uniquedata.json index f442fb3..b4a03ef 100644 --- a/config/grafana/dashboards/uniquedata.json +++ b/config/grafana/dashboards/uniquedata.json @@ -82,6 +82,7 @@ "fieldConfig": { "defaults": { "color": { + "fixedColor": "blue", "mode": "fixed" }, "mappings": [], @@ -162,7 +163,7 @@ "refId": "Q_MEMORY_OBJECTS" } ], - "title": "All Cluster - Master Objects (sum)", + "title": "All Cluster - Master Objects (total)", "transformations": [], "type": "stat" }, @@ -175,6 +176,7 @@ "fieldConfig": { "defaults": { "color": { + "fixedColor": "blue", "mode": "fixed" }, "mappings": [], @@ -264,7 +266,7 @@ "refId": "7_Q_USAGE_BYTE" } ], - "title": "All Clusters - Unique Data Bytes (sum)", + "title": "All Clusters - Unique Data Bytes (total)", "transformations": [], "type": "stat" }, @@ -277,6 +279,7 @@ "fieldConfig": { "defaults": { "color": { + "fixedColor": "blue", "mode": "fixed" }, "custom": { @@ -319,7 +322,7 @@ } ] }, - "unit": "none" + "unit": "bytes" }, "overrides": [] }, @@ -398,7 +401,7 @@ "type": "timeseries" }, { - "collapsed": true, + "collapsed": false, "gridPos": { "h": 1, "w": 24, @@ -406,205 +409,204 @@ "y": 12 }, "id": 64, - "panels": [ + "panels": [], + "title": "Cluster - $cluster", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "description": "Display Unique Data Utilization across all namespaces", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46", + "value": null + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 12, + "x": 0, + "y": 13 + }, + "id": 60, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "9.3.2", + "targets": [ + { + "datasource": { + "type": "__expr__", + "uid": "__expr__" + }, + "expression": "$Q_MEMORY_OBJECTS ", + "hide": false, + "refId": "All Master Objects", + "type": "math" + }, { "datasource": { "type": "prometheus", "uid": "${DS_AEROSPIKE_PROMETHEUS}" }, - "description": "Display Unique Data Utilization across all namespaces", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#299c46", - "value": null - } - ] - }, - "unit": "none" - }, - "overrides": [] + "editorMode": "code", + "expr": "(sum( # Running individual exporter for each node in a cluster\n (avg by (ns) ( aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n == bool \n (count by (ns) (aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n)> bool 0)\n* # migration check with RX metric\n(sum((sum by (ns) (aerospike_namespace_migrate_rx_partitions_remaining + aerospike_namespace_migrate_tx_partitions_remaining) != bool 0))\n== bool 0)\n* # Consistent Effective Replication factor across all nodes\n(sum(\n min by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) \n == bool \n max by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n) > bool 0)", + "hide": true, + "legendFormat": "__auto", + "range": true, + "refId": "QR_RULE_CAN_SHOW" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" }, - "gridPos": { - "h": 5, - "w": 12, - "x": 0, - "y": 2 + "editorMode": "code", + "exemplar": false, + "expr": "sum (aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})", + "format": "time_series", + "hide": true, + "instant": false, + "legendFormat": "All Master Objects", + "range": true, + "refId": "Q_MEMORY_OBJECTS" + } + ], + "title": "Cluster - All Master Objects", + "transformations": [], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "description": "Display Unique Data Utilization across all namespaces", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" }, - "id": 60, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "background", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46", + "value": null + } + ] }, - "pluginVersion": "9.3.2", - "targets": [ - { - "datasource": { - "type": "__expr__", - "uid": "__expr__" - }, - "expression": "$Q_MEMORY_OBJECTS ", - "hide": false, - "refId": "All Master Objects", - "type": "math" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_AEROSPIKE_PROMETHEUS}" - }, - "editorMode": "code", - "expr": "(sum( # Running individual exporter for each node in a cluster\n (avg by (ns) ( aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n == bool \n (count by (ns) (aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n)> bool 0)\n* # migration check with RX metric\n(sum((sum by (ns) (aerospike_namespace_migrate_rx_partitions_remaining + aerospike_namespace_migrate_tx_partitions_remaining) != bool 0))\n== bool 0)\n* # Consistent Effective Replication factor across all nodes\n(sum(\n min by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) \n == bool \n max by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n) > bool 0)", - "hide": true, - "legendFormat": "__auto", - "range": true, - "refId": "QR_RULE_CAN_SHOW" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_AEROSPIKE_PROMETHEUS}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum (aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})", - "format": "time_series", - "hide": true, - "instant": false, - "legendFormat": "All Master Objects", - "range": true, - "refId": "Q_MEMORY_OBJECTS" - } + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 12, + "x": 12, + "y": 13 + }, + "id": 62, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" ], - "title": "Cluster - All Master Objects", - "transformations": [], - "type": "stat" + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "9.3.2", + "targets": [ + { + "datasource": { + "type": "__expr__", + "uid": "__expr__" + }, + "expression": "($6_Q_USAGE_BYTE + $7_Q_USAGE_BYTE) * $QR_RULE_CAN_SHOW", + "hide": false, + "refId": "Unique Data Bytes", + "type": "math" }, { "datasource": { "type": "prometheus", "uid": "${DS_AEROSPIKE_PROMETHEUS}" }, - "description": "Display Unique Data Utilization across all namespaces", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#299c46", - "value": null - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 12, - "x": 12, - "y": 2 + "editorMode": "code", + "expr": "(sum( # Running individual exporter for each node in a cluster\n (avg by (ns) ( aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n == bool \n (count by (ns) (aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n)> bool 0)\n* # migration check with RX metric\n(sum((sum by (ns) (aerospike_namespace_migrate_rx_partitions_remaining + aerospike_namespace_migrate_tx_partitions_remaining) != bool 0))\n== bool 0)\n* # Consistent Effective Replication factor across all nodes\n(sum(\n min by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) \n == bool \n max by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n) > bool 0)", + "hide": true, + "legendFormat": "__auto", + "range": true, + "refId": "QR_RULE_CAN_SHOW" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" }, - "id": 62, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "background", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" + "editorMode": "code", + "expr": "(sum((sum((sum ( (((aerospike_namespace_memory_used_data_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} + aerospike_namespace_memory_used_index_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\nunless # we pick namespace which are in memory but not using Disk or Pmem\n(aerospike_namespace_device_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} or aerospike_namespace_pmem_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} )\n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) or vector(0) ) by (ns))) \n+ on (job, cluster_name, instance, service,ns)\nsum (\n ( # device-used-bytes + pmem-used-bytes\n ( # sum disk device used bytes\n ( sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) /\n ( sum by (ns) ( (aerospike_namespace_device_compression_ratio{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} )) \n *\n avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n )\n or\n ( sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) /\n ( avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n )\n) # end devide-used-bytes\nor\n( \n ( sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) /\n ( sum by (ns) ( (aerospike_namespace_pmem_compression_ratio{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} )) \n * avg by (ns) (aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) ))\nor\n ( sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) /\n ( avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) )) \n)\n)\n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build!~\"^5.*\"}*39) ) \n by (ns)\n) # end of header-byte calculation by aerospike version\nor vector(0)) # end of disk+pmem used bytes\n\n) # end paranthesis for whole sum", + "hide": true, + "legendFormat": "Unique Data Bytes", + "range": true, + "refId": "6_Q_USAGE_BYTE" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" }, - "pluginVersion": "9.3.2", - "targets": [ - { - "datasource": { - "type": "__expr__", - "uid": "__expr__" - }, - "expression": "($6_Q_USAGE_BYTE + $7_Q_USAGE_BYTE) * $QR_RULE_CAN_SHOW", - "hide": false, - "refId": "Unique Data Bytes", - "type": "math" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_AEROSPIKE_PROMETHEUS}" - }, - "editorMode": "code", - "expr": "(sum( # Running individual exporter for each node in a cluster\n (avg by (ns) ( aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n == bool \n (count by (ns) (aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n)> bool 0)\n* # migration check with RX metric\n(sum((sum by (ns) (aerospike_namespace_migrate_rx_partitions_remaining + aerospike_namespace_migrate_tx_partitions_remaining) != bool 0))\n== bool 0)\n* # Consistent Effective Replication factor across all nodes\n(sum(\n min by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) \n == bool \n max by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n) > bool 0)", - "hide": true, - "legendFormat": "__auto", - "range": true, - "refId": "QR_RULE_CAN_SHOW" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_AEROSPIKE_PROMETHEUS}" - }, - "editorMode": "code", - "expr": "(sum((sum((sum ( (((aerospike_namespace_memory_used_data_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} + aerospike_namespace_memory_used_index_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\nunless # we pick namespace which are in memory but not using Disk or Pmem\n(aerospike_namespace_device_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} or aerospike_namespace_pmem_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} )\n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) or vector(0) ) by (ns))) \n+ on (job, cluster_name, instance, service,ns)\nsum (\n ( # device-used-bytes + pmem-used-bytes\n ( # sum disk device used bytes\n ( sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) /\n ( sum by (ns) ( (aerospike_namespace_device_compression_ratio{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} )) \n *\n avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n )\n or\n ( sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) /\n ( avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n )\n) # end devide-used-bytes\nor\n( \n ( sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) /\n ( sum by (ns) ( (aerospike_namespace_pmem_compression_ratio{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} )) \n * avg by (ns) (aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) ))\nor\n ( sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) /\n ( avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) )) \n)\n)\n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build!~\"^5.*\"}*39) ) \n by (ns)\n) # end of header-byte calculation by aerospike version\nor vector(0)) # end of disk+pmem used bytes\n\n) # end paranthesis for whole sum", - "hide": true, - "legendFormat": "Unique Data Bytes", - "range": true, - "refId": "6_Q_USAGE_BYTE" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_AEROSPIKE_PROMETHEUS}" - }, - "editorMode": "code", - "expr": "(sum((sum((sum ( (((aerospike_namespace_data_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ) /\naerospike_namespace_data_compression_ratio {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{ build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) or vector(0) ) by (ns))) \n\n) # end paranthesis for whole sum", - "hide": true, - "legendFormat": "Unique Data Bytes", - "range": true, - "refId": "7_Q_USAGE_BYTE" - } - ], - "title": "Cluster - Unique Data Bytes ", - "transformations": [], - "type": "stat" + "editorMode": "code", + "expr": "(sum((sum((sum ( (((aerospike_namespace_data_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ) /\naerospike_namespace_data_compression_ratio {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{ build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) or vector(0) ) by (ns))) \n\n) # end paranthesis for whole sum", + "hide": true, + "legendFormat": "Unique Data Bytes", + "range": true, + "refId": "7_Q_USAGE_BYTE" } ], - "title": "Cluster - $cluster", - "type": "row" + "title": "Cluster - Unique Data Bytes ", + "transformations": [], + "type": "stat" }, { "collapsed": true, @@ -612,7 +614,7 @@ "h": 1, "w": 24, "x": 0, - "y": 13 + "y": 18 }, "id": 29, "panels": [ @@ -675,7 +677,7 @@ "h": 11, "w": 24, "x": 0, - "y": 3 + "y": 19 }, "id": 74, "interval": "5m", @@ -751,201 +753,200 @@ "type": "row" }, { - "collapsed": true, + "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 14 + "y": 19 }, "id": 84, - "panels": [ + "panels": [], + "title": "Namespace - $cluster", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "description": "Display Unique Data Utilization by namespaces in bytes", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#6a9f78", + "value": null + }, + { + "color": "#299c46", + "value": 1 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 12, + "x": 0, + "y": 20 + }, + "id": 94, + "links": [], + "maxDataPoints": 100, + "maxPerRow": 2, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "center", + "orientation": "vertical", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "value_and_name" + }, + "pluginVersion": "9.3.2", + "repeat": "namespace", + "repeatDirection": "h", + "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_AEROSPIKE_PROMETHEUS}" }, - "description": "Display Unique Data Utilization by namespaces in bytes", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#6a9f78", - "value": null - }, - { - "color": "#299c46", - "value": 1 - } - ] - }, - "unit": "none" - }, - "overrides": [] + "editorMode": "code", + "exemplar": false, + "expr": "(sum (aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) by (ns) ) ", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "master objects - ", + "range": true, + "refId": "master objects" + }, + { + "datasource": { + "type": "__expr__", + "uid": "__expr__" }, - "gridPos": { - "h": 3, - "w": 12, - "x": 0, - "y": 4 + "expression": "$Q_MEMORY_USAGE * $QR_RULE_CAN_SHOW", + "hide": false, + "refId": "in Memory -", + "type": "math" + }, + { + "datasource": { + "type": "__expr__", + "uid": "__expr__" }, - "id": 94, - "links": [], - "maxDataPoints": 100, - "maxPerRow": 2, - "options": { - "colorMode": "background", - "graphMode": "none", - "justifyMode": "center", - "orientation": "vertical", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "value_and_name" + "expression": "$Q_DISK_USAGE * $QR_RULE_CAN_SHOW", + "hide": false, + "refId": "bytes on Disk -", + "type": "math" + }, + { + "datasource": { + "type": "__expr__", + "uid": "__expr__" }, - "pluginVersion": "9.3.2", - "repeat": "namespace", - "repeatDirection": "h", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_AEROSPIKE_PROMETHEUS}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "(sum (aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) by (ns) ) ", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "master objects - ", - "range": true, - "refId": "master objects" - }, - { - "datasource": { - "type": "__expr__", - "uid": "__expr__" - }, - "expression": "$Q_MEMORY_USAGE * $QR_RULE_CAN_SHOW", - "hide": false, - "refId": "in Memory -", - "type": "math" - }, - { - "datasource": { - "type": "__expr__", - "uid": "__expr__" - }, - "expression": "$Q_DISK_USAGE * $QR_RULE_CAN_SHOW", - "hide": false, - "refId": "bytes on Disk -", - "type": "math" - }, - { - "datasource": { - "type": "__expr__", - "uid": "__expr__" - }, - "expression": "$Q_PMEM_DISK_USAGE * $QR_RULE_CAN_SHOW", - "hide": false, - "refId": "on Pmem -", - "type": "math" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_AEROSPIKE_PROMETHEUS}" - }, - "editorMode": "code", - "expr": "# above query should work only if the below condition satisfy\n(sum( # Running individual exporter for each node in a cluster\n (avg by (ns) ( aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}))\n == bool \n (count by (ns) (aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n) by (ns)> bool 0)\n* # migration check with RX + TX metric - for each Namespace\n(\n (sum (aerospike_namespace_migrate_rx_partitions_remaining {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}+ aerospike_namespace_migrate_tx_partitions_remaining {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) \nby (ns) == bool 0)\n)\n* # Consistent Effective Replication factor across all nodes\n(sum(\n min by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) \n == bool \n max by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n) by (ns) > bool 0)", - "hide": true, - "legendFormat": "__auto", - "range": true, - "refId": "QR_RULE_CAN_SHOW" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_AEROSPIKE_PROMETHEUS}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "((\n (sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} / aerospike_namespace_device_compression_ratio{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n ) /\n(avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}))\nOR\n (sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} )\n ) /\n(avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}))\n)- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) !=0\n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) !=0\n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^6.*\"}*39) !=0) by (ns)\n ) # end calculation of header-byte by server-version\n)", - "format": "time_series", - "hide": true, - "instant": false, - "interval": "", - "legendFormat": "{{service}} {{ns}} - on Disk ", - "range": true, - "refId": "Q_DISK_USAGE" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_AEROSPIKE_PROMETHEUS}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "((\n (sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} / aerospike_namespace_pmem_compression_ratio{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n ) /\n(avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}))\nOR\n (sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} )\n ) /\n(avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}))\n)- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) !=0\n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) !=0\n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^6.*\"}*39) !=0) by (ns)\n ) # end calculation of header-byte by server-version\n)", - "format": "time_series", - "hide": true, - "instant": false, - "interval": "", - "legendFormat": "{{service}} {{ns}} - on Disk ", - "range": true, - "refId": "Q_PMEM_DISK_USAGE" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_AEROSPIKE_PROMETHEUS}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "((sum((sum ( ((((aerospike_namespace_memory_used_data_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} + aerospike_namespace_memory_used_index_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) )\nunless # We pick up namespace which use memory, but not Disk or Pmem\n(aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} or aerospike_namespace_pmem_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n) \n/aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n- on (job, cluster_name, instance, service,ns) \n ( # calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns)\n ) \n) by (service, ns)) ) by (ns))\n)", - "hide": true, - "instant": false, - "legendFormat": "{{ns}} - in Memory", - "range": true, - "refId": "Q_MEMORY_USAGE" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_AEROSPIKE_PROMETHEUS}" - }, - "editorMode": "code", - "expr": "(sum((sum((sum ( (((aerospike_namespace_data_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ) /\naerospike_namespace_data_compression_ratio {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{ build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) ) by (ns))) \n\n) # end paranthesis for whole sum", - "hide": false, - "legendFormat": "Unique Bytes -", - "range": true, - "refId": "7_DATA_USAGE" - } - ], - "title": "Namespace - $namespace", - "transformations": [ - { - "id": "labelsToFields", - "options": {} - } - ], - "type": "stat" + "expression": "$Q_PMEM_DISK_USAGE * $QR_RULE_CAN_SHOW", + "hide": false, + "refId": "on Pmem -", + "type": "math" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "# above query should work only if the below condition satisfy\n(sum( # Running individual exporter for each node in a cluster\n (avg by (ns) ( aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}))\n == bool \n (count by (ns) (aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n) by (ns)> bool 0)\n* # migration check with RX + TX metric - for each Namespace\n(\n (sum (aerospike_namespace_migrate_rx_partitions_remaining {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}+ aerospike_namespace_migrate_tx_partitions_remaining {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) \nby (ns) == bool 0)\n)\n* # Consistent Effective Replication factor across all nodes\n(sum(\n min by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) \n == bool \n max by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n) by (ns) > bool 0)", + "hide": true, + "legendFormat": "__auto", + "range": true, + "refId": "QR_RULE_CAN_SHOW" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "((\n (sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} / aerospike_namespace_device_compression_ratio{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n ) /\n(avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}))\nOR\n (sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} )\n ) /\n(avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}))\n)- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) !=0\n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) !=0\n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^6.*\"}*39) !=0) by (ns)\n ) # end calculation of header-byte by server-version\n)", + "format": "time_series", + "hide": true, + "instant": false, + "interval": "", + "legendFormat": "{{service}} {{ns}} - on Disk ", + "range": true, + "refId": "Q_DISK_USAGE" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "((\n (sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} / aerospike_namespace_pmem_compression_ratio{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n ) /\n(avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}))\nOR\n (sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} )\n ) /\n(avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}))\n)- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) !=0\n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) !=0\n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^6.*\"}*39) !=0) by (ns)\n ) # end calculation of header-byte by server-version\n)", + "format": "time_series", + "hide": true, + "instant": false, + "interval": "", + "legendFormat": "{{service}} {{ns}} - on Disk ", + "range": true, + "refId": "Q_PMEM_DISK_USAGE" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "((sum((sum ( ((((aerospike_namespace_memory_used_data_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} + aerospike_namespace_memory_used_index_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) )\nunless # We pick up namespace which use memory, but not Disk or Pmem\n(aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} or aerospike_namespace_pmem_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n) \n/aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n- on (job, cluster_name, instance, service,ns) \n ( # calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns)\n ) \n) by (service, ns)) ) by (ns))\n)", + "hide": true, + "instant": false, + "legendFormat": "{{ns}} - in Memory", + "range": true, + "refId": "Q_MEMORY_USAGE" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "(sum((sum((sum ( (((aerospike_namespace_data_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ) /\naerospike_namespace_data_compression_ratio {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{ build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) ) by (ns))) \n\n) # end paranthesis for whole sum", + "hide": false, + "legendFormat": "Unique Bytes -", + "range": true, + "refId": "7_DATA_USAGE" } ], - "title": "Namespace - $cluster", - "type": "row" + "title": "Namespace - $namespace", + "transformations": [ + { + "id": "labelsToFields", + "options": {} + } + ], + "type": "stat" } ], "refresh": false, @@ -1080,6 +1081,6 @@ "timezone": "", "title": "Unique Data Usage", "uid": "QFY8EJfVk", - "version": 3, + "version": 8, "weekStart": "" } \ No newline at end of file From 5ae811ebeab828a36af0d70553e0a7bf9c6fa369 Mon Sep 17 00:00:00 2001 From: mphanias Date: Tue, 31 Oct 2023 13:24:25 +0530 Subject: [PATCH 4/4] OM129 - review feedback modified queries not-to-use node variable in queries modified all-cluster history timeseries to show data for each cluster --- config/grafana/dashboards/uniquedata.json | 95 ++++++++++++++--------- 1 file changed, 58 insertions(+), 37 deletions(-) diff --git a/config/grafana/dashboards/uniquedata.json b/config/grafana/dashboards/uniquedata.json index b4a03ef..82abf05 100644 --- a/config/grafana/dashboards/uniquedata.json +++ b/config/grafana/dashboards/uniquedata.json @@ -280,7 +280,7 @@ "defaults": { "color": { "fixedColor": "blue", - "mode": "fixed" + "mode": "continuous-BlPu" }, "custom": { "axisCenteredZero": false, @@ -289,21 +289,24 @@ "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", - "fillOpacity": 0, + "fillOpacity": 20, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, - "lineInterpolation": "linear", + "lineInterpolation": "smooth", + "lineStyle": { + "fill": "solid" + }, "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", - "spanNulls": false, + "spanNulls": true, "stacking": { "group": "A", "mode": "none" @@ -322,7 +325,7 @@ } ] }, - "unit": "bytes" + "unit": "none" }, "overrides": [] }, @@ -337,9 +340,14 @@ "maxDataPoints": 100, "options": { "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", + "calcs": [ + "last", + "min", + "max", + "mean" + ], + "displayMode": "table", + "placement": "right", "showLegend": true }, "tooltip": { @@ -354,9 +362,19 @@ "type": "__expr__", "uid": "__expr__" }, - "expression": "($6_Q_USAGE_BYTE + $7_Q_USAGE_BYTE) * $QR_RULE_CAN_SHOW", + "expression": "($6_Q_USAGE_BYTE ) * $QR_RULE_CAN_SHOW", "hide": false, - "refId": "Unique Data Bytes", + "refId": "6.x Cluster_Name", + "type": "math" + }, + { + "datasource": { + "type": "__expr__", + "uid": "__expr__" + }, + "expression": "($7_Q_USAGE_BYTE ) * $QR_RULE_CAN_SHOW", + "hide": false, + "refId": "Cluster_Name", "type": "math" }, { @@ -377,9 +395,9 @@ "uid": "${DS_AEROSPIKE_PROMETHEUS}" }, "editorMode": "code", - "expr": "(sum((sum((sum ( (((aerospike_namespace_memory_used_data_bytes {job=\"$job_name\", } + aerospike_namespace_memory_used_index_bytes {job=\"$job_name\", })\nunless # we pick namespace which are in memory but not using Disk or Pmem\n(aerospike_namespace_device_used_bytes {job=\"$job_name\", } or aerospike_namespace_pmem_used_bytes {job=\"$job_name\", } )\n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", }\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) or vector(0) ) by (ns))) \n+ on (job, cluster_name, instance, service,ns)\nsum (\n ( # device-used-bytes + pmem-used-bytes\n ( # sum disk device used bytes\n ( sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", }) /\n ( sum by (ns) ( (aerospike_namespace_device_compression_ratio{job=\"$job_name\", } )) \n *\n avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", } ))\n )\n or\n ( sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", }) /\n ( avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", } ))\n )\n) # end devide-used-bytes\nor\n( \n ( sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", }) /\n ( sum by (ns) ( (aerospike_namespace_pmem_compression_ratio{job=\"$job_name\", } )) \n * avg by (ns) (aerospike_namespace_effective_replication_factor{job=\"$job_name\", }) ))\nor\n ( sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", }) /\n ( avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", }) )) \n)\n)\n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build!~\"^5.*\"}*39) ) \n by (ns)\n) # end of header-byte calculation by aerospike version\nor vector(0)) # end of disk+pmem used bytes\n\n) # end paranthesis for whole sum", + "expr": "(sum by (cluster_name,) ((sum((sum ( (((aerospike_namespace_memory_used_data_bytes {job=\"$job_name\", } + aerospike_namespace_memory_used_index_bytes {job=\"$job_name\", })\nunless # we pick namespace which are in memory but not using Disk or Pmem\n(aerospike_namespace_device_used_bytes {job=\"$job_name\", } or aerospike_namespace_pmem_used_bytes {job=\"$job_name\", } )\n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", }\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (cluster_name, ns)) or on() vector(0) ) by ( cluster_name))) \n+ on (job, cluster_name, instance, service,ns)\nsum by (cluster_name,) (\n ( # device-used-bytes + pmem-used-bytes\n ( # sum disk device used bytes\n ( sum by (cluster_name,ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", }) /\n ( sum by (cluster_name,ns) ( (aerospike_namespace_device_compression_ratio{job=\"$job_name\", } )) \n *\n avg by (cluster_name,ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", } ))\n )\n or\n ( sum by (cluster_name,ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", }) /\n ( avg by (cluster_name,ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", } ))\n )\n) # end devide-used-bytes\nor\n( \n ( sum by (cluster_name,ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", }) /\n ( sum by (cluster_name, ns) ( (aerospike_namespace_pmem_compression_ratio{job=\"$job_name\", } )) \n * avg by (cluster_name,ns) (aerospike_namespace_effective_replication_factor{job=\"$job_name\", }) ))\nor\n ( sum by (cluster_name,ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", }) /\n ( avg by (cluster_name,ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", }) )) \n)\n)\n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build!~\"^5.*\"}*39) ) \n by (cluster_name, ns)\n) # end of header-byte calculation by aerospike version\nor on() vector(0)) # end of disk+pmem used bytes\n\n) # end paranthesis for whole sum", "hide": true, - "legendFormat": "Unique Data Bytes", + "legendFormat": "Cluster Name : {{cluster_name}}", "range": true, "refId": "6_Q_USAGE_BYTE" }, @@ -389,14 +407,14 @@ "uid": "${DS_AEROSPIKE_PROMETHEUS}" }, "editorMode": "code", - "expr": "(sum((sum((sum ( (((aerospike_namespace_data_used_bytes {job=\"$job_name\", })/\naerospike_namespace_data_compression_ratio {job=\"$job_name\", }\n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", }\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{ build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) or vector(0) ) by (ns))) \n\n) # end paranthesis for whole sum", + "expr": "(sum by (cluster_name) ((sum((sum ( (((aerospike_namespace_data_used_bytes {job=\"$job_name\", })/\naerospike_namespace_data_compression_ratio {job=\"$job_name\", }\n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", }\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{ build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", } * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by ( cluster_name, ns)) or on() vector(0) ) by (cluster_name))) \n\n) # end paranthesis for whole sum", "hide": true, - "legendFormat": "Unique Data Bytes", + "legendFormat": "Cluster Name: {{cluster_name}}", "range": true, "refId": "7_Q_USAGE_BYTE" } ], - "title": "All Clusters - Historical - Usage Bytes", + "title": "Clusters wise - Historical - Usage Bytes", "transformations": [], "type": "timeseries" }, @@ -480,7 +498,7 @@ "uid": "${DS_AEROSPIKE_PROMETHEUS}" }, "editorMode": "code", - "expr": "(sum( # Running individual exporter for each node in a cluster\n (avg by (ns) ( aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n == bool \n (count by (ns) (aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n)> bool 0)\n* # migration check with RX metric\n(sum((sum by (ns) (aerospike_namespace_migrate_rx_partitions_remaining + aerospike_namespace_migrate_tx_partitions_remaining) != bool 0))\n== bool 0)\n* # Consistent Effective Replication factor across all nodes\n(sum(\n min by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) \n == bool \n max by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n) > bool 0)", + "expr": "(sum( # Running individual exporter for each node in a cluster\n (avg by (ns) ( aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", } ))\n == bool \n (count by (ns) (aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", } ))\n)> bool 0)\n* # migration check with RX metric\n(sum((sum by (ns) (aerospike_namespace_migrate_rx_partitions_remaining + aerospike_namespace_migrate_tx_partitions_remaining) != bool 0))\n== bool 0)\n* # Consistent Effective Replication factor across all nodes\n(sum(\n min by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", }) \n == bool \n max by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", })\n) > bool 0)", "hide": true, "legendFormat": "__auto", "range": true, @@ -493,7 +511,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "sum (aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})", + "expr": "sum (aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", })", "format": "time_series", "hide": true, "instant": false, @@ -573,7 +591,7 @@ "uid": "${DS_AEROSPIKE_PROMETHEUS}" }, "editorMode": "code", - "expr": "(sum( # Running individual exporter for each node in a cluster\n (avg by (ns) ( aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n == bool \n (count by (ns) (aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n)> bool 0)\n* # migration check with RX metric\n(sum((sum by (ns) (aerospike_namespace_migrate_rx_partitions_remaining + aerospike_namespace_migrate_tx_partitions_remaining) != bool 0))\n== bool 0)\n* # Consistent Effective Replication factor across all nodes\n(sum(\n min by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) \n == bool \n max by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n) > bool 0)", + "expr": "(sum( # Running individual exporter for each node in a cluster\n (avg by (ns) ( aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", } ))\n == bool \n (count by (ns) (aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", } ))\n)> bool 0)\n* # migration check with RX metric\n(sum((sum by (ns) (aerospike_namespace_migrate_rx_partitions_remaining + aerospike_namespace_migrate_tx_partitions_remaining) != bool 0))\n== bool 0)\n* # Consistent Effective Replication factor across all nodes\n(sum(\n min by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", }) \n == bool \n max by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", })\n) > bool 0)", "hide": true, "legendFormat": "__auto", "range": true, @@ -585,7 +603,7 @@ "uid": "${DS_AEROSPIKE_PROMETHEUS}" }, "editorMode": "code", - "expr": "(sum((sum((sum ( (((aerospike_namespace_memory_used_data_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} + aerospike_namespace_memory_used_index_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\nunless # we pick namespace which are in memory but not using Disk or Pmem\n(aerospike_namespace_device_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} or aerospike_namespace_pmem_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} )\n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) or vector(0) ) by (ns))) \n+ on (job, cluster_name, instance, service,ns)\nsum (\n ( # device-used-bytes + pmem-used-bytes\n ( # sum disk device used bytes\n ( sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) /\n ( sum by (ns) ( (aerospike_namespace_device_compression_ratio{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} )) \n *\n avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n )\n or\n ( sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) /\n ( avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n )\n) # end devide-used-bytes\nor\n( \n ( sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) /\n ( sum by (ns) ( (aerospike_namespace_pmem_compression_ratio{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} )) \n * avg by (ns) (aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) ))\nor\n ( sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) /\n ( avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) )) \n)\n)\n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build!~\"^5.*\"}*39) ) \n by (ns)\n) # end of header-byte calculation by aerospike version\nor vector(0)) # end of disk+pmem used bytes\n\n) # end paranthesis for whole sum", + "expr": "(sum((sum((sum ( (((aerospike_namespace_memory_used_data_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", } + aerospike_namespace_memory_used_index_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", })\nunless # we pick namespace which are in memory but not using Disk or Pmem\n(aerospike_namespace_device_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", } or aerospike_namespace_pmem_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", } )\n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", }\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", } * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", } * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", } * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) or vector(0) ) by (ns))) \n+ on (job, cluster_name, instance, service,ns)\nsum (\n ( # device-used-bytes + pmem-used-bytes\n ( # sum disk device used bytes\n ( sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", }) /\n ( sum by (ns) ( (aerospike_namespace_device_compression_ratio{job=\"$job_name\", cluster_name=~\"$cluster\", } )) \n *\n avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", } ))\n )\n or\n ( sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", }) /\n ( avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", } ))\n )\n) # end devide-used-bytes\nor\n( \n ( sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", }) /\n ( sum by (ns) ( (aerospike_namespace_pmem_compression_ratio{job=\"$job_name\", cluster_name=~\"$cluster\", } )) \n * avg by (ns) (aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", }) ))\nor\n ( sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", }) /\n ( avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", }) )) \n)\n)\n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", } * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", } * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", } * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build!~\"^5.*\"}*39) ) \n by (ns)\n) # end of header-byte calculation by aerospike version\nor vector(0)) # end of disk+pmem used bytes\n\n) # end paranthesis for whole sum", "hide": true, "legendFormat": "Unique Data Bytes", "range": true, @@ -597,7 +615,7 @@ "uid": "${DS_AEROSPIKE_PROMETHEUS}" }, "editorMode": "code", - "expr": "(sum((sum((sum ( (((aerospike_namespace_data_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ) /\naerospike_namespace_data_compression_ratio {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{ build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) or vector(0) ) by (ns))) \n\n) # end paranthesis for whole sum", + "expr": "(sum((sum((sum ( (((aerospike_namespace_data_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", } ) /\naerospike_namespace_data_compression_ratio {job=\"$job_name\", cluster_name=~\"$cluster\", }\n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", }\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", } * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", } * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{ build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", } * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) or vector(0) ) by (ns))) \n\n) # end paranthesis for whole sum", "hide": true, "legendFormat": "Unique Data Bytes", "range": true, @@ -669,7 +687,7 @@ } ] }, - "unit": "bytes" + "unit": "decbytes" }, "overrides": [] }, @@ -686,9 +704,9 @@ "options": { "legend": { "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true + "displayMode": "table", + "placement": "right", + "showLegend": false }, "tooltip": { "mode": "single", @@ -713,7 +731,7 @@ "uid": "${DS_AEROSPIKE_PROMETHEUS}" }, "editorMode": "code", - "expr": "(sum( # Running individual exporter for each node in a cluster\n (avg by (ns) ( aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n == bool \n (count by (ns) (aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n)> bool 0)\n* # migration check with RX metric\n(sum((sum by (ns) (aerospike_namespace_migrate_rx_partitions_remaining + aerospike_namespace_migrate_tx_partitions_remaining) != bool 0))\n== bool 0)\n* # Consistent Effective Replication factor across all nodes\n(sum(\n min by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) \n == bool \n max by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n) > bool 0)", + "expr": "(sum( # Running individual exporter for each node in a cluster\n (avg by (ns) ( aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", } ))\n == bool \n (count by (ns) (aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", } ))\n)> bool 0)\n* # migration check with RX metric\n(sum((sum by (ns) (aerospike_namespace_migrate_rx_partitions_remaining + aerospike_namespace_migrate_tx_partitions_remaining) != bool 0))\n== bool 0)\n* # Consistent Effective Replication factor across all nodes\n(sum(\n min by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", }) \n == bool \n max by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", })\n) > bool 0)", "hide": true, "legendFormat": "__auto", "range": true, @@ -725,9 +743,9 @@ "uid": "${DS_AEROSPIKE_PROMETHEUS}" }, "editorMode": "code", - "expr": "(sum((sum((sum ( (((aerospike_namespace_memory_used_data_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} + aerospike_namespace_memory_used_index_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\nunless # we pick namespace which are in memory but not using Disk or Pmem\n(aerospike_namespace_device_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} or aerospike_namespace_pmem_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} )\n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) or vector(0) ) by (ns))) \n+ on (job, cluster_name, instance, service,ns)\nsum (\n ( # device-used-bytes + pmem-used-bytes\n ( # sum disk device used bytes\n ( sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) /\n ( sum by (ns) ( (aerospike_namespace_device_compression_ratio{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} )) \n *\n avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n )\n or\n ( sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) /\n ( avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n )\n) # end devide-used-bytes\nor\n( \n ( sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) /\n ( sum by (ns) ( (aerospike_namespace_pmem_compression_ratio{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} )) \n * avg by (ns) (aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) ))\nor\n ( sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) /\n ( avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) )) \n)\n)\n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build!~\"^5.*\"}*39) ) \n by (ns)\n) # end of header-byte calculation by aerospike version\nor vector(0)) # end of disk+pmem used bytes\n\n) # end paranthesis for whole sum", + "expr": "(sum((sum((sum ( (((aerospike_namespace_memory_used_data_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", } + aerospike_namespace_memory_used_index_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", })\nunless # we pick namespace which are in memory but not using Disk or Pmem\n(aerospike_namespace_device_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", } or aerospike_namespace_pmem_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", } )\n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", }\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", } * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", } * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", } * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) or vector(0) ) by (ns))) \n+ on (job, cluster_name, instance, service,ns)\nsum (\n ( # device-used-bytes + pmem-used-bytes\n ( # sum disk device used bytes\n ( sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", }) /\n ( sum by (ns) ( (aerospike_namespace_device_compression_ratio{job=\"$job_name\", cluster_name=~\"$cluster\", } )) \n *\n avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", } ))\n )\n or\n ( sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", }) /\n ( avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", } ))\n )\n) # end devide-used-bytes\nor\n( \n ( sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", }) /\n ( sum by (ns) ( (aerospike_namespace_pmem_compression_ratio{job=\"$job_name\", cluster_name=~\"$cluster\", } )) \n * avg by (ns) (aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", }) ))\nor\n ( sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", }) /\n ( avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", }) )) \n)\n)\n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", } * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", } * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", } * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{job=\"$job_name\", build!~\"^5.*\"}*39) ) \n by (ns)\n) # end of header-byte calculation by aerospike version\nor vector(0)) # end of disk+pmem used bytes\n\n) # end paranthesis for whole sum", "hide": true, - "legendFormat": "Unique Data Bytes", + "legendFormat": "{{ns}}", "range": true, "refId": "6_Q_USAGE_BYTE" }, @@ -737,9 +755,11 @@ "uid": "${DS_AEROSPIKE_PROMETHEUS}" }, "editorMode": "code", - "expr": "(sum((sum((sum ( (((aerospike_namespace_data_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}+\naerospike_namespace_index_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} +\naerospike_namespace_sindex_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) \n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{ build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) or vector(0) ) by (ns))) \n\n) # end paranthesis for whole sum", + "exemplar": false, + "expr": "(sum ((sum by (ns) ((sum ( (((aerospike_namespace_data_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", }\n/aerospike_namespace_data_compression_ratio {job=\"$job_name\", cluster_name=~\"$cluster\", }) \n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", }\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", } * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", } * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{ build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", } * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) or vector(0) ) )) \n\n) # end paranthesis for whole sum", "hide": true, - "legendFormat": "Unique Data Bytes", + "instant": false, + "legendFormat": "__auto", "range": true, "refId": "7_Q_USAGE_BYTE" } @@ -830,7 +850,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "(sum (aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) by (ns) ) ", + "expr": "(sum (aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", ns=~\"$namespace|$^\"}) by (ns) ) ", "hide": false, "instant": false, "interval": "", @@ -874,7 +894,7 @@ "uid": "${DS_AEROSPIKE_PROMETHEUS}" }, "editorMode": "code", - "expr": "# above query should work only if the below condition satisfy\n(sum( # Running individual exporter for each node in a cluster\n (avg by (ns) ( aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}))\n == bool \n (count by (ns) (aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ))\n) by (ns)> bool 0)\n* # migration check with RX + TX metric - for each Namespace\n(\n (sum (aerospike_namespace_migrate_rx_partitions_remaining {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}+ aerospike_namespace_migrate_tx_partitions_remaining {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) \nby (ns) == bool 0)\n)\n* # Consistent Effective Replication factor across all nodes\n(sum(\n min by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) \n == bool \n max by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n) by (ns) > bool 0)", + "expr": "# above query should work only if the below condition satisfy\n(sum( # Running individual exporter for each node in a cluster\n (avg by (ns) ( aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", ns=~\"$namespace|$^\"}))\n == bool \n (count by (ns) (aerospike_namespace_ns_cluster_size {job=\"$job_name\", cluster_name=~\"$cluster\", ns=~\"$namespace|$^\"} ))\n) by (ns)> bool 0)\n* # migration check with RX + TX metric - for each Namespace\n(\n (sum (aerospike_namespace_migrate_rx_partitions_remaining {job=\"$job_name\", cluster_name=~\"$cluster\", ns=~\"$namespace|$^\"}+ aerospike_namespace_migrate_tx_partitions_remaining {job=\"$job_name\", cluster_name=~\"$cluster\", ns=~\"$namespace|$^\"}) \nby (ns) == bool 0)\n)\n* # Consistent Effective Replication factor across all nodes\n(sum(\n min by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", ns=~\"$namespace|$^\"}) \n == bool \n max by (ns) (aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", ns=~\"$namespace|$^\"})\n) by (ns) > bool 0)", "hide": true, "legendFormat": "__auto", "range": true, @@ -887,7 +907,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "((\n (sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} / aerospike_namespace_device_compression_ratio{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n ) /\n(avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}))\nOR\n (sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} )\n ) /\n(avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}))\n)- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) !=0\n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) !=0\n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^6.*\"}*39) !=0) by (ns)\n ) # end calculation of header-byte by server-version\n)", + "expr": "((\n (sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", ns=~\"$namespace|$^\"} / aerospike_namespace_device_compression_ratio{job=\"$job_name\", cluster_name=~\"$cluster\", ns=~\"$namespace|$^\"})\n ) /\n(avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", ns=~\"$namespace|$^\"}))\nOR\n (sum by (ns) (aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", ns=~\"$namespace|$^\"} )\n ) /\n(avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", ns=~\"$namespace|$^\"}))\n)- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) !=0\n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) !=0\n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^6.*\"}*39) !=0) by (ns)\n ) # end calculation of header-byte by server-version\n)", "format": "time_series", "hide": true, "instant": false, @@ -903,7 +923,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "((\n (sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} / aerospike_namespace_pmem_compression_ratio{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n ) /\n(avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}))\nOR\n (sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} )\n ) /\n(avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}))\n)- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) !=0\n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) !=0\n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^6.*\"}*39) !=0) by (ns)\n ) # end calculation of header-byte by server-version\n)", + "expr": "((\n (sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", ns=~\"$namespace|$^\"} / aerospike_namespace_pmem_compression_ratio{job=\"$job_name\", cluster_name=~\"$cluster\", ns=~\"$namespace|$^\"})\n ) /\n(avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", ns=~\"$namespace|$^\"}))\nOR\n (sum by (ns) (aerospike_namespace_pmem_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", ns=~\"$namespace|$^\"} )\n ) /\n(avg by (ns) ( aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", ns=~\"$namespace|$^\"}))\n)- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) !=0\n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) !=0\n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^6.*\"}*39) !=0) by (ns)\n ) # end calculation of header-byte by server-version\n)", "format": "time_series", "hide": true, "instant": false, @@ -919,7 +939,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "((sum((sum ( ((((aerospike_namespace_memory_used_data_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} + aerospike_namespace_memory_used_index_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}) )\nunless # We pick up namespace which use memory, but not Disk or Pmem\n(aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} or aerospike_namespace_pmem_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"})\n) \n/aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n- on (job, cluster_name, instance, service,ns) \n ( # calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns)\n ) \n) by (service, ns)) ) by (ns))\n)", + "expr": "((sum((sum ( ((((aerospike_namespace_memory_used_data_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", ns=~\"$namespace|$^\"} + aerospike_namespace_memory_used_index_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", ns=~\"$namespace|$^\"}) )\nunless # We pick up namespace which use memory, but not Disk or Pmem\n(aerospike_namespace_device_used_bytes{job=\"$job_name\", cluster_name=~\"$cluster\", ns=~\"$namespace|$^\"} or aerospike_namespace_pmem_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", ns=~\"$namespace|$^\"})\n) \n/aerospike_namespace_effective_replication_factor{job=\"$job_name\", cluster_name=~\"$cluster\", ns=~\"$namespace|$^\"}\n) \n- on (job, cluster_name, instance, service,ns) \n ( # calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{job=\"$job_name\", build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns)\n ) \n) by (service, ns)) ) by (ns))\n)", "hide": true, "instant": false, "legendFormat": "{{ns}} - in Memory", @@ -932,7 +952,7 @@ "uid": "${DS_AEROSPIKE_PROMETHEUS}" }, "editorMode": "code", - "expr": "(sum((sum((sum ( (((aerospike_namespace_data_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} ) /\naerospike_namespace_data_compression_ratio {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"}\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{ build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", service=~\"$node|$^\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) ) by (ns))) \n\n) # end paranthesis for whole sum", + "expr": "(sum((sum((sum ( (((aerospike_namespace_data_used_bytes {job=\"$job_name\", cluster_name=~\"$cluster\", ns=~\"$namespace|$^\"} ) /\naerospike_namespace_data_compression_ratio {job=\"$job_name\", cluster_name=~\"$cluster\", ns=~\"$namespace|$^\"}\n) \n/aerospike_namespace_effective_replication_factor {job=\"$job_name\", cluster_name=~\"$cluster\", ns=~\"$namespace|$^\"}\n) \n- on (job, cluster_name, instance, service,ns) ( # begin calculate the header byte size 39bytes if as-version>=6 and 34 if as-version<6\n sum (\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build=~\"^4.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) (\n aerospike_node_up{ build=~\"^5.*\"}*35) \n or\n aerospike_namespace_master_objects{job=\"$job_name\", cluster_name=~\"$cluster\", ns=~\"$namespace|$^\"} * on (job, cluster_name, service) \n group_left(build) ( \n aerospike_node_up{ build!~\"^5.*\"}*39) ) \n by (job, cluster_name, instance, service,ns) \n ) # end of header-byte calculation by aerospike version\n) by (service, ns)) ) by (ns))) \n\n) # end paranthesis for whole sum", "hide": false, "legendFormat": "Unique Bytes -", "range": true, @@ -1034,7 +1054,7 @@ "description": "displays the list of all aerospike nodes in the selected cluster", "hide": 0, "includeAll": true, - "label": "node", + "label": "Node", "multi": true, "name": "node", "options": [], @@ -1058,6 +1078,7 @@ "description": "displays the list of all namespaces configured across all aerospike clusters ", "hide": 0, "includeAll": true, + "label": "Namespace", "multi": true, "name": "namespace", "options": [], @@ -1081,6 +1102,6 @@ "timezone": "", "title": "Unique Data Usage", "uid": "QFY8EJfVk", - "version": 8, + "version": 18, "weekStart": "" } \ No newline at end of file