From ae6cf06f5db4d10313ad0a60f9916f4488db78b9 Mon Sep 17 00:00:00 2001 From: Chris Grindstaff Date: Tue, 8 Aug 2023 12:00:54 -0400 Subject: [PATCH] feat: Harvest SVM dashboard should include latency heatmap panels NFSv4 and NFSv4.1 Fixes #2248 --- conf/zapiperf/cdot/9.8.0/nfsv4.yaml | 3 + conf/zapiperf/cdot/9.8.0/nfsv4_1.yaml | 3 + go.mod | 1 + go.sum | 28 +- grafana/dashboards/cmode/svm.json | 556 +++++++++++++++++++++++--- vendor/modules.txt | 2 + 6 files changed, 521 insertions(+), 72 deletions(-) diff --git a/conf/zapiperf/cdot/9.8.0/nfsv4.yaml b/conf/zapiperf/cdot/9.8.0/nfsv4.yaml index c78bab55c..bf0ceabc9 100644 --- a/conf/zapiperf/cdot/9.8.0/nfsv4.yaml +++ b/conf/zapiperf/cdot/9.8.0/nfsv4.yaml @@ -37,6 +37,7 @@ counters: - lookup_total - lookupp_avg_latency - lookupp_total + - nfs4_latency_hist => latency_hist - nfs4_read_throughput => read_throughput - nfs4_throughput => throughput - nfs4_write_throughput => write_throughput @@ -59,6 +60,7 @@ counters: - putrootfh_avg_latency - putrootfh_total - read_avg_latency + - read_latency_hist - read_total - readdir_avg_latency - readdir_total @@ -88,6 +90,7 @@ counters: - verify_avg_latency - verify_total - write_avg_latency + - write_latency_hist - write_total override: diff --git a/conf/zapiperf/cdot/9.8.0/nfsv4_1.yaml b/conf/zapiperf/cdot/9.8.0/nfsv4_1.yaml index c1fd14254..7cb286d20 100644 --- a/conf/zapiperf/cdot/9.8.0/nfsv4_1.yaml +++ b/conf/zapiperf/cdot/9.8.0/nfsv4_1.yaml @@ -63,6 +63,7 @@ counters: - lookup_total - lookupp_avg_latency - lookupp_total + - nfs41_latency_hist => latency_hist - nfs41_read_throughput => read_throughput - nfs41_throughput => throughput - nfs41_write_throughput => write_throughput @@ -83,6 +84,7 @@ counters: - putrootfh_avg_latency - putrootfh_total - read_avg_latency + - read_latency_hist - read_total - readdir_avg_latency - readdir_total @@ -116,6 +118,7 @@ counters: - want_delegation_avg_latency - want_delegation_total - write_avg_latency + - write_latency_hist - write_total export_options: diff --git a/go.mod b/go.mod index d4f641769..cbae6e2b1 100644 --- a/go.mod +++ b/go.mod @@ -36,6 +36,7 @@ require ( github.com/mattn/go-runewidth v0.0.14 // indirect github.com/power-devops/perfstat v0.0.0-20221212215047-62379fc7944b // indirect github.com/rivo/uniseg v0.4.4 // indirect + github.com/rogpeppe/go-internal v1.11.0 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/tidwall/match v1.1.1 // indirect diff --git a/go.sum b/go.sum index 08a6d81e9..38d118fb8 100644 --- a/go.sum +++ b/go.sum @@ -12,7 +12,6 @@ github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE= github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= github.com/go-openapi/jsonpointer v0.20.0 h1:ESKJdU9ASRfaPNOPRx12IUyA1vn3R9GiE3KYD14BXdQ= github.com/go-openapi/jsonpointer v0.20.0/go.mod h1:6PGzBjjIIumbLYysB73Klnms1mwnU4G3YHOECG3CedA= @@ -37,8 +36,8 @@ github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLf github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -73,17 +72,12 @@ github.com/power-devops/perfstat v0.0.0-20221212215047-62379fc7944b/go.mod h1:Om github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= -github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= +github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= +github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.29.1 h1:cO+d60CHkknCbvzEWxP0S9K6KqyTjrCNUy1LdQLCGPc= -github.com/rs/zerolog v1.29.1/go.mod h1:Le6ESbR7hc+DP6Lt1THiV8CQSdkkNrd3R0XbEgp3ZBU= github.com/rs/zerolog v1.30.0 h1:SymVODrcRsaRaSInD9yQtKbtWqwsfoPcRff/oRXLj4c= github.com/rs/zerolog v1.30.0/go.mod h1:/tk+P47gFdPXq4QYjvCmT5/Gsug2nagsFWBWhAiSi1w= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.23.5 h1:5SgDCeQ0KW0S4N0znjeM/eFHXXOKyv2dVNgRq/c9P6Y= -github.com/shirou/gopsutil/v3 v3.23.5/go.mod h1:Ng3Maa27Q2KARVJ0SPZF5NdrQSC3XHKP8IIWrHgMeLY= -github.com/shirou/gopsutil/v3 v3.23.6 h1:5y46WPI9QBKBbK7EEccUPNXpJpNrvPuTD0O2zHEHT08= -github.com/shirou/gopsutil/v3 v3.23.6/go.mod h1:j7QX50DrXYggrpN30W0Mo+I4/8U2UUIQrnrhqUeWrAU= github.com/shirou/gopsutil/v3 v3.23.7 h1:C+fHO8hfIppoJ1WdsVm1RoI0RwXoNdfTK7yWXV0wVj4= github.com/shirou/gopsutil/v3 v3.23.7/go.mod h1:c4gnmoRC0hQuaLqvxnx1//VXQ0Ms/X9UnJF8pddY5z4= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= @@ -104,12 +98,9 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gtY= -github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/tidwall/gjson v1.14.2/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= -github.com/tidwall/gjson v1.14.4 h1:uo0p8EbA09J7RQaflQ1aBRffTR7xedD2bcIVSYxLnkM= -github.com/tidwall/gjson v1.14.4/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/gjson v1.15.0 h1:5n/pM+v3r5ujuNl4YLZLsQ+UE5jlkLVm7jMzT5Mpolw= github.com/tidwall/gjson v1.15.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= @@ -136,22 +127,11 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.9.0 h1:KS/R3tvhPqvJvwcKfnBHJwwthS11LRhmM5D59eEXa0s= -golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA= golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.9.0 h1:GRRCnKYhdQrD8kfRAdQ6Zcw1P0OcELxGLKJvtjVMZ28= -golang.org/x/term v0.9.0/go.mod h1:M6DEAAIenWoTxdKrOltXcmDY3rSplQUkrvaDU5FcQyo= -golang.org/x/term v0.10.0 h1:3R7pNqamzBraeqj/Tj8qt1aQ2HpmlC+Cx/qL/7hn4/c= -golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= golang.org/x/term v0.11.0 h1:F9tnn/DA/Im8nCwm+fX+1/eBwi4qFjRT++MhtVC4ZX0= golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= -golang.org/x/text v0.10.0 h1:UpjohKhiEgNc0CSauXmwYftY1+LlaC75SJwh0SgCX58= -golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4= -golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/grafana/dashboards/cmode/svm.json b/grafana/dashboards/cmode/svm.json index 4fbe367f2..3289bbb0f 100644 --- a/grafana/dashboards/cmode/svm.json +++ b/grafana/dashboards/cmode/svm.json @@ -71,7 +71,7 @@ "gnetId": null, "graphTooltip": 1, "id": null, - "iteration": 1681989179502, + "iteration": 1691508761583, "links": [ { "asDropdown": true, @@ -5321,7 +5321,7 @@ "h": 5, "w": 8, "x": 0, - "y": 161 + "y": 7 }, "id": 39, "options": { @@ -5395,7 +5395,7 @@ "h": 5, "w": 8, "x": 8, - "y": 161 + "y": 7 }, "id": 50, "interval": null, @@ -5494,7 +5494,7 @@ "h": 5, "w": 8, "x": 16, - "y": 161 + "y": 7 }, "id": 46, "interval": null, @@ -5584,7 +5584,7 @@ "h": 5, "w": 4, "x": 0, - "y": 166 + "y": 12 }, "id": 48, "options": { @@ -5649,7 +5649,7 @@ "h": 5, "w": 4, "x": 4, - "y": 166 + "y": 12 }, "id": 47, "options": { @@ -5723,7 +5723,7 @@ "h": 5, "w": 4, "x": 8, - "y": 166 + "y": 12 }, "id": 150, "interval": null, @@ -5822,7 +5822,7 @@ "h": 5, "w": 4, "x": 12, - "y": 166 + "y": 12 }, "id": 151, "interval": null, @@ -5921,7 +5921,7 @@ "h": 5, "w": 4, "x": 16, - "y": 166 + "y": 12 }, "id": 152, "interval": null, @@ -6020,7 +6020,7 @@ "h": 5, "w": 4, "x": 20, - "y": 166 + "y": 12 }, "id": 153, "interval": null, @@ -6095,7 +6095,7 @@ "h": 8, "w": 8, "x": 0, - "y": 171 + "y": 17 }, "heatmap": {}, "hideZeroBuckets": true, @@ -6164,7 +6164,7 @@ "h": 8, "w": 8, "x": 8, - "y": 171 + "y": 17 }, "heatmap": {}, "hideZeroBuckets": true, @@ -6233,7 +6233,7 @@ "h": 8, "w": 8, "x": 16, - "y": 171 + "y": 17 }, "heatmap": {}, "hideZeroBuckets": true, @@ -6336,7 +6336,7 @@ "h": 8, "w": 8, "x": 0, - "y": 179 + "y": 25 }, "id": 51, "options": { @@ -6428,7 +6428,7 @@ "h": 8, "w": 8, "x": 8, - "y": 179 + "y": 25 }, "id": 53, "options": { @@ -6528,7 +6528,7 @@ "h": 8, "w": 8, "x": 16, - "y": 179 + "y": 25 }, "id": 42, "options": { @@ -6629,7 +6629,7 @@ "h": 8, "w": 12, "x": 0, - "y": 187 + "y": 33 }, "id": 52, "options": { @@ -6724,7 +6724,7 @@ "h": 8, "w": 12, "x": 12, - "y": 187 + "y": 33 }, "id": 54, "options": { @@ -6811,7 +6811,7 @@ "h": 5, "w": 8, "x": 0, - "y": 196 + "y": 8 }, "id": 154, "options": { @@ -6885,7 +6885,7 @@ "h": 5, "w": 8, "x": 8, - "y": 196 + "y": 8 }, "id": 155, "interval": null, @@ -6984,7 +6984,7 @@ "h": 5, "w": 8, "x": 16, - "y": 196 + "y": 8 }, "id": 166, "interval": null, @@ -7074,7 +7074,7 @@ "h": 5, "w": 4, "x": 0, - "y": 201 + "y": 13 }, "id": 158, "options": { @@ -7139,7 +7139,7 @@ "h": 5, "w": 4, "x": 4, - "y": 201 + "y": 13 }, "id": 159, "options": { @@ -7213,7 +7213,7 @@ "h": 5, "w": 4, "x": 8, - "y": 201 + "y": 13 }, "id": 160, "interval": null, @@ -7312,7 +7312,7 @@ "h": 5, "w": 4, "x": 12, - "y": 201 + "y": 13 }, "id": 161, "interval": null, @@ -7411,7 +7411,7 @@ "h": 5, "w": 4, "x": 16, - "y": 201 + "y": 13 }, "id": 162, "interval": null, @@ -7510,7 +7510,7 @@ "h": 5, "w": 4, "x": 20, - "y": 201 + "y": 13 }, "id": 163, "interval": null, @@ -7566,6 +7566,213 @@ ], "type": "stat" }, + { + "cards": { + "cardPadding": null, + "cardRound": null + }, + "color": { + "cardColor": "#b4ff00", + "colorScale": "sqrt", + "colorScheme": "interpolateRdYlGn", + "exponent": 0.5, + "mode": "spectrum" + }, + "dataFormat": "tsbuckets", + "datasource": "${DS_PROMETHEUS}", + "description": "", + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 18 + }, + "heatmap": {}, + "hideZeroBuckets": true, + "highlightCards": true, + "id": 256, + "interval": "6m", + "legend": { + "show": false + }, + "maxDataPoints": 25, + "reverseYBuckets": false, + "targets": [ + { + "exemplar": false, + "expr": "sum(increase(svm_nfs_latency_hist_bucket{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$TopNfsv4Latency\",nfsv=\"v4\"}[$__interval])) by (le)", + "format": "heatmap", + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{ le }}", + "refId": "A" + } + ], + "timeFrom": null, + "title": "NFSv4 Latency Heatmap", + "tooltip": { + "show": true, + "showHistogram": false + }, + "type": "heatmap", + "xAxis": { + "show": true + }, + "xBucketNumber": null, + "xBucketSize": null, + "yAxis": { + "decimals": null, + "format": "µs", + "logBase": 1, + "max": null, + "min": null, + "show": true, + "splitFactor": null, + "width": null + }, + "yBucketBound": "auto", + "yBucketNumber": null, + "yBucketSize": null + }, + { + "cards": { + "cardPadding": null, + "cardRound": null + }, + "color": { + "cardColor": "#b4ff00", + "colorScale": "sqrt", + "colorScheme": "interpolateRdYlGn", + "exponent": 0.5, + "mode": "spectrum" + }, + "dataFormat": "tsbuckets", + "datasource": "${DS_PROMETHEUS}", + "description": "", + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 18 + }, + "heatmap": {}, + "hideZeroBuckets": true, + "highlightCards": true, + "id": 257, + "interval": "6m", + "legend": { + "show": false + }, + "maxDataPoints": 25, + "reverseYBuckets": false, + "targets": [ + { + "exemplar": false, + "expr": "sum(increase(svm_nfs_read_latency_hist_bucket{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$TopNfsv4Latency\",nfsv=\"v4\"}[$__interval])) by (le)", + "format": "heatmap", + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{ le }}", + "refId": "A" + } + ], + "timeFrom": null, + "title": "NFSv4 Read Latency Heatmap", + "tooltip": { + "show": true, + "showHistogram": false + }, + "type": "heatmap", + "xAxis": { + "show": true + }, + "xBucketNumber": null, + "xBucketSize": null, + "yAxis": { + "decimals": null, + "format": "µs", + "logBase": 1, + "max": null, + "min": null, + "show": true, + "splitFactor": null, + "width": null + }, + "yBucketBound": "auto", + "yBucketNumber": null, + "yBucketSize": null + }, + { + "cards": { + "cardPadding": null, + "cardRound": null + }, + "color": { + "cardColor": "#b4ff00", + "colorScale": "sqrt", + "colorScheme": "interpolateRdYlGn", + "exponent": 0.5, + "mode": "spectrum" + }, + "dataFormat": "tsbuckets", + "datasource": "${DS_PROMETHEUS}", + "description": "", + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 18 + }, + "heatmap": {}, + "hideZeroBuckets": true, + "highlightCards": true, + "id": 258, + "interval": "6m", + "legend": { + "show": false + }, + "maxDataPoints": 25, + "reverseYBuckets": false, + "targets": [ + { + "exemplar": false, + "expr": "sum(increase(svm_nfs_write_latency_hist_bucket{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$TopNfsv4Latency\",nfsv=\"v4\"}[$__interval])) by (le)", + "format": "heatmap", + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{ le }}", + "refId": "A" + } + ], + "timeFrom": null, + "title": "NFSv4 Write Latency Heatmap", + "tooltip": { + "show": true, + "showHistogram": false + }, + "type": "heatmap", + "xAxis": { + "show": true + }, + "xBucketNumber": null, + "xBucketSize": null, + "yAxis": { + "decimals": null, + "format": "µs", + "logBase": 1, + "max": null, + "min": null, + "show": true, + "splitFactor": null, + "width": null + }, + "yBucketBound": "auto", + "yBucketNumber": null, + "yBucketSize": null + }, { "datasource": "${DS_PROMETHEUS}", "fieldConfig": { @@ -7624,7 +7831,7 @@ "h": 8, "w": 8, "x": 0, - "y": 206 + "y": 26 }, "id": 145, "options": { @@ -7723,7 +7930,7 @@ "h": 8, "w": 8, "x": 8, - "y": 206 + "y": 26 }, "id": 146, "options": { @@ -7817,7 +8024,7 @@ "h": 8, "w": 8, "x": 16, - "y": 206 + "y": 26 }, "id": 147, "options": { @@ -7920,7 +8127,7 @@ "h": 8, "w": 12, "x": 0, - "y": 214 + "y": 34 }, "id": 157, "options": { @@ -8020,7 +8227,7 @@ "h": 8, "w": 12, "x": 12, - "y": 214 + "y": 34 }, "id": 149, "options": { @@ -8111,7 +8318,7 @@ "h": 5, "w": 8, "x": 0, - "y": 223 + "y": 9 }, "id": 164, "options": { @@ -8185,7 +8392,7 @@ "h": 5, "w": 8, "x": 8, - "y": 223 + "y": 9 }, "id": 165, "interval": null, @@ -8284,7 +8491,7 @@ "h": 5, "w": 8, "x": 16, - "y": 223 + "y": 9 }, "id": 156, "interval": null, @@ -8374,7 +8581,7 @@ "h": 5, "w": 4, "x": 0, - "y": 228 + "y": 14 }, "id": 140, "options": { @@ -8439,7 +8646,7 @@ "h": 5, "w": 4, "x": 4, - "y": 228 + "y": 14 }, "id": 167, "options": { @@ -8513,7 +8720,7 @@ "h": 5, "w": 4, "x": 8, - "y": 228 + "y": 14 }, "id": 168, "interval": null, @@ -8612,7 +8819,7 @@ "h": 5, "w": 4, "x": 12, - "y": 228 + "y": 14 }, "id": 169, "interval": null, @@ -8711,7 +8918,7 @@ "h": 5, "w": 4, "x": 16, - "y": 228 + "y": 14 }, "id": 170, "interval": null, @@ -8810,7 +9017,7 @@ "h": 5, "w": 4, "x": 20, - "y": 228 + "y": 14 }, "id": 171, "interval": null, @@ -8866,6 +9073,213 @@ ], "type": "stat" }, + { + "cards": { + "cardPadding": null, + "cardRound": null + }, + "color": { + "cardColor": "#b4ff00", + "colorScale": "sqrt", + "colorScheme": "interpolateRdYlGn", + "exponent": 0.5, + "mode": "spectrum" + }, + "dataFormat": "tsbuckets", + "datasource": "${DS_PROMETHEUS}", + "description": "", + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 19 + }, + "heatmap": {}, + "hideZeroBuckets": true, + "highlightCards": true, + "id": 253, + "interval": "6m", + "legend": { + "show": false + }, + "maxDataPoints": 25, + "reverseYBuckets": false, + "targets": [ + { + "exemplar": false, + "expr": "sum(increase(svm_nfs_latency_hist_bucket{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$TopNfsv41Latency\",nfsv=\"v4.1\"}[$__interval])) by (le)", + "format": "heatmap", + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{ le }}", + "refId": "A" + } + ], + "timeFrom": null, + "title": "NFSv4.1 Latency Heatmap", + "tooltip": { + "show": true, + "showHistogram": false + }, + "type": "heatmap", + "xAxis": { + "show": true + }, + "xBucketNumber": null, + "xBucketSize": null, + "yAxis": { + "decimals": null, + "format": "µs", + "logBase": 1, + "max": null, + "min": null, + "show": true, + "splitFactor": null, + "width": null + }, + "yBucketBound": "auto", + "yBucketNumber": null, + "yBucketSize": null + }, + { + "cards": { + "cardPadding": null, + "cardRound": null + }, + "color": { + "cardColor": "#b4ff00", + "colorScale": "sqrt", + "colorScheme": "interpolateRdYlGn", + "exponent": 0.5, + "mode": "spectrum" + }, + "dataFormat": "tsbuckets", + "datasource": "${DS_PROMETHEUS}", + "description": "", + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 19 + }, + "heatmap": {}, + "hideZeroBuckets": true, + "highlightCards": true, + "id": 254, + "interval": "6m", + "legend": { + "show": false + }, + "maxDataPoints": 25, + "reverseYBuckets": false, + "targets": [ + { + "exemplar": false, + "expr": "sum(increase(svm_nfs_read_latency_hist_bucket{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$TopNfsv41Latency\",nfsv=\"v4.1\"}[$__interval])) by (le)", + "format": "heatmap", + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{ le }}", + "refId": "A" + } + ], + "timeFrom": null, + "title": "NFSv4.1 Read Latency Heatmap", + "tooltip": { + "show": true, + "showHistogram": false + }, + "type": "heatmap", + "xAxis": { + "show": true + }, + "xBucketNumber": null, + "xBucketSize": null, + "yAxis": { + "decimals": null, + "format": "µs", + "logBase": 1, + "max": null, + "min": null, + "show": true, + "splitFactor": null, + "width": null + }, + "yBucketBound": "auto", + "yBucketNumber": null, + "yBucketSize": null + }, + { + "cards": { + "cardPadding": null, + "cardRound": null + }, + "color": { + "cardColor": "#b4ff00", + "colorScale": "sqrt", + "colorScheme": "interpolateRdYlGn", + "exponent": 0.5, + "mode": "spectrum" + }, + "dataFormat": "tsbuckets", + "datasource": "${DS_PROMETHEUS}", + "description": "", + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 19 + }, + "heatmap": {}, + "hideZeroBuckets": true, + "highlightCards": true, + "id": 255, + "interval": "6m", + "legend": { + "show": false + }, + "maxDataPoints": 25, + "reverseYBuckets": false, + "targets": [ + { + "exemplar": false, + "expr": "sum(increase(svm_nfs_write_latency_hist_bucket{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$TopNfsv41Latency\",nfsv=\"v4.1\"}[$__interval])) by (le)", + "format": "heatmap", + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{ le }}", + "refId": "A" + } + ], + "timeFrom": null, + "title": "NFSv4.1 Write Latency Heatmap", + "tooltip": { + "show": true, + "showHistogram": false + }, + "type": "heatmap", + "xAxis": { + "show": true + }, + "xBucketNumber": null, + "xBucketSize": null, + "yAxis": { + "decimals": null, + "format": "µs", + "logBase": 1, + "max": null, + "min": null, + "show": true, + "splitFactor": null, + "width": null + }, + "yBucketBound": "auto", + "yBucketNumber": null, + "yBucketSize": null + }, { "datasource": "${DS_PROMETHEUS}", "fieldConfig": { @@ -8924,7 +9338,7 @@ "h": 8, "w": 8, "x": 0, - "y": 233 + "y": 27 }, "id": 172, "options": { @@ -9023,7 +9437,7 @@ "h": 8, "w": 8, "x": 8, - "y": 233 + "y": 27 }, "id": 173, "options": { @@ -9122,7 +9536,7 @@ "h": 8, "w": 8, "x": 16, - "y": 233 + "y": 27 }, "id": 174, "options": { @@ -9228,7 +9642,7 @@ "h": 8, "w": 12, "x": 0, - "y": 241 + "y": 35 }, "id": 175, "options": { @@ -9328,7 +9742,7 @@ "h": 8, "w": 12, "x": 12, - "y": 241 + "y": 35 }, "id": 176, "options": { @@ -14653,11 +15067,57 @@ "skipUrlSync": false, "sort": 0, "type": "query" + }, + { + "allValue": null, + "current": {}, + "datasource": "${DS_PROMETHEUS}", + "definition": "query_result(topk($TopResources, avg_over_time(svm_nfs_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",nfsv=\"v4.1\"}[${__range}])))", + "description": null, + "error": null, + "hide": 2, + "includeAll": true, + "label": null, + "multi": true, + "name": "TopNfsv41Latency", + "options": [], + "query": { + "query": "query_result(topk($TopResources, avg_over_time(svm_nfs_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",nfsv=\"v4.1\"}[${__range}])))", + "refId": "StandardVariableQuery" + }, + "refresh": 2, + "regex": ".*svm=\\\"(.*?)\\\".*", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "allValue": null, + "current": {}, + "datasource": "${DS_PROMETHEUS}", + "definition": "query_result(topk($TopResources, avg_over_time(svm_nfs_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",nfsv=\"v4\"}[${__range}])))", + "description": null, + "error": null, + "hide": 2, + "includeAll": true, + "label": null, + "multi": true, + "name": "TopNfsv4Latency", + "options": [], + "query": { + "query": "query_result(topk($TopResources, avg_over_time(svm_nfs_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",nfsv=\"v4\"}[${__range}])))", + "refId": "StandardVariableQuery" + }, + "refresh": 2, + "regex": ".*svm=\\\"(.*?)\\\".*", + "skipUrlSync": false, + "sort": 0, + "type": "query" } ] }, "time": { - "from": "now-3h", + "from": "now-15m", "to": "now" }, "timepicker": { @@ -14676,5 +15136,5 @@ "timezone": "", "title": "ONTAP: SVM", "uid": "", - "version": 22 + "version": 23 } diff --git a/vendor/modules.txt b/vendor/modules.txt index 2d0d5086e..0cdca1e01 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -56,6 +56,8 @@ github.com/power-devops/perfstat # github.com/rivo/uniseg v0.4.4 ## explicit; go 1.18 github.com/rivo/uniseg +# github.com/rogpeppe/go-internal v1.11.0 +## explicit; go 1.19 # github.com/rs/zerolog v1.30.0 ## explicit; go 1.15 github.com/rs/zerolog