diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c57ed0..aa1c94a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,10 +2,12 @@ All notable changes to this project will be documented in this file. -## [1.3.1] - 2022-05-xx +## [1.3.3] - 2022-09-20 ### Added - Default configuration location on Windows platform. - +- Process LPAR SR-IOV logical network ports data +- Update default dashboards +- Update documentation ## [1.3.0] - 2022-02-04 ### Changed @@ -21,7 +23,7 @@ All notable changes to this project will be documented in this file. ### Added - Options to include/exclude Managed Systems and/or Logical Partitions. -[1.3.1]: https://bitbucket.org/mnellemann/hmci/branches/compare/v1.3.1%0Dv1.3.0 +[1.3.3]: https://bitbucket.org/mnellemann/hmci/branches/compare/v1.3.3%0Dv1.3.0 [1.3.0]: https://bitbucket.org/mnellemann/hmci/branches/compare/v1.3.0%0Dv1.2.8 [1.2.8]: https://bitbucket.org/mnellemann/hmci/branches/compare/v1.2.8%0Dv1.2.7 [1.2.7]: https://bitbucket.org/mnellemann/hmci/branches/compare/v1.2.7%0Dv1.2.6 diff --git a/build.gradle b/build.gradle index a892c60..bb315fe 100644 --- a/build.gradle +++ b/build.gradle @@ -18,8 +18,6 @@ repositories { group = projectGroup version = projectVersion -sourceCompatibility = 1.8 -targetCompatibility = 1.8 dependencies { annotationProcessor 'info.picocli:picocli-codegen:4.6.3' @@ -43,6 +41,11 @@ application { applicationDefaultJvmArgs = [ "-server", "-Xms64m", "-Xmx512m", "-XX:+UseG1GC" ] } +java { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 +} + test { useJUnitPlatform() } diff --git a/doc/HMCi - Power Logical Partitions.json b/doc/HMCi - Power Logical Partitions.json index 6c8c47c..9344698 100644 --- a/doc/HMCi - Power Logical Partitions.json +++ b/doc/HMCi - Power Logical Partitions.json @@ -1,15 +1,15 @@ { "__inputs": [ { - "name": "DS_INFLUXDB-HMCI", - "label": "InfluxDB-hmci", + "name": "DS_HMCI", + "label": "hmci", "description": "", "type": "datasource", "pluginId": "influxdb", "pluginName": "InfluxDB" } ], - "__elements": [], + "__elements": {}, "__requires": [ { "type": "panel", @@ -21,7 +21,7 @@ "type": "grafana", "id": "grafana", "name": "Grafana", - "version": "8.4.4" + "version": "9.1.4" }, { "type": "datasource", @@ -59,7 +59,10 @@ "list": [ { "builtIn": 1, - "datasource": "-- Grafana --", + "datasource": { + "type": "datasource", + "uid": "grafana" + }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", @@ -80,11 +83,14 @@ "gnetId": 1510, "graphTooltip": 0, "id": null, - "iteration": 1651048135507, "links": [], "liveNow": false, "panels": [ { + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "gridPos": { "h": 3, "w": 24, @@ -96,7 +102,16 @@ "content": "## Metrics collected from IBM Power HMC\n \nFor more information: [bitbucket.org/mnellemann/hmci](https://bitbucket.org/mnellemann/hmci)\n ", "mode": "markdown" }, - "pluginVersion": "8.4.4", + "pluginVersion": "9.1.4", + "targets": [ + { + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, + "refId": "A" + } + ], "transparent": true, "type": "text" }, @@ -104,7 +119,7 @@ "collapsed": false, "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "5KYZifB7z" }, "gridPos": { "h": 1, @@ -114,13 +129,22 @@ }, "id": 27, "panels": [], + "targets": [ + { + "datasource": { + "type": "influxdb", + "uid": "5KYZifB7z" + }, + "refId": "A" + } + ], "title": "Details", "type": "row" }, { "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "description": "", "fieldConfig": { @@ -131,7 +155,8 @@ "custom": { "align": "center", "displayMode": "auto", - "filterable": true + "filterable": true, + "inspect": false }, "mappings": [], "thresholds": { @@ -352,10 +377,14 @@ } ] }, - "pluginVersion": "8.4.4", + "pluginVersion": "9.1.4", "targets": [ { "alias": "Details", + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "groupBy": [ { "params": [ @@ -435,6 +464,10 @@ }, { "alias": "Details", + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "hide": false, "query": "SELECT last(\"id\") AS \"ID\", last(\"state\") as \"State\", last(\"osType\") as \"OS Type\", last(\"affinityScore\") as \"Affinity Score\" FROM \"lpar_details\" WHERE (\"lparname\" =~ /^$LPAR$/) AND $timeFilter GROUP BY \"lparname\" fill(previous)", "rawQuery": true, @@ -481,7 +514,7 @@ "collapsed": false, "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "5KYZifB7z" }, "gridPos": { "h": 1, @@ -491,13 +524,22 @@ }, "id": 21, "panels": [], + "targets": [ + { + "datasource": { + "type": "influxdb", + "uid": "5KYZifB7z" + }, + "refId": "A" + } + ], "title": "Processors", "type": "row" }, { "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "fieldConfig": { "defaults": { @@ -505,6 +547,8 @@ "mode": "palette-classic" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, @@ -558,8 +602,8 @@ "overrides": [] }, "gridPos": { - "h": 11, - "w": 24, + "h": 10, + "w": 12, "x": 0, "y": 11 }, @@ -569,7 +613,8 @@ "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { "mode": "multi", @@ -580,6 +625,10 @@ "targets": [ { "alias": "$tag_lparname", + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "groupBy": [ { "params": [ @@ -619,7 +668,141 @@ "tags": [] } ], - "title": "Processor Units - Utilization Percentage", + "title": "Utilized Processor Units", + "transformations": [], + "type": "timeseries" + }, + { + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "area" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "#EAB839", + "value": 75 + }, + { + "color": "red", + "value": 90 + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 10, + "w": 12, + "x": 12, + "y": 11 + }, + "id": 40, + "links": [], + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "8.1.4", + "targets": [ + { + "alias": "$tag_lparname", + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "hide": false, + "measurement": "/^$ServerName$/", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT (mean(\"utilizedProcUnits\") / mean(\"entitledProcUnits\")) * 100 AS \"usage\" FROM \"lpar_processor\" WHERE (\"servername\" =~ /^$ServerName$/ AND \"lparname\" =~ /^$LPAR$/) AND $timeFilter GROUP BY time($interval), \"lparname\", \"servername\" fill(linear)", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [] + } + ], + "title": "Entitled Processor Units", "transformations": [], "type": "timeseries" }, @@ -627,20 +810,33 @@ "collapsed": false, "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "5KYZifB7z" }, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 22 + "y": 21 }, "id": 15, "panels": [], + "targets": [ + { + "datasource": { + "type": "influxdb", + "uid": "5KYZifB7z" + }, + "refId": "A" + } + ], "title": "Network I/O", "type": "row" }, { + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "description": "", "fieldConfig": { "defaults": { @@ -648,6 +844,8 @@ "mode": "palette-classic" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, @@ -698,14 +896,15 @@ "h": 10, "w": 12, "x": 0, - "y": 23 + "y": 22 }, "id": 8, "options": { "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { "mode": "multi", @@ -718,7 +917,7 @@ "alias": "$tag_lparname ($tag_location)", "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "dsType": "influxdb", "groupBy": [ @@ -792,6 +991,10 @@ "type": "timeseries" }, { + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "description": "", "fieldConfig": { "defaults": { @@ -799,6 +1002,8 @@ "mode": "palette-classic" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, @@ -849,14 +1054,15 @@ "h": 10, "w": 12, "x": 12, - "y": 23 + "y": 22 }, "id": 16, "options": { "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { "mode": "multi", @@ -869,7 +1075,7 @@ "alias": "$tag_lparname ($tag_location)", "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "dsType": "influxdb", "groupBy": [ @@ -943,29 +1149,364 @@ "type": "timeseries" }, { - "collapsed": false, "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 33 - }, - "id": 18, - "panels": [], - "title": "Storage I/O", - "type": "row" - }, - { + "description": "", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 20, + "gradientMode": "opacity", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "binBps" + }, + "overrides": [] + }, + "gridPos": { + "h": 10, + "w": 12, + "x": 0, + "y": 32 + }, + "id": 38, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "8.1.4", + "targets": [ + { + "alias": "$tag_lparname ($tag_location)", + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "lparname" + ], + "type": "tag" + }, + { + "params": [ + "servername" + ], + "type": "tag" + }, + { + "params": [ + "location" + ], + "type": "tag" + }, + { + "params": [ + "linear" + ], + "type": "fill" + } + ], + "hide": false, + "measurement": "lpar_net_sriov", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"receivedBytes\") FROM \"lpar_net_sriov\" WHERE (\"lparname\" =~ /^$LPAR$/ AND \"servername\" =~ /^$ServerName$/) AND $timeFilter GROUP BY time($__interval), \"lparname\", \"servername\", \"location\" fill(linear)", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "receivedBytes" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "lparname", + "operator": "=~", + "value": "/^$LPAR$/" + }, + { + "condition": "AND", + "key": "servername", + "operator": "=~", + "value": "/^$ServerName$/" + } + ] + } + ], + "title": "SR-IOV Logical Network Ports - Received Bytes", + "type": "timeseries" + }, + { + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 20, + "gradientMode": "opacity", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "Bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 10, + "w": 12, + "x": 12, + "y": 32 + }, + "id": 39, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "8.1.4", + "targets": [ + { + "alias": "$tag_lparname ($tag_location)", + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "lparname" + ], + "type": "tag" + }, + { + "params": [ + "servername" + ], + "type": "tag" + }, + { + "params": [ + "location" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "hide": false, + "measurement": "lpar_net_sriov", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"sentBytes\") FROM \"lpar_net_sriov\" WHERE (\"lparname\" =~ /^$LPAR$/ AND \"servername\" =~ /^$ServerName$/) AND $timeFilter GROUP BY time($__interval), \"lparname\", \"servername\", \"location\" fill(none)", + "rawQuery": true, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "sentBytes" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "lparname", + "operator": "=~", + "value": "/^$LPAR$/" + }, + { + "condition": "AND", + "key": "servername", + "operator": "=~", + "value": "/^$ServerName$/" + } + ] + } + ], + "title": "SR-IOV Logical Network Ports - Sent Bytes", + "type": "timeseries" + }, + { + "collapsed": false, + "datasource": { + "type": "influxdb", + "uid": "5KYZifB7z" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 42 + }, + "id": 18, + "panels": [], + "targets": [ + { + "datasource": { + "type": "influxdb", + "uid": "5KYZifB7z" + }, + "refId": "A" + } + ], + "title": "Storage I/O", + "type": "row" + }, + { + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, @@ -998,8 +1539,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1015,7 +1555,7 @@ "h": 10, "w": 12, "x": 0, - "y": 34 + "y": 43 }, "id": 11, "options": { @@ -1026,7 +1566,8 @@ "min" ], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { "mode": "multi", @@ -1039,7 +1580,7 @@ "alias": "$tag_lparname ($tag_location)", "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "dsType": "influxdb", "groupBy": [ @@ -1115,6 +1656,10 @@ "type": "timeseries" }, { + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "description": "", "fieldConfig": { "defaults": { @@ -1122,6 +1667,8 @@ "mode": "palette-classic" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, @@ -1154,8 +1701,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1171,7 +1717,7 @@ "h": 10, "w": 12, "x": 12, - "y": 34 + "y": 43 }, "id": 34, "options": { @@ -1182,7 +1728,8 @@ "min" ], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { "mode": "multi", @@ -1195,7 +1742,7 @@ "alias": "$tag_lparname ($tag_location)", "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "dsType": "influxdb", "groupBy": [ @@ -1271,12 +1818,18 @@ "type": "timeseries" }, { + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, @@ -1309,8 +1862,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1326,7 +1878,7 @@ "h": 10, "w": 12, "x": 0, - "y": 44 + "y": 53 }, "id": 35, "options": { @@ -1337,7 +1889,8 @@ "min" ], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { "mode": "multi", @@ -1350,7 +1903,7 @@ "alias": "$tag_lparname ($tag_location)", "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "dsType": "influxdb", "groupBy": [ @@ -1426,12 +1979,18 @@ "type": "timeseries" }, { + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, @@ -1464,8 +2023,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1481,7 +2039,7 @@ "h": 10, "w": 12, "x": 12, - "y": 44 + "y": 53 }, "id": 19, "options": { @@ -1492,7 +2050,8 @@ "min" ], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { "mode": "multi", @@ -1505,7 +2064,7 @@ "alias": "$tag_lparname ($tag_location)", "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "dsType": "influxdb", "groupBy": [ @@ -1581,6 +2140,10 @@ "type": "timeseries" }, { + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "description": "", "fieldConfig": { "defaults": { @@ -1588,6 +2151,8 @@ "mode": "palette-classic" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, @@ -1620,8 +2185,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1637,7 +2201,7 @@ "h": 8, "w": 12, "x": 0, - "y": 54 + "y": 63 }, "id": 13, "options": { @@ -1648,7 +2212,8 @@ "min" ], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { "mode": "multi", @@ -1661,7 +2226,7 @@ "alias": "$tag_lparname - $col", "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "dsType": "influxdb", "groupBy": [ @@ -1769,7 +2334,7 @@ { "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "description": "", "fieldConfig": { @@ -1778,6 +2343,8 @@ "mode": "palette-classic" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, @@ -1810,8 +2377,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1827,7 +2393,7 @@ "h": 8, "w": 12, "x": 12, - "y": 54 + "y": 63 }, "id": 12, "options": { @@ -1837,8 +2403,9 @@ "max", "min" ], - "displayMode": "hidden", - "placement": "bottom" + "displayMode": "list", + "placement": "bottom", + "showLegend": false }, "tooltip": { "mode": "multi", @@ -1849,6 +2416,10 @@ "targets": [ { "alias": "$tag_lparname writeBytes", + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "dsType": "influxdb", "groupBy": [ { @@ -1944,23 +2515,32 @@ "collapsed": false, "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "5KYZifB7z" }, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 62 + "y": 71 }, "id": 23, "panels": [], + "targets": [ + { + "datasource": { + "type": "influxdb", + "uid": "5KYZifB7z" + }, + "refId": "A" + } + ], "title": "Memory", "type": "row" }, { "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "description": "", "fieldConfig": { @@ -1975,8 +2555,7 @@ "mode": "percentage", "steps": [ { - "color": "red", - "value": null + "color": "red" }, { "color": "orange", @@ -2000,7 +2579,7 @@ "h": 8, "w": 12, "x": 0, - "y": 63 + "y": 72 }, "id": 9, "links": [], @@ -2019,10 +2598,14 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "8.4.4", + "pluginVersion": "9.1.4", "targets": [ { "alias": "$tag_lparname", + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "dsType": "influxdb", "groupBy": [ { @@ -2085,7 +2668,7 @@ { "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "description": "", "fieldConfig": { @@ -2098,8 +2681,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" } ] }, @@ -2111,12 +2693,14 @@ "h": 8, "w": 12, "x": 12, - "y": 63 + "y": 72 }, "id": 33, "links": [], "options": { "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, "orientation": "auto", "reduceOptions": { "calcs": [ @@ -2128,10 +2712,14 @@ "showUnfilled": true, "text": {} }, - "pluginVersion": "8.4.4", + "pluginVersion": "9.1.4", "targets": [ { "alias": "$tag_lparname", + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "dsType": "influxdb", "groupBy": [ { @@ -2193,7 +2781,7 @@ } ], "refresh": "30s", - "schemaVersion": 35, + "schemaVersion": 37, "style": "dark", "tags": [ "Power" @@ -2205,7 +2793,7 @@ "current": {}, "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "definition": "SHOW TAG VALUES FROM \"server_processor\" WITH KEY = \"servername\" WHERE time > now() - 24h", "hide": 0, @@ -2229,7 +2817,7 @@ "current": {}, "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "definition": "SHOW TAG VALUES FROM \"lpar_processor\" WITH KEY = \"lparname\" WHERE servername =~ /$ServerName/", "hide": 0, @@ -2251,7 +2839,7 @@ ] }, "time": { - "from": "now-6h", + "from": "now-24h", "now": false, "to": "now-30s" }, @@ -2282,6 +2870,6 @@ "timezone": "browser", "title": "HMCi - Power Logical Partitions", "uid": "Xl7oHESGz", - "version": 18, + "version": 3, "weekStart": "" -} \ No newline at end of file +} diff --git a/doc/HMCi - Power System Energy.json b/doc/HMCi - Power System Energy.json index 45810de..9298811 100644 --- a/doc/HMCi - Power System Energy.json +++ b/doc/HMCi - Power System Energy.json @@ -1,21 +1,21 @@ { "__inputs": [ { - "name": "DS_INFLUXDB-HMCI", - "label": "InfluxDB-hmci", + "name": "DS_HMCI", + "label": "hmci", "description": "", "type": "datasource", "pluginId": "influxdb", "pluginName": "InfluxDB" } ], - "__elements": [], + "__elements": {}, "__requires": [ { "type": "grafana", "id": "grafana", "name": "Grafana", - "version": "8.4.4" + "version": "9.1.4" }, { "type": "datasource", @@ -46,7 +46,10 @@ "list": [ { "builtIn": 1, - "datasource": "-- Grafana --", + "datasource": { + "type": "datasource", + "uid": "grafana" + }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", @@ -66,11 +69,14 @@ "fiscalYearStartMonth": 0, "graphTooltip": 0, "id": null, - "iteration": 1651048223174, "links": [], "liveNow": false, "panels": [ { + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "gridPos": { "h": 3, "w": 24, @@ -82,14 +88,23 @@ "content": "## Metrics collected from IBM Power HMC\n \nFor more information: [bitbucket.org/mnellemann/hmci](https://bitbucket.org/mnellemann/hmci)\n ", "mode": "markdown" }, - "pluginVersion": "8.4.4", + "pluginVersion": "9.1.4", + "targets": [ + { + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, + "refId": "A" + } + ], "transparent": true, "type": "text" }, { "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "description": "", "fieldConfig": { @@ -98,6 +113,8 @@ "mode": "palette-classic" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, @@ -155,7 +172,8 @@ "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { "mode": "multi", @@ -166,6 +184,10 @@ "targets": [ { "alias": "$tag_servername", + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "groupBy": [ { "params": [ @@ -220,7 +242,7 @@ { "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "fieldConfig": { "defaults": { @@ -268,10 +290,14 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "8.4.4", + "pluginVersion": "9.1.4", "targets": [ { "alias": "$tag_servername", + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "groupBy": [ { "params": [ @@ -327,7 +353,7 @@ "collapsed": false, "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "5KYZifB7z" }, "gridPos": { "h": 1, @@ -338,13 +364,22 @@ "id": 9, "panels": [], "repeat": "ServerName", + "targets": [ + { + "datasource": { + "type": "influxdb", + "uid": "5KYZifB7z" + }, + "refId": "A" + } + ], "title": "$ServerName Thermal", "type": "row" }, { "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "description": "Inlet air temperature.", "fieldConfig": { @@ -397,10 +432,14 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "8.4.4", + "pluginVersion": "9.1.4", "targets": [ { "alias": "$tag_servername - $tag_name", + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "groupBy": [ { "params": [ @@ -455,7 +494,7 @@ { "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "description": "", "fieldConfig": { @@ -464,6 +503,8 @@ "mode": "palette-classic" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, @@ -524,7 +565,8 @@ "lastNotNull" ], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { "mode": "multi", @@ -535,6 +577,10 @@ "targets": [ { "alias": "$col", + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "groupBy": [ { "params": [ @@ -650,7 +696,7 @@ } ], "refresh": "30s", - "schemaVersion": 35, + "schemaVersion": 37, "style": "dark", "tags": [ "Power" @@ -661,7 +707,7 @@ "current": {}, "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "definition": "SHOW TAG VALUES FROM \"server_processor\" WITH KEY = \"servername\" WHERE time > now() - 24h", "hide": 0, @@ -701,6 +747,6 @@ "timezone": "", "title": "HMCi - Power System Energy", "uid": "oHcrgD1Mk", - "version": 4, + "version": 2, "weekStart": "" } \ No newline at end of file diff --git a/doc/HMCi - Power System Resources.json b/doc/HMCi - Power System Resources.json index 115419b..d53a1d2 100644 --- a/doc/HMCi - Power System Resources.json +++ b/doc/HMCi - Power System Resources.json @@ -1,15 +1,15 @@ { "__inputs": [ { - "name": "DS_INFLUXDB-HMCI", - "label": "InfluxDB-hmci", + "name": "DS_HMCI", + "label": "hmci", "description": "", "type": "datasource", "pluginId": "influxdb", "pluginName": "InfluxDB" } ], - "__elements": [], + "__elements": {}, "__requires": [ { "type": "panel", @@ -21,7 +21,7 @@ "type": "grafana", "id": "grafana", "name": "Grafana", - "version": "8.4.4" + "version": "9.1.4" }, { "type": "datasource", @@ -53,7 +53,10 @@ "list": [ { "builtIn": 1, - "datasource": "-- Grafana --", + "datasource": { + "type": "datasource", + "uid": "grafana" + }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", @@ -74,11 +77,14 @@ "gnetId": 1465, "graphTooltip": 0, "id": null, - "iteration": 1651048183794, "links": [], "liveNow": false, "panels": [ { + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "gridPos": { "h": 3, "w": 24, @@ -90,7 +96,16 @@ "content": "## Metrics collected from IBM Power HMC\n \nFor more information: [bitbucket.org/mnellemann/hmci](https://bitbucket.org/mnellemann/hmci)\n ", "mode": "markdown" }, - "pluginVersion": "8.4.4", + "pluginVersion": "9.1.4", + "targets": [ + { + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, + "refId": "A" + } + ], "transparent": true, "type": "text" }, @@ -98,7 +113,7 @@ "collapsed": false, "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "5KYZifB7z" }, "gridPos": { "h": 1, @@ -109,13 +124,22 @@ "id": 20, "panels": [], "repeat": "ServerName", + "targets": [ + { + "datasource": { + "type": "influxdb", + "uid": "5KYZifB7z" + }, + "refId": "A" + } + ], "title": "Server - $ServerName", "type": "row" }, { "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "description": "", "fieldConfig": { @@ -124,6 +148,8 @@ "mode": "palette-classic" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "cores", "axisPlacement": "auto", "barAlignment": 0, @@ -183,7 +209,8 @@ "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { "mode": "multi", @@ -194,6 +221,10 @@ "targets": [ { "alias": "$tag_poolname", + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "dsType": "influxdb", "groupBy": [ { @@ -268,6 +299,10 @@ "type": "timeseries" }, { + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "fieldConfig": { "defaults": { "color": { @@ -315,10 +350,14 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "8.4.4", + "pluginVersion": "9.1.4", "targets": [ { "alias": "$tag_poolname", + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "groupBy": [ { "params": [ @@ -369,10 +408,14 @@ ] } ], - "title": "Shared Processor Pools - Utilization / Assigned", + "title": "Shared Processor Pools - Utilization Percentage", "type": "stat" }, { + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "fieldConfig": { "defaults": { "color": { @@ -427,10 +470,14 @@ "showThresholdMarkers": true, "text": {} }, - "pluginVersion": "8.4.4", + "pluginVersion": "9.1.4", "targets": [ { "alias": "", + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "groupBy": [ { "params": [ @@ -487,7 +534,7 @@ { "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "description": "", "fieldConfig": { @@ -496,6 +543,8 @@ "mode": "palette-classic" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "cores", "axisPlacement": "auto", "barAlignment": 0, @@ -555,7 +604,8 @@ "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { "mode": "multi", @@ -566,6 +616,10 @@ "targets": [ { "alias": "$col", + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "dsType": "influxdb", "groupBy": [ { @@ -647,24 +701,6 @@ ], "type": "alias" } - ], - [ - { - "params": [ - "configuredProcUnits" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - }, - { - "params": [ - "configured" - ], - "type": "alias" - } ] ], "tags": [ @@ -680,6 +716,10 @@ "type": "timeseries" }, { + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "description": "", "fieldConfig": { "defaults": { @@ -687,6 +727,8 @@ "mode": "palette-classic" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "cores", "axisPlacement": "auto", "barAlignment": 0, @@ -746,7 +788,8 @@ "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { "mode": "multi", @@ -759,7 +802,7 @@ "alias": "$col", "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "dsType": "influxdb", "groupBy": [ @@ -877,7 +920,7 @@ { "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "description": "", "fieldConfig": { @@ -886,6 +929,8 @@ "mode": "palette-classic" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "Memory", "axisPlacement": "auto", "barAlignment": 0, @@ -944,7 +989,8 @@ "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { "mode": "multi", @@ -955,6 +1001,10 @@ "targets": [ { "alias": "$col", + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "dsType": "influxdb", "groupBy": [ { @@ -1035,7 +1085,7 @@ { "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "description": "", "fieldConfig": { @@ -1044,6 +1094,8 @@ "mode": "palette-classic" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "bytes", "axisPlacement": "auto", "barAlignment": 0, @@ -1135,7 +1187,8 @@ "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { "mode": "multi", @@ -1146,6 +1199,10 @@ "targets": [ { "alias": "vlan $tag_vlanId - $col bytes", + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "dsType": "influxdb", "groupBy": [ { @@ -1233,6 +1290,10 @@ }, { "alias": "vlan $tag_vlanId - $col pkts", + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "dsType": "influxdb", "groupBy": [ { @@ -1327,7 +1388,7 @@ { "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "description": "", "fieldConfig": { @@ -1336,6 +1397,8 @@ "mode": "palette-classic" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, @@ -1394,7 +1457,8 @@ "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { "mode": "multi", @@ -1405,6 +1469,10 @@ "targets": [ { "alias": "$tag_location", + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "dsType": "influxdb", "groupBy": [ { @@ -1467,7 +1535,7 @@ { "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "description": "", "fieldConfig": { @@ -1476,6 +1544,8 @@ "mode": "palette-classic" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, @@ -1534,7 +1604,8 @@ "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { "mode": "multi", @@ -1545,6 +1616,10 @@ "targets": [ { "alias": "$col", + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "groupBy": [ { "params": [ @@ -1661,7 +1736,7 @@ { "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "fieldConfig": { "defaults": { @@ -1669,6 +1744,8 @@ "mode": "palette-classic" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, @@ -1725,7 +1802,8 @@ "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { "mode": "multi", @@ -1736,6 +1814,10 @@ "targets": [ { "alias": "$tag_servername", + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "groupBy": [ { "params": [ @@ -1789,7 +1871,7 @@ } ], "refresh": "30s", - "schemaVersion": 35, + "schemaVersion": 37, "style": "dark", "tags": [ "Power" @@ -1801,7 +1883,7 @@ "current": {}, "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "definition": "SHOW TAG VALUES FROM \"server_processor\" WITH KEY = \"servername\" WHERE time > now() - 24h", "hide": 0, @@ -1854,6 +1936,6 @@ "timezone": "browser", "title": "HMCi - Power System Resources", "uid": "ClJhHPIGz", - "version": 9, + "version": 2, "weekStart": "" } \ No newline at end of file diff --git a/doc/HMCi - Power Virtual I_O Servers.json b/doc/HMCi - Power Virtual I_O Servers.json index 983ad8e..be3563f 100644 --- a/doc/HMCi - Power Virtual I_O Servers.json +++ b/doc/HMCi - Power Virtual I_O Servers.json @@ -1,15 +1,15 @@ { "__inputs": [ { - "name": "DS_INFLUXDB-HMCI", - "label": "InfluxDB-hmci", + "name": "DS_HMCI", + "label": "hmci", "description": "", "type": "datasource", "pluginId": "influxdb", "pluginName": "InfluxDB" } ], - "__elements": [], + "__elements": {}, "__requires": [ { "type": "panel", @@ -21,7 +21,7 @@ "type": "grafana", "id": "grafana", "name": "Grafana", - "version": "8.4.4" + "version": "9.1.4" }, { "type": "datasource", @@ -53,7 +53,10 @@ "list": [ { "builtIn": 1, - "datasource": "-- Grafana --", + "datasource": { + "type": "datasource", + "uid": "grafana" + }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", @@ -74,11 +77,14 @@ "gnetId": 1465, "graphTooltip": 0, "id": null, - "iteration": 1651048201909, "links": [], "liveNow": false, "panels": [ { + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "gridPos": { "h": 3, "w": 24, @@ -90,14 +96,23 @@ "content": "## Metrics collected from IBM Power HMC\n \nFor more information: [bitbucket.org/mnellemann/hmci](https://bitbucket.org/mnellemann/hmci)\n ", "mode": "markdown" }, - "pluginVersion": "8.4.4", + "pluginVersion": "9.1.4", + "targets": [ + { + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, + "refId": "A" + } + ], "transparent": true, "type": "text" }, { "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "description": "", "fieldConfig": { @@ -108,7 +123,8 @@ "custom": { "align": "center", "displayMode": "auto", - "filterable": true + "filterable": true, + "inspect": false }, "mappings": [], "thresholds": { @@ -189,10 +205,14 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "8.4.4", + "pluginVersion": "9.1.4", "targets": [ { "alias": "Read", + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "groupBy": [ { "params": [ @@ -294,7 +314,7 @@ { "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "description": "", "fieldConfig": { @@ -305,7 +325,8 @@ "custom": { "align": "center", "displayMode": "auto", - "filterable": true + "filterable": true, + "inspect": false }, "mappings": [], "thresholds": { @@ -443,10 +464,14 @@ } ] }, - "pluginVersion": "8.4.4", + "pluginVersion": "9.1.4", "targets": [ { "alias": "Read", + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "groupBy": [ { "params": [ @@ -459,7 +484,7 @@ "measurement": "lpar_details", "orderByTime": "ASC", "policy": "default", - "query": "SELECT last(\"weight\") AS \"Weight\", last(\"entitledProcUnits\") AS \"Entitled\", last(\"currentVirtualProcessors\") AS \"VP\", (last(\"utilizedProcUnits\") / last(\"maxProcUnits\")) * 100 AS \"Utilization\", last(\"mode\") AS \"Mode\" FROM \"vios_processor\" WHERE (\"servername\" =~ /^$ServerName$/) AND (\"viosname\" =~ /^$ViosName$/) AND $timeFilter GROUP BY \"viosname\" fill(previous)", + "query": "SELECT last(\"weight\") AS \"Weight\", last(\"entitledProcUnits\") AS \"Entitled\", last(\"maxProcUnits\") AS \"VP\", (last(\"utilizedProcUnits\") / last(\"maxProcUnits\")) * 100 AS \"Utilization\", last(\"mode\") AS \"Mode\" FROM \"vios_processor\" WHERE (\"servername\" =~ /^$ServerName$/) AND (\"viosname\" =~ /^$ViosName$/) AND $timeFilter GROUP BY \"viosname\" fill(previous)", "queryType": "randomWalk", "rawQuery": true, "refId": "A", @@ -562,7 +587,7 @@ { "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "description": "", "fieldConfig": { @@ -612,10 +637,14 @@ "showThresholdMarkers": true, "text": {} }, - "pluginVersion": "8.4.4", + "pluginVersion": "9.1.4", "targets": [ { "alias": "$tag_viosname", + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "dsType": "influxdb", "groupBy": [ { @@ -678,7 +707,7 @@ { "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "description": "", "fieldConfig": { @@ -687,6 +716,8 @@ "mode": "palette-classic" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, @@ -745,7 +776,8 @@ "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { "mode": "multi", @@ -756,6 +788,10 @@ "targets": [ { "alias": "$tag_viosname - $col", + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "dsType": "influxdb", "groupBy": [ { @@ -846,6 +882,10 @@ "type": "timeseries" }, { + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "description": "", "fieldConfig": { "defaults": { @@ -853,6 +893,8 @@ "mode": "palette-classic" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, @@ -907,7 +949,8 @@ "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { "mode": "multi", @@ -920,7 +963,7 @@ "alias": "$tag_viosname - $tag_location (shared)", "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "dsType": "influxdb", "groupBy": [ @@ -993,7 +1036,7 @@ "alias": "$tag_viosname - $tag_location (generic)", "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "dsType": "influxdb", "groupBy": [ @@ -1060,7 +1103,7 @@ "alias": "$tag_viosname - $tag_location (virtual)", "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "dsType": "influxdb", "groupBy": [ @@ -1122,6 +1165,10 @@ "type": "timeseries" }, { + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "description": "", "fieldConfig": { "defaults": { @@ -1129,6 +1176,8 @@ "mode": "palette-classic" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, @@ -1187,7 +1236,8 @@ "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { "mode": "multi", @@ -1200,7 +1250,7 @@ "alias": "$tag_viosname - $tag_id ($tag_location)", "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "dsType": "influxdb", "groupBy": [ @@ -1280,6 +1330,10 @@ "type": "timeseries" }, { + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "description": "", "fieldConfig": { "defaults": { @@ -1287,6 +1341,8 @@ "mode": "palette-classic" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, @@ -1320,8 +1376,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" } ] }, @@ -1354,7 +1409,8 @@ "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { "mode": "multi", @@ -1367,7 +1423,7 @@ "alias": "$tag_viosname - $tag_location", "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "dsType": "influxdb", "groupBy": [ @@ -1441,6 +1497,10 @@ "type": "timeseries" }, { + "datasource": { + "type": "influxdb", + "uid": "${DS_HMCI}" + }, "description": "", "fieldConfig": { "defaults": { @@ -1448,6 +1508,8 @@ "mode": "palette-classic" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, @@ -1481,8 +1543,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1506,7 +1567,8 @@ "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { "mode": "multi", @@ -1519,7 +1581,7 @@ "alias": "$tag_viosname - $tag_id ($tag_location)", "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "dsType": "influxdb", "groupBy": [ @@ -1600,7 +1662,7 @@ } ], "refresh": "30s", - "schemaVersion": 35, + "schemaVersion": 37, "style": "dark", "tags": [ "Power", @@ -1614,11 +1676,11 @@ "current": {}, "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "definition": "SHOW TAG VALUES FROM \"server_processor\" WITH KEY = \"servername\" WHERE time > now() - 24h", "hide": 0, - "includeAll": false, + "includeAll": true, "label": "Server", "multi": true, "multiFormat": "regex values", @@ -1638,7 +1700,7 @@ "current": {}, "datasource": { "type": "influxdb", - "uid": "${DS_INFLUXDB-HMCI}" + "uid": "${DS_HMCI}" }, "definition": "SHOW TAG VALUES FROM \"vios_details\" WITH KEY = \"viosname\" WHERE servername =~ /$ServerName/ AND time > now() - 24h", "hide": 0, @@ -1660,7 +1722,7 @@ ] }, "time": { - "from": "now-6h", + "from": "now-24h", "now": false, "to": "now-30s" }, @@ -1691,6 +1753,6 @@ "timezone": "browser", "title": "HMCi - Power Virtual I/O Servers", "uid": "DDNEv5vGz", - "version": 7, + "version": 2, "weekStart": "" } \ No newline at end of file diff --git a/doc/HMCi.drawio b/doc/HMCi.drawio index edba317..b9e95a6 100644 --- a/doc/HMCi.drawio +++ b/doc/HMCi.drawio @@ -1 +1 @@ -3VrbcqM4EP0aPybFHfwYx7nNJNnUTk3tvE0JEFgbQIwQvuzXrwQCWyAckglr106lJtBqJNHnnFZLZGZep9s7AvLVEw5hMjO0cDszlzPD0C3DmPEfLdzVFs81a0NMUCic9oZv6B8ojJqwliiEheRIMU4oymVjgLMMBlSyAULwRnaLcCKPmoMY9gzfApD0rX+hkK6EVXfm+4Z7iOKVGNoz3LohBY2zeJNiBUK8OTCZNzPzmmBM66t0ew0THrwmLvVztwOt7cQIzOiYB+DXCwMCA6w3y+/P2cJ6zm7LC0vMje6aF4Yhe39xiwld4RhnILnZWxcEl1kIea86u9v7PGKcC+PfkNKdABOUFDPTiqaJaC1eIQ1W4gZm4RXHid1mOIO15RYl3FnjzhQQ2nj4CQ5eG6Nw4p30YyHCU+CSBPBIABpOARJDesRPsJZH52AAEek7iFNIyY45EJgAitYye4AgYdz67XFiFwKqd8Am+l2DpBQjPWRRUm6Xix6ejHY5vwx2CWKwETbpxWaFKPyWgyoyGyZcGR+/BvjRbw0geI0r2P8oKesGNkDWCOs2u44YGtc4waQa1owi6ARBBRXBr/CgJXTnvqZ1aTCI4BoSCrdHYy5aLUcoTaQa165vN3vdNh6rQ8VqE4Fkn1xbH5eFMVIW+lnJwujJYmY4CZv/IkRrdhnTKii1yW8M909sNO0hKzgniqaZTcDvPsJsUkcDUssJDmBRjBDagK46WoJ6aENXpaW545rA6cLerjRcZXEC+FSqa5ldnyA5w51LkvP6ktMNheacqTRnjmEAK1UikIEhVHv+S1CsfAxIWIx+hP0GKUe7/p9N6SphUUVZ3NKPfJBdIQ7KtILs3Xm8l6MjYyBHO75j93j1CYSx3TdztJIwkyVp9+RJelSB81aV9PFM74zM9MapMn1f0jkLObPohmWZSvgegc+2IVLIQYLijJdBLECQsXzBOYtYnX8lGlIUhjW6kJU1wK/646HNMcpoNX97MbOXymAfo1ZPHO1mRQwi7QdUornQLi3H1CXhNJludLhF7y/8bQ667ujRMuQecBQVjBZduNo5flx4zphM/bB4Gp8ve0+/4A2D2tCqBX5UjpWV/UZ67WTTEEAvUmZTJ/CgH01R8crgNYnzMJnaimTqTpVM56dIpiFbndvnzymzeueeWY/NerQuT63CYbVJxBgU67SS1C1FgTOVJlHyM17nc7h7vvp6m/7are+jX4o90Z9lxgpZDWe8Kn34MeNpo1utPqKs3P4eMMfCH1X/+O6EgBCxaDdtQoJTHw3ojnfZB8YwFcBYUwEzaqvyBazZPkVjouSoMOQoSqEA78PrIsh4aETXRZnzeoohxWLMEkyESXo5hVDPiQ/tfqLlg2LpVO1DbPf32WANFbSe5jnnUc8OBfTdpavVvFFTX3rvrVBNGahO/D+lPrWHADE1TfufAWJrMvOPbazVgOiGIfVwoTsTYOKdopSUCsYm9RzUi5pcLwb8aA0FUsnYL0lCGIGyyqbvP5t1R5aQJ/s60exxDxexgXOrMk2uAooPpVHJ6AUXiCLMJeJjSnGq0A7FncUE1+el1+1Xvyk+KHh6t5hTVQ2qouEzzjfvy2VU0J8L6+4i+PIjAw9o8/00OyxFXDtMe5PIypcZu0Ey/yMyH5vk2TJcsST0sBjNcMUJwifRm93uP3XX68H+DwbMm38B \ No newline at end of file +5VrbcqM4EP0aPybFHfwY27nNJJnUpqZm3qYECKwNSIwQvszXrwTCtrg4OBvKqd08JNBqhNSnz1FLZGLO080tBdnykYQwmRhauJmYi4lh6Lrm8D/Csq0s06lbGWKKQum0N7ygP1AaNWktUAhzxZERkjCUqcaAYAwDptgApWStukUkUd+agRi2DC8BSNrWHyhky3peznTfcAdRvJSv9gw5vxTUznIm+RKEZH1gMq8n5pwSwqqrdDOHiQheHZfquZue1t3AKMRsyAPw64UBgQFW68X3JzyznvBNcWHJsbFtPWEY8vnLW0LZksQEg+R6b51RUuAQil51frf3eSAkk8a/IWNbCSYoGOGmJUsT2Zq/QhYs5Q3E4ZXAid9igmFluUGJcNaEMwOU1R5+QoLX2iidRCftWMjw5KSgATwSgDqnAI0hO+JnVn4iOgcvkJG+hSSFjG65A4UJYGilZg+QSRjv/PY48QsJ1QmwyX5XICnkmyaGk/Dxz3zKr2JWxqRpucdRUmwWHS0rSC95f/rlppUPPG0zcRlsE8Rhp3zSs/USMfiSgTKya058FV+/SpAHf2cAwWtcps23gvFuYJ0IVYboNr+OOJpzkhBavtaMIugEQQk1Ja/woCV0p76mNdOoNwP41BjcHMVMtlqOZKqUKteubtd73tcey0PGayOBbJ+dm++nlTGQVvqnopXRS6sQrVq8qg13j/xt2j3ORU7kdTMfgN98hNuUjnqollESwDwfQLQeXjW4BPXQhm4Xl6aOawKnCftupRIsixMghlJeq9n1AZQz3KlCOa9NOd3o4JwzFufMIRnAS50IYNCHast/AfKlTwAN88GP8L8gFWhXv/mQrhIeVYTjfqEfmF0hCYq0hOxkHW9pdGT0aLTjO3Yrrz4gYWz3TY3uTJjRRNo9u0gPKpDeqrLer/TOQKU3zqX0bUpnPOSi2jEsy+yE7wH4fBujhBwkKMaiDOIBgrQqmRji+4Qr2ZCiMKzQhbysAX7ZnwhtRhBm5fjt2cRedAb7WGq1yLHb7MiXKPuJLtJcaJeWY+oKcWqlGxxu2fuzmM1B1w0+WobaA4minKdFE67dGN9PPGeIUt/PHofrZevpZ7LmUBtaucAP0liV2W/Ia0NNQwC9qFNNncCDfjRGxauCVwvnoZjaHWLqjiWm03OIachX593zn0lZvc+urMdGPZiX52ZhP9uUxOgl67iU1K2OAmcsTqLkV7zKpnD7dPX1Jv29Xd1Fvzv2RH8VmBeyGsGiKr3/ORGy0axWHxAu2mcJJwFzLPxR+SN2JxSEiEe7bpMUHPtoQHe8yzYwhtkBjDUWMIO2Kl/Aiu9TNE5KgQpHjqEUSvDevS4CLEIju86LTNRTHCkeYy4wEaHp5RhE/Uz5sNtP7PKhY+ns2ofY7r/PBquvoPU0z/kc9WxfQE8uXa16RnV96Z1aoZoqUI34f0h9avcBYmqa9h8DxNbUzD+2se4GRDcMpYcL3RkBE+8cpaRSMNbSc1Avamq9GIijNRQoJWO7JAlhBIpSTU8/m3UHlpBn+7pR73EPF7Gec6siTa4CRg6pUdLomeSIISIo4hPGSNrBHUYaiwmpzkvnu6+GY3xQ8PRmMddVNXQVDR9xvnlXLKKc/ZpZtxfBl58Y3KP19/PssE7P286xD90PnS2Zj436/5HhHScIH5Te/Hb/qbxaD/b/cGBe/wM= \ No newline at end of file diff --git a/doc/HMCi.png b/doc/HMCi.png index 6ea10f1..ca3b45c 100644 Binary files a/doc/HMCi.png and b/doc/HMCi.png differ diff --git a/doc/hmci.toml b/doc/hmci.toml index fe33328..9427886 100644 --- a/doc/hmci.toml +++ b/doc/hmci.toml @@ -37,7 +37,7 @@ password = "hmcihmci" unsafe = true # Ignore SSL cert. errors # Another HMC example -#[hmc.Prod-HMC] +#[hmc.site2] #url = "https://10.10.10.30:12443" #username = "user" #password = "password" diff --git a/doc/readme-aix.md b/doc/readme-aix.md index 7423de5..4e1fd68 100644 --- a/doc/readme-aix.md +++ b/doc/readme-aix.md @@ -18,3 +18,4 @@ cp /opt/hmci/doc/hmci.toml /etc/ ``` Now modify */etc/hmci.toml* and test your setup by running ```/opt/hmci/bin/hmci -d``` + diff --git a/doc/readme-debian.md b/doc/readme-debian.md index 421325d..d336d00 100644 --- a/doc/readme-debian.md +++ b/doc/readme-debian.md @@ -4,11 +4,12 @@ Please note that the software versions referenced in this document might have ch More details are available in the [README.md](../README.md) file. +All commands should be run as root or through sudo. ## Install the Java Runtime from repository ```shell -sudo apt-get install default-jre-headless +apt-get install default-jre-headless ``` @@ -16,10 +17,10 @@ sudo apt-get install default-jre-headless ```shell wget https://dl.influxdata.com/influxdb/releases/influxdb_1.8.10_amd64.deb -sudo dpkg -i influxdb_1.8.10_amd64.deb -sudo systemctl daemon-reload -sudo systemctl enable influxdb -sudo systemctl start influxdb +dpkg -i influxdb_1.8.10_amd64.deb +systemctl daemon-reload +systemctl enable influxdb +systemctl start influxdb ``` Run the ```influx``` cli command and create the *hmci* database. @@ -30,10 +31,10 @@ Run the ```influx``` cli command and create the *hmci* database. ```shell sudo apt-get install -y adduser libfontconfig1 wget https://dl.grafana.com/oss/release/grafana_9.1.3_amd64.deb -sudo dpkg -i grafana_9.1.3_amd64.deb -sudo systemctl daemon-reload -sudo systemctl enable grafana-server -sudo systemctl start grafana-server +dpkg -i grafana_9.1.3_amd64.deb +systemctl daemon-reload +systemctl enable grafana-server +systemctl start grafana-server ``` When logged in to Grafana (port 3000, admin/admin) create a datasource that points to the local InfluxDB. Now import the provided dashboards. @@ -43,11 +44,11 @@ When logged in to Grafana (port 3000, admin/admin) create a datasource that poin ```shell wget https://bitbucket.org/mnellemann/hmci/downloads/hmci_1.3.1-1_all.deb -sudo dpkg -i hmci_1.3.1-1_all.deb +dpkg -i hmci_1.3.1-1_all.deb cp /opt/hmci/doc/hmci.toml /etc/ cp /opt/hmci/doc/hmci.service /etc/systemd/system/ -sudo systemctl daemon-reload -sudo systemctl enable hmci +systemctl daemon-reload +systemctl enable hmci ``` Now modify */etc/hmci.toml* and test setup by running ```/opt/hmci/bin/hmci -d``` manually and verify connection to HMC and InfluxDB. Afterwards start service with ```systemctl start hmci``` . diff --git a/doc/readme-firewall.md b/doc/readme-firewall.md index 8b0907e..f27c398 100644 --- a/doc/readme-firewall.md +++ b/doc/readme-firewall.md @@ -4,6 +4,8 @@ And any other Linux distribution using *firewalld*. +All commands should be run as root or through sudo. + ### Allow remote access to Grafana on port 3000 ```shell diff --git a/doc/readme-redhat.md b/doc/readme-redhat.md index 5f752d6..2478a71 100644 --- a/doc/readme-redhat.md +++ b/doc/readme-redhat.md @@ -4,11 +4,14 @@ Please note that the software versions referenced in this document might have ch More details are available in the [README.md](../README.md) file. If you are running Linux on Power (ppc64le) you should look for ppc64le packages at the [Power DevOps](https://www.power-devops.com/) website. +All commands should be run as root or through sudo. ## Install the Java Runtime from repository ```shell -sudo dnf install java-11-openjdk-headless +dnf install java-11-openjdk-headless +# or +yum install java-11-openjdk-headless ``` @@ -16,10 +19,10 @@ sudo dnf install java-11-openjdk-headless ```shell wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.10.x86_64.rpm -sudo yum localinstall influxdb-1.8.10.x86_64.rpm -sudo systemctl daemon-reload -sudo systemctl enable influxdb -sudo systemctl start influxdb +rpm -ivh influxdb-1.8.10.x86_64.rpm +systemctl daemon-reload +systemctl enable influxdb +systemctl start influxdb ``` Run the ```influx``` cli command and create the *hmci* database. @@ -29,10 +32,10 @@ Run the ```influx``` cli command and create the *hmci* database. ```shell wget https://dl.grafana.com/oss/release/grafana-9.1.3-1.x86_64.rpm -sudo yum install grafana-9.1.3-1.x86_64.rpm -sudo systemctl daemon-reload -sudo systemctl enable grafana-server -sudo systemctl start grafana-server +rpm -ivh grafana-9.1.3-1.x86_64.rpm +systemctl daemon-reload +systemctl enable grafana-server +systemctl start grafana-server ``` When logged in to Grafana (port 3000, admin/admin) create a datasource that points to the local InfluxDB. Now import the provided dashboards. @@ -41,13 +44,13 @@ When logged in to Grafana (port 3000, admin/admin) create a datasource that poin ## Download and Install HMCi ```shell -wget https://bitbucket.org/mnellemann/hmci/downloads/hmci_1.3.1-1_all.deb -sudo dpkg -i hmci_1.3.1-1_all.deb +wget https://bitbucket.org/mnellemann/hmci/downloads/hmci-1.3.1-1_all.rpm +rpm -ivh hmci-1.3.1-1_all.rpm cp /opt/hmci/doc/hmci.toml /etc/ cp /opt/hmci/doc/hmci.service /etc/systemd/system/ -sudo systemctl daemon-reload -sudo systemctl enable hmci -sudo systemctl start hmci +systemctl daemon-reload +systemctl enable hmci +systemctl start hmci ``` Now modify */etc/hmci.toml* and test your setup by running ```/opt/hmci/bin/hmci -d``` manually and verify connection to HMC and InfluxDB. Afterwards start service with ```systemctl start hmci``` . diff --git a/doc/readme-suse.md b/doc/readme-suse.md index ecb060e..f8924de 100644 --- a/doc/readme-suse.md +++ b/doc/readme-suse.md @@ -4,11 +4,12 @@ Please note that the software versions referenced in this document might have ch More details are available in the [README.md](../README.md) file. If you are running Linux on Power (ppc64le) you should look for ppc64le packages at the [Power DevOps](https://www.power-devops.com/) website. +All commands should be run as root or through sudo. ## Install the Java Runtime from repository ```shell -sudo zypper install java-11-openjdk-headless +zypper install java-11-openjdk-headless ``` @@ -16,10 +17,10 @@ sudo zypper install java-11-openjdk-headless ```shell wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.10.x86_64.rpm -sudo yum localinstall influxdb-1.8.10.x86_64.rpm -sudo systemctl daemon-reload -sudo systemctl enable influxdb -sudo systemctl start influxdb +rpm -ivh influxdb-1.8.10.x86_64.rpm +systemctl daemon-reload +systemctl enable influxdb +systemctl start influxdb ``` Run the ```influx``` cli command and create the *hmci* database. @@ -29,10 +30,10 @@ Run the ```influx``` cli command and create the *hmci* database. ```shell wget https://dl.grafana.com/oss/release/grafana-9.1.3-1.x86_64.rpm -sudo rpm -i --nodeps grafana-9.1.3-1.x86_64.rpm -sudo systemctl daemon-reload -sudo systemctl enable grafana-server -sudo systemctl start grafana-server +rpm -ivh --nodeps grafana-9.1.3-1.x86_64.rpm +systemctl daemon-reload +systemctl enable grafana-server +systemctl start grafana-server ``` When logged in to Grafana (port 3000, admin/admin) create a datasource that points to the local InfluxDB. Now import the provided dashboards. @@ -41,12 +42,12 @@ When logged in to Grafana (port 3000, admin/admin) create a datasource that poin ## Download and Install HMCi ```shell -wget https://bitbucket.org/mnellemann/hmci/downloads/hmci_1.3.1-1_all.deb -sudo dpkg -i hmci_1.3.1-1_all.deb +wget https://bitbucket.org/mnellemann/hmci/downloads/hmci-1.3.1-1_all.rpm +rpm -ivh hmci-1.3.1-1_all.rpm cp /opt/hmci/doc/hmci.toml /etc/ cp /opt/hmci/doc/hmci.service /etc/systemd/system/ -sudo systemctl daemon-reload -sudo systemctl enable hmci +systemctl daemon-reload +systemctl enable hmci ``` Now modify */etc/hmci.toml* and test your setup by running ```/opt/hmci/bin/hmci -d``` manually and verify connection to HMC and InfluxDB. Afterwards start service with ```systemctl start hmci``` . diff --git a/doc/scripts/influxdb-delete-lpar.sh b/doc/scripts/influxdb-delete-lpar.sh new file mode 100644 index 0000000..f965b86 --- /dev/null +++ b/doc/scripts/influxdb-delete-lpar.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +# For InfluxDB v. 1.x + +if [ "$#" -ne 1 ]; then + echo "Usage: $0 " + exit 1 +fi + + +DB="hmci" +LPAR=$1 + +for s in $(influx -database ${DB} -execute 'SHOW SERIES' -format column | grep $LPAR); do + n=$(echo $s | cut -f 1 -d,) + + influx -database ${DB} -execute "DELETE FROM ${n} WHERE \"lparname\"=\"${LPAR}\" AND time > '1980-01-01';" + influx -database ${DB} -execute "DROP SERIES FROM ${n} WHERE \"lparname\"=\"${LPAR}\";" +done diff --git a/gradle.properties b/gradle.properties index f5064c3..c8c8b59 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ projectId = hmci projectGroup = biz.nellemann.hmci -projectVersion = 1.3.2 +projectVersion = 1.3.3 diff --git a/src/main/java/biz/nellemann/hmci/InfluxClient.java b/src/main/java/biz/nellemann/hmci/InfluxClient.java index 119456a..796ba3b 100644 --- a/src/main/java/biz/nellemann/hmci/InfluxClient.java +++ b/src/main/java/biz/nellemann/hmci/InfluxClient.java @@ -18,14 +18,11 @@ package biz.nellemann.hmci; import biz.nellemann.hmci.Configuration.InfluxObject; import org.influxdb.BatchOptions; import org.influxdb.InfluxDB; -import org.influxdb.InfluxDBException; import org.influxdb.InfluxDBFactory; -import org.influxdb.dto.BatchPoints; import org.influxdb.dto.Point; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.net.SocketException; import java.time.Instant; import java.util.ArrayList; import java.util.List; @@ -313,6 +310,7 @@ public final class InfluxClient { getPartitionProcessor(partition, timestamp).forEach( it -> influxDB.write(it)); //getPartitionNetworkVirtual(partition, timestamp).forEach(it -> batchPoints.point(it)); getPartitionNetworkVirtual(partition, timestamp).forEach(it -> influxDB.write(it)); + getPartitionSriovLogicalPorts(partition, timestamp).forEach(it -> influxDB.write(it)); //getPartitionStorageVirtualGeneric(partition, timestamp).forEach(it -> batchPoints.point(it)); getPartitionStorageVirtualGeneric(partition, timestamp).forEach(it -> influxDB.write(it)); //getPartitionStorageVirtualFibreChannel(partition, timestamp).forEach(it -> batchPoints.point(it)); @@ -340,6 +338,11 @@ public final class InfluxClient { return processMeasurementMap(metrics, timestamp, "lpar_net_virtual"); // Not 'network' } + private static List getPartitionSriovLogicalPorts(LogicalPartition partition, Instant timestamp) { + List metrics = partition.getSriovLogicalPorts(); + return processMeasurementMap(metrics, timestamp, "lpar_net_sriov"); // Not 'network' + } + // TODO: lpar_net_sriov private static List getPartitionStorageVirtualGeneric(LogicalPartition partition, Instant timestamp) { diff --git a/src/main/java/biz/nellemann/hmci/LogicalPartition.java b/src/main/java/biz/nellemann/hmci/LogicalPartition.java index 758237e..3177a52 100644 --- a/src/main/java/biz/nellemann/hmci/LogicalPartition.java +++ b/src/main/java/biz/nellemann/hmci/LogicalPartition.java @@ -162,6 +162,42 @@ class LogicalPartition extends MetaSystem { } + // LPAR Network - SR-IOV + List getSriovLogicalPorts() { + + List list = new ArrayList<>(); + + metrics.systemUtil.sample.lparsUtil.network.sriovLogicalPorts.forEach( port -> { + + HashMap tagsMap = new HashMap<>(); + tagsMap.put("servername", system.name); + tagsMap.put("lparname", name); + tagsMap.put("location", port.physicalLocation); + tagsMap.put("vnicDeviceMode", port.vnicDeviceMode); + tagsMap.put("configurationType", port.configurationType); + log.trace("getSriovLogicalPorts() - tags: {}", tagsMap); + + HashMap fieldsMap = new HashMap<>(); + fieldsMap.put("drcIndex", port.drcIndex); + fieldsMap.put("physicalPortId", port.physicalPortId); + fieldsMap.put("physicalDrcIndex", port.physicalDrcIndex); + fieldsMap.put("droppedPackets", port.droppedPackets); + fieldsMap.put("receivedBytes", port.receivedBytes); + fieldsMap.put("receivedPackets", port.receivedPackets); + fieldsMap.put("sentBytes", port.sentBytes); + fieldsMap.put("sentPackets", port.sentPackets); + fieldsMap.put("errorIn", port.errorIn); + fieldsMap.put("errorOut", port.errorOut); + fieldsMap.put("transferredBytes", port.transferredBytes); + log.trace("getSriovLogicalPorts() - fields: {}", fieldsMap); + + list.add(new Measurement(tagsMap, fieldsMap)); + }); + + return list; + } + + // LPAR Storage - Virtual Generic List getVirtualGenericAdapterMetrics() { diff --git a/src/main/java/biz/nellemann/hmci/pcm/Network.java b/src/main/java/biz/nellemann/hmci/pcm/Network.java index cbd963d..2860cb1 100644 --- a/src/main/java/biz/nellemann/hmci/pcm/Network.java +++ b/src/main/java/biz/nellemann/hmci/pcm/Network.java @@ -10,4 +10,6 @@ public final class Network { public final List sharedAdapters = new ArrayList<>(); public final List virtualEthernetAdapters = new ArrayList<>(); + public final List sriovLogicalPorts = new ArrayList<>(); + } diff --git a/src/main/java/biz/nellemann/hmci/pcm/SriovLogicalPort.java b/src/main/java/biz/nellemann/hmci/pcm/SriovLogicalPort.java new file mode 100644 index 0000000..5a0d273 --- /dev/null +++ b/src/main/java/biz/nellemann/hmci/pcm/SriovLogicalPort.java @@ -0,0 +1,44 @@ +package biz.nellemann.hmci.pcm; + +import com.serjltt.moshi.adapters.FirstElement; + +public class SriovLogicalPort { + + public String drcIndex = ""; + + public String physicalLocation = ""; // "U78CA.001.CSS0CXA-P1-C2-C1-T1-S2" + + public String physicalDrcIndex = ""; + + public Number physicalPortId = 0; + + public String vnicDeviceMode = ""; // "NonVNIC" + + public String configurationType = ""; // "Ethernet" + + + @FirstElement + public Number receivedPackets = 0.0; + + @FirstElement + public Number sentPackets = 0.0; + + @FirstElement + public Number droppedPackets = 0.0; + + @FirstElement + public Number sentBytes = 0.0; + + @FirstElement + public Number receivedBytes = 0.0; + + @FirstElement + public Number errorIn = 0.0; + + @FirstElement + public Number errorOut = 0.0; + + @FirstElement + public Number transferredBytes = 0.0; + +} diff --git a/src/test/groovy/biz/nellemann/hmci/LogicalPartitionTest.groovy b/src/test/groovy/biz/nellemann/hmci/LogicalPartitionTest.groovy index ec007a8..cd47fda 100644 --- a/src/test/groovy/biz/nellemann/hmci/LogicalPartitionTest.groovy +++ b/src/test/groovy/biz/nellemann/hmci/LogicalPartitionTest.groovy @@ -139,4 +139,31 @@ class LogicalPartitionTest extends Specification { listOfMeasurements.first().fields['readBytes'] == 0.0 } + void "test getSriovLogicalPortMetrics'"() { + + setup: + def testFile = new File(getClass().getResource('/pcm-data-logical-partition-sriov.json').toURI()) + def testJson = testFile.getText('UTF-8') + ManagedSystem system = new ManagedSystem("e09834d1-c930-3883-bdad-405d8e26e166", "Test Name","Test Type", "Test Model", "Test S/N") + LogicalPartition lpar = new LogicalPartition("2DE05DB6-8AD5-448F-8327-0F488D287E82", "9Flash01", "OS400", system) + + when: + lpar.processMetrics(testJson) + List listOfMeasurements = lpar.getSriovLogicalPorts() + + then: + listOfMeasurements.size() == 6 + listOfMeasurements.first().tags['location'] == "U78CA.001.CSS0CXA-P1-C2-C1-T1-S2" + listOfMeasurements.first().tags['vnicDeviceMode'] == "NonVNIC" + listOfMeasurements.first().tags['configurationType'] == "Ethernet" + listOfMeasurements.first().fields['drcIndex'] == "654327810" + listOfMeasurements.first().fields['physicalPortId'] == 0 + listOfMeasurements.first().fields['physicalDrcIndex'] == "553713681" + listOfMeasurements.first().fields['receivedPackets'] == 16.867 + listOfMeasurements.first().fields['sentPackets'] == 0.067 + listOfMeasurements.first().fields['sentBytes'] == 8.533 + listOfMeasurements.first().fields['receivedBytes'] == 1032.933 + listOfMeasurements.first().fields['transferredBytes'] == 1041.466 + } + } diff --git a/src/test/resources/pcm-data-logical-partition-sriov.json b/src/test/resources/pcm-data-logical-partition-sriov.json new file mode 100644 index 0000000..9d6f57b --- /dev/null +++ b/src/test/resources/pcm-data-logical-partition-sriov.json @@ -0,0 +1,1005 @@ +{ + "systemUtil": { + "utilInfo": { + "version": "1.3.0", + "metricType": "Processed", + "frequency": 30, + "startTimeStamp": "2022-09-07T13:43:00+0200", + "endTimeStamp": "2022-09-07T13:43:00+0200", + "mtms": "9080-MHE*78F0BC7", + "name": "DK-DCB-E880C", + "uuid": "0311a584-c3d9-3943-b459-d5ab3b448017", + "metricArrayOrder": [ + "AVG" + ] + }, + "utilSamples": [ + { + "sampleType": "LogicalPartition", + "sampleInfo": { + "timeStamp": "2022-09-07T13:43:00+0200", + "status": 0 + }, + "lparsUtil": [ + { + "id": 5, + "uuid": "6A350D98-F180-4685-836A-7F877BD04603", + "name": "Zeus", + "state": "Running", + "type": "IBMi", + "osType": "Unknown", + "affinityScore": 97, + "memory": { + "logicalMem": [ + 3112960 + ], + "backedPhysicalMem": [ + 3112960 + ] + }, + "processor": { + "weight": 0, + "mode": "share_idle_procs", + "maxVirtualProcessors": [ + 48 + ], + "currentVirtualProcessors": [ + 0 + ], + "maxProcUnits": [ + 48 + ], + "entitledProcUnits": [ + 32 + ], + "utilizedProcUnits": [ + 16.335 + ], + "utilizedCappedProcUnits": [ + 32 + ], + "utilizedUncappedProcUnits": [ + 0 + ], + "idleProcUnits": [ + 15.665 + ], + "donatedProcUnits": [ + 0 + ], + "timeSpentWaitingForDispatch": [ + 0 + ], + "timePerInstructionExecution": [ + 0 + ] + }, + "network": { + "sriovLogicalPorts": [ + { + "drcIndex": "654327810", + "physicalLocation": "U78CA.001.CSS0CXA-P1-C2-C1-T1-S2", + "physicalDrcIndex": "553713681", + "physicalPortId": 0, + "vnicDeviceMode": "NonVNIC", + "configurationType": "Ethernet", + "receivedPackets": [ + 16.867 + ], + "sentPackets": [ + 0.067 + ], + "droppedPackets": [ + 0 + ], + "sentBytes": [ + 8.533 + ], + "receivedBytes": [ + 1032.933 + ], + "errorIn": [ + 0 + ], + "errorOut": [ + 0 + ], + "transferredBytes": [ + 1041.466 + ] + }, + { + "drcIndex": "654376961", + "physicalLocation": "U78CA.001.CSS0CXA-P1-C6-C1-T4-S1", + "physicalDrcIndex": "553713685", + "physicalPortId": 3, + "vnicDeviceMode": "NonVNIC", + "configurationType": "Ethernet", + "receivedPackets": [ + 0 + ], + "sentPackets": [ + 0 + ], + "droppedPackets": [ + 0 + ], + "sentBytes": [ + 0 + ], + "receivedBytes": [ + 0 + ], + "errorIn": [ + 0 + ], + "errorOut": [ + 0 + ], + "transferredBytes": [ + 0 + ] + }, + { + "drcIndex": "654376962", + "physicalLocation": "U78CA.001.CSS0CXA-P1-C6-C1-T2-S2", + "physicalDrcIndex": "553713685", + "physicalPortId": 1, + "vnicDeviceMode": "NonVNIC", + "configurationType": "Ethernet", + "receivedPackets": [ + 714.033 + ], + "sentPackets": [ + 1011.767 + ], + "droppedPackets": [ + 0 + ], + "sentBytes": [ + 949022.933 + ], + "receivedBytes": [ + 530502.7 + ], + "errorIn": [ + 0 + ], + "errorOut": [ + 0 + ], + "transferredBytes": [ + 1479525.633 + ] + }, + { + "drcIndex": "654360578", + "physicalLocation": "U78CA.001.CSS0DDM-P1-C6-C1-T2-S2", + "physicalDrcIndex": "553713701", + "physicalPortId": 1, + "vnicDeviceMode": "NonVNIC", + "configurationType": "Ethernet", + "receivedPackets": [ + 681.467 + ], + "sentPackets": [ + 940.5 + ], + "droppedPackets": [ + 0 + ], + "sentBytes": [ + 750153.067 + ], + "receivedBytes": [ + 295675.167 + ], + "errorIn": [ + 0 + ], + "errorOut": [ + 0 + ], + "transferredBytes": [ + 1045828.234 + ] + }, + { + "drcIndex": "654360577", + "physicalLocation": "U78CA.001.CSS0DDM-P1-C6-C1-T4-S1", + "physicalDrcIndex": "553713701", + "physicalPortId": 3, + "vnicDeviceMode": "NonVNIC", + "configurationType": "Ethernet", + "receivedPackets": [ + 0 + ], + "sentPackets": [ + 0 + ], + "droppedPackets": [ + 0 + ], + "sentBytes": [ + 0 + ], + "receivedBytes": [ + 0 + ], + "errorIn": [ + 0 + ], + "errorOut": [ + 0 + ], + "transferredBytes": [ + 0 + ] + }, + { + "drcIndex": "654344194", + "physicalLocation": "U78CA.001.CSS0DDM-P1-C2-C1-T1-S2", + "physicalDrcIndex": "553713697", + "physicalPortId": 0, + "vnicDeviceMode": "NonVNIC", + "configurationType": "Ethernet", + "receivedPackets": [ + 0.3 + ], + "sentPackets": [ + 0.067 + ], + "droppedPackets": [ + 0 + ], + "sentBytes": [ + 8.533 + ], + "receivedBytes": [ + 27.933 + ], + "errorIn": [ + 0 + ], + "errorOut": [ + 0 + ], + "transferredBytes": [ + 36.466 + ] + } + ] + }, + "storage": { + "genericVirtualAdapters": [ + { + "id": "vhost0", + "type": "virtual", + "viosId": 2, + "physicalLocation": "U9080.MHE.78F0BC7-V5-C99", + "numOfReads": [ + 0 + ], + "numOfWrites": [ + 0 + ], + "readBytes": [ + 0 + ], + "writeBytes": [ + 0 + ], + "transmittedBytes": [ + null + ] + } + ], + "virtualFiberChannelAdapters": [ + { + "wwpn": "c0507609dede0050", + "wwpn2": "c0507609dede0051", + "physicalLocation": "U9080.MHE.78F0BC7-V5-C56", + "physicalPortWWPN": "10000090fadc858a", + "viosId": 2, + "numOfReads": [ + 209.2 + ], + "numOfWrites": [ + 109.767 + ], + "readBytes": [ + 3921715.2 + ], + "writeBytes": [ + 956928 + ], + "runningSpeed": [ + 17 + ], + "transmittedBytes": [ + 0 + ] + }, + { + "wwpn": "c0507609dede0030", + "wwpn2": "c0507609dede0031", + "physicalLocation": "U9080.MHE.78F0BC7-V5-C40", + "physicalPortWWPN": "10000090fae0cb47", + "viosId": 2, + "numOfReads": [ + 221.433 + ], + "numOfWrites": [ + 63.733 + ], + "readBytes": [ + 4252262.4 + ], + "writeBytes": [ + 851712 + ], + "runningSpeed": [ + 17 + ], + "transmittedBytes": [ + 0 + ] + }, + { + "wwpn": "c0507609dede0052", + "wwpn2": "c0507609dede0053", + "physicalLocation": "U9080.MHE.78F0BC7-V5-C57", + "physicalPortWWPN": "10000090fae09867", + "viosId": 3, + "numOfReads": [ + 211.5 + ], + "numOfWrites": [ + 109.4 + ], + "readBytes": [ + 3912192 + ], + "writeBytes": [ + 942643.2 + ], + "runningSpeed": [ + 17 + ], + "transmittedBytes": [ + 0 + ] + }, + { + "wwpn": "c0507609dede003a", + "wwpn2": "c0507609dede003b", + "physicalLocation": "U9080.MHE.78F0BC7-V5-C45", + "physicalPortWWPN": "10000090fae09351", + "viosId": 3, + "numOfReads": [ + 204.533 + ], + "numOfWrites": [ + 196.733 + ], + "readBytes": [ + 3794534.4 + ], + "writeBytes": [ + 1438822.4 + ], + "runningSpeed": [ + 17 + ], + "transmittedBytes": [ + 0 + ] + }, + { + "wwpn": "c0507609dede005c", + "wwpn2": "c0507609dede005d", + "physicalLocation": "U9080.MHE.78F0BC7-V5-C62", + "physicalPortWWPN": "10000090fadc81fe", + "viosId": 2, + "numOfReads": [ + 223.533 + ], + "numOfWrites": [ + 114.9 + ], + "readBytes": [ + 3983923.2 + ], + "writeBytes": [ + 1277798.4 + ], + "runningSpeed": [ + 17 + ], + "transmittedBytes": [ + 0 + ] + }, + { + "wwpn": "c0507609dede003c", + "wwpn2": "c0507609dede003d", + "physicalLocation": "U9080.MHE.78F0BC7-V5-C46", + "physicalPortWWPN": "10000090fae099e8", + "viosId": 2, + "numOfReads": [ + 201.633 + ], + "numOfWrites": [ + 194.233 + ], + "readBytes": [ + 3683788.8 + ], + "writeBytes": [ + 1417181.867 + ], + "runningSpeed": [ + 17 + ], + "transmittedBytes": [ + 0 + ] + }, + { + "wwpn": "c0507609dede005e", + "wwpn2": "c0507609dede005f", + "physicalLocation": "U9080.MHE.78F0BC7-V5-C63", + "physicalPortWWPN": "10000090fadc85cd", + "viosId": 3, + "numOfReads": [ + 227.3 + ], + "numOfWrites": [ + 108.1 + ], + "readBytes": [ + 4125696 + ], + "writeBytes": [ + 1262745.6 + ], + "runningSpeed": [ + 17 + ], + "transmittedBytes": [ + 0 + ] + }, + { + "wwpn": "c0507609dede003e", + "wwpn2": "c0507609dede003f", + "physicalLocation": "U9080.MHE.78F0BC7-V5-C47", + "physicalPortWWPN": "10000090fae09352", + "viosId": 3, + "numOfReads": [ + 201.5 + ], + "numOfWrites": [ + 197.833 + ], + "readBytes": [ + 3663052.8 + ], + "writeBytes": [ + 1455513.6 + ], + "runningSpeed": [ + 17 + ], + "transmittedBytes": [ + 0 + ] + }, + { + "wwpn": "c0507609dede006a", + "wwpn2": "c0507609dede006b", + "physicalLocation": "U9080.MHE.78F0BC7-V5-C65", + "physicalPortWWPN": "10000090fadc85cc", + "viosId": 3, + "numOfReads": [ + 0 + ], + "numOfWrites": [ + 0 + ], + "readBytes": [ + 0 + ], + "writeBytes": [ + 0 + ], + "runningSpeed": [ + 17 + ], + "transmittedBytes": [ + 0 + ] + }, + { + "wwpn": "c0507609dede006c", + "wwpn2": "c0507609dede006d", + "physicalLocation": "U9080.MHE.78F0BC7-V5-C66", + "physicalPortWWPN": "10000090fadc81fe", + "viosId": 2, + "numOfReads": [ + 0 + ], + "numOfWrites": [ + 0 + ], + "readBytes": [ + 0 + ], + "writeBytes": [ + 0 + ], + "runningSpeed": [ + 17 + ], + "transmittedBytes": [ + 0 + ] + }, + { + "wwpn": "c0507609dede004a", + "wwpn2": "c0507609dede004b", + "physicalLocation": "U9080.MHE.78F0BC7-V5-C53", + "physicalPortWWPN": "10000090fadc83bc", + "viosId": 3, + "numOfReads": [ + 210.6 + ], + "numOfWrites": [ + 81.167 + ], + "readBytes": [ + 4035225.6 + ], + "writeBytes": [ + 999628.8 + ], + "runningSpeed": [ + 17 + ], + "transmittedBytes": [ + 0 + ] + }, + { + "wwpn": "c0507609dede0032", + "wwpn2": "c0507609dede0033", + "physicalLocation": "U9080.MHE.78F0BC7-V5-C41", + "physicalPortWWPN": "10000090fae092af", + "viosId": 3, + "numOfReads": [ + 229.3 + ], + "numOfWrites": [ + 65.167 + ], + "readBytes": [ + 4155648 + ], + "writeBytes": [ + 912230.4 + ], + "runningSpeed": [ + 17 + ], + "transmittedBytes": [ + 0 + ] + }, + { + "wwpn": "c0507609dede0054", + "wwpn2": "c0507609dede0055", + "physicalLocation": "U9080.MHE.78F0BC7-V5-C58", + "physicalPortWWPN": "10000090fadc858b", + "viosId": 2, + "numOfReads": [ + 215.2 + ], + "numOfWrites": [ + 108.867 + ], + "readBytes": [ + 4066406.4 + ], + "writeBytes": [ + 878899.2 + ], + "runningSpeed": [ + 17 + ], + "transmittedBytes": [ + 0 + ] + }, + { + "wwpn": "c0507609dede0034", + "wwpn2": "c0507609dede0035", + "physicalLocation": "U9080.MHE.78F0BC7-V5-C42", + "physicalPortWWPN": "10000090fae0cb48", + "viosId": 2, + "numOfReads": [ + 230 + ], + "numOfWrites": [ + 66.867 + ], + "readBytes": [ + 4133990.4 + ], + "writeBytes": [ + 866304 + ], + "runningSpeed": [ + 17 + ], + "transmittedBytes": [ + 0 + ] + }, + { + "wwpn": "c0507609dede0056", + "wwpn2": "c0507609dede0057", + "physicalLocation": "U9080.MHE.78F0BC7-V5-C59", + "physicalPortWWPN": "10000090fae09868", + "viosId": 3, + "numOfReads": [ + 215.6 + ], + "numOfWrites": [ + 107.033 + ], + "readBytes": [ + 4097126.4 + ], + "writeBytes": [ + 935270.4 + ], + "runningSpeed": [ + 17 + ], + "transmittedBytes": [ + 0 + ] + }, + { + "wwpn": "c0507609dede0036", + "wwpn2": "c0507609dede0037", + "physicalLocation": "U9080.MHE.78F0BC7-V5-C43", + "physicalPortWWPN": "10000090fae092b0", + "viosId": 3, + "numOfReads": [ + 230.3 + ], + "numOfWrites": [ + 66.4 + ], + "readBytes": [ + 4232755.2 + ], + "writeBytes": [ + 935577.6 + ], + "runningSpeed": [ + 17 + ], + "transmittedBytes": [ + 0 + ] + }, + { + "wwpn": "c0507609dede0058", + "wwpn2": "c0507609dede0059", + "physicalLocation": "U9080.MHE.78F0BC7-V5-C60", + "physicalPortWWPN": "10000090fadc81fd", + "viosId": 2, + "numOfReads": [ + 224.7 + ], + "numOfWrites": [ + 118.233 + ], + "readBytes": [ + 4047513.6 + ], + "writeBytes": [ + 1296076.8 + ], + "runningSpeed": [ + 17 + ], + "transmittedBytes": [ + 0 + ] + }, + { + "wwpn": "c0507609dede0038", + "wwpn2": "c0507609dede0039", + "physicalLocation": "U9080.MHE.78F0BC7-V5-C44", + "physicalPortWWPN": "10000090fae099e7", + "viosId": 2, + "numOfReads": [ + 201.867 + ], + "numOfWrites": [ + 198.6 + ], + "readBytes": [ + 3752908.8 + ], + "writeBytes": [ + 1454011.733 + ], + "runningSpeed": [ + 17 + ], + "transmittedBytes": [ + 0 + ] + }, + { + "wwpn": "c0507609dede0040", + "wwpn2": "c0507609dede0041", + "physicalLocation": "U9080.MHE.78F0BC7-V5-C48", + "physicalPortWWPN": "10000090fadc753d", + "viosId": 2, + "numOfReads": [ + 196.667 + ], + "numOfWrites": [ + 98.033 + ], + "readBytes": [ + 3683174.4 + ], + "writeBytes": [ + 1147545.6 + ], + "runningSpeed": [ + 17 + ], + "transmittedBytes": [ + 0 + ] + }, + { + "wwpn": "c0507609dede006e", + "wwpn2": "c0507609dede006f", + "physicalLocation": "U9080.MHE.78F0BC7-V5-C67", + "physicalPortWWPN": "10000090fadc85cd", + "viosId": 3, + "numOfReads": [ + 0 + ], + "numOfWrites": [ + 0 + ], + "readBytes": [ + 0 + ], + "writeBytes": [ + 0 + ], + "runningSpeed": [ + 17 + ], + "transmittedBytes": [ + 0 + ] + }, + { + "wwpn": "c0507609dede004c", + "wwpn2": "c0507609dede004d", + "physicalLocation": "U9080.MHE.78F0BC7-V5-C54", + "physicalPortWWPN": "10000090fae092b3", + "viosId": 2, + "numOfReads": [ + 196.4 + ], + "numOfWrites": [ + 82.433 + ], + "readBytes": [ + 3739699.2 + ], + "writeBytes": [ + 1005004.8 + ], + "runningSpeed": [ + 17 + ], + "transmittedBytes": [ + 0 + ] + }, + { + "wwpn": "c0507609dede004e", + "wwpn2": "c0507609dede004f", + "physicalLocation": "U9080.MHE.78F0BC7-V5-C55", + "physicalPortWWPN": "10000090fadc83bd", + "viosId": 3, + "numOfReads": [ + 204.367 + ], + "numOfWrites": [ + 80.167 + ], + "readBytes": [ + 3861043.2 + ], + "writeBytes": [ + 1019136 + ], + "runningSpeed": [ + 17 + ], + "transmittedBytes": [ + 0 + ] + }, + { + "wwpn": "c0507609dede005a", + "wwpn2": "c0507609dede005b", + "physicalLocation": "U9080.MHE.78F0BC7-V5-C61", + "physicalPortWWPN": "10000090fadc85cc", + "viosId": 3, + "numOfReads": [ + 224.2 + ], + "numOfWrites": [ + 119.533 + ], + "readBytes": [ + 4134912 + ], + "writeBytes": [ + 1324492.8 + ], + "runningSpeed": [ + 17 + ], + "transmittedBytes": [ + 0 + ] + }, + { + "wwpn": "c0507609dede0042", + "wwpn2": "c0507609dede0043", + "physicalLocation": "U9080.MHE.78F0BC7-V5-C49", + "physicalPortWWPN": "10000090fadc8290", + "viosId": 3, + "numOfReads": [ + 199.5 + ], + "numOfWrites": [ + 97.967 + ], + "readBytes": [ + 3692083.2 + ], + "writeBytes": [ + 1070131.2 + ], + "runningSpeed": [ + 17 + ], + "transmittedBytes": [ + 0 + ] + }, + { + "wwpn": "c0507609dede0044", + "wwpn2": "c0507609dede0045", + "physicalLocation": "U9080.MHE.78F0BC7-V5-C50", + "physicalPortWWPN": "10000090fadc753e", + "viosId": 2, + "numOfReads": [ + 206.9 + ], + "numOfWrites": [ + 91.1 + ], + "readBytes": [ + 3794073.6 + ], + "writeBytes": [ + 1007769.6 + ], + "runningSpeed": [ + 17 + ], + "transmittedBytes": [ + 0 + ] + }, + { + "wwpn": "c0507609dede0068", + "wwpn2": "c0507609dede0069", + "physicalLocation": "U9080.MHE.78F0BC7-V5-C64", + "physicalPortWWPN": "10000090fadc81fd", + "viosId": 2, + "numOfReads": [ + 0 + ], + "numOfWrites": [ + 0 + ], + "readBytes": [ + 0 + ], + "writeBytes": [ + 0 + ], + "runningSpeed": [ + 17 + ], + "transmittedBytes": [ + 0 + ] + }, + { + "wwpn": "c0507609dede0046", + "wwpn2": "c0507609dede0047", + "physicalLocation": "U9080.MHE.78F0BC7-V5-C51", + "physicalPortWWPN": "10000090fadc8291", + "viosId": 3, + "numOfReads": [ + 200.267 + ], + "numOfWrites": [ + 96.567 + ], + "readBytes": [ + 3736473.6 + ], + "writeBytes": [ + 1045862.4 + ], + "runningSpeed": [ + 17 + ], + "transmittedBytes": [ + 0 + ] + }, + { + "wwpn": "c0507609dede0048", + "wwpn2": "c0507609dede0049", + "physicalLocation": "U9080.MHE.78F0BC7-V5-C52", + "physicalPortWWPN": "10000090fae092b2", + "viosId": 2, + "numOfReads": [ + 209.4 + ], + "numOfWrites": [ + 81.933 + ], + "readBytes": [ + 3946291.2 + ], + "writeBytes": [ + 958617.6 + ], + "runningSpeed": [ + 17 + ], + "transmittedBytes": [ + 0 + ] + } + ] + } + } + ] + } + ] + } +}