diff --git a/config/grafana/dashboards/uniquedata.json b/config/grafana/dashboards/uniquedata.json index 12d9bf4..82abf05 100644 --- a/config/grafana/dashboards/uniquedata.json +++ b/config/grafana/dashboards/uniquedata.json @@ -60,6 +60,377 @@ "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": { + "fixedColor": "blue", + "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 (total)", + "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": { + "fixedColor": "blue", + "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 (total)", + "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": { + "fixedColor": "blue", + "mode": "continuous-BlPu" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 20, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "smooth", + "lineStyle": { + "fill": "solid" + }, + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46", + "value": null + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 5 + }, + "id": 98, + "links": [], + "maxDataPoints": 100, + "options": { + "legend": { + "calcs": [ + "last", + "min", + "max", + "mean" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "9.3.2", + "targets": [ + { + "datasource": { + "type": "__expr__", + "uid": "__expr__" + }, + "expression": "($6_Q_USAGE_BYTE ) * $QR_RULE_CAN_SHOW", + "hide": false, + "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" + }, + { + "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 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": "Cluster Name : {{cluster_name}}", + "range": true, + "refId": "6_Q_USAGE_BYTE" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "editorMode": "code", + "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": "Cluster Name: {{cluster_name}}", + "range": true, + "refId": "7_Q_USAGE_BYTE" + } + ], + "title": "Clusters wise - Historical - Usage Bytes", + "transformations": [], + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 12 + }, + "id": 64, + "panels": [], + "title": "Cluster - $cluster", + "type": "row" + }, { "datasource": { "type": "prometheus", @@ -89,9 +460,9 @@ "h": 5, "w": 12, "x": 0, - "y": 0 + "y": 13 }, - "id": 4, + "id": 60, "links": [], "maxDataPoints": 100, "options": { @@ -116,7 +487,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" @@ -127,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, @@ -140,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, @@ -182,9 +553,9 @@ "h": 5, "w": 12, "x": 12, - "y": 0 + "y": 13 }, - "id": 27, + "id": 62, "links": [], "maxDataPoints": 100, "options": { @@ -209,7 +580,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" @@ -220,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, @@ -232,11 +603,23 @@ "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, + "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\", } ) /\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, - "refId": "Q_USAGE_BYTE" + "refId": "7_Q_USAGE_BYTE" } ], "title": "Cluster - Unique Data Bytes ", @@ -249,7 +632,7 @@ "h": 1, "w": 24, "x": 0, - "y": 5 + "y": 18 }, "id": 29, "panels": [ @@ -299,11 +682,12 @@ "mode": "absolute", "steps": [ { - "color": "#299c46" + "color": "#299c46", + "value": null } ] }, - "unit": "bytes" + "unit": "decbytes" }, "overrides": [] }, @@ -311,18 +695,18 @@ "h": 11, "w": 24, "x": 0, - "y": 6 + "y": 19 }, - "id": 36, + "id": 74, "interval": "5m", "links": [], "maxDataPoints": 150, "options": { "legend": { "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true + "displayMode": "table", + "placement": "right", + "showLegend": false }, "tooltip": { "mode": "single", @@ -336,7 +720,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" @@ -347,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, @@ -359,19 +743,33 @@ "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": "Q_USAGE_BYTE" + "refId": "6_Q_USAGE_BYTE" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_AEROSPIKE_PROMETHEUS}" + }, + "editorMode": "code", + "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, + "instant": false, + "legendFormat": "__auto", + "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 +778,11 @@ "h": 1, "w": 24, "x": 0, - "y": 6 + "y": 19 }, - "id": 2, + "id": 84, "panels": [], - "title": "Unique Data Usage", + "title": "Namespace - $cluster", "type": "row" }, { @@ -407,7 +805,7 @@ "value": null }, { - "color": "green", + "color": "#299c46", "value": 1 } ] @@ -420,9 +818,9 @@ "h": 3, "w": 12, "x": 0, - "y": 7 + "y": 20 }, - "id": 6, + "id": 94, "links": [], "maxDataPoints": 100, "maxPerRow": 2, @@ -452,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": "", @@ -496,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, @@ -509,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, @@ -525,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, @@ -541,12 +939,24 @@ }, "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", "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\", 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, + "refId": "7_DATA_USAGE" } ], "title": "Namespace - $namespace", @@ -644,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": [], @@ -668,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": [], @@ -691,6 +1102,6 @@ "timezone": "", "title": "Unique Data Usage", "uid": "QFY8EJfVk", - "version": 2, + "version": 18, "weekStart": "" } \ No newline at end of file