diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5e5df86..53849ca 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,9 +2,10 @@
All notable changes to this project will be documented in this file.
-## 1.4.4 - 2023-05-xx
-- Initial support for InfluxDB v2 API, requires InfluxDB 1.8+
+## 1.4.4 - 2023-05-20
+- Support for InfluxDB v2, now requires InfluxDB 1.8 or later
- Increase influx writer buffer limit
+- Various dashboard improvements
## 1.4.3 - 2023-03-21
- Fix and improve processor utilization dashboards.
diff --git a/README.md b/README.md
index c36ecac..4df8101 100644
--- a/README.md
+++ b/README.md
@@ -9,7 +9,7 @@ Metrics includes:
- *Managed Systems* - the physical Power servers
- *Logical Partitions* - the virtualized servers running AIX, Linux and/or IBM-i (AS/400)
- *Virtual I/O Servers* - the i/o partition(s) virtualizing network and storage
- - *Energy* - watts and temperatures (needs to be enabled and is not available on multi-chassis systems)
+ - *Energy* - watts and temperatures (needs to be enabled and is not available on all systems)
![architecture](doc/HMCi.png)
diff --git a/build.gradle b/build.gradle
index fef67e4..57476aa 100644
--- a/build.gradle
+++ b/build.gradle
@@ -4,7 +4,7 @@ plugins {
id 'groovy'
id 'application'
id "net.nemerosa.versioning" version "2.15.1"
- id "com.netflix.nebula.ospackage" version "10.0.0"
+ id "com.netflix.nebula.ospackage" version "11.2.0"
id "com.github.johnrengelman.shadow" version "7.1.2"
}
@@ -23,9 +23,9 @@ dependencies {
implementation 'org.slf4j:slf4j-simple:2.0.7'
implementation 'com.squareup.okhttp3:okhttp:4.10.0' // Also used by InfluxDB Client
implementation 'com.influxdb:influxdb-client-java:6.8.0'
- implementation 'com.fasterxml.jackson.core:jackson-databind:2.14.2'
- implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.14.2'
- implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-toml:2.14.2'
+ implementation 'com.fasterxml.jackson.core:jackson-databind:2.14.3'
+ implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.14.3'
+ implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-toml:2.14.3'
testImplementation 'junit:junit:4.13.2'
testImplementation 'org.spockframework:spock-core:2.3-groovy-4.0'
diff --git a/doc/HMCi.drawio b/doc/HMCi.drawio
index b9e95a6..c923cf6 100644
--- a/doc/HMCi.drawio
+++ b/doc/HMCi.drawio
@@ -1 +1 @@
-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
+
\ No newline at end of file
diff --git a/doc/HMCi.png b/doc/HMCi.png
index ca3b45c..87a271e 100644
Binary files a/doc/HMCi.png and b/doc/HMCi.png differ
diff --git a/doc/dashboards/HMCi - Power System Energy.json b/doc/dashboards/HMCi - Power System Energy.json
index ea7fde9..90a0a83 100644
--- a/doc/dashboards/HMCi - Power System Energy.json
+++ b/doc/dashboards/HMCi - Power System Energy.json
@@ -107,6 +107,21 @@
"transparent": true,
"type": "text"
},
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 3
+ },
+ "id": 15,
+ "panels": [],
+ "repeat": "ServerName",
+ "repeatDirection": "h",
+ "title": "$ServerName",
+ "type": "row"
+ },
{
"datasource": {
"type": "influxdb",
@@ -140,7 +155,7 @@
"h": 7,
"w": 24,
"x": 0,
- "y": 3
+ "y": 4
},
"id": 7,
"options": {
@@ -250,7 +265,7 @@
"h": 11,
"w": 8,
"x": 0,
- "y": 10
+ "y": 11
},
"id": 4,
"options": {
@@ -453,7 +468,7 @@
"h": 11,
"w": 16,
"x": 8,
- "y": 10
+ "y": 11
},
"id": 12,
"options": {
@@ -629,7 +644,7 @@
"h": 10,
"w": 8,
"x": 0,
- "y": 21
+ "y": 22
},
"id": 13,
"options": {
@@ -779,7 +794,7 @@
"h": 10,
"w": 16,
"x": 8,
- "y": 21
+ "y": 22
},
"id": 5,
"options": {
@@ -874,13 +889,13 @@
"type": "influxdb",
"uid": "${DS_HMCI}"
},
- "definition": "SHOW TAG VALUES FROM \"server_processor\" WITH KEY = \"servername\" WHERE time > now() - 24h",
+ "definition": "SHOW TAG VALUES FROM \"server_energy_power\" WITH KEY = \"servername\" WHERE time > now() - 24h",
"hide": 0,
- "includeAll": false,
- "multi": false,
+ "includeAll": true,
+ "multi": true,
"name": "ServerName",
"options": [],
- "query": "SHOW TAG VALUES FROM \"server_processor\" WITH KEY = \"servername\" WHERE time > now() - 24h",
+ "query": "SHOW TAG VALUES FROM \"server_energy_power\" WITH KEY = \"servername\" WHERE time > now() - 24h",
"refresh": 1,
"regex": "",
"skipUrlSync": false,
@@ -912,6 +927,6 @@
"timezone": "",
"title": "HMCi - Power System Energy",
"uid": "oHcrgD1Mk",
- "version": 2,
+ "version": 7,
"weekStart": ""
}
diff --git a/doc/dashboards/HMCi - Power System Overview.json b/doc/dashboards/HMCi - Power System Overview.json
index 41e9a2d..3c2fb1f 100644
--- a/doc/dashboards/HMCi - Power System Overview.json
+++ b/doc/dashboards/HMCi - Power System Overview.json
@@ -11,12 +11,6 @@
],
"__elements": {},
"__requires": [
- {
- "type": "panel",
- "id": "bargauge",
- "name": "Bar gauge",
- "version": ""
- },
{
"type": "panel",
"id": "gauge",
@@ -1517,464 +1511,6 @@
],
"title": "Physical Fiber Channel Adapters - Transmitted",
"type": "timeseries"
- },
- {
- "collapsed": false,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 37
- },
- "id": 39,
- "panels": [],
- "repeat": "ServerName",
- "repeatDirection": "h",
- "title": "$ServerName Energy",
- "type": "row"
- },
- {
- "datasource": {
- "type": "influxdb",
- "uid": "${DS_HMCI}"
- },
- "description": "",
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "continuous-BlYlRd"
- },
- "decimals": 1,
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- },
- "unit": "celsius"
- },
- "overrides": []
- },
- "gridPos": {
- "h": 10,
- "w": 12,
- "x": 0,
- "y": 38
- },
- "id": 26,
- "options": {
- "displayMode": "lcd",
- "minVizHeight": 10,
- "minVizWidth": 0,
- "orientation": "horizontal",
- "reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
- "fields": "",
- "values": false
- },
- "showUnfilled": true
- },
- "pluginVersion": "9.1.6",
- "targets": [
- {
- "alias": "$col",
- "datasource": {
- "type": "influxdb",
- "uid": "${DS_HMCI}"
- },
- "groupBy": [
- {
- "params": [
- "$__interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "system"
- ],
- "type": "tag"
- },
- {
- "params": [
- "none"
- ],
- "type": "fill"
- }
- ],
- "measurement": "server_energy_thermal",
- "orderByTime": "ASC",
- "policy": "default",
- "query": "SELECT mean(\"cpuTemperature*\") FROM \"server_energy_thermal\" WHERE (\"servername\" =~ /^$ServerName$/) AND $timeFilter GROUP BY time($__interval), \"system\", \"servername\" fill(linear)",
- "rawQuery": false,
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "cpuTemperature_1"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- },
- {
- "params": [
- "CPU-1"
- ],
- "type": "alias"
- }
- ],
- [
- {
- "params": [
- "cpuTemperature_2"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- },
- {
- "params": [
- "CPU-2"
- ],
- "type": "alias"
- }
- ],
- [
- {
- "params": [
- "cpuTemperature_3"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- },
- {
- "params": [
- "CPU-3"
- ],
- "type": "alias"
- }
- ],
- [
- {
- "params": [
- "cpuTemperature_4"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- },
- {
- "params": [
- "CPU-4"
- ],
- "type": "alias"
- }
- ]
- ],
- "tags": [
- {
- "key": "servername",
- "operator": "=~",
- "value": "/^$ServerName$/"
- }
- ]
- }
- ],
- "title": "CPU Temperature",
- "type": "bargauge"
- },
- {
- "datasource": {
- "type": "influxdb",
- "uid": "${DS_HMCI}"
- },
- "description": "",
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "continuous-BlYlRd"
- },
- "custom": {
- "axisCenteredZero": false,
- "axisColorMode": "text",
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "drawStyle": "line",
- "fillOpacity": 20,
- "gradientMode": "scheme",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- },
- "lineInterpolation": "smooth",
- "lineWidth": 3,
- "pointSize": 5,
- "scaleDistribution": {
- "type": "linear"
- },
- "showPoints": "auto",
- "spanNulls": false,
- "stacking": {
- "group": "A",
- "mode": "none"
- },
- "thresholdsStyle": {
- "mode": "off"
- }
- },
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- }
- },
- "overrides": []
- },
- "gridPos": {
- "h": 10,
- "w": 6,
- "x": 12,
- "y": 38
- },
- "id": 34,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom",
- "showLegend": true
- },
- "tooltip": {
- "mode": "single",
- "sort": "none"
- }
- },
- "pluginVersion": "8.1.4",
- "targets": [
- {
- "alias": "$tag_servername",
- "datasource": {
- "type": "influxdb",
- "uid": "${DS_HMCI}"
- },
- "groupBy": [
- {
- "params": [
- "$__interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "servername"
- ],
- "type": "tag"
- },
- {
- "params": [
- "none"
- ],
- "type": "fill"
- }
- ],
- "measurement": "server_energy_thermal",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "inletTemperature_1"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": [
- {
- "key": "servername",
- "operator": "=~",
- "value": "/^$ServerName$/"
- }
- ]
- }
- ],
- "title": "Inlet Temperature",
- "type": "timeseries"
- },
- {
- "datasource": {
- "type": "influxdb",
- "uid": "${DS_HMCI}"
- },
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "continuous-GrYlRd"
- },
- "custom": {
- "axisCenteredZero": false,
- "axisColorMode": "text",
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "drawStyle": "line",
- "fillOpacity": 20,
- "gradientMode": "scheme",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- },
- "lineInterpolation": "smooth",
- "lineWidth": 3,
- "pointSize": 5,
- "scaleDistribution": {
- "type": "linear"
- },
- "showPoints": "auto",
- "spanNulls": false,
- "stacking": {
- "group": "A",
- "mode": "none"
- },
- "thresholdsStyle": {
- "mode": "off"
- }
- },
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- }
- },
- "overrides": []
- },
- "gridPos": {
- "h": 10,
- "w": 6,
- "x": 18,
- "y": 38
- },
- "id": 22,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom",
- "showLegend": true
- },
- "tooltip": {
- "mode": "single",
- "sort": "none"
- }
- },
- "pluginVersion": "8.1.4",
- "targets": [
- {
- "alias": "$tag_servername",
- "datasource": {
- "type": "influxdb",
- "uid": "${DS_HMCI}"
- },
- "groupBy": [
- {
- "params": [
- "$__interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "servername"
- ],
- "type": "tag"
- },
- {
- "params": [
- "none"
- ],
- "type": "fill"
- }
- ],
- "measurement": "server_energy_power",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "powerReading"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": [
- {
- "key": "servername",
- "operator": "=~",
- "value": "/^$ServerName$/"
- }
- ]
- }
- ],
- "title": "Power Consumption",
- "type": "timeseries"
}
],
"refresh": "30s",
@@ -2043,6 +1579,6 @@
"timezone": "browser",
"title": "HMCi - Power System Overview",
"uid": "ClJhHPIGz",
- "version": 9,
+ "version": 10,
"weekStart": ""
}
diff --git a/doc/readme-grafana.md b/doc/readme-grafana.md
index cc2c218..0533f72 100644
--- a/doc/readme-grafana.md
+++ b/doc/readme-grafana.md
@@ -7,7 +7,7 @@ When installed Grafana listens on [http://localhost:3000](http://localhost:3000)
- Configure Grafana to use InfluxDB as a new datasource
- Name the datasource **hmci** to make it obvious what it contains.
- You would typically use *http://localhost:8086* without any credentials.
- - For InfluxDB add a custom header: Authorization = Token myTokenFromInfluxDB
+ - For InfluxDB 2.x add a custom header: Authorization = Token myTokenFromInfluxDB
- The name of the database would be *hmci* (or another name you used when creating it)
- **NOTE:** set *Min time interval* to *30s* or *1m* depending on your HMCi *refresh* setting.
diff --git a/doc/readme-influxdb.md b/doc/readme-influxdb.md
new file mode 100644
index 0000000..81d7c4f
--- /dev/null
+++ b/doc/readme-influxdb.md
@@ -0,0 +1,10 @@
+# InfluxDB Notes
+
+
+## Delete data
+
+To delete *all* data before a specific date, run:
+
+```sql
+DELETE WHERE time < '2023-01-01'
+```