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' +```