diff --git a/dashboards/grafana/dashboards-jsonnet/sai-metrics.jsonnet b/dashboards/grafana/dashboards-jsonnet/sai-metrics.jsonnet
new file mode 100644
index 0000000..4b6edb7
--- /dev/null
+++ b/dashboards/grafana/dashboards-jsonnet/sai-metrics.jsonnet
@@ -0,0 +1,533 @@
+local grafana = import 'grafonnet/grafana.libsonnet';
+
+local dashboard = grafana.dashboard;
+local row = grafana.row;
+local singlestat = grafana.singlestat;
+local graphpanel = grafana.graphPanel;
+local text = grafana.text;
+local prometheus = grafana.prometheus;
+local template = grafana.template;
+
+local prefix = std.extVar('prefix');
+
+local graphHeight = 300;
+local singlestatHeight = 100;
+local singlestatSpan = 1;
+local graphSpan = 4;
+
+dashboard.new(
+ 'Storage Attached Index',
+ description='Single pane of glass for most important Storage Attached Index (SAI) metrics',
+ editable=true,
+ schemaVersion=14,
+ time_from='now-30m',
+ refresh='1m',
+ tags=['os'],
+ style='dark'
+)
+.addTemplate(
+ template.datasource(
+ 'PROMETHEUS_DS',
+ 'prometheus',
+ 'Prometheus',
+ hide='all',
+ )
+)
+
+.addTemplate(
+ template.custom(
+ 'by',
+ 'cluster,dc,rack,instance',
+ 'cluster',
+ valuelabels={
+ "cluster": "Cluster",
+ "dc" : "Datacenter",
+ "rack" : "Rack",
+ "instance" : "Host"},
+ label='Group By',
+ )
+)
+.addTemplate(
+ template.interval(
+ 'rate',
+ '1m,5m,10m,30m,1h,6h,12h,1d,7d,14d,30d',
+ '5m',
+ label='Rate',
+ )
+)
+.addTemplate(
+ template.new(
+ 'cluster',
+ '$PROMETHEUS_DS',
+ 'label_values(collectd_collectd_queue_length{}, cluster)',
+ label='Cluster',
+ refresh='time',
+ includeAll=true,
+ allValues=".*",
+ )
+)
+.addTemplate(
+ template.new(
+ 'dc',
+ '$PROMETHEUS_DS',
+ 'label_values(collectd_collectd_queue_length{cluster=~"$cluster"}, dc)',
+ label='DataCenter',
+ refresh='time',
+ includeAll=true,
+ allValues=".*",
+ )
+)
+.addTemplate(
+ template.new(
+ 'rack',
+ '$PROMETHEUS_DS',
+ 'label_values(collectd_collectd_queue_length{cluster=~"$cluster", dc=~"$dc"}, rack)',
+ label='Rack',
+ refresh='time',
+ includeAll=true,
+ allValues=".*",
+ )
+)
+.addTemplate(
+ template.new(
+ 'keyspace',
+ '$PROMETHEUS_DS',
+ 'label_values(' + prefix + '_table_read_latency_total{cluster=~"$cluster", dc=~"$dc"}, keyspace)',
+ label='Keyspace',
+ refresh='time',
+ includeAll=true,
+ allValues=".*",
+ )
+)
+.addTemplate(
+ template.new(
+ 'table',
+ '$PROMETHEUS_DS',
+ 'label_values(' + prefix + '_table_read_latency_total{cluster=~"$cluster", dc=~"$dc", keyspace=~"$keyspace"}, table)',
+ label='Table',
+ refresh='time',
+ includeAll=true,
+ allValues=".*",
+ )
+)
+.addTemplate(
+ template.new(
+ 'host',
+ '$PROMETHEUS_DS',
+ 'label_values(collectd_collectd_queue_length{cluster=~"$cluster", dc=~"$dc", rack=~"$rack"}, instance)',
+ label='Host',
+ refresh='time',
+ includeAll=true,
+ allValues=".*",
+ )
+)
+.addTemplate(
+ template.custom(
+ 'latency',
+ '0.999,0.99,0.98,0.95,0.90,0.75,0.50',
+ '0.95',
+ valuelabels={
+ "0.999" : "P999",
+ "0.99" : "P99",
+ "0.98" : "P98",
+ "0.95" : "P95",
+ "0.90" : "P90",
+ "0.75" : "P75",
+ "0.50" : "P50"
+ },
+ label='Percentile'
+ )
+)
+.addRow(
+ row.new(
+ title='Cluster Overview',
+ height=singlestatHeight,
+ )
+ .addPanel(
+ singlestat.new(
+ 'Nodes Up',
+ description="Nodes that are currently running in this time window",
+ format='none',
+ decimals=0,
+ datasource='$PROMETHEUS_DS',
+ colorValue=true,
+ colors=["#d44a3a", "#299c46", "#299c46"],
+ thresholds='0.1,1000',
+ span=singlestatSpan
+ )
+ .addTarget(
+ prometheus.target(
+ 'count(' + prefix + '_compaction_completed_tasks{cluster=~"$cluster", dc=~"$dc", rack=~"$rack", instance=~"$host"} >= 0) or vector(0)'
+ )
+ )
+ )
+ .addPanel(
+ singlestat.new(
+ 'Nodes Down',
+ description="Nodes that are currently not running in this time window",
+ format='none',
+ decimals=0,
+ colorValue=true,
+ colors=[ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a"],
+ datasource='$PROMETHEUS_DS',
+ thresholds='1,2',
+ span=singlestatSpan
+ )
+ .addTarget(
+ prometheus.target(
+ 'count(absent(sum(rate(' + prefix + '_compaction_completed_tasks{cluster=~"$cluster", dc=~"$dc", rack=~"$rack", instance=~"$host"}[5m])))) OR vector(0)'
+ )
+ )
+ )
+ .addPanel(
+ singlestat.new(
+ 'Compactions / $rate',
+ description="Rate of compactions during this window",
+ format='none',
+ decimals=0,
+ datasource='$PROMETHEUS_DS',
+ sparklineShow=true,
+ span=singlestatSpan
+ )
+ .addTarget(
+ prometheus.target(
+ 'sum(rate(' + prefix + '_compaction_completed_tasks{cluster=~"$cluster", dc=~"$dc", rack=~"$rack", instance=~"$host"}[$rate]))'
+ )
+ )
+ )
+ .addPanel(
+ singlestat.new(
+ 'CQL Requests / $rate',
+ description="Rate of CQL requests during this window",
+ format='none',
+ datasource='$PROMETHEUS_DS',
+ sparklineShow=true,
+ decimals=0,
+ span=singlestatSpan
+ )
+ .addTarget(
+ prometheus.target(
+ 'sum(irate(dse_client_request_latency_total{cluster=~"$cluster", dc=~"$dc", rack=~"$rack", instance=~"$host"}[$rate]))'
+ )
+ )
+ )
+ .addPanel(
+ singlestat.new(
+ 'Dropped Messages / $rate',
+ description="Rate of Dropped requests during this window",
+ format='none',
+ datasource='$PROMETHEUS_DS',
+ sparklineShow=true,
+ thresholds="30,300",
+ colorValue=true,
+ decimals=0,
+ span=singlestatSpan
+ )
+ .addTarget(
+ prometheus.target(
+ 'sum(irate(' + prefix + '_table_dropped_mutations_total{cluster=~"$cluster", dc=~"$dc", rack=~"$rack", instance=~"$host"}[$rate]))'
+ )
+ )
+ )
+ .addPanel(
+ text.new(
+ transparent=true,
+ mode="html",
+ content='',
+ span=2
+ )
+ )
+ .addPanel(
+ singlestat.new(
+ 'CQL Clients',
+ description="Number of connected clients during this time window",
+ format='none',
+ datasource='$PROMETHEUS_DS',
+ sparklineShow=true,
+ thresholds="100,1000",
+ colorValue=true,
+ decimals=0,
+ span=singlestatSpan
+ )
+ .addTarget(
+ prometheus.target(
+ 'sum(' + prefix + '_client_connected_native_clients{cluster=~"$cluster", dc=~"$dc", rack=~"$rack", instance=~"$host"})'
+ )
+ )
+ )
+ .addPanel(
+ singlestat.new(
+ 'Timeouts / $rate',
+ description="Client timeouts over the last $rate",
+ format='none',
+ datasource='$PROMETHEUS_DS',
+ thresholds='100,300',
+ colorValue=true,
+ sparklineShow=true,
+ span=singlestatSpan
+ )
+ .addTarget(
+ prometheus.target(
+ 'sum(irate(' + prefix + '_client_request_timeouts_total{cluster=~"$cluster", dc=~"$dc", rack=~"$rack", instance=~"$host"}[$rate]))',
+ )
+ )
+ )
+ .addPanel(
+ singlestat.new(
+ 'Hints / $rate',
+ description="Hints stored over the last $rate",
+ format='none',
+ datasource='$PROMETHEUS_DS',
+ thresholds='1000,30000',
+ colorValue=true,
+ sparklineShow=true,
+ span=singlestatSpan
+ )
+ .addTarget(
+ prometheus.target(
+ 'sum(irate(' + prefix + '_storage_hints_on_disk_total{cluster=~"$cluster", dc=~"$dc", rack=~"$rack", instance=~"$host"}[$rate]))'
+ )
+ )
+ )
+ .addPanel(
+ singlestat.new(
+ 'Data Size',
+ description="Data",
+ format='bytes',
+ datasource='$PROMETHEUS_DS',
+ sparklineShow=true,
+ span=singlestatSpan
+ )
+ .addTarget(
+ prometheus.target(
+ 'sum(' + prefix + '_table_live_disk_space_used_total{cluster=~"$cluster", dc=~"$dc", rack=~"$rack", keyspace=~"$keyspace", table=~"$table", instance=~"$host"})'
+ )
+ )
+ )
+ .addPanel(
+ singlestat.new(
+ 'GC Time / $rate',
+ description="Data",
+ format='ms',
+ decimals=1,
+ datasource='$PROMETHEUS_DS',
+ sparklineShow=true,
+ span=singlestatSpan
+ )
+ .addTarget(
+ prometheus.target(
+ 'sum(rate(' + prefix + '_jvm_gc_time{cluster=~"$cluster", dc=~"$dc", rack=~"$rack", instance=~"$host"}[$rate]))'
+ )
+ )
+ )
+)
+.addRow(
+ row.new(
+ title='Cluster Index Metrics',
+ height=graphHeight
+ )
+ .addPanel(
+ graphpanel.new(
+ title="Index Count",
+ description="Global count of Storage Atttached Indexes",
+ datasource='$PROMETHEUS_DS',
+ span=graphSpan,
+ decimals=0,
+ min=0,
+ legend_hideZero=false,
+ legend_hideEmpty=false
+ )
+ .addTarget(
+ prometheus.target(
+ expr='sum(' + prefix + '_storage_attached_index_table_state_metrics_total_index_count{cluster=~"$cluster", dc=~"$dc", rack=~"$rack", instance=~"$host"}) by ($by)',
+ legendFormat="{{$by}}"
+ )
+ )
+ )
+ .addPanel(
+ graphpanel.new(
+ title="Index Queryable Count",
+ description="Global count of Storage Atttached Indexes that are queryable",
+ datasource='$PROMETHEUS_DS',
+ span=graphSpan,
+ decimals=0,
+ min=0,
+ legend_hideZero=false,
+ legend_hideEmpty=false
+ )
+ .addTarget(
+ prometheus.target(
+ expr='sum(' + prefix + '_storage_attached_index_table_state_metrics_total_queryable_index_count{cluster=~"$cluster", dc=~"$dc", rack=~"$rack", instance=~"$host"}) by ($by)',
+ legendFormat="{{$by}}"
+ )
+ )
+ )
+ .addPanel(
+ graphpanel.new(
+ title="Index Building Count",
+ description="Global count of Storage Atttached Indexes that are building",
+ datasource='$PROMETHEUS_DS',
+ span=graphSpan,
+ decimals=0,
+ min=0,
+ legend_hideZero=false,
+ legend_hideEmpty=false
+ )
+ .addTarget(
+ prometheus.target(
+ expr='sum(' + prefix + '_storage_attached_index_table_state_metrics_total_index_builds_in_progress{cluster=~"$cluster", dc=~"$dc", rack=~"$rack", instance=~"$host"}) by ($by)',
+ legendFormat="{{$by}}"
+ )
+ )
+ )
+ .addPanel(
+ graphpanel.new(
+ title="Index Disk Used Bytes",
+ description="Global view of SAI disk used in bytes",
+ datasource='$PROMETHEUS_DS',
+ span=graphSpan,
+ formatY1="bytes",
+ min=0,
+ legend_hideZero=false,
+ legend_hideEmpty=false
+ )
+ .addTarget(
+ prometheus.target(
+ expr='sum(' + prefix + '_storage_attached_index_table_state_metrics_disk_used_bytes{cluster=~"$cluster", dc=~"$dc", rack=~"$rack", instance=~"$host"}) by ($by)',
+ legendFormat="{{$by}}"
+ )
+ )
+ )
+ .addPanel(
+ graphpanel.new(
+ title="Index Memtable Bytes",
+ description="Global view of SAI memtable bytes used",
+ datasource='$PROMETHEUS_DS',
+ span=graphSpan,
+ formatY1="bytes",
+ min=0,
+ legend_hideZero=false,
+ legend_hideEmpty=false
+ )
+ .addTarget(
+ prometheus.target(
+ expr='sum(' + prefix + '_storage_attached_index_index_metrics_memtable_index_bytes{cluster=~"$cluster", dc=~"$dc", rack=~"$rack", instance=~"$host"}) by ($by)',
+ legendFormat="{{$by}}"
+ )
+ )
+ )
+)
+.addRow(
+ row.new(
+ title='Table Index Metrics',
+ height=graphHeight
+ )
+ .addPanel(
+ graphpanel.new(
+ title="Index Count",
+ description="Table-level count of Storage Atttached Indexes",
+ datasource='$PROMETHEUS_DS',
+ span=graphSpan,
+ decimals=0,
+ min=0,
+ legend_hideZero=false,
+ legend_hideEmpty=false
+ )
+ .addTarget(
+ prometheus.target(
+ expr='sum(' + prefix + '_storage_attached_index_table_state_metrics_total_index_count{cluster=~"$cluster", dc=~"$dc", rack=~"$rack", instance=~"$host", table=~"$table"}) by (table, $by)',
+ legendFormat="{{$by}} : {{table}}"
+ )
+ )
+ )
+ .addPanel(
+ graphpanel.new(
+ title="Index Queryable Count",
+ description="Table-level count of Storage Atttached Indexes that are queryable",
+ datasource='$PROMETHEUS_DS',
+ span=graphSpan,
+ decimals=0,
+ min=0,
+ legend_hideZero=false,
+ legend_hideEmpty=false
+ )
+ .addTarget(
+ prometheus.target(
+ expr='sum(' + prefix + '_storage_attached_index_table_state_metrics_total_queryable_index_count{cluster=~"$cluster", dc=~"$dc", rack=~"$rack", instance=~"$host", table=~"$table"}) by (table, $by)',
+ legendFormat="{{$by}} : {{table}}"
+ )
+ )
+ )
+ .addPanel(
+ graphpanel.new(
+ title="Index Building Count",
+ description="Table-level count of Storage Atttached Indexes that are building",
+ datasource='$PROMETHEUS_DS',
+ span=graphSpan,
+ decimals=0,
+ min=0,
+ legend_hideZero=false,
+ legend_hideEmpty=false
+ )
+ .addTarget(
+ prometheus.target(
+ expr='sum(' + prefix + '_storage_attached_index_table_state_metrics_total_index_builds_in_progress{cluster=~"$cluster", dc=~"$dc", rack=~"$rack", instance=~"$host", table=~"$table"}) by (table, $by)',
+ legendFormat="{{$by}} : {{table}}"
+ )
+ )
+ )
+ .addPanel(
+ graphpanel.new(
+ title="Index Disk Used Bytes",
+ description="Table-level view of SAI disk used in bytes",
+ datasource='$PROMETHEUS_DS',
+ span=graphSpan,
+ formatY1="bytes",
+ min=0,
+ legend_hideZero=false,
+ legend_hideEmpty=false
+ )
+ .addTarget(
+ prometheus.target(
+ expr='sum(' + prefix + '_storage_attached_index_table_state_metrics_disk_used_bytes{cluster=~"$cluster", dc=~"$dc", rack=~"$rack", instance=~"$host", table=~"$table"}) by (table, $by)',
+ legendFormat="{{$by}} : {{table}}"
+ )
+ )
+ )
+ .addPanel(
+ graphpanel.new(
+ title="Index Disk Usage Percentage of Base Table",
+ description="Table-level view of SAI disk usage as percentage of base table size",
+ datasource='$PROMETHEUS_DS',
+ span=graphSpan,
+ formatY1="percentunit",
+ min=0,
+ legend_hideZero=false,
+ legend_hideEmpty=false
+ )
+ .addTarget(
+ prometheus.target(
+ expr='sum(' + prefix + '_storage_attached_index_table_state_metrics_disk_percentage_of_base_table{cluster=~"$cluster", dc=~"$dc", rack=~"$rack", instance=~"$host", table=~"$table"}) by (table, $by)',
+ legendFormat="{{$by}} : {{table}}"
+ )
+ )
+ )
+ .addPanel(
+ graphpanel.new(
+ title="Index Memtable Bytes",
+ description="Table-level view of SAI memtable bytes used",
+ datasource='$PROMETHEUS_DS',
+ span=graphSpan,
+ formatY1="bytes",
+ min=0,
+ legend_hideZero=false,
+ legend_hideEmpty=false
+ )
+ .addTarget(
+ prometheus.target(
+ expr='sum(' + prefix + '_storage_attached_index_index_metrics_memtable_index_bytes{cluster=~"$cluster", dc=~"$dc", rack=~"$rack", instance=~"$host", table=~"$table"}) by (table, $by)',
+ legendFormat="{{$by}} : {{table}}"
+ )
+ )
+ )
+)
\ No newline at end of file
diff --git a/dashboards/grafana/generated-dashboards/sai-metrics.json b/dashboards/grafana/generated-dashboards/sai-metrics.json
new file mode 100644
index 0000000..2b90e89
--- /dev/null
+++ b/dashboards/grafana/generated-dashboards/sai-metrics.json
@@ -0,0 +1,2045 @@
+{
+ "__inputs": [ ],
+ "__requires": [ ],
+ "annotations": {
+ "list": [ ]
+ },
+ "description": "Single pane of glass for most important Storage Attached Index (SAI) metrics",
+ "editable": true,
+ "gnetId": null,
+ "graphTooltip": 0,
+ "hideControls": false,
+ "id": null,
+ "links": [ ],
+ "refresh": "1m",
+ "rows": [
+ {
+ "collapse": false,
+ "collapsed": false,
+ "height": 100,
+ "panels": [
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": true,
+ "colors": [
+ "#d44a3a",
+ "#299c46",
+ "#299c46"
+ ],
+ "datasource": "$PROMETHEUS_DS",
+ "decimals": 0,
+ "description": "Nodes that are currently running in this time window",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": { },
+ "id": 2,
+ "interval": null,
+ "links": [ ],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "count(mcac_compaction_completed_tasks{cluster=~\"$cluster\", dc=~\"$dc\", rack=~\"$rack\", instance=~\"$host\"} >= 0) or vector(0)",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "",
+ "refId": "A"
+ }
+ ],
+ "thresholds": "0.1,1000",
+ "title": "Nodes Up",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": true,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "$PROMETHEUS_DS",
+ "decimals": 0,
+ "description": "Nodes that are currently not running in this time window",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": { },
+ "id": 3,
+ "interval": null,
+ "links": [ ],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "count(absent(sum(rate(mcac_compaction_completed_tasks{cluster=~\"$cluster\", dc=~\"$dc\", rack=~\"$rack\", instance=~\"$host\"}[5m])))) OR vector(0)",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "",
+ "refId": "A"
+ }
+ ],
+ "thresholds": "1,2",
+ "title": "Nodes Down",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "$PROMETHEUS_DS",
+ "decimals": 0,
+ "description": "Rate of compactions during this window",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": { },
+ "id": 4,
+ "interval": null,
+ "links": [ ],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": true
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "sum(rate(mcac_compaction_completed_tasks{cluster=~\"$cluster\", dc=~\"$dc\", rack=~\"$rack\", instance=~\"$host\"}[$rate]))",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "",
+ "refId": "A"
+ }
+ ],
+ "thresholds": "",
+ "title": "Compactions / $rate",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "$PROMETHEUS_DS",
+ "decimals": 0,
+ "description": "Rate of CQL requests during this window",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": { },
+ "id": 5,
+ "interval": null,
+ "links": [ ],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": true
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "sum(irate(dse_client_request_latency_total{cluster=~\"$cluster\", dc=~\"$dc\", rack=~\"$rack\", instance=~\"$host\"}[$rate]))",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "",
+ "refId": "A"
+ }
+ ],
+ "thresholds": "",
+ "title": "CQL Requests / $rate",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": true,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "$PROMETHEUS_DS",
+ "decimals": 0,
+ "description": "Rate of Dropped requests during this window",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": { },
+ "id": 6,
+ "interval": null,
+ "links": [ ],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": true
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "sum(irate(mcac_table_dropped_mutations_total{cluster=~\"$cluster\", dc=~\"$dc\", rack=~\"$rack\", instance=~\"$host\"}[$rate]))",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "",
+ "refId": "A"
+ }
+ ],
+ "thresholds": "30,300",
+ "title": "Dropped Messages / $rate",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "content": "",
+ "datasource": null,
+ "gridPos": { },
+ "id": 7,
+ "mode": "html",
+ "span": 2,
+ "title": "",
+ "transparent": true,
+ "type": "text"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": true,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "$PROMETHEUS_DS",
+ "decimals": 0,
+ "description": "Number of connected clients during this time window",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": { },
+ "id": 8,
+ "interval": null,
+ "links": [ ],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": true
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "sum(mcac_client_connected_native_clients{cluster=~\"$cluster\", dc=~\"$dc\", rack=~\"$rack\", instance=~\"$host\"})",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "",
+ "refId": "A"
+ }
+ ],
+ "thresholds": "100,1000",
+ "title": "CQL Clients",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": true,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "$PROMETHEUS_DS",
+ "description": "Client timeouts over the last $rate",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": { },
+ "id": 9,
+ "interval": null,
+ "links": [ ],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": true
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "sum(irate(mcac_client_request_timeouts_total{cluster=~\"$cluster\", dc=~\"$dc\", rack=~\"$rack\", instance=~\"$host\"}[$rate]))",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "",
+ "refId": "A"
+ }
+ ],
+ "thresholds": "100,300",
+ "title": "Timeouts / $rate",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": true,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "$PROMETHEUS_DS",
+ "description": "Hints stored over the last $rate",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": { },
+ "id": 10,
+ "interval": null,
+ "links": [ ],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": true
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "sum(irate(mcac_storage_hints_on_disk_total{cluster=~\"$cluster\", dc=~\"$dc\", rack=~\"$rack\", instance=~\"$host\"}[$rate]))",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "",
+ "refId": "A"
+ }
+ ],
+ "thresholds": "1000,30000",
+ "title": "Hints / $rate",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "$PROMETHEUS_DS",
+ "description": "Data",
+ "format": "bytes",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": { },
+ "id": 11,
+ "interval": null,
+ "links": [ ],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": true
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "sum(mcac_table_live_disk_space_used_total{cluster=~\"$cluster\", dc=~\"$dc\", rack=~\"$rack\", keyspace=~\"$keyspace\", table=~\"$table\", instance=~\"$host\"})",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "",
+ "refId": "A"
+ }
+ ],
+ "thresholds": "",
+ "title": "Data Size",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "$PROMETHEUS_DS",
+ "decimals": 1,
+ "description": "Data",
+ "format": "ms",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": { },
+ "id": 12,
+ "interval": null,
+ "links": [ ],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": true
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "sum(rate(mcac_jvm_gc_time{cluster=~\"$cluster\", dc=~\"$dc\", rack=~\"$rack\", instance=~\"$host\"}[$rate]))",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "",
+ "refId": "A"
+ }
+ ],
+ "thresholds": "",
+ "title": "GC Time / $rate",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": true,
+ "title": "Cluster Overview",
+ "titleSize": "h6",
+ "type": "row"
+ },
+ {
+ "collapse": false,
+ "collapsed": false,
+ "height": 300,
+ "panels": [
+ {
+ "aliasColors": { },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$PROMETHEUS_DS",
+ "decimals": 0,
+ "description": "Global count of Storage Atttached Indexes",
+ "fill": 1,
+ "gridPos": { },
+ "id": 13,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": false,
+ "hideEmpty": false,
+ "hideZero": false,
+ "max": false,
+ "min": false,
+ "rightSide": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [ ],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "repeat": null,
+ "seriesOverrides": [ ],
+ "spaceLength": 10,
+ "span": 4,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(mcac_storage_attached_index_table_state_metrics_total_index_count{cluster=~\"$cluster\", dc=~\"$dc\", rack=~\"$rack\", instance=~\"$host\"}) by ($by)",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "{{$by}}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Index Count",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": [ ]
+ },
+ "yaxes": [
+ {
+ "decimals": 0,
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": 0,
+ "show": true
+ },
+ {
+ "decimals": 0,
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": 0,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": { },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$PROMETHEUS_DS",
+ "decimals": 0,
+ "description": "Global count of Storage Atttached Indexes that are queryable",
+ "fill": 1,
+ "gridPos": { },
+ "id": 14,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": false,
+ "hideEmpty": false,
+ "hideZero": false,
+ "max": false,
+ "min": false,
+ "rightSide": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [ ],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "repeat": null,
+ "seriesOverrides": [ ],
+ "spaceLength": 10,
+ "span": 4,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(mcac_storage_attached_index_table_state_metrics_total_queryable_index_count{cluster=~\"$cluster\", dc=~\"$dc\", rack=~\"$rack\", instance=~\"$host\"}) by ($by)",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "{{$by}}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Index Queryable Count",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": [ ]
+ },
+ "yaxes": [
+ {
+ "decimals": 0,
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": 0,
+ "show": true
+ },
+ {
+ "decimals": 0,
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": 0,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": { },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$PROMETHEUS_DS",
+ "decimals": 0,
+ "description": "Global count of Storage Atttached Indexes that are building",
+ "fill": 1,
+ "gridPos": { },
+ "id": 15,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": false,
+ "hideEmpty": false,
+ "hideZero": false,
+ "max": false,
+ "min": false,
+ "rightSide": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [ ],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "repeat": null,
+ "seriesOverrides": [ ],
+ "spaceLength": 10,
+ "span": 4,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(mcac_storage_attached_index_table_state_metrics_total_index_builds_in_progress{cluster=~\"$cluster\", dc=~\"$dc\", rack=~\"$rack\", instance=~\"$host\"}) by ($by)",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "{{$by}}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Index Building Count",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": [ ]
+ },
+ "yaxes": [
+ {
+ "decimals": 0,
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": 0,
+ "show": true
+ },
+ {
+ "decimals": 0,
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": 0,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": { },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$PROMETHEUS_DS",
+ "description": "Global view of SAI disk used in bytes",
+ "fill": 1,
+ "gridPos": { },
+ "id": 16,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": false,
+ "hideEmpty": false,
+ "hideZero": false,
+ "max": false,
+ "min": false,
+ "rightSide": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [ ],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "repeat": null,
+ "seriesOverrides": [ ],
+ "spaceLength": 10,
+ "span": 4,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(mcac_storage_attached_index_table_state_metrics_disk_used_bytes{cluster=~\"$cluster\", dc=~\"$dc\", rack=~\"$rack\", instance=~\"$host\"}) by ($by)",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "{{$by}}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Index Disk Used Bytes",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": [ ]
+ },
+ "yaxes": [
+ {
+ "format": "bytes",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": 0,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": 0,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": { },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$PROMETHEUS_DS",
+ "description": "Global view of SAI memtable bytes used",
+ "fill": 1,
+ "gridPos": { },
+ "id": 17,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": false,
+ "hideEmpty": false,
+ "hideZero": false,
+ "max": false,
+ "min": false,
+ "rightSide": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [ ],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "repeat": null,
+ "seriesOverrides": [ ],
+ "spaceLength": 10,
+ "span": 4,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(mcac_storage_attached_index_index_metrics_memtable_index_bytes{cluster=~\"$cluster\", dc=~\"$dc\", rack=~\"$rack\", instance=~\"$host\"}) by ($by)",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "{{$by}}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Index Memtable Bytes",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": [ ]
+ },
+ "yaxes": [
+ {
+ "format": "bytes",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": 0,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": 0,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": true,
+ "title": "Cluster Index Metrics",
+ "titleSize": "h6",
+ "type": "row"
+ },
+ {
+ "collapse": false,
+ "collapsed": false,
+ "height": 300,
+ "panels": [
+ {
+ "aliasColors": { },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$PROMETHEUS_DS",
+ "decimals": 0,
+ "description": "Table-level count of Storage Atttached Indexes",
+ "fill": 1,
+ "gridPos": { },
+ "id": 18,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": false,
+ "hideEmpty": false,
+ "hideZero": false,
+ "max": false,
+ "min": false,
+ "rightSide": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [ ],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "repeat": null,
+ "seriesOverrides": [ ],
+ "spaceLength": 10,
+ "span": 4,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(mcac_storage_attached_index_table_state_metrics_total_index_count{cluster=~\"$cluster\", dc=~\"$dc\", rack=~\"$rack\", instance=~\"$host\", table=~\"$table\"}) by (table, $by)",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "{{$by}} : {{table}}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Index Count",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": [ ]
+ },
+ "yaxes": [
+ {
+ "decimals": 0,
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": 0,
+ "show": true
+ },
+ {
+ "decimals": 0,
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": 0,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": { },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$PROMETHEUS_DS",
+ "decimals": 0,
+ "description": "Table-level count of Storage Atttached Indexes that are queryable",
+ "fill": 1,
+ "gridPos": { },
+ "id": 19,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": false,
+ "hideEmpty": false,
+ "hideZero": false,
+ "max": false,
+ "min": false,
+ "rightSide": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [ ],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "repeat": null,
+ "seriesOverrides": [ ],
+ "spaceLength": 10,
+ "span": 4,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(mcac_storage_attached_index_table_state_metrics_total_queryable_index_count{cluster=~\"$cluster\", dc=~\"$dc\", rack=~\"$rack\", instance=~\"$host\", table=~\"$table\"}) by (table, $by)",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "{{$by}} : {{table}}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Index Queryable Count",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": [ ]
+ },
+ "yaxes": [
+ {
+ "decimals": 0,
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": 0,
+ "show": true
+ },
+ {
+ "decimals": 0,
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": 0,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": { },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$PROMETHEUS_DS",
+ "decimals": 0,
+ "description": "Table-level count of Storage Atttached Indexes that are building",
+ "fill": 1,
+ "gridPos": { },
+ "id": 20,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": false,
+ "hideEmpty": false,
+ "hideZero": false,
+ "max": false,
+ "min": false,
+ "rightSide": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [ ],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "repeat": null,
+ "seriesOverrides": [ ],
+ "spaceLength": 10,
+ "span": 4,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(mcac_storage_attached_index_table_state_metrics_total_index_builds_in_progress{cluster=~\"$cluster\", dc=~\"$dc\", rack=~\"$rack\", instance=~\"$host\", table=~\"$table\"}) by (table, $by)",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "{{$by}} : {{table}}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Index Building Count",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": [ ]
+ },
+ "yaxes": [
+ {
+ "decimals": 0,
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": 0,
+ "show": true
+ },
+ {
+ "decimals": 0,
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": 0,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": { },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$PROMETHEUS_DS",
+ "description": "Table-level view of SAI disk used in bytes",
+ "fill": 1,
+ "gridPos": { },
+ "id": 21,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": false,
+ "hideEmpty": false,
+ "hideZero": false,
+ "max": false,
+ "min": false,
+ "rightSide": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [ ],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "repeat": null,
+ "seriesOverrides": [ ],
+ "spaceLength": 10,
+ "span": 4,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(mcac_storage_attached_index_table_state_metrics_disk_used_bytes{cluster=~\"$cluster\", dc=~\"$dc\", rack=~\"$rack\", instance=~\"$host\", table=~\"$table\"}) by (table, $by)",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "{{$by}} : {{table}}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Index Disk Used Bytes",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": [ ]
+ },
+ "yaxes": [
+ {
+ "format": "bytes",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": 0,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": 0,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": { },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$PROMETHEUS_DS",
+ "description": "Table-level view of SAI disk usage as percentage of base table size",
+ "fill": 1,
+ "gridPos": { },
+ "id": 22,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": false,
+ "hideEmpty": false,
+ "hideZero": false,
+ "max": false,
+ "min": false,
+ "rightSide": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [ ],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "repeat": null,
+ "seriesOverrides": [ ],
+ "spaceLength": 10,
+ "span": 4,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(mcac_storage_attached_index_table_state_metrics_disk_percentage_of_base_table{cluster=~\"$cluster\", dc=~\"$dc\", rack=~\"$rack\", instance=~\"$host\", table=~\"$table\"}) by (table, $by)",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "{{$by}} : {{table}}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Index Disk Usage Percentage of Base Table",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": [ ]
+ },
+ "yaxes": [
+ {
+ "format": "percentunit",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": 0,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": 0,
+ "show": true
+ }
+ ]
+ },
+ {
+ "aliasColors": { },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$PROMETHEUS_DS",
+ "description": "Table-level view of SAI memtable bytes used",
+ "fill": 1,
+ "gridPos": { },
+ "id": 23,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": false,
+ "hideEmpty": false,
+ "hideZero": false,
+ "max": false,
+ "min": false,
+ "rightSide": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [ ],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "repeat": null,
+ "seriesOverrides": [ ],
+ "spaceLength": 10,
+ "span": 4,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(mcac_storage_attached_index_index_metrics_memtable_index_bytes{cluster=~\"$cluster\", dc=~\"$dc\", rack=~\"$rack\", instance=~\"$host\", table=~\"$table\"}) by (table, $by)",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "{{$by}} : {{table}}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Index Memtable Bytes",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": [ ]
+ },
+ "yaxes": [
+ {
+ "format": "bytes",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": 0,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": 0,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": true,
+ "title": "Table Index Metrics",
+ "titleSize": "h6",
+ "type": "row"
+ }
+ ],
+ "schemaVersion": 14,
+ "style": "dark",
+ "tags": [
+ "os"
+ ],
+ "templating": {
+ "list": [
+ {
+ "current": {
+ "text": "Prometheus",
+ "value": "Prometheus"
+ },
+ "hide": 2,
+ "label": null,
+ "name": "PROMETHEUS_DS",
+ "options": [ ],
+ "query": "prometheus",
+ "refresh": 1,
+ "regex": "",
+ "type": "datasource"
+ },
+ {
+ "allValue": null,
+ "current": {
+ "text": "Cluster",
+ "value": "cluster"
+ },
+ "hide": 0,
+ "includeAll": false,
+ "label": "Group By",
+ "multi": false,
+ "name": "by",
+ "options": [
+ {
+ "text": "Cluster",
+ "value": "cluster"
+ },
+ {
+ "text": "Datacenter",
+ "value": "dc"
+ },
+ {
+ "text": "Rack",
+ "value": "rack"
+ },
+ {
+ "text": "Host",
+ "value": "instance"
+ }
+ ],
+ "query": "cluster,dc,rack,instance",
+ "refresh": 0,
+ "type": "custom"
+ },
+ {
+ "auto": false,
+ "auto_count": 300,
+ "auto_min": "10s",
+ "current": {
+ "text": "5m",
+ "value": "5m"
+ },
+ "hide": 0,
+ "label": "Rate",
+ "name": "rate",
+ "query": "1m,5m,10m,30m,1h,6h,12h,1d,7d,14d,30d",
+ "refresh": 2,
+ "type": "interval"
+ },
+ {
+ "allValue": ".*",
+ "current": { },
+ "datasource": "$PROMETHEUS_DS",
+ "hide": 0,
+ "includeAll": true,
+ "label": "Cluster",
+ "multi": false,
+ "name": "cluster",
+ "options": [ ],
+ "query": "label_values(collectd_collectd_queue_length{}, cluster)",
+ "refresh": 2,
+ "regex": "",
+ "sort": 0,
+ "tagValuesQuery": "",
+ "tags": [ ],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ },
+ {
+ "allValue": ".*",
+ "current": { },
+ "datasource": "$PROMETHEUS_DS",
+ "hide": 0,
+ "includeAll": true,
+ "label": "DataCenter",
+ "multi": false,
+ "name": "dc",
+ "options": [ ],
+ "query": "label_values(collectd_collectd_queue_length{cluster=~\"$cluster\"}, dc)",
+ "refresh": 2,
+ "regex": "",
+ "sort": 0,
+ "tagValuesQuery": "",
+ "tags": [ ],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ },
+ {
+ "allValue": ".*",
+ "current": { },
+ "datasource": "$PROMETHEUS_DS",
+ "hide": 0,
+ "includeAll": true,
+ "label": "Rack",
+ "multi": false,
+ "name": "rack",
+ "options": [ ],
+ "query": "label_values(collectd_collectd_queue_length{cluster=~\"$cluster\", dc=~\"$dc\"}, rack)",
+ "refresh": 2,
+ "regex": "",
+ "sort": 0,
+ "tagValuesQuery": "",
+ "tags": [ ],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ },
+ {
+ "allValue": ".*",
+ "current": { },
+ "datasource": "$PROMETHEUS_DS",
+ "hide": 0,
+ "includeAll": true,
+ "label": "Keyspace",
+ "multi": false,
+ "name": "keyspace",
+ "options": [ ],
+ "query": "label_values(mcac_table_read_latency_total{cluster=~\"$cluster\", dc=~\"$dc\"}, keyspace)",
+ "refresh": 2,
+ "regex": "",
+ "sort": 0,
+ "tagValuesQuery": "",
+ "tags": [ ],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ },
+ {
+ "allValue": ".*",
+ "current": { },
+ "datasource": "$PROMETHEUS_DS",
+ "hide": 0,
+ "includeAll": true,
+ "label": "Table",
+ "multi": false,
+ "name": "table",
+ "options": [ ],
+ "query": "label_values(mcac_table_read_latency_total{cluster=~\"$cluster\", dc=~\"$dc\", keyspace=~\"$keyspace\"}, table)",
+ "refresh": 2,
+ "regex": "",
+ "sort": 0,
+ "tagValuesQuery": "",
+ "tags": [ ],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ },
+ {
+ "allValue": ".*",
+ "current": { },
+ "datasource": "$PROMETHEUS_DS",
+ "hide": 0,
+ "includeAll": true,
+ "label": "Host",
+ "multi": false,
+ "name": "host",
+ "options": [ ],
+ "query": "label_values(collectd_collectd_queue_length{cluster=~\"$cluster\", dc=~\"$dc\", rack=~\"$rack\"}, instance)",
+ "refresh": 2,
+ "regex": "",
+ "sort": 0,
+ "tagValuesQuery": "",
+ "tags": [ ],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ },
+ {
+ "allValue": null,
+ "current": {
+ "text": "P95",
+ "value": "0.95"
+ },
+ "hide": 0,
+ "includeAll": false,
+ "label": "Percentile",
+ "multi": false,
+ "name": "latency",
+ "options": [
+ {
+ "text": "P999",
+ "value": "0.999"
+ },
+ {
+ "text": "P99",
+ "value": "0.99"
+ },
+ {
+ "text": "P98",
+ "value": "0.98"
+ },
+ {
+ "text": "P95",
+ "value": "0.95"
+ },
+ {
+ "text": "P90",
+ "value": "0.90"
+ },
+ {
+ "text": "P75",
+ "value": "0.75"
+ },
+ {
+ "text": "P50",
+ "value": "0.50"
+ }
+ ],
+ "query": "0.999,0.99,0.98,0.95,0.90,0.75,0.50",
+ "refresh": 0,
+ "type": "custom"
+ }
+ ]
+ },
+ "time": {
+ "from": "now-30m",
+ "to": "now"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "browser",
+ "title": "Storage Attached Index",
+ "version": 0
+}