From b41e34a82e70e5cbd33a2b39d2389c9b02adc685 Mon Sep 17 00:00:00 2001 From: hardikl Date: Fri, 14 Apr 2023 20:37:06 +0530 Subject: [PATCH 01/13] feat: collect external_service_op perf object --- .../cdot/9.8.0/external_service_op.yaml | 36 +++++++++++++++++++ conf/zapiperf/default.yaml | 1 + 2 files changed, 37 insertions(+) create mode 100644 conf/zapiperf/cdot/9.8.0/external_service_op.yaml diff --git a/conf/zapiperf/cdot/9.8.0/external_service_op.yaml b/conf/zapiperf/cdot/9.8.0/external_service_op.yaml new file mode 100644 index 000000000..c9b3f415f --- /dev/null +++ b/conf/zapiperf/cdot/9.8.0/external_service_op.yaml @@ -0,0 +1,36 @@ + +name: ExternalServiceOp +query: external_service_op +object: external_service_op + +instance_key: uuid + +counters: + - last_modified_timestamp + - num_not_found_responses + - num_request_failures + - num_requests_sent + - num_responses_received + - num_successful_responses + - num_timeouts + - operation + - process_name + - request_latency + - request_latency_hist + - server_ip_address + - server_name + - service_name + - instance_name + - instance_uuid + - node_name => node + - vserver_name => svm + +export_options: + instance_keys: + - node + - svm + - operation + - process_name + - server_ip_address + - server_name + - service_name diff --git a/conf/zapiperf/default.yaml b/conf/zapiperf/default.yaml index 4b78ce131..6a73eb10e 100644 --- a/conf/zapiperf/default.yaml +++ b/conf/zapiperf/default.yaml @@ -39,6 +39,7 @@ objects: # SVM-level metrics CIFSvserver: cifs_vserver.yaml CopyManager: copy_manager.yaml + #ExternalServiceOp: external_service_op.yaml FcpLif: fcp_lif.yaml ISCSI: iscsi_lif.yaml LIF: lif.yaml From 2d111a4238c9e6dd8548cb952768d8680da6f4f6 Mon Sep 17 00:00:00 2001 From: hardikl Date: Fri, 14 Apr 2023 20:41:32 +0530 Subject: [PATCH 02/13] feat: collect external_service_op perf object --- conf/zapiperf/cdot/9.8.0/external_service_op.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/conf/zapiperf/cdot/9.8.0/external_service_op.yaml b/conf/zapiperf/cdot/9.8.0/external_service_op.yaml index c9b3f415f..75f7740dc 100644 --- a/conf/zapiperf/cdot/9.8.0/external_service_op.yaml +++ b/conf/zapiperf/cdot/9.8.0/external_service_op.yaml @@ -6,7 +6,10 @@ object: external_service_op instance_key: uuid counters: + - instance_name + - instance_uuid - last_modified_timestamp + - node_name => node - num_not_found_responses - num_request_failures - num_requests_sent @@ -20,17 +23,14 @@ counters: - server_ip_address - server_name - service_name - - instance_name - - instance_uuid - - node_name => node - vserver_name => svm export_options: instance_keys: - node - - svm - operation - process_name - server_ip_address - server_name - service_name + - svm From 3d1fd727c2e56675e972fc7c4c5f390758a3aa6a Mon Sep 17 00:00:00 2001 From: hardikl Date: Mon, 17 Apr 2023 17:37:14 +0530 Subject: [PATCH 03/13] feat: dashboard changes --- cmd/tools/grafana/dashboard_test.go | 8 + .../cdot/9.8.0/external_service_op.yaml | 2 +- conf/zapiperf/default.yaml | 96 ++-- .../dashboards/cmode/external_service_op.json | 414 ++++++++++++++++++ 4 files changed, 471 insertions(+), 49 deletions(-) create mode 100644 grafana/dashboards/cmode/external_service_op.json diff --git a/cmd/tools/grafana/dashboard_test.go b/cmd/tools/grafana/dashboard_test.go index cb258f8e0..0526bc73f 100644 --- a/cmd/tools/grafana/dashboard_test.go +++ b/cmd/tools/grafana/dashboard_test.go @@ -484,6 +484,7 @@ func TestIDIsBlank(t *testing.T) { []string{"../../../grafana/dashboards/cmode", "../../../grafana/dashboards/storagegrid"}, func(path string, data []byte) { checkUIDIsBlank(t, path, data) + checkIDIsNull(t, path, data) }) } @@ -508,6 +509,13 @@ func checkUIDIsBlank(t *testing.T, path string, data []byte) { } } +func checkIDIsNull(t *testing.T, path string, data []byte) { + id := gjson.GetBytes(data, "id").String() + if id != "" { + t.Errorf(`dashboard=%s id should be null but is %s`, shortPath(path), id) + } +} + func TestUniquePanelIDs(t *testing.T) { visitDashboards( []string{"../../../grafana/dashboards/cmode", "../../../grafana/dashboards/storagegrid"}, diff --git a/conf/zapiperf/cdot/9.8.0/external_service_op.yaml b/conf/zapiperf/cdot/9.8.0/external_service_op.yaml index 75f7740dc..09ae7dc84 100644 --- a/conf/zapiperf/cdot/9.8.0/external_service_op.yaml +++ b/conf/zapiperf/cdot/9.8.0/external_service_op.yaml @@ -1,5 +1,5 @@ -name: ExternalServiceOp +name: ExternalServiceOperation query: external_service_op object: external_service_op diff --git a/conf/zapiperf/default.yaml b/conf/zapiperf/default.yaml index 6a73eb10e..a99276a6e 100644 --- a/conf/zapiperf/default.yaml +++ b/conf/zapiperf/default.yaml @@ -9,55 +9,55 @@ schedule: objects: # Node-level metrics - CIFSNode: cifs_node.yaml - Disk: disk.yaml - ExtCacheObj: ext_cache_obj.yaml - FCVI: fcvi.yaml - FcpPort: fcp.yaml - HeadroomAggr: resource_headroom_aggr.yaml - HeadroomCPU: resource_headroom_cpu.yaml - HostAdapter: hostadapter.yaml -# Netstat: netstat.yaml - NFSv3Node: nfsv3_node.yaml - NFSv41Node: nfsv4_1_node.yaml - NFSv42Node: nfsv4_2_node.yaml - NFSv4Node: nfsv4_node.yaml - NVMfLif: nvmf_lif.yaml - Namespace: namespace.yaml - NicCommon: nic_common.yaml - ObjectStoreClient: object_store_client_op.yaml - Path: path.yaml - Qtree: qtree.yaml - SystemNode: system_node.yaml - TokenManager: token_manager.yaml - VolumeNode: volume_node.yaml - WAFL: wafl.yaml - WAFLAggr: wafl_hya_per_aggr.yaml - WAFLSizer: wafl_hya_sizer.yaml -# NFSv4Pool: nfsv4_pool.yaml + CIFSNode: cifs_node.yaml + Disk: disk.yaml + ExtCacheObj: ext_cache_obj.yaml + FCVI: fcvi.yaml + FcpPort: fcp.yaml + HeadroomAggr: resource_headroom_aggr.yaml + HeadroomCPU: resource_headroom_cpu.yaml + HostAdapter: hostadapter.yaml +# Netstat: netstat.yaml + NFSv3Node: nfsv3_node.yaml + NFSv41Node: nfsv4_1_node.yaml + NFSv42Node: nfsv4_2_node.yaml + NFSv4Node: nfsv4_node.yaml + NVMfLif: nvmf_lif.yaml + Namespace: namespace.yaml + NicCommon: nic_common.yaml + ObjectStoreClient: object_store_client_op.yaml + Path: path.yaml + Qtree: qtree.yaml + SystemNode: system_node.yaml + TokenManager: token_manager.yaml + VolumeNode: volume_node.yaml + WAFL: wafl.yaml + WAFLAggr: wafl_hya_per_aggr.yaml + WAFLSizer: wafl_hya_sizer.yaml +# NFSv4Pool: nfsv4_pool.yaml # SVM-level metrics - CIFSvserver: cifs_vserver.yaml - CopyManager: copy_manager.yaml - #ExternalServiceOp: external_service_op.yaml - FcpLif: fcp_lif.yaml - ISCSI: iscsi_lif.yaml - LIF: lif.yaml - Lun: lun.yaml - NFSv3: nfsv3.yaml - NFSv41: nfsv4_1.yaml - NFSv42: nfsv4_2.yaml - NFSv4: nfsv4.yaml - OntapS3SVM: ontap_s3_svm.yaml - SMB2: smb2.yaml - Volume: volume.yaml - VolumeSvm: volume_svm.yaml - WAFLCompBin: wafl_comp_aggr_vol_bin.yaml - Vscan: vscan.yaml - VscanSVM: vscan_svm.yaml + CIFSvserver: cifs_vserver.yaml + CopyManager: copy_manager.yaml +# ExternalServiceOperation: external_service_op.yaml + FcpLif: fcp_lif.yaml + ISCSI: iscsi_lif.yaml + LIF: lif.yaml + Lun: lun.yaml + NFSv3: nfsv3.yaml + NFSv41: nfsv4_1.yaml + NFSv42: nfsv4_2.yaml + NFSv4: nfsv4.yaml + OntapS3SVM: ontap_s3_svm.yaml + SMB2: smb2.yaml + Volume: volume.yaml + VolumeSvm: volume_svm.yaml + WAFLCompBin: wafl_comp_aggr_vol_bin.yaml + Vscan: vscan.yaml + VscanSVM: vscan_svm.yaml # Uncomment to collect workload/QOS counters -# Workload: workload.yaml -# WorkloadDetail: workload_detail.yaml -# WorkloadVolume: workload_volume.yaml -# WorkloadDetailVolume: workload_detail_volume.yaml \ No newline at end of file +# Workload: workload.yaml +# WorkloadDetail: workload_detail.yaml +# WorkloadVolume: workload_volume.yaml +# WorkloadDetailVolume: workload_detail_volume.yaml \ No newline at end of file diff --git a/grafana/dashboards/cmode/external_service_op.json b/grafana/dashboards/cmode/external_service_op.json new file mode 100644 index 000000000..6334c3c36 --- /dev/null +++ b/grafana/dashboards/cmode/external_service_op.json @@ -0,0 +1,414 @@ +{ + "__inputs": [ + { + "name": "DS_PROMETHEUS", + "label": "Prometheus", + "description": "", + "type": "datasource", + "pluginId": "prometheus", + "pluginName": "Prometheus" + } + ], + "__requires": [ + { + "type": "grafana", + "id": "grafana", + "name": "Grafana", + "version": "8.1.8" + }, + { + "type": "datasource", + "id": "prometheus", + "name": "Prometheus", + "version": "1.0.0" + }, + { + "type": "panel", + "id": "stat", + "name": "Stat", + "version": "" + }, + { + "type": "panel", + "id": "table", + "name": "Table", + "version": "" + }, + { + "type": "panel", + "id": "timeseries", + "name": "Time series", + "version": "" + } + ], + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "target": { + "limit": 100, + "matchAny": false, + "tags": [], + "type": "dashboard" + }, + "type": "dashboard" + } + ] + }, + "description": "", + "editable": true, + "fiscalYearStartMonth": 0, + "gnetId": null, + "graphTooltip": 1, + "id": null, + "iteration": 1681729577481, + "links": [ + { + "asDropdown": true, + "icon": "external link", + "includeVars": true, + "keepTime": true, + "tags": [ + "cdot" + ], + "targetBlank": false, + "title": "Related Dashboards", + "tooltip": "", + "type": "dashboards", + "url": "" + } + ], + "liveNow": false, + "panels": [ + { + "collapsed": false, + "datasource": "${DS_PROMETHEUS}", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 68, + "panels": [], + "title": "Highlights", + "type": "row" + }, + { + "description": "This panel includes Average request latency for operations on specified LDAP server.", + "datasource": "${DS_PROMETHEUS}", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "µs" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 1 + }, + "id": 76, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "bottom" + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "8.1.8", + "targets": [ + { + "exemplar": false, + "expr": "external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",node=~\"$Node\",svm=~\"$SVM\",service_name=~\".*LDAP.*\"}", + "interval": "", + "legendFormat": "{{cluster}} - {{server_name}} - {{operation}}", + "refId": "A" + } + ], + "title": "Request Latency to LDAP server", + "type": "timeseries" + }, + { + "cards": {}, + "color": { + "cardColor": "#b4ff00", + "colorScale": "sqrt", + "colorScheme": "interpolateRdYlGn", + "exponent": 0.5, + "mode": "spectrum" + }, + "dataFormat": "tsbuckets", + "description": "This panel tracks histograms for request latency values of this operation to the specified LDAP server", + "datasource": "${DS_PROMETHEUS}", + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 1 + }, + "heatmap": {}, + "hideZeroBuckets": true, + "highlightCards": true, + "id": 81, + "interval": "6m", + "legend": { + "show": false + }, + "maxDataPoints": 25, + "reverseYBuckets": false, + "targets": [ + { + "exemplar": false, + "expr": "sum(increase(external_service_op_request_latency_hist_bucket{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",node=~\"$Node\",svm=~\"$SVM\",service_name=~\".*LDAP.*\"}[$__interval])) by (operation,le)", + "format": "heatmap", + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": " {{ le }} - {{operation}}", + "refId": "A" + } + ], + "title": "Request Latency Heatmap to LDAP server", + "tooltip": { + "show": true, + "showHistogram": false + }, + "type": "heatmap", + "xAxis": { + "show": true + }, + "yAxis": { + "format": "µs", + "logBase": 1, + "show": true + }, + "yBucketBound": "auto" + } + ], + "refresh": "", + "schemaVersion": 35, + "style": "dark", + "tags": [ + "harvest", + "ontap", + "cdot" + ], + "templating": { + "list": [ + { + "current": { + "selected": false, + "text": "Prometheus", + "value": "Prometheus" + }, + "hide": 2, + "includeAll": false, + "label": "Data Source", + "multi": false, + "name": "DS_PROMETHEUS", + "options": [], + "query": "prometheus", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "type": "datasource" + }, + { + "current": { + "selected": true, + "text": [ + "rest", + "zapi" + ], + "value": [ + "rest", + "zapi" + ] + }, + "definition": "label_values(external_service_op_request_latency{system_type!=\"7mode\"}, datacenter)", + "hide": 0, + "includeAll": false, + "multi": true, + "name": "Datacenter", + "options": [], + "query": { + "query": "label_values(external_service_op_request_latency{system_type!=\"7mode\"}, datacenter)", + "refId": "StandardVariableQuery" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "current": { + "selected": true, + "text": [ + "All" + ], + "value": [ + "$__all" + ] + }, + "definition": "label_values(external_service_op_request_latency{system_type!=\"7mode\",datacenter=~\"$Datacenter\"}, cluster)", + "hide": 0, + "includeAll": true, + "multi": true, + "name": "Cluster", + "options": [], + "query": { + "query": "label_values(external_service_op_request_latency{system_type!=\"7mode\",datacenter=~\"$Datacenter\"}, cluster)", + "refId": "StandardVariableQuery" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "current": { + "selected": true, + "text": [ + "All" + ], + "value": [ + "$__all" + ] + }, + "definition": "label_values(external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}, node)", + "hide": 0, + "includeAll": true, + "multi": true, + "name": "Node", + "options": [], + "query": { + "query": "label_values(external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}, node)", + "refId": "StandardVariableQuery" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "current": { + "selected": true, + "text": [ + "All" + ], + "value": [ + "$__all" + ] + }, + "definition": "label_values(external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",node=~\"$Node\"}, svm)", + "hide": 0, + "includeAll": true, + "multi": true, + "name": "SVM", + "options": [], + "query": { + "query": "label_values(external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",node=~\"$Node\"}, svm)", + "refId": "StandardVariableQuery" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + } + ] + }, + "time": { + "from": "now-3h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ] + }, + "timezone": "", + "title": "ONTAP: External Service Operation", + "uid": "", + "version": 1, + "weekStart": "" +} \ No newline at end of file From 4798cfcc50338245c532433de543dda6d89d127e Mon Sep 17 00:00:00 2001 From: hardikl Date: Mon, 17 Apr 2023 18:28:32 +0530 Subject: [PATCH 04/13] feat: CI changes --- integration/test/dashboard_json_test.go | 4 +++- integration/test/data/counter_data.go | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/integration/test/dashboard_json_test.go b/integration/test/dashboard_json_test.go index 16970195a..e8bcc931e 100644 --- a/integration/test/dashboard_json_test.go +++ b/integration/test/dashboard_json_test.go @@ -46,7 +46,9 @@ var zapiCounterMap = map[string]struct{}{ // restCounters consists of counters which needs to be excluded for Rest only in addition to counters present in counterMap var restCounterMap = map[string]struct{}{ - "aggr_snapshot_inode_used_percent": {}, + "aggr_snapshot_inode_used_percent": {}, + "external_service_op_request_latency": {}, + "external_service_op_request_latency_hist_bucket": {}, } type ResultInfo struct { diff --git a/integration/test/data/counter_data.go b/integration/test/data/counter_data.go index d3764d391..e5441e102 100644 --- a/integration/test/data/counter_data.go +++ b/integration/test/data/counter_data.go @@ -44,6 +44,8 @@ func GetCounterMap() map[string][]string { "smb2_", "health_", "ems_events", + "external_service_op_request_latency", + "external_service_op_request_latency_hist_bucket", } //if docker.IsDockerBasedPoller() || setup.IsMac { counterMap["NO_DATA_CONTAINS"] = append(counterMap["NO_DATA_CONTAINS"], "poller", "metadata_exporter_count") From 9f7ce55ff1ff10137ac7d6f2a909f5582a22f7c0 Mon Sep 17 00:00:00 2001 From: hardikl Date: Mon, 17 Apr 2023 18:43:51 +0530 Subject: [PATCH 05/13] feat: CI changes --- integration/test/data/counter_data.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/integration/test/data/counter_data.go b/integration/test/data/counter_data.go index 13c5d92c4..22ac939ee 100644 --- a/integration/test/data/counter_data.go +++ b/integration/test/data/counter_data.go @@ -31,8 +31,8 @@ func GetCounterMap() map[string][]string { "aggr_physical_", "efficiency_savings", "ems_events", - "external_service_op_request_latency", - "external_service_op_request_latency_hist_bucket", + "external_service_op_request_latency", + "external_service_op_request_latency_hist_bucket", "fcp", "fcvi", "flashcache_", From 5ce175777e10d79be9aae451a91c931ff742e306 Mon Sep 17 00:00:00 2001 From: hardikl Date: Tue, 18 Apr 2023 20:27:15 +0530 Subject: [PATCH 06/13] feat: added new panels in svm dashboard --- .../cdot/9.8.0/external_service_op.yaml | 1 - .../dashboards/cmode/external_service_op.json | 414 ----------- grafana/dashboards/cmode/svm.json | 699 ++++++++++++++++++ integration/test/dashboard_json_test.go | 6 + integration/test/data/counter_data.go | 6 + 5 files changed, 711 insertions(+), 415 deletions(-) delete mode 100644 grafana/dashboards/cmode/external_service_op.json diff --git a/conf/zapiperf/cdot/9.8.0/external_service_op.yaml b/conf/zapiperf/cdot/9.8.0/external_service_op.yaml index 09ae7dc84..24d909e3a 100644 --- a/conf/zapiperf/cdot/9.8.0/external_service_op.yaml +++ b/conf/zapiperf/cdot/9.8.0/external_service_op.yaml @@ -8,7 +8,6 @@ instance_key: uuid counters: - instance_name - instance_uuid - - last_modified_timestamp - node_name => node - num_not_found_responses - num_request_failures diff --git a/grafana/dashboards/cmode/external_service_op.json b/grafana/dashboards/cmode/external_service_op.json deleted file mode 100644 index 6334c3c36..000000000 --- a/grafana/dashboards/cmode/external_service_op.json +++ /dev/null @@ -1,414 +0,0 @@ -{ - "__inputs": [ - { - "name": "DS_PROMETHEUS", - "label": "Prometheus", - "description": "", - "type": "datasource", - "pluginId": "prometheus", - "pluginName": "Prometheus" - } - ], - "__requires": [ - { - "type": "grafana", - "id": "grafana", - "name": "Grafana", - "version": "8.1.8" - }, - { - "type": "datasource", - "id": "prometheus", - "name": "Prometheus", - "version": "1.0.0" - }, - { - "type": "panel", - "id": "stat", - "name": "Stat", - "version": "" - }, - { - "type": "panel", - "id": "table", - "name": "Table", - "version": "" - }, - { - "type": "panel", - "id": "timeseries", - "name": "Time series", - "version": "" - } - ], - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "description": "", - "editable": true, - "fiscalYearStartMonth": 0, - "gnetId": null, - "graphTooltip": 1, - "id": null, - "iteration": 1681729577481, - "links": [ - { - "asDropdown": true, - "icon": "external link", - "includeVars": true, - "keepTime": true, - "tags": [ - "cdot" - ], - "targetBlank": false, - "title": "Related Dashboards", - "tooltip": "", - "type": "dashboards", - "url": "" - } - ], - "liveNow": false, - "panels": [ - { - "collapsed": false, - "datasource": "${DS_PROMETHEUS}", - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 68, - "panels": [], - "title": "Highlights", - "type": "row" - }, - { - "description": "This panel includes Average request latency for operations on specified LDAP server.", - "datasource": "${DS_PROMETHEUS}", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - }, - "unit": "µs" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 1 - }, - "id": 76, - "options": { - "legend": { - "calcs": [ - "mean", - "lastNotNull", - "max" - ], - "displayMode": "table", - "placement": "bottom" - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.1.8", - "targets": [ - { - "exemplar": false, - "expr": "external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",node=~\"$Node\",svm=~\"$SVM\",service_name=~\".*LDAP.*\"}", - "interval": "", - "legendFormat": "{{cluster}} - {{server_name}} - {{operation}}", - "refId": "A" - } - ], - "title": "Request Latency to LDAP server", - "type": "timeseries" - }, - { - "cards": {}, - "color": { - "cardColor": "#b4ff00", - "colorScale": "sqrt", - "colorScheme": "interpolateRdYlGn", - "exponent": 0.5, - "mode": "spectrum" - }, - "dataFormat": "tsbuckets", - "description": "This panel tracks histograms for request latency values of this operation to the specified LDAP server", - "datasource": "${DS_PROMETHEUS}", - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 1 - }, - "heatmap": {}, - "hideZeroBuckets": true, - "highlightCards": true, - "id": 81, - "interval": "6m", - "legend": { - "show": false - }, - "maxDataPoints": 25, - "reverseYBuckets": false, - "targets": [ - { - "exemplar": false, - "expr": "sum(increase(external_service_op_request_latency_hist_bucket{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",node=~\"$Node\",svm=~\"$SVM\",service_name=~\".*LDAP.*\"}[$__interval])) by (operation,le)", - "format": "heatmap", - "instant": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": " {{ le }} - {{operation}}", - "refId": "A" - } - ], - "title": "Request Latency Heatmap to LDAP server", - "tooltip": { - "show": true, - "showHistogram": false - }, - "type": "heatmap", - "xAxis": { - "show": true - }, - "yAxis": { - "format": "µs", - "logBase": 1, - "show": true - }, - "yBucketBound": "auto" - } - ], - "refresh": "", - "schemaVersion": 35, - "style": "dark", - "tags": [ - "harvest", - "ontap", - "cdot" - ], - "templating": { - "list": [ - { - "current": { - "selected": false, - "text": "Prometheus", - "value": "Prometheus" - }, - "hide": 2, - "includeAll": false, - "label": "Data Source", - "multi": false, - "name": "DS_PROMETHEUS", - "options": [], - "query": "prometheus", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "type": "datasource" - }, - { - "current": { - "selected": true, - "text": [ - "rest", - "zapi" - ], - "value": [ - "rest", - "zapi" - ] - }, - "definition": "label_values(external_service_op_request_latency{system_type!=\"7mode\"}, datacenter)", - "hide": 0, - "includeAll": false, - "multi": true, - "name": "Datacenter", - "options": [], - "query": { - "query": "label_values(external_service_op_request_latency{system_type!=\"7mode\"}, datacenter)", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "current": { - "selected": true, - "text": [ - "All" - ], - "value": [ - "$__all" - ] - }, - "definition": "label_values(external_service_op_request_latency{system_type!=\"7mode\",datacenter=~\"$Datacenter\"}, cluster)", - "hide": 0, - "includeAll": true, - "multi": true, - "name": "Cluster", - "options": [], - "query": { - "query": "label_values(external_service_op_request_latency{system_type!=\"7mode\",datacenter=~\"$Datacenter\"}, cluster)", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "current": { - "selected": true, - "text": [ - "All" - ], - "value": [ - "$__all" - ] - }, - "definition": "label_values(external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}, node)", - "hide": 0, - "includeAll": true, - "multi": true, - "name": "Node", - "options": [], - "query": { - "query": "label_values(external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}, node)", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "current": { - "selected": true, - "text": [ - "All" - ], - "value": [ - "$__all" - ] - }, - "definition": "label_values(external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",node=~\"$Node\"}, svm)", - "hide": 0, - "includeAll": true, - "multi": true, - "name": "SVM", - "options": [], - "query": { - "query": "label_values(external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",node=~\"$Node\"}, svm)", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - } - ] - }, - "time": { - "from": "now-3h", - "to": "now" - }, - "timepicker": { - "refresh_intervals": [ - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ] - }, - "timezone": "", - "title": "ONTAP: External Service Operation", - "uid": "", - "version": 1, - "weekStart": "" -} \ No newline at end of file diff --git a/grafana/dashboards/cmode/svm.json b/grafana/dashboards/cmode/svm.json index ae1d06a9c..6cfab9f5a 100644 --- a/grafana/dashboards/cmode/svm.json +++ b/grafana/dashboards/cmode/svm.json @@ -12940,6 +12940,705 @@ ], "title": "Volume Capacity Drilldown", "type": "row" + }, + { + "collapsed": true, + "datasource": "${DS_PROMETHEUS}", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 27 + }, + "id": 139, + "panels": [ + { + "datasource": "EO6UabnVz", + "description": "This panel includes Average request latency for operations on specified LDAP server.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "µs" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 1 + }, + "id": 276, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "bottom" + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "8.1.8", + "targets": [ + { + "exemplar": false, + "expr": "external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",service_name=~\".*LDAP.*\"}", + "interval": "", + "legendFormat": "{{cluster}} - {{svm}} - {{server_name}}", + "refId": "A" + } + ], + "title": "Request Latency to LDAP server", + "type": "timeseries" + }, + { + "cards": {}, + "color": { + "cardColor": "#b4ff00", + "colorScale": "sqrt", + "colorScheme": "interpolateRdYlGn", + "exponent": 0.5, + "mode": "spectrum" + }, + "dataFormat": "tsbuckets", + "description": "This panel tracks histograms for request latency values of this operation to the specified LDAP server", + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 1 + }, + "heatmap": {}, + "hideZeroBuckets": true, + "highlightCards": true, + "id": 281, + "interval": "6m", + "legend": { + "show": false + }, + "maxDataPoints": 25, + "reverseYBuckets": false, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "EO6UabnVz" + }, + "exemplar": false, + "expr": "sum(increase(external_service_op_request_latency_hist_bucket{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",service_name=~\".*LDAP.*\"}[$__interval])) by (le)", + "format": "heatmap", + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{le}}", + "refId": "A" + } + ], + "title": "Request Latency Heatmap to LDAP server", + "tooltip": { + "show": true, + "showHistogram": false + }, + "type": "heatmap", + "xAxis": { + "show": true + }, + "yAxis": { + "format": "µs", + "logBase": 1, + "show": true + }, + "yBucketBound": "auto" + }, + { + "description": "This panel shows Number of 'Not Found' responses for the operations.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 10 + }, + "id": 282, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "bottom", + "sortBy": "Last *", + "sortDesc": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "8.1.8", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "EO6UabnVz" + }, + "exemplar": false, + "expr": "sum by (operation, svm, cluster) (external_service_op_num_not_found_responses{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"})", + "interval": "", + "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", + "refId": "A" + } + ], + "title": "Number of 'Not Found' Responses per Operation", + "type": "timeseries" + }, + { + "description": "This panel shows cumulative count of all request failures.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 10 + }, + "id": 283, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "bottom", + "sortBy": "Last *", + "sortDesc": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "8.1.8", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "EO6UabnVz" + }, + "exemplar": false, + "expr": "sum by (operation, svm, cluster) (external_service_op_num_request_failures{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"})", + "interval": "", + "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", + "refId": "A" + } + ], + "title": "Number of Request failures", + "type": "timeseries" + }, + { + "description": "This panel shows Number of requests sent to the service.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 19 + }, + "id": 284, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "bottom", + "sortBy": "Last *", + "sortDesc": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "8.1.8", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "EO6UabnVz" + }, + "exemplar": false, + "expr": "sum by (operation, svm, cluster) (external_service_op_num_requests_sent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"})", + "interval": "", + "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", + "refId": "A" + } + ], + "title": "Number of Request Sent", + "type": "timeseries" + }, + { + "description": "This panel shows Number of responses received from the server (does not include timeouts).", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 19 + }, + "id": 285, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "bottom", + "sortBy": "Last *", + "sortDesc": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "8.1.8", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "EO6UabnVz" + }, + "exemplar": false, + "expr": "sum by (operation, svm, cluster) (external_service_op_num_responses_received{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"})", + "interval": "", + "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", + "refId": "A" + } + ], + "title": "Number of Responses Received", + "type": "timeseries" + }, + { + "description": "This panel shows Number of successful responses to the operation.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 28 + }, + "id": 286, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "bottom", + "sortBy": "Last *", + "sortDesc": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "8.1.8", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "EO6UabnVz" + }, + "exemplar": false, + "expr": "sum by (operation, svm, cluster) (external_service_op_num_successful_responses{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"})", + "interval": "", + "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", + "refId": "A" + } + ], + "title": "Number of Successful Responses", + "type": "timeseries" + }, + { + "description": "This panel shows Number of times requests to the server for this operation timed out.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 28 + }, + "id": 287, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "bottom", + "sortBy": "Last *", + "sortDesc": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "8.1.8", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "EO6UabnVz" + }, + "exemplar": false, + "expr": "sum by (operation, svm, cluster) (external_service_op_num_timeouts{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"})", + "interval": "", + "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", + "refId": "A" + } + ], + "title": "Number of timeouts", + "type": "timeseries" + } + ], + "title": "External Service Operation Drilldown", + "type": "row" } ], "refresh": "", diff --git a/integration/test/dashboard_json_test.go b/integration/test/dashboard_json_test.go index c5bdcaf07..c2a33f58c 100644 --- a/integration/test/dashboard_json_test.go +++ b/integration/test/dashboard_json_test.go @@ -45,6 +45,12 @@ var zapiCounterMap = map[string]struct{}{ // restCounterMap are additional counters, above and beyond the ones from counterMap, which should be excluded from Rest var restCounterMap = map[string]struct{}{ "aggr_snapshot_inode_used_percent": {}, + "external_service_op_num_not_found_responses": {}, + "external_service_op_num_request_failures": {}, + "external_service_op_num_requests_sent": {}, + "external_service_op_num_responses_received": {}, + "external_service_op_num_successful_responses": {}, + "external_service_op_num_timeouts": {}, "external_service_op_request_latency": {}, "external_service_op_request_latency_hist_bucket": {}, } diff --git a/integration/test/data/counter_data.go b/integration/test/data/counter_data.go index 22ac939ee..ff20b84ab 100644 --- a/integration/test/data/counter_data.go +++ b/integration/test/data/counter_data.go @@ -31,6 +31,12 @@ func GetCounterMap() map[string][]string { "aggr_physical_", "efficiency_savings", "ems_events", + "external_service_op_num_not_found_responses", + "external_service_op_num_request_failures", + "external_service_op_num_requests_sent", + "external_service_op_num_responses_received", + "external_service_op_num_successful_responses", + "external_service_op_num_timeouts", "external_service_op_request_latency", "external_service_op_request_latency_hist_bucket", "fcp", From 77eca94de389ada506457e4f826f59e10dec9c3f Mon Sep 17 00:00:00 2001 From: hardikl Date: Wed, 19 Apr 2023 18:59:29 +0530 Subject: [PATCH 07/13] feat: moved new panels to new dashboard --- .../dashboards/cmode/external_service_op.json | 914 ++++++++++++++++++ grafana/dashboards/cmode/svm.json | 699 -------------- 2 files changed, 914 insertions(+), 699 deletions(-) create mode 100644 grafana/dashboards/cmode/external_service_op.json diff --git a/grafana/dashboards/cmode/external_service_op.json b/grafana/dashboards/cmode/external_service_op.json new file mode 100644 index 000000000..cefc4f94c --- /dev/null +++ b/grafana/dashboards/cmode/external_service_op.json @@ -0,0 +1,914 @@ +{ + "__inputs": [ + { + "name": "DS_PROMETHEUS", + "label": "Prometheus", + "description": "", + "type": "datasource", + "pluginId": "prometheus", + "pluginName": "Prometheus" + } + ], + "__requires": [ + { + "type": "grafana", + "id": "grafana", + "name": "Grafana", + "version": "8.1.8" + }, + { + "type": "datasource", + "id": "prometheus", + "name": "Prometheus", + "version": "1.0.0" + }, + { + "type": "panel", + "id": "stat", + "name": "Stat", + "version": "" + }, + { + "type": "panel", + "id": "table", + "name": "Table", + "version": "" + }, + { + "type": "panel", + "id": "timeseries", + "name": "Time series", + "version": "" + } + ], + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "target": { + "limit": 100, + "matchAny": false, + "tags": [], + "type": "dashboard" + }, + "type": "dashboard" + } + ] + }, + "description": "", + "editable": true, + "fiscalYearStartMonth": 0, + "gnetId": null, + "graphTooltip": 1, + "id": null, + "iteration": 1681729577481, + "links": [ + { + "asDropdown": true, + "icon": "external link", + "includeVars": true, + "keepTime": true, + "tags": [ + "cdot" + ], + "targetBlank": false, + "title": "Related Dashboards", + "tooltip": "", + "type": "dashboards", + "url": "" + } + ], + "liveNow": false, + "panels": [ + { + "collapsed": false, + "datasource": "${DS_PROMETHEUS}", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 68, + "panels": [], + "title": "Highlights", + "type": "row" + }, + { + "description": "This panel includes Average request latency for operations on specified server.", + "datasource": "${DS_PROMETHEUS}", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "µs" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 1 + }, + "id": 76, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "bottom" + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "8.1.8", + "targets": [ + { + "exemplar": false, + "expr": "avg by (operation, svm, cluster) (external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\"})", + "interval": "", + "legendFormat": "{{cluster}} - {{svm}} - {{operation}} - {{server_name}}", + "refId": "A" + } + ], + "title": "Request Latency to Server", + "type": "timeseries" + }, + { + "cards": {}, + "color": { + "cardColor": "#b4ff00", + "colorScale": "sqrt", + "colorScheme": "interpolateRdYlGn", + "exponent": 0.5, + "mode": "spectrum" + }, + "dataFormat": "tsbuckets", + "description": "This panel tracks histograms for request latency values of this operation to the specified server", + "datasource": "${DS_PROMETHEUS}", + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 1 + }, + "heatmap": {}, + "hideZeroBuckets": true, + "highlightCards": true, + "id": 81, + "interval": "6m", + "legend": { + "show": false + }, + "maxDataPoints": 25, + "reverseYBuckets": false, + "targets": [ + { + "exemplar": false, + "expr": "sum(increase(external_service_op_request_latency_hist_bucket{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\"}[$__interval])) by (le)", + "format": "heatmap", + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": " {{ le }}", + "refId": "A" + } + ], + "title": "Request Latency Heatmap to Server", + "tooltip": { + "show": true, + "showHistogram": false + }, + "type": "heatmap", + "xAxis": { + "show": true + }, + "yAxis": { + "format": "µs", + "logBase": 1, + "show": true + }, + "yBucketBound": "auto" + }, + { + "description": "This panel shows Number of 'Not Found' responses for the operations.", + "datasource": "${DS_PROMETHEUS}", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 10 + }, + "id": 83, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "bottom", + "sortBy": "Last *", + "sortDesc": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "8.1.8", + "targets": [ + { + "exemplar": false, + "expr": "sum by (operation, svm, cluster) (external_service_op_num_not_found_responses{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\"})", + "interval": "", + "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", + "refId": "A" + } + ], + "title": "Number of 'Not Found' Responses per Operation", + "type": "timeseries" + }, + { + "description": "This panel shows cumulative count of all request failures.", + "datasource": "${DS_PROMETHEUS}", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 10 + }, + "id": 85, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "bottom", + "sortBy": "Last *", + "sortDesc": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "8.1.8", + "targets": [ + { + "exemplar": false, + "expr": "sum by (operation, svm, cluster) (external_service_op_num_request_failures{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\"})", + "interval": "", + "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", + "refId": "A" + } + ], + "title": "Number of Request Failures", + "type": "timeseries" + }, + { + "description": "This panel shows Number of requests sent to the service.", + "datasource": "${DS_PROMETHEUS}", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 19 + }, + "id": 87, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "bottom", + "sortBy": "Last *", + "sortDesc": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "8.1.8", + "targets": [ + { + "exemplar": false, + "expr": "sum by (operation, svm, cluster) (external_service_op_num_requests_sent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\"})", + "interval": "", + "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", + "refId": "A" + } + ], + "title": "Number of Request Sent", + "type": "timeseries" + }, + { + "description": "This panel shows Number of responses received from the server (does not include timeouts).", + "datasource": "${DS_PROMETHEUS}", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 19 + }, + "id": 89, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "bottom", + "sortBy": "Last *", + "sortDesc": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "8.1.8", + "targets": [ + { + "exemplar": false, + "expr": "sum by (operation, svm, cluster) (external_service_op_num_responses_received{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\"})", + "interval": "", + "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", + "refId": "A" + } + ], + "title": "Number of Responses Received", + "type": "timeseries" + }, + { + "description": "This panel shows Number of successful responses to the operation.", + "datasource": "${DS_PROMETHEUS}", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 28 + }, + "id": 91, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "bottom", + "sortBy": "Last *", + "sortDesc": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "8.1.8", + "targets": [ + { + "exemplar": false, + "expr": "sum by (operation, svm, cluster) (external_service_op_num_successful_responses{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\"})", + "interval": "", + "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", + "refId": "A" + } + ], + "title": "Number of Successful Responses", + "type": "timeseries" + }, + { + "description": "This panel shows Number of times requests to the server for this operation timed out.", + "datasource": "${DS_PROMETHEUS}", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 28 + }, + "id": 93, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "bottom", + "sortBy": "Last *", + "sortDesc": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "8.1.8", + "targets": [ + { + "exemplar": false, + "expr": "sum by (operation, svm, cluster) (external_service_op_num_timeouts{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\"})", + "interval": "", + "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", + "refId": "A" + } + ], + "title": "Number of Timeouts", + "type": "timeseries" + } + ], + "refresh": "", + "schemaVersion": 35, + "style": "dark", + "tags": [ + "harvest", + "ontap", + "cdot" + ], + "templating": { + "list": [ + { + "current": { + "selected": false, + "text": "Prometheus", + "value": "Prometheus" + }, + "hide": 2, + "includeAll": false, + "label": "Data Source", + "multi": false, + "name": "DS_PROMETHEUS", + "options": [], + "query": "prometheus", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "type": "datasource" + }, + { + "allValue": null, + "current": {}, + "definition": "label_values(external_service_op_request_latency{system_type!=\"7mode\"}, datacenter)", + "hide": 0, + "includeAll": false, + "multi": true, + "name": "Datacenter", + "options": [], + "query": { + "query": "label_values(external_service_op_request_latency{system_type!=\"7mode\"}, datacenter)", + "refId": "StandardVariableQuery" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": {}, + "definition": "label_values(external_service_op_request_latency{system_type!=\"7mode\",datacenter=~\"$Datacenter\"}, cluster)", + "hide": 0, + "includeAll": true, + "multi": true, + "name": "Cluster", + "options": [], + "query": { + "query": "label_values(external_service_op_request_latency{system_type!=\"7mode\",datacenter=~\"$Datacenter\"}, cluster)", + "refId": "StandardVariableQuery" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": {}, + "definition": "label_values(external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}, svm)", + "hide": 0, + "includeAll": true, + "multi": true, + "name": "SVM", + "options": [], + "query": { + "query": "label_values(external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}, svm)", + "refId": "StandardVariableQuery" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": { + "selected": true, + "text": [ + "LDAP (NIS & Name Mapping)" + ], + "value": [ + "LDAP (NIS & Name Mapping)" + ] + }, + "definition": "label_values(external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}, service_name)", + "hide": 0, + "includeAll": true, + "multi": true, + "name": "ServiceName", + "options": [], + "query": { + "query": "label_values(external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}, service_name)", + "refId": "StandardVariableQuery" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + } + ] + }, + "time": { + "from": "now-3h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ] + }, + "timezone": "", + "title": "ONTAP: External Service Operation", + "uid": "", + "version": 1, + "weekStart": "" +} \ No newline at end of file diff --git a/grafana/dashboards/cmode/svm.json b/grafana/dashboards/cmode/svm.json index 6cfab9f5a..ae1d06a9c 100644 --- a/grafana/dashboards/cmode/svm.json +++ b/grafana/dashboards/cmode/svm.json @@ -12940,705 +12940,6 @@ ], "title": "Volume Capacity Drilldown", "type": "row" - }, - { - "collapsed": true, - "datasource": "${DS_PROMETHEUS}", - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 27 - }, - "id": 139, - "panels": [ - { - "datasource": "EO6UabnVz", - "description": "This panel includes Average request latency for operations on specified LDAP server.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - }, - "unit": "µs" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 1 - }, - "id": 276, - "options": { - "legend": { - "calcs": [ - "mean", - "lastNotNull", - "max" - ], - "displayMode": "table", - "placement": "bottom" - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.1.8", - "targets": [ - { - "exemplar": false, - "expr": "external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",service_name=~\".*LDAP.*\"}", - "interval": "", - "legendFormat": "{{cluster}} - {{svm}} - {{server_name}}", - "refId": "A" - } - ], - "title": "Request Latency to LDAP server", - "type": "timeseries" - }, - { - "cards": {}, - "color": { - "cardColor": "#b4ff00", - "colorScale": "sqrt", - "colorScheme": "interpolateRdYlGn", - "exponent": 0.5, - "mode": "spectrum" - }, - "dataFormat": "tsbuckets", - "description": "This panel tracks histograms for request latency values of this operation to the specified LDAP server", - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 1 - }, - "heatmap": {}, - "hideZeroBuckets": true, - "highlightCards": true, - "id": 281, - "interval": "6m", - "legend": { - "show": false - }, - "maxDataPoints": 25, - "reverseYBuckets": false, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "EO6UabnVz" - }, - "exemplar": false, - "expr": "sum(increase(external_service_op_request_latency_hist_bucket{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",service_name=~\".*LDAP.*\"}[$__interval])) by (le)", - "format": "heatmap", - "instant": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "{{le}}", - "refId": "A" - } - ], - "title": "Request Latency Heatmap to LDAP server", - "tooltip": { - "show": true, - "showHistogram": false - }, - "type": "heatmap", - "xAxis": { - "show": true - }, - "yAxis": { - "format": "µs", - "logBase": 1, - "show": true - }, - "yBucketBound": "auto" - }, - { - "description": "This panel shows Number of 'Not Found' responses for the operations.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 10 - }, - "id": 282, - "options": { - "legend": { - "calcs": [ - "mean", - "lastNotNull", - "max" - ], - "displayMode": "table", - "placement": "bottom", - "sortBy": "Last *", - "sortDesc": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.1.8", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "EO6UabnVz" - }, - "exemplar": false, - "expr": "sum by (operation, svm, cluster) (external_service_op_num_not_found_responses{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"})", - "interval": "", - "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", - "refId": "A" - } - ], - "title": "Number of 'Not Found' Responses per Operation", - "type": "timeseries" - }, - { - "description": "This panel shows cumulative count of all request failures.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 10 - }, - "id": 283, - "options": { - "legend": { - "calcs": [ - "mean", - "lastNotNull", - "max" - ], - "displayMode": "table", - "placement": "bottom", - "sortBy": "Last *", - "sortDesc": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.1.8", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "EO6UabnVz" - }, - "exemplar": false, - "expr": "sum by (operation, svm, cluster) (external_service_op_num_request_failures{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"})", - "interval": "", - "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", - "refId": "A" - } - ], - "title": "Number of Request failures", - "type": "timeseries" - }, - { - "description": "This panel shows Number of requests sent to the service.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 19 - }, - "id": 284, - "options": { - "legend": { - "calcs": [ - "mean", - "lastNotNull", - "max" - ], - "displayMode": "table", - "placement": "bottom", - "sortBy": "Last *", - "sortDesc": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.1.8", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "EO6UabnVz" - }, - "exemplar": false, - "expr": "sum by (operation, svm, cluster) (external_service_op_num_requests_sent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"})", - "interval": "", - "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", - "refId": "A" - } - ], - "title": "Number of Request Sent", - "type": "timeseries" - }, - { - "description": "This panel shows Number of responses received from the server (does not include timeouts).", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 19 - }, - "id": 285, - "options": { - "legend": { - "calcs": [ - "mean", - "lastNotNull", - "max" - ], - "displayMode": "table", - "placement": "bottom", - "sortBy": "Last *", - "sortDesc": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.1.8", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "EO6UabnVz" - }, - "exemplar": false, - "expr": "sum by (operation, svm, cluster) (external_service_op_num_responses_received{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"})", - "interval": "", - "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", - "refId": "A" - } - ], - "title": "Number of Responses Received", - "type": "timeseries" - }, - { - "description": "This panel shows Number of successful responses to the operation.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 28 - }, - "id": 286, - "options": { - "legend": { - "calcs": [ - "mean", - "lastNotNull", - "max" - ], - "displayMode": "table", - "placement": "bottom", - "sortBy": "Last *", - "sortDesc": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.1.8", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "EO6UabnVz" - }, - "exemplar": false, - "expr": "sum by (operation, svm, cluster) (external_service_op_num_successful_responses{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"})", - "interval": "", - "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", - "refId": "A" - } - ], - "title": "Number of Successful Responses", - "type": "timeseries" - }, - { - "description": "This panel shows Number of times requests to the server for this operation timed out.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 28 - }, - "id": 287, - "options": { - "legend": { - "calcs": [ - "mean", - "lastNotNull", - "max" - ], - "displayMode": "table", - "placement": "bottom", - "sortBy": "Last *", - "sortDesc": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.1.8", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "EO6UabnVz" - }, - "exemplar": false, - "expr": "sum by (operation, svm, cluster) (external_service_op_num_timeouts{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"})", - "interval": "", - "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", - "refId": "A" - } - ], - "title": "Number of timeouts", - "type": "timeseries" - } - ], - "title": "External Service Operation Drilldown", - "type": "row" } ], "refresh": "", From 8a752f18972314538116e34bd63d9ab2826851b9 Mon Sep 17 00:00:00 2001 From: hardikl Date: Wed, 19 Apr 2023 19:03:57 +0530 Subject: [PATCH 08/13] feat: merge main --- integration/test/dashboard_json_test.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/integration/test/dashboard_json_test.go b/integration/test/dashboard_json_test.go index 0e1808b0a..e8226280a 100644 --- a/integration/test/dashboard_json_test.go +++ b/integration/test/dashboard_json_test.go @@ -57,6 +57,14 @@ var excludeCounters = []string{ "cluster_peer", "efficiency_savings", "ems_events", + "external_service_op_num_not_found_responses", + "external_service_op_num_request_failures", + "external_service_op_num_requests_sent", + "external_service_op_num_responses_received", + "external_service_op_num_successful_responses", + "external_service_op_num_timeouts", + "external_service_op_request_latency", + "external_service_op_request_latency_hist_bucket", "fabricpool_cloud_bin_op_latency_average", "fabricpool_cloud_bin_operation", "fcp", From a0da99a250d9e50636a5dd4914cad27953804ce1 Mon Sep 17 00:00:00 2001 From: hardikl Date: Thu, 20 Apr 2023 18:05:17 +0530 Subject: [PATCH 09/13] feat: adding operation var, aggregation at servicename and operation --- .../dashboards/cmode/external_service_op.json | 54 ++++++++++++------- 1 file changed, 34 insertions(+), 20 deletions(-) diff --git a/grafana/dashboards/cmode/external_service_op.json b/grafana/dashboards/cmode/external_service_op.json index cefc4f94c..e88653629 100644 --- a/grafana/dashboards/cmode/external_service_op.json +++ b/grafana/dashboards/cmode/external_service_op.json @@ -175,9 +175,9 @@ "targets": [ { "exemplar": false, - "expr": "avg by (operation, svm, cluster) (external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\"})", + "expr": "avg by (operation, service_name, svm, cluster) (external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"})", "interval": "", - "legendFormat": "{{cluster}} - {{svm}} - {{operation}} - {{server_name}}", + "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", "refId": "A" } ], @@ -215,7 +215,7 @@ "targets": [ { "exemplar": false, - "expr": "sum(increase(external_service_op_request_latency_hist_bucket{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\"}[$__interval])) by (le)", + "expr": "sum(increase(external_service_op_request_latency_hist_bucket{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"}[$__interval])) by (le)", "format": "heatmap", "instant": false, "interval": "", @@ -318,7 +318,7 @@ "targets": [ { "exemplar": false, - "expr": "sum by (operation, svm, cluster) (external_service_op_num_not_found_responses{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\"})", + "expr": "sum by (operation, service_name, svm, cluster) (external_service_op_num_not_found_responses{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"})", "interval": "", "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", "refId": "A" @@ -405,7 +405,7 @@ "targets": [ { "exemplar": false, - "expr": "sum by (operation, svm, cluster) (external_service_op_num_request_failures{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\"})", + "expr": "sum by (operation, service_name, svm, cluster) (external_service_op_num_request_failures{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"})", "interval": "", "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", "refId": "A" @@ -492,7 +492,7 @@ "targets": [ { "exemplar": false, - "expr": "sum by (operation, svm, cluster) (external_service_op_num_requests_sent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\"})", + "expr": "sum by (operation, service_name, svm, cluster) (external_service_op_num_requests_sent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"})", "interval": "", "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", "refId": "A" @@ -579,7 +579,7 @@ "targets": [ { "exemplar": false, - "expr": "sum by (operation, svm, cluster) (external_service_op_num_responses_received{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\"})", + "expr": "sum by (operation, service_name, svm, cluster) (external_service_op_num_responses_received{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"})", "interval": "", "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", "refId": "A" @@ -666,7 +666,7 @@ "targets": [ { "exemplar": false, - "expr": "sum by (operation, svm, cluster) (external_service_op_num_successful_responses{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\"})", + "expr": "sum by (operation, service_name, svm, cluster) (external_service_op_num_successful_responses{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"})", "interval": "", "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", "refId": "A" @@ -753,7 +753,7 @@ "targets": [ { "exemplar": false, - "expr": "sum by (operation, svm, cluster) (external_service_op_num_timeouts{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\"})", + "expr": "sum by (operation, service_name, svm, cluster) (external_service_op_num_timeouts{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"})", "interval": "", "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", "refId": "A" @@ -859,23 +859,37 @@ }, { "allValue": null, - "current": { - "selected": true, - "text": [ - "LDAP (NIS & Name Mapping)" - ], - "value": [ - "LDAP (NIS & Name Mapping)" - ] - }, - "definition": "label_values(external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}, service_name)", + "current": {}, + "definition": "label_values(external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\"}, service_name)", "hide": 0, "includeAll": true, "multi": true, "name": "ServiceName", "options": [], "query": { - "query": "label_values(external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}, service_name)", + "query": "label_values(external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\"}, service_name)", + "refId": "StandardVariableQuery" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": {}, + "definition": "label_values(external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\"}, operation)", + "hide": 0, + "includeAll": true, + "multi": true, + "name": "Operation", + "options": [], + "query": { + "query": "label_values(external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\"}, operation)", "refId": "StandardVariableQuery" }, "refresh": 1, From 75f7f831f5e317533d6cf169b097df10fab803a9 Mon Sep 17 00:00:00 2001 From: hardikl Date: Tue, 25 Apr 2023 20:49:01 +0530 Subject: [PATCH 10/13] fix: added unique key for topk --- .../externalserviceop/externalserviceop.go | 30 ++ cmd/collectors/zapiperf/zapiperf.go | 3 + .../cdot/9.8.0/external_service_op.yaml | 4 + .../dashboards/cmode/external_service_op.json | 327 ++++++++++++++++-- integration/test/dashboard_json_test.go | 20 +- 5 files changed, 338 insertions(+), 46 deletions(-) create mode 100644 cmd/collectors/zapiperf/plugins/externalserviceop/externalserviceop.go diff --git a/cmd/collectors/zapiperf/plugins/externalserviceop/externalserviceop.go b/cmd/collectors/zapiperf/plugins/externalserviceop/externalserviceop.go new file mode 100644 index 000000000..204d2bd9d --- /dev/null +++ b/cmd/collectors/zapiperf/plugins/externalserviceop/externalserviceop.go @@ -0,0 +1,30 @@ +/* + * Copyright NetApp Inc, 2023 All rights reserved + */ +package externalserviceop + +import ( + "github.com/netapp/harvest/v2/cmd/poller/plugin" + "github.com/netapp/harvest/v2/pkg/matrix" +) + +type ExternalServiceOp struct { + *plugin.AbstractPlugin +} + +func New(p *plugin.AbstractPlugin) plugin.Plugin { + return &ExternalServiceOp{AbstractPlugin: p} +} + +func (e *ExternalServiceOp) Run(dataMap map[string]*matrix.Matrix) ([]*matrix.Matrix, error) { + data := dataMap[e.Object] + keyIndex := 0 + datacenterClusterKey := data.GetGlobalLabels().Get("datacenter") + "-" + data.GetGlobalLabels().Get("cluster") + "-" + for _, instance := range data.GetInstances() { + // generate unique key by appending datacenter, cluster, svm, service_name and operation to support topk in grafana dashboard + key := datacenterClusterKey + instance.GetLabel("svm") + "-" + instance.GetLabel("service_name") + "-" + instance.GetLabel("operation") + instance.SetLabel("key", key) + keyIndex++ + } + return nil, nil +} diff --git a/cmd/collectors/zapiperf/zapiperf.go b/cmd/collectors/zapiperf/zapiperf.go index e10483296..a81224d6d 100644 --- a/cmd/collectors/zapiperf/zapiperf.go +++ b/cmd/collectors/zapiperf/zapiperf.go @@ -27,6 +27,7 @@ package zapiperf import ( "errors" "github.com/netapp/harvest/v2/cmd/collectors/zapiperf/plugins/disk" + "github.com/netapp/harvest/v2/cmd/collectors/zapiperf/plugins/externalserviceop" "github.com/netapp/harvest/v2/cmd/collectors/zapiperf/plugins/fcp" "github.com/netapp/harvest/v2/cmd/collectors/zapiperf/plugins/headroom" "github.com/netapp/harvest/v2/cmd/collectors/zapiperf/plugins/nic" @@ -125,6 +126,8 @@ func (z *ZapiPerf) LoadPlugin(kind string, abc *plugin.AbstractPlugin) plugin.Pl return vscan.New(abc) case "Disk": return disk.New(abc) + case "ExternalServiceOp": + return externalserviceop.New(abc) default: z.Logger.Info().Msgf("no zapiPerf plugin found for %s", kind) } diff --git a/conf/zapiperf/cdot/9.8.0/external_service_op.yaml b/conf/zapiperf/cdot/9.8.0/external_service_op.yaml index 24d909e3a..aecf72844 100644 --- a/conf/zapiperf/cdot/9.8.0/external_service_op.yaml +++ b/conf/zapiperf/cdot/9.8.0/external_service_op.yaml @@ -24,8 +24,12 @@ counters: - service_name - vserver_name => svm +plugins: + - ExternalServiceOp + export_options: instance_keys: + - key - node - operation - process_name diff --git a/grafana/dashboards/cmode/external_service_op.json b/grafana/dashboards/cmode/external_service_op.json index e88653629..e5ead1fa5 100644 --- a/grafana/dashboards/cmode/external_service_op.json +++ b/grafana/dashboards/cmode/external_service_op.json @@ -85,6 +85,23 @@ ], "liveNow": false, "panels": [ + { + "datasource": "${DS_PROMETHEUS}", + "gridPos": { + "h": 2, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 29, + "options": { + "content": "You must uncomment the external_service_op.yaml section in your $HARVEST/conf/zapiperf/default.yaml file.", + "mode": "markdown" + }, + "pluginVersion": "8.1.8", + "title": "Important Information about External Service Operation dashboard", + "type": "text" + }, { "collapsed": false, "datasource": "${DS_PROMETHEUS}", @@ -92,7 +109,7 @@ "h": 1, "w": 24, "x": 0, - "y": 0 + "y": 2 }, "id": 68, "panels": [], @@ -153,7 +170,7 @@ "h": 9, "w": 12, "x": 0, - "y": 1 + "y": 3 }, "id": 76, "options": { @@ -175,13 +192,13 @@ "targets": [ { "exemplar": false, - "expr": "avg by (operation, service_name, svm, cluster) (external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"})", + "expr": "topk($TopResources, avg by (operation, service_name, svm, cluster) (external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\",key=~\"$TopRequestLatency\"}))", "interval": "", "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", "refId": "A" } ], - "title": "Request Latency to Server", + "title": "Top $TopResources Request Latency to Server", "type": "timeseries" }, { @@ -200,7 +217,7 @@ "h": 9, "w": 12, "x": 12, - "y": 1 + "y": 3 }, "heatmap": {}, "hideZeroBuckets": true, @@ -294,7 +311,7 @@ "h": 9, "w": 12, "x": 0, - "y": 10 + "y": 12 }, "id": 83, "options": { @@ -318,13 +335,13 @@ "targets": [ { "exemplar": false, - "expr": "sum by (operation, service_name, svm, cluster) (external_service_op_num_not_found_responses{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"})", + "expr": "topk($TopResources, sum by (operation, service_name, svm, cluster) (external_service_op_num_not_found_responses{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\",key=~\"$TopNotFoundResponse\"}))", "interval": "", "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", "refId": "A" } ], - "title": "Number of 'Not Found' Responses per Operation", + "title": "Top $TopResources Number of 'Not Found' Responses per Operation", "type": "timeseries" }, { @@ -381,7 +398,7 @@ "h": 9, "w": 12, "x": 12, - "y": 10 + "y": 12 }, "id": 85, "options": { @@ -405,13 +422,13 @@ "targets": [ { "exemplar": false, - "expr": "sum by (operation, service_name, svm, cluster) (external_service_op_num_request_failures{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"})", + "expr": "topk($TopResources, sum by (operation, service_name, svm, cluster) (external_service_op_num_request_failures{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\",key=~\"$TopRequestFailed\"}))", "interval": "", "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", "refId": "A" } ], - "title": "Number of Request Failures", + "title": "Top $TopResources Number of Request Failures", "type": "timeseries" }, { @@ -468,7 +485,7 @@ "h": 9, "w": 12, "x": 0, - "y": 19 + "y": 21 }, "id": 87, "options": { @@ -492,13 +509,13 @@ "targets": [ { "exemplar": false, - "expr": "sum by (operation, service_name, svm, cluster) (external_service_op_num_requests_sent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"})", + "expr": "topk($TopResources, sum by (operation, service_name, svm, cluster) (external_service_op_num_requests_sent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\",key=~\"$TopRequestSent\"}))", "interval": "", "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", "refId": "A" } ], - "title": "Number of Request Sent", + "title": "Top $TopResources Number of Request Sent", "type": "timeseries" }, { @@ -555,7 +572,7 @@ "h": 9, "w": 12, "x": 12, - "y": 19 + "y": 21 }, "id": 89, "options": { @@ -579,13 +596,13 @@ "targets": [ { "exemplar": false, - "expr": "sum by (operation, service_name, svm, cluster) (external_service_op_num_responses_received{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"})", + "expr": "topk($TopResources, sum by (operation, service_name, svm, cluster) (external_service_op_num_responses_received{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\",key=~\"$TopRequestReceived\"}))", "interval": "", "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", "refId": "A" } ], - "title": "Number of Responses Received", + "title": "Top $TopResources Number of Responses Received", "type": "timeseries" }, { @@ -642,7 +659,7 @@ "h": 9, "w": 12, "x": 0, - "y": 28 + "y": 30 }, "id": 91, "options": { @@ -666,13 +683,13 @@ "targets": [ { "exemplar": false, - "expr": "sum by (operation, service_name, svm, cluster) (external_service_op_num_successful_responses{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"})", + "expr": "topk($TopResources, sum by (operation, service_name, svm, cluster) (external_service_op_num_successful_responses{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\",key=~\"$TopSuccessResponse\"}))", "interval": "", "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", "refId": "A" } ], - "title": "Number of Successful Responses", + "title": "Top $TopResources Number of Successful Responses", "type": "timeseries" }, { @@ -729,7 +746,7 @@ "h": 9, "w": 12, "x": 12, - "y": 28 + "y": 30 }, "id": 93, "options": { @@ -753,13 +770,13 @@ "targets": [ { "exemplar": false, - "expr": "sum by (operation, service_name, svm, cluster) (external_service_op_num_timeouts{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"})", + "expr": "topk($TopResources, sum by (operation, service_name, svm, cluster) (external_service_op_num_timeouts{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\",key=~\"$TopTimeout\"}))", "interval": "", "legendFormat": "{{cluster}} - {{svm}} - {{operation}}", "refId": "A" } ], - "title": "Number of Timeouts", + "title": "Top $TopResources Number of Timeouts", "type": "timeseries" } ], @@ -786,7 +803,7 @@ "name": "DS_PROMETHEUS", "options": [], "query": "prometheus", - "refresh": 1, + "refresh": 2, "regex": "", "skipUrlSync": false, "type": "datasource" @@ -804,7 +821,7 @@ "query": "label_values(external_service_op_request_latency{system_type!=\"7mode\"}, datacenter)", "refId": "StandardVariableQuery" }, - "refresh": 1, + "refresh": 2, "regex": "", "skipUrlSync": false, "sort": 1, @@ -826,7 +843,7 @@ "query": "label_values(external_service_op_request_latency{system_type!=\"7mode\",datacenter=~\"$Datacenter\"}, cluster)", "refId": "StandardVariableQuery" }, - "refresh": 1, + "refresh": 2, "regex": "", "skipUrlSync": false, "sort": 1, @@ -848,7 +865,7 @@ "query": "label_values(external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}, svm)", "refId": "StandardVariableQuery" }, - "refresh": 1, + "refresh": 2, "regex": "", "skipUrlSync": false, "sort": 1, @@ -870,7 +887,7 @@ "query": "label_values(external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\"}, service_name)", "refId": "StandardVariableQuery" }, - "refresh": 1, + "refresh": 2, "regex": "", "skipUrlSync": false, "sort": 1, @@ -892,7 +909,7 @@ "query": "label_values(external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\"}, operation)", "refId": "StandardVariableQuery" }, - "refresh": 1, + "refresh": 2, "regex": "", "skipUrlSync": false, "sort": 1, @@ -900,6 +917,258 @@ "tagsQuery": "", "type": "query", "useTags": false + }, + { + "allValue": null, + "current": { + "selected": false, + "text": "2", + "value": "2" + }, + "description": null, + "error": null, + "hide": 0, + "includeAll": false, + "label": null, + "multi": false, + "name": "TopResources", + "options": [ + { + "selected": false, + "text": "1", + "value": "1" + }, + { + "selected": true, + "text": "2", + "value": "2" + }, + { + "selected": false, + "text": "3", + "value": "3" + }, + { + "selected": false, + "text": "4", + "value": "4" + }, + { + "selected": false, + "text": "5", + "value": "5" + }, + { + "selected": false, + "text": "6", + "value": "6" + }, + { + "selected": false, + "text": "8", + "value": "8" + }, + { + "selected": false, + "text": "10", + "value": "10" + }, + { + "selected": false, + "text": "15", + "value": "15" + }, + { + "selected": false, + "text": "25", + "value": "25" + }, + { + "selected": false, + "text": "50", + "value": "50" + }, + { + "selected": false, + "text": "100", + "value": "100" + }, + { + "selected": false, + "text": "250", + "value": "250" + }, + { + "selected": false, + "text": "500", + "value": "500" + } + ], + "query": "1,2,3,4,5,6,8,10,15,25,50,100,250,500", + "queryValue": "", + "skipUrlSync": false, + "type": "custom" + }, + { + "allValue": null, + "current": {}, + "datasource": null, + "definition": "query_result(topk($TopResources, avg by (key) (avg_over_time(external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"}[${__range}]))))", + "description": null, + "error": null, + "hide": 2, + "includeAll": true, + "label": null, + "multi": true, + "name": "TopRequestLatency", + "options": [], + "query": { + "query": "query_result(topk($TopResources, avg by (key) (avg_over_time(external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"}[${__range}]))))", + "refId": "StandardVariableQuery" + }, + "refresh": 2, + "regex": ".*key=\\\"(.*?)\\\".*", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "allValue": null, + "current": {}, + "datasource": null, + "definition": "query_result(topk($TopResources, sum by (key) (avg_over_time(external_service_op_num_not_found_responses{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"}[${__range}]))))", + "description": null, + "error": null, + "hide": 2, + "includeAll": true, + "label": null, + "multi": true, + "name": "TopNotFoundResponse", + "options": [], + "query": { + "query": "query_result(topk($TopResources, sum by (key) (avg_over_time(external_service_op_num_not_found_responses{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"}[${__range}]))))", + "refId": "StandardVariableQuery" + }, + "refresh": 2, + "regex": ".*key=\\\"(.*?)\\\".*", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "allValue": null, + "current": {}, + "datasource": null, + "definition": "query_result(topk($TopResources, sum by (key) (avg_over_time(external_service_op_num_request_failures{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"}[${__range}]))))", + "description": null, + "error": null, + "hide": 2, + "includeAll": true, + "label": null, + "multi": true, + "name": "TopRequestFailed", + "options": [], + "query": { + "query": "query_result(topk($TopResources, sum by (key) (avg_over_time(external_service_op_num_request_failures{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"}[${__range}]))))", + "refId": "StandardVariableQuery" + }, + "refresh": 2, + "regex": ".*key=\\\"(.*?)\\\".*", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "allValue": null, + "current": {}, + "datasource": null, + "definition": "query_result(topk($TopResources, sum by (key) (avg_over_time(external_service_op_num_requests_sent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"}[${__range}]))))", + "description": null, + "error": null, + "hide": 2, + "includeAll": true, + "label": null, + "multi": true, + "name": "TopRequestSent", + "options": [], + "query": { + "query": "query_result(topk($TopResources, sum by (key) (avg_over_time(external_service_op_num_requests_sent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"}[${__range}]))))", + "refId": "StandardVariableQuery" + }, + "refresh": 2, + "regex": ".*key=\\\"(.*?)\\\".*", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "allValue": null, + "current": {}, + "datasource": null, + "definition": "query_result(topk($TopResources, sum by (key) (avg_over_time(external_service_op_num_responses_received{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"}[${__range}]))))", + "description": null, + "error": null, + "hide": 2, + "includeAll": true, + "label": null, + "multi": true, + "name": "TopRequestReceived", + "options": [], + "query": { + "query": "query_result(topk($TopResources, sum by (key) (avg_over_time(external_service_op_num_responses_received{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"}[${__range}]))))", + "refId": "StandardVariableQuery" + }, + "refresh": 2, + "regex": ".*key=\\\"(.*?)\\\".*", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "allValue": null, + "current": {}, + "datasource": null, + "definition": "query_result(topk($TopResources, sum by (key) (avg_over_time(external_service_op_num_successful_responses{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"}[${__range}]))))", + "description": null, + "error": null, + "hide": 2, + "includeAll": true, + "label": null, + "multi": true, + "name": "TopSuccessResponse", + "options": [], + "query": { + "query": "query_result(topk($TopResources, sum by (key) (avg_over_time(external_service_op_num_successful_responses{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"}[${__range}]))))", + "refId": "StandardVariableQuery" + }, + "refresh": 2, + "regex": ".*key=\\\"(.*?)\\\".*", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "allValue": null, + "current": {}, + "datasource": null, + "definition": "query_result(topk($TopResources, sum by (key) (avg_over_time(external_service_op_num_timeouts{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"}[${__range}]))))", + "description": null, + "error": null, + "hide": 2, + "includeAll": true, + "label": null, + "multi": true, + "name": "TopTimeout", + "options": [], + "query": { + "query": "query_result(topk($TopResources, sum by (key) (avg_over_time(external_service_op_num_timeouts{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"}[${__range}]))))", + "refId": "StandardVariableQuery" + }, + "refresh": 2, + "regex": ".*key=\\\"(.*?)\\\".*", + "skipUrlSync": false, + "sort": 0, + "type": "query" } ] }, diff --git a/integration/test/dashboard_json_test.go b/integration/test/dashboard_json_test.go index 5b2c34c23..1f29f48f0 100644 --- a/integration/test/dashboard_json_test.go +++ b/integration/test/dashboard_json_test.go @@ -40,15 +40,7 @@ var zapiCounterMap = map[string]struct{}{ // restCounterMap are additional counters, above and beyond the ones from counterMap, which should be excluded from Rest var restCounterMap = map[string]struct{}{ - "aggr_snapshot_inode_used_percent": {}, - "external_service_op_num_not_found_responses": {}, - "external_service_op_num_request_failures": {}, - "external_service_op_num_requests_sent": {}, - "external_service_op_num_responses_received": {}, - "external_service_op_num_successful_responses": {}, - "external_service_op_num_timeouts": {}, - "external_service_op_request_latency": {}, - "external_service_op_request_latency_hist_bucket": {}, + "aggr_snapshot_inode_used_percent": {}, } // excludeCounters consists of counters which should be excluded from both Zapi/Rest in CI test @@ -57,14 +49,8 @@ var excludeCounters = []string{ "cluster_peer", "efficiency_savings", "ems_events", - "external_service_op_num_not_found_responses", - "external_service_op_num_request_failures", - "external_service_op_num_requests_sent", - "external_service_op_num_responses_received", - "external_service_op_num_successful_responses", - "external_service_op_num_timeouts", - "external_service_op_request_latency", - "external_service_op_request_latency_hist_bucket", + "external_service_op_num_", + "external_service_op_request_", "fabricpool_cloud_bin_op_latency_average", "fabricpool_cloud_bin_operation", "fcp", From 59a984e52e46c9fd86de991efddc884a61289a10 Mon Sep 17 00:00:00 2001 From: hardikl Date: Tue, 25 Apr 2023 20:59:26 +0530 Subject: [PATCH 11/13] fix: minor changes --- .../plugins/externalserviceop/externalserviceop.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cmd/collectors/zapiperf/plugins/externalserviceop/externalserviceop.go b/cmd/collectors/zapiperf/plugins/externalserviceop/externalserviceop.go index 204d2bd9d..9b14414eb 100644 --- a/cmd/collectors/zapiperf/plugins/externalserviceop/externalserviceop.go +++ b/cmd/collectors/zapiperf/plugins/externalserviceop/externalserviceop.go @@ -8,6 +8,8 @@ import ( "github.com/netapp/harvest/v2/pkg/matrix" ) +const Hyphen = "-" + type ExternalServiceOp struct { *plugin.AbstractPlugin } @@ -18,13 +20,11 @@ func New(p *plugin.AbstractPlugin) plugin.Plugin { func (e *ExternalServiceOp) Run(dataMap map[string]*matrix.Matrix) ([]*matrix.Matrix, error) { data := dataMap[e.Object] - keyIndex := 0 - datacenterClusterKey := data.GetGlobalLabels().Get("datacenter") + "-" + data.GetGlobalLabels().Get("cluster") + "-" + datacenterClusterKey := data.GetGlobalLabels().Get("datacenter") + Hyphen + data.GetGlobalLabels().Get("cluster") + Hyphen for _, instance := range data.GetInstances() { // generate unique key by appending datacenter, cluster, svm, service_name and operation to support topk in grafana dashboard - key := datacenterClusterKey + instance.GetLabel("svm") + "-" + instance.GetLabel("service_name") + "-" + instance.GetLabel("operation") + key := datacenterClusterKey + instance.GetLabel("svm") + Hyphen + instance.GetLabel("service_name") + Hyphen + instance.GetLabel("operation") instance.SetLabel("key", key) - keyIndex++ } return nil, nil } From 3f7243a6caf0971aae91b89eccc256fda8bf99c6 Mon Sep 17 00:00:00 2001 From: hardikl Date: Wed, 26 Apr 2023 17:18:51 +0530 Subject: [PATCH 12/13] fix: few name correction --- .../externalserviceoperation.go} | 8 ++++---- cmd/collectors/zapiperf/zapiperf.go | 6 +++--- ...al_service_op.yaml => external_service_operation.yaml} | 2 +- conf/zapiperf/default.yaml | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) rename cmd/collectors/zapiperf/plugins/{externalserviceop/externalserviceop.go => externalserviceoperation/externalserviceoperation.go} (77%) rename conf/zapiperf/cdot/9.8.0/{external_service_op.yaml => external_service_operation.yaml} (96%) diff --git a/cmd/collectors/zapiperf/plugins/externalserviceop/externalserviceop.go b/cmd/collectors/zapiperf/plugins/externalserviceoperation/externalserviceoperation.go similarity index 77% rename from cmd/collectors/zapiperf/plugins/externalserviceop/externalserviceop.go rename to cmd/collectors/zapiperf/plugins/externalserviceoperation/externalserviceoperation.go index 9b14414eb..85a60c354 100644 --- a/cmd/collectors/zapiperf/plugins/externalserviceop/externalserviceop.go +++ b/cmd/collectors/zapiperf/plugins/externalserviceoperation/externalserviceoperation.go @@ -1,7 +1,7 @@ /* * Copyright NetApp Inc, 2023 All rights reserved */ -package externalserviceop +package externalserviceoperation import ( "github.com/netapp/harvest/v2/cmd/poller/plugin" @@ -10,15 +10,15 @@ import ( const Hyphen = "-" -type ExternalServiceOp struct { +type ExternalServiceOperation struct { *plugin.AbstractPlugin } func New(p *plugin.AbstractPlugin) plugin.Plugin { - return &ExternalServiceOp{AbstractPlugin: p} + return &ExternalServiceOperation{AbstractPlugin: p} } -func (e *ExternalServiceOp) Run(dataMap map[string]*matrix.Matrix) ([]*matrix.Matrix, error) { +func (e *ExternalServiceOperation) Run(dataMap map[string]*matrix.Matrix) ([]*matrix.Matrix, error) { data := dataMap[e.Object] datacenterClusterKey := data.GetGlobalLabels().Get("datacenter") + Hyphen + data.GetGlobalLabels().Get("cluster") + Hyphen for _, instance := range data.GetInstances() { diff --git a/cmd/collectors/zapiperf/zapiperf.go b/cmd/collectors/zapiperf/zapiperf.go index a81224d6d..58f47869a 100644 --- a/cmd/collectors/zapiperf/zapiperf.go +++ b/cmd/collectors/zapiperf/zapiperf.go @@ -27,7 +27,7 @@ package zapiperf import ( "errors" "github.com/netapp/harvest/v2/cmd/collectors/zapiperf/plugins/disk" - "github.com/netapp/harvest/v2/cmd/collectors/zapiperf/plugins/externalserviceop" + "github.com/netapp/harvest/v2/cmd/collectors/zapiperf/plugins/externalserviceoperation" "github.com/netapp/harvest/v2/cmd/collectors/zapiperf/plugins/fcp" "github.com/netapp/harvest/v2/cmd/collectors/zapiperf/plugins/headroom" "github.com/netapp/harvest/v2/cmd/collectors/zapiperf/plugins/nic" @@ -126,8 +126,8 @@ func (z *ZapiPerf) LoadPlugin(kind string, abc *plugin.AbstractPlugin) plugin.Pl return vscan.New(abc) case "Disk": return disk.New(abc) - case "ExternalServiceOp": - return externalserviceop.New(abc) + case "ExternalServiceOperation": + return externalserviceoperation.New(abc) default: z.Logger.Info().Msgf("no zapiPerf plugin found for %s", kind) } diff --git a/conf/zapiperf/cdot/9.8.0/external_service_op.yaml b/conf/zapiperf/cdot/9.8.0/external_service_operation.yaml similarity index 96% rename from conf/zapiperf/cdot/9.8.0/external_service_op.yaml rename to conf/zapiperf/cdot/9.8.0/external_service_operation.yaml index aecf72844..bbb8e85a0 100644 --- a/conf/zapiperf/cdot/9.8.0/external_service_op.yaml +++ b/conf/zapiperf/cdot/9.8.0/external_service_operation.yaml @@ -25,7 +25,7 @@ counters: - vserver_name => svm plugins: - - ExternalServiceOp + - ExternalServiceOperation export_options: instance_keys: diff --git a/conf/zapiperf/default.yaml b/conf/zapiperf/default.yaml index a99276a6e..fc47ac2a8 100644 --- a/conf/zapiperf/default.yaml +++ b/conf/zapiperf/default.yaml @@ -39,7 +39,7 @@ objects: # SVM-level metrics CIFSvserver: cifs_vserver.yaml CopyManager: copy_manager.yaml -# ExternalServiceOperation: external_service_op.yaml +# ExternalServiceOperation: external_service_operation.yaml FcpLif: fcp_lif.yaml ISCSI: iscsi_lif.yaml LIF: lif.yaml From 4597030af9c7810046ee3ac7f64b9aca0ac2c8cd Mon Sep 17 00:00:00 2001 From: hardikl Date: Wed, 26 Apr 2023 18:37:21 +0530 Subject: [PATCH 13/13] fix: topk default to 5 --- grafana/dashboards/cmode/external_service_op.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/grafana/dashboards/cmode/external_service_op.json b/grafana/dashboards/cmode/external_service_op.json index e5ead1fa5..c3a460466 100644 --- a/grafana/dashboards/cmode/external_service_op.json +++ b/grafana/dashboards/cmode/external_service_op.json @@ -95,7 +95,7 @@ }, "id": 29, "options": { - "content": "You must uncomment the external_service_op.yaml section in your $HARVEST/conf/zapiperf/default.yaml file.", + "content": "You must uncomment the external_service_operation.yaml section in your $HARVEST/conf/zapiperf/default.yaml file.", "mode": "markdown" }, "pluginVersion": "8.1.8", @@ -921,9 +921,9 @@ { "allValue": null, "current": { - "selected": false, - "text": "2", - "value": "2" + "selected": true, + "text": "5", + "value": "5" }, "description": null, "error": null, @@ -939,7 +939,7 @@ "value": "1" }, { - "selected": true, + "selected": false, "text": "2", "value": "2" }, @@ -954,7 +954,7 @@ "value": "4" }, { - "selected": false, + "selected": true, "text": "5", "value": "5" },