commit
073896349b
82
README.md
82
README.md
|
@ -1,8 +1,9 @@
|
||||||
# HMC Insights
|
# HMC Insights
|
||||||
|
|
||||||
**HMCi** is a utility that collects metrics from one or more *IBM Power HMC* systems. The metric data is processed and saved into an InfluxDB time-series database. Grafana can be used to visualize the metrics from InfluxDB. This software is not supported or endorsed by International Business Machines (IBM).
|
**HMCi** is a utility that collects metrics from one or more *IBM Power HMC*. The metric data is processed and saved into an InfluxDB time-series database. Grafana can be used to visualize the metrics from InfluxDB. This software is free to use and is licensed under the [Apache 2.0 License](https://bitbucket.org/mnellemann/syslogd/src/master/LICENSE), but is not supported or endorsed by International Business Machines (IBM).
|
||||||
|
|
||||||
Metrics includes:
|
Metrics includes:
|
||||||
|
|
||||||
- *Managed Systems* - the physical Power servers
|
- *Managed Systems* - the physical Power servers
|
||||||
- *Logical Partitions* - the virtualized servers running AIX, Linux and IBM-i (AS/400)
|
- *Logical Partitions* - the virtualized servers running AIX, Linux and IBM-i (AS/400)
|
||||||
- *Virtual I/O Servers* - the i/o partition(s) taking care of network and storage
|
- *Virtual I/O Servers* - the i/o partition(s) taking care of network and storage
|
||||||
|
@ -12,18 +13,21 @@ Metrics includes:
|
||||||
|
|
||||||
## Installation and Setup
|
## Installation and Setup
|
||||||
|
|
||||||
### HMC Setup Instructions
|
### Power HMC Setup Instructions
|
||||||
|
|
||||||
- Login to your HMC
|
- Login to your HMC
|
||||||
- Navigate to *Users and Security*
|
- Navigate to *Users and Security*
|
||||||
- Create a new read-only **hmci** user, which will be used to connect to the REST API.
|
- Create a new read-only **hmci** user, which will be used to connect to the REST API.
|
||||||
- Click *Manage User Profiles and Access*, edit the newly created hmci user and click *User Properties*:
|
- Click *Manage User Profiles and Access*, edit the newly created hmci user and click *User Properties*:
|
||||||
- Enable *Allow remote access via the web*
|
- Enable *Allow remote access via the web*
|
||||||
- Set *Session timeout in minutes* to **0**
|
- Set *Session timeout minutes* to **120**
|
||||||
- Navigate to *HMC Mangement* and *Console Settings*
|
- Set *Verify timeout minutes* to **15**
|
||||||
|
- Set *Idle timeout minutes* to **15**
|
||||||
|
- Set *Minimum time in days between password changes* to **0**
|
||||||
|
- Navigate to *HMC Management* and *Console Settings*
|
||||||
- Click *Change Performance Monitoring Settings*:
|
- Click *Change Performance Monitoring Settings*:
|
||||||
- Enable *Performance Monitoring Data Collection for Managed Servers*: **All On**
|
- Enable *Performance Monitoring Data Collection for Managed Servers*: **All On**
|
||||||
- Set *Performance Data Storage* to **1** day or more
|
- Set *Performance Data Storage* to **1** day or preferable more
|
||||||
|
|
||||||
### InfluxDB and Grafana Setup Instructions
|
### InfluxDB and Grafana Setup Instructions
|
||||||
|
|
||||||
|
@ -37,11 +41,37 @@ Install InfluxDB on an *LPAR* or other server, which is network accessible by th
|
||||||
- Ensure you have **correct date/time** and NTPd running to keep it accurate!
|
- Ensure you have **correct date/time** and NTPd running to keep it accurate!
|
||||||
- The only requirement for **hmci** is the Java runtime, version 8 (or later)
|
- The only requirement for **hmci** is the Java runtime, version 8 (or later)
|
||||||
- Install **HMCi** from [downloads](https://bitbucket.org/mnellemann/hmci/downloads/) (rpm, deb or jar) or build from source
|
- Install **HMCi** from [downloads](https://bitbucket.org/mnellemann/hmci/downloads/) (rpm, deb or jar) or build from source
|
||||||
- Copy the *doc/hmci.toml* configuration example into */etc/hmci.toml* and edit the configuration to suit your environment. The location of the configuration file can be changed with a flag when running hmci.
|
- Copy the *doc/hmci.toml* configuration example into */etc/hmci.toml* and edit the configuration to suit your environment. The location of the configuration file can be changed with the *--conf* option.
|
||||||
- Run the *bin/hmci* program in a shell, as a @reboot cron task or setup a proper service :)
|
- Run the *bin/hmci* program in a shell, as a @reboot cron task or setup a proper service :) There is a systemd service example in the *doc/* folder.
|
||||||
- When started, *hmci* will try to create the InfluxDB database named hmci, if not found.
|
- When started, *hmci* will try to create the InfluxDB database named hmci, if not found.
|
||||||
- Configure Grafana to communicate with your InfluxDB and import dashboards from the *doc/* folder into Grafana.
|
- Configure Grafana to communicate with your InfluxDB and import dashboards from the *doc/* folder into Grafana.
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
### Compatibility with nextract Plus
|
||||||
|
|
||||||
|
From version 1.2 *HMCi* is made compatible with the similar [nextract Plus](https://www.ibm.com/support/pages/nextract-plus-hmc-rest-api-performance-statistics) tool from Nigel Griffiths. This means you can use the excellent Grafana [dashboards](https://grafana.com/grafana/dashboards/13819) made by Nigel with *HMCi*.
|
||||||
|
|
||||||
|
### Start InfluxDB and Grafana at boot on RedHat 7+
|
||||||
|
|
||||||
|
```shell
|
||||||
|
systemctl enable influxdb
|
||||||
|
systemctl start influxdb
|
||||||
|
|
||||||
|
systemctl enable grafana-server
|
||||||
|
systemctl start grafana-server
|
||||||
|
```
|
||||||
|
|
||||||
|
### InfluxDB Retention Policy
|
||||||
|
|
||||||
|
Per default the *hmci* influx database has no retention policy, so data will be kept forever. It is recommended to set a retention policy, which is shown below.
|
||||||
|
|
||||||
|
Examples for changing the default InfluxDB retention policy for the hmci database:
|
||||||
|
|
||||||
|
```text
|
||||||
|
ALTER RETENTION POLICY "autogen" ON "hmci" DURATION 156w
|
||||||
|
ALTER RETENTION POLICY "autogen" ON "hmci" DURATION 90d
|
||||||
|
```
|
||||||
|
|
||||||
## Grafana Screenshots
|
## Grafana Screenshots
|
||||||
|
|
||||||
|
@ -52,7 +82,6 @@ Below are screenshots of the provided Grafana dashboards (found in the **doc/**
|
||||||
- [hmci-vois.png](https://bitbucket.org/mnellemann/hmci/downloads/hmci-vios.png)
|
- [hmci-vois.png](https://bitbucket.org/mnellemann/hmci/downloads/hmci-vios.png)
|
||||||
- [hmci-lpars](https://bitbucket.org/mnellemann/hmci/downloads/hmci-lpars.png)
|
- [hmci-lpars](https://bitbucket.org/mnellemann/hmci/downloads/hmci-lpars.png)
|
||||||
|
|
||||||
|
|
||||||
## Known problems
|
## Known problems
|
||||||
|
|
||||||
### Naming collision
|
### Naming collision
|
||||||
|
@ -62,32 +91,11 @@ written to InfluxDB (which uses the name as key).
|
||||||
|
|
||||||
### Renaming partitions
|
### Renaming partitions
|
||||||
|
|
||||||
If you rename a partition, the metrics in InfluxDB will still be available by the old name, and new metrics will be
|
If you rename a partition, the metrics in InfluxDB will still be available by the old name, and new metrics will be available by the new name of the partition. There is no easy way to migrate the old data, but you can delete it easily:
|
||||||
available by the new name of the partition. There is no easy way to migrate the old data, but you can delete it easily:
|
|
||||||
|
|
||||||
|
```text
|
||||||
DELETE WHERE partition = 'lpar-name';
|
DELETE WHERE partition = 'lpar-name';
|
||||||
|
```
|
||||||
|
|
||||||
## Notes
|
|
||||||
|
|
||||||
### Start InfluxDB and Grafana at boot on RedHat 7+
|
|
||||||
|
|
||||||
systemctl enable influxdb
|
|
||||||
systemctl start influxdb
|
|
||||||
|
|
||||||
systemctl enable grafana-server
|
|
||||||
systemctl start grafana-server
|
|
||||||
|
|
||||||
|
|
||||||
### InfluxDB Retention Policy
|
|
||||||
|
|
||||||
Per default the *hmci* influx database has no retention policy, so data will be kept forever. It is recommended to set a retention policy, which is shown below.
|
|
||||||
|
|
||||||
Examples for changing the default InfluxDB retention policy for the hmci database:
|
|
||||||
|
|
||||||
ALTER RETENTION POLICY "autogen" ON "hmci" DURATION 156w
|
|
||||||
ALTER RETENTION POLICY "autogen" ON "hmci" DURATION 90d
|
|
||||||
|
|
||||||
|
|
||||||
## Development Information
|
## Development Information
|
||||||
|
|
||||||
|
@ -98,8 +106,9 @@ You need Java (JDK) version 8 or later to build hmci.
|
||||||
|
|
||||||
Use the gradle build tool, which will download all required dependencies:
|
Use the gradle build tool, which will download all required dependencies:
|
||||||
|
|
||||||
|
```shell
|
||||||
./gradlew clean build
|
./gradlew clean build
|
||||||
|
```
|
||||||
|
|
||||||
### Local Testing
|
### Local Testing
|
||||||
|
|
||||||
|
@ -107,18 +116,23 @@ Use the gradle build tool, which will download all required dependencies:
|
||||||
|
|
||||||
Start the InfluxDB container:
|
Start the InfluxDB container:
|
||||||
|
|
||||||
|
```shell
|
||||||
docker run --name=influxdb --rm -d -p 8086:8086 influxdb:1.8-alpine
|
docker run --name=influxdb --rm -d -p 8086:8086 influxdb:1.8-alpine
|
||||||
|
```
|
||||||
|
|
||||||
To execute the Influx client from within the container:
|
To execute the Influx client from within the container:
|
||||||
|
|
||||||
|
```shell
|
||||||
docker exec -it influxdb influx
|
docker exec -it influxdb influx
|
||||||
|
```
|
||||||
|
|
||||||
#### Grafana container
|
#### Grafana container
|
||||||
|
|
||||||
Start the Grafana container, linking it to the InfluxDB container:
|
Start the Grafana container, linking it to the InfluxDB container:
|
||||||
|
|
||||||
|
```shell
|
||||||
docker run --name grafana --link influxdb:influxdb --rm -d -p 3000:3000 grafana/grafana:7.1.3
|
docker run --name grafana --link influxdb:influxdb --rm -d -p 3000:3000 grafana/grafana:7.1.3
|
||||||
|
```
|
||||||
|
|
||||||
Setup Grafana to connect to the InfluxDB container by defining a new datasource on URL *http://influxdb:8086* named *hmci*.
|
Setup Grafana to connect to the InfluxDB container by defining a new datasource on URL *http://influxdb:8086* named *hmci*.
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
"type": "grafana",
|
"type": "grafana",
|
||||||
"id": "grafana",
|
"id": "grafana",
|
||||||
"name": "Grafana",
|
"name": "Grafana",
|
||||||
"version": "7.3.1"
|
"version": "7.4.2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "panel",
|
"type": "panel",
|
||||||
|
@ -61,7 +61,7 @@
|
||||||
"gnetId": null,
|
"gnetId": null,
|
||||||
"graphTooltip": 0,
|
"graphTooltip": 0,
|
||||||
"id": null,
|
"id": null,
|
||||||
"iteration": 1610631800176,
|
"iteration": 1616701412999,
|
||||||
"links": [],
|
"links": [],
|
||||||
"panels": [
|
"panels": [
|
||||||
{
|
{
|
||||||
|
@ -70,6 +70,7 @@
|
||||||
"dashLength": 10,
|
"dashLength": 10,
|
||||||
"dashes": false,
|
"dashes": false,
|
||||||
"datasource": "${DS_HMCI}",
|
"datasource": "${DS_HMCI}",
|
||||||
|
"description": "",
|
||||||
"fieldConfig": {
|
"fieldConfig": {
|
||||||
"defaults": {
|
"defaults": {
|
||||||
"custom": {},
|
"custom": {},
|
||||||
|
@ -104,7 +105,7 @@
|
||||||
"alertThreshold": true
|
"alertThreshold": true
|
||||||
},
|
},
|
||||||
"percentage": false,
|
"percentage": false,
|
||||||
"pluginVersion": "7.3.1",
|
"pluginVersion": "7.4.2",
|
||||||
"pointradius": 2,
|
"pointradius": 2,
|
||||||
"points": false,
|
"points": false,
|
||||||
"renderer": "flot",
|
"renderer": "flot",
|
||||||
|
@ -114,7 +115,7 @@
|
||||||
"steppedLine": false,
|
"steppedLine": false,
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"alias": "$tag_system",
|
"alias": "$tag_servername",
|
||||||
"groupBy": [
|
"groupBy": [
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
|
@ -124,7 +125,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"system"
|
"servername"
|
||||||
],
|
],
|
||||||
"type": "tag"
|
"type": "tag"
|
||||||
},
|
},
|
||||||
|
@ -135,7 +136,7 @@
|
||||||
"type": "fill"
|
"type": "fill"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"measurement": "SystemEnergyPower",
|
"measurement": "server_energy_power",
|
||||||
"orderByTime": "ASC",
|
"orderByTime": "ASC",
|
||||||
"policy": "default",
|
"policy": "default",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
|
@ -144,7 +145,7 @@
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"value"
|
"powerReading"
|
||||||
],
|
],
|
||||||
"type": "field"
|
"type": "field"
|
||||||
},
|
},
|
||||||
|
@ -156,9 +157,9 @@
|
||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
{
|
{
|
||||||
"key": "system",
|
"key": "servername",
|
||||||
"operator": "=~",
|
"operator": "=~",
|
||||||
"value": "/^$ManagedSystem$/"
|
"value": "/^$ServerName$/"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -167,7 +168,7 @@
|
||||||
"timeFrom": null,
|
"timeFrom": null,
|
||||||
"timeRegions": [],
|
"timeRegions": [],
|
||||||
"timeShift": null,
|
"timeShift": null,
|
||||||
"title": "Power Usage",
|
"title": "Power Consumption",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"shared": true,
|
"shared": true,
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
@ -183,6 +184,7 @@
|
||||||
},
|
},
|
||||||
"yaxes": [
|
"yaxes": [
|
||||||
{
|
{
|
||||||
|
"$$hashKey": "object:315",
|
||||||
"format": "watt",
|
"format": "watt",
|
||||||
"label": null,
|
"label": null,
|
||||||
"logBase": 1,
|
"logBase": 1,
|
||||||
|
@ -191,6 +193,7 @@
|
||||||
"show": true
|
"show": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"$$hashKey": "object:316",
|
||||||
"format": "short",
|
"format": "short",
|
||||||
"label": null,
|
"label": null,
|
||||||
"logBase": 1,
|
"logBase": 1,
|
||||||
|
@ -250,12 +253,13 @@
|
||||||
"fields": "",
|
"fields": "",
|
||||||
"values": false
|
"values": false
|
||||||
},
|
},
|
||||||
|
"text": {},
|
||||||
"textMode": "auto"
|
"textMode": "auto"
|
||||||
},
|
},
|
||||||
"pluginVersion": "7.3.1",
|
"pluginVersion": "7.4.2",
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"alias": "$tag_system",
|
"alias": "$tag_servername",
|
||||||
"groupBy": [
|
"groupBy": [
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
|
@ -265,7 +269,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"system"
|
"servername"
|
||||||
],
|
],
|
||||||
"type": "tag"
|
"type": "tag"
|
||||||
},
|
},
|
||||||
|
@ -276,7 +280,7 @@
|
||||||
"type": "fill"
|
"type": "fill"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"measurement": "SystemEnergyPower",
|
"measurement": "server_energy_power",
|
||||||
"orderByTime": "ASC",
|
"orderByTime": "ASC",
|
||||||
"policy": "default",
|
"policy": "default",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
|
@ -285,7 +289,7 @@
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"value"
|
"powerReading"
|
||||||
],
|
],
|
||||||
"type": "field"
|
"type": "field"
|
||||||
},
|
},
|
||||||
|
@ -297,16 +301,16 @@
|
||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
{
|
{
|
||||||
"key": "system",
|
"key": "servername",
|
||||||
"operator": "=~",
|
"operator": "=~",
|
||||||
"value": "/^$ManagedSystem$/"
|
"value": "/^$ServerName$/"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"timeFrom": null,
|
"timeFrom": null,
|
||||||
"timeShift": null,
|
"timeShift": null,
|
||||||
"title": "Power Usage",
|
"title": "Power Consumption",
|
||||||
"type": "stat"
|
"type": "stat"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -320,12 +324,13 @@
|
||||||
},
|
},
|
||||||
"id": 9,
|
"id": 9,
|
||||||
"panels": [],
|
"panels": [],
|
||||||
"repeat": "ManagedSystem",
|
"repeat": "ServerName",
|
||||||
"title": "Temperatures",
|
"title": "$ServerName Thermal",
|
||||||
"type": "row"
|
"type": "row"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"datasource": "${DS_HMCI}",
|
"datasource": "${DS_HMCI}",
|
||||||
|
"description": "Inlet air temperature.",
|
||||||
"fieldConfig": {
|
"fieldConfig": {
|
||||||
"defaults": {
|
"defaults": {
|
||||||
"color": {
|
"color": {
|
||||||
|
@ -374,12 +379,13 @@
|
||||||
"fields": "",
|
"fields": "",
|
||||||
"values": false
|
"values": false
|
||||||
},
|
},
|
||||||
|
"text": {},
|
||||||
"textMode": "auto"
|
"textMode": "auto"
|
||||||
},
|
},
|
||||||
"pluginVersion": "7.3.1",
|
"pluginVersion": "7.4.2",
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"alias": "$tag_system - $tag_name",
|
"alias": "$tag_servername - $tag_name",
|
||||||
"groupBy": [
|
"groupBy": [
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
|
@ -389,13 +395,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"system"
|
"servername"
|
||||||
],
|
|
||||||
"type": "tag"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"params": [
|
|
||||||
"name"
|
|
||||||
],
|
],
|
||||||
"type": "tag"
|
"type": "tag"
|
||||||
},
|
},
|
||||||
|
@ -406,7 +406,7 @@
|
||||||
"type": "fill"
|
"type": "fill"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"measurement": "SystemEnergyThermal",
|
"measurement": "server_energy_thermal",
|
||||||
"orderByTime": "ASC",
|
"orderByTime": "ASC",
|
||||||
"policy": "default",
|
"policy": "default",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
|
@ -415,7 +415,7 @@
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"value"
|
"inletTemperature_1"
|
||||||
],
|
],
|
||||||
"type": "field"
|
"type": "field"
|
||||||
},
|
},
|
||||||
|
@ -427,22 +427,16 @@
|
||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
{
|
{
|
||||||
"key": "name",
|
"key": "servername",
|
||||||
"operator": "=",
|
|
||||||
"value": "inletTemperature_1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"condition": "AND",
|
|
||||||
"key": "system",
|
|
||||||
"operator": "=~",
|
"operator": "=~",
|
||||||
"value": "/^$ManagedSystem$/"
|
"value": "/^$ServerName$/"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"timeFrom": null,
|
"timeFrom": null,
|
||||||
"timeShift": null,
|
"timeShift": null,
|
||||||
"title": "$ManagedSystem - Inlet",
|
"title": "$ServerName - Inlet",
|
||||||
"type": "stat"
|
"type": "stat"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -451,23 +445,14 @@
|
||||||
"dashLength": 10,
|
"dashLength": 10,
|
||||||
"dashes": false,
|
"dashes": false,
|
||||||
"datasource": "${DS_HMCI}",
|
"datasource": "${DS_HMCI}",
|
||||||
|
"description": "",
|
||||||
"fieldConfig": {
|
"fieldConfig": {
|
||||||
"defaults": {
|
"defaults": {
|
||||||
"custom": {},
|
"custom": {},
|
||||||
"links": [],
|
"links": [],
|
||||||
"mappings": [],
|
|
||||||
"thresholds": {
|
"thresholds": {
|
||||||
"mode": "absolute",
|
"mode": "absolute",
|
||||||
"steps": [
|
"steps": []
|
||||||
{
|
|
||||||
"color": "green",
|
|
||||||
"value": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"color": "red",
|
|
||||||
"value": 80
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"unit": "celsius"
|
"unit": "celsius"
|
||||||
},
|
},
|
||||||
|
@ -501,7 +486,7 @@
|
||||||
"alertThreshold": true
|
"alertThreshold": true
|
||||||
},
|
},
|
||||||
"percentage": false,
|
"percentage": false,
|
||||||
"pluginVersion": "7.3.1",
|
"pluginVersion": "7.4.2",
|
||||||
"pointradius": 2,
|
"pointradius": 2,
|
||||||
"points": false,
|
"points": false,
|
||||||
"renderer": "flot",
|
"renderer": "flot",
|
||||||
|
@ -511,7 +496,7 @@
|
||||||
"steppedLine": false,
|
"steppedLine": false,
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"alias": "$tag_name",
|
"alias": "$col",
|
||||||
"groupBy": [
|
"groupBy": [
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
|
@ -525,12 +510,6 @@
|
||||||
],
|
],
|
||||||
"type": "tag"
|
"type": "tag"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"params": [
|
|
||||||
"name"
|
|
||||||
],
|
|
||||||
"type": "tag"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"linear"
|
"linear"
|
||||||
|
@ -538,36 +517,92 @@
|
||||||
"type": "fill"
|
"type": "fill"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"measurement": "SystemEnergyThermal",
|
"measurement": "server_energy_thermal",
|
||||||
"orderByTime": "ASC",
|
"orderByTime": "ASC",
|
||||||
"policy": "default",
|
"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",
|
"refId": "A",
|
||||||
"resultFormat": "time_series",
|
"resultFormat": "time_series",
|
||||||
"select": [
|
"select": [
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"value"
|
"cpuTemperature_1"
|
||||||
],
|
],
|
||||||
"type": "field"
|
"type": "field"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"params": [],
|
"params": [],
|
||||||
"type": "mean"
|
"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": [
|
"tags": [
|
||||||
{
|
{
|
||||||
"key": "name",
|
"key": "servername",
|
||||||
"operator": "=~",
|
"operator": "=~",
|
||||||
"value": "/cpuTemperature_\\d+/"
|
"value": "/^$ServerName$/"
|
||||||
},
|
|
||||||
{
|
|
||||||
"condition": "AND",
|
|
||||||
"key": "system",
|
|
||||||
"operator": "=~",
|
|
||||||
"value": "/^$ManagedSystem$/"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -576,7 +611,7 @@
|
||||||
"timeFrom": null,
|
"timeFrom": null,
|
||||||
"timeRegions": [],
|
"timeRegions": [],
|
||||||
"timeShift": null,
|
"timeShift": null,
|
||||||
"title": "$ManagedSystem - CPU",
|
"title": "$ServerName - CPU Temperature",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"shared": true,
|
"shared": true,
|
||||||
"sort": 2,
|
"sort": 2,
|
||||||
|
@ -618,7 +653,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"refresh": "30s",
|
"refresh": "30s",
|
||||||
"schemaVersion": 26,
|
"schemaVersion": 27,
|
||||||
"style": "dark",
|
"style": "dark",
|
||||||
"tags": [
|
"tags": [
|
||||||
"POWER"
|
"POWER"
|
||||||
|
@ -629,15 +664,16 @@
|
||||||
"allValue": null,
|
"allValue": null,
|
||||||
"current": {},
|
"current": {},
|
||||||
"datasource": "${DS_HMCI}",
|
"datasource": "${DS_HMCI}",
|
||||||
"definition": "SHOW TAG VALUES FROM \"SystemProcessor\" WITH KEY = \"system\"",
|
"definition": "SHOW TAG VALUES FROM \"server_processor\" WITH KEY = \"servername\" WHERE time > now() - 24h",
|
||||||
|
"description": null,
|
||||||
"error": null,
|
"error": null,
|
||||||
"hide": 0,
|
"hide": 0,
|
||||||
"includeAll": false,
|
"includeAll": false,
|
||||||
"label": null,
|
"label": null,
|
||||||
"multi": true,
|
"multi": true,
|
||||||
"name": "ManagedSystem",
|
"name": "ServerName",
|
||||||
"options": [],
|
"options": [],
|
||||||
"query": "SHOW TAG VALUES FROM \"SystemProcessor\" WITH KEY = \"system\"",
|
"query": "SHOW TAG VALUES FROM \"server_processor\" WITH KEY = \"servername\" WHERE time > now() - 24h",
|
||||||
"refresh": 1,
|
"refresh": 1,
|
||||||
"regex": "",
|
"regex": "",
|
||||||
"skipUrlSync": false,
|
"skipUrlSync": false,
|
||||||
|
@ -672,5 +708,5 @@
|
||||||
"timezone": "",
|
"timezone": "",
|
||||||
"title": "IBM Power - HMC Managed Systems - Energy",
|
"title": "IBM Power - HMC Managed Systems - Energy",
|
||||||
"uid": "oHcrgD1Mk",
|
"uid": "oHcrgD1Mk",
|
||||||
"version": 10
|
"version": 18
|
||||||
}
|
}
|
|
@ -20,7 +20,7 @@
|
||||||
"type": "grafana",
|
"type": "grafana",
|
||||||
"id": "grafana",
|
"id": "grafana",
|
||||||
"name": "Grafana",
|
"name": "Grafana",
|
||||||
"version": "7.3.1"
|
"version": "7.4.2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "panel",
|
"type": "panel",
|
||||||
|
@ -54,7 +54,7 @@
|
||||||
"gnetId": 1510,
|
"gnetId": 1510,
|
||||||
"graphTooltip": 0,
|
"graphTooltip": 0,
|
||||||
"id": null,
|
"id": null,
|
||||||
"iteration": 1610609134341,
|
"iteration": 1616701430705,
|
||||||
"links": [],
|
"links": [],
|
||||||
"panels": [
|
"panels": [
|
||||||
{
|
{
|
||||||
|
@ -107,7 +107,7 @@
|
||||||
"alertThreshold": true
|
"alertThreshold": true
|
||||||
},
|
},
|
||||||
"percentage": false,
|
"percentage": false,
|
||||||
"pluginVersion": "7.3.1",
|
"pluginVersion": "7.4.2",
|
||||||
"pointradius": 5,
|
"pointradius": 5,
|
||||||
"points": false,
|
"points": false,
|
||||||
"renderer": "flot",
|
"renderer": "flot",
|
||||||
|
@ -118,7 +118,7 @@
|
||||||
"style": {},
|
"style": {},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"alias": "$tag_partition $tag_name",
|
"alias": "$tag_servername $tag_lparname",
|
||||||
"dsType": "influxdb",
|
"dsType": "influxdb",
|
||||||
"groupBy": [
|
"groupBy": [
|
||||||
{
|
{
|
||||||
|
@ -129,13 +129,13 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"name"
|
"lparname"
|
||||||
],
|
],
|
||||||
"type": "tag"
|
"type": "tag"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"partition"
|
"servername"
|
||||||
],
|
],
|
||||||
"type": "tag"
|
"type": "tag"
|
||||||
},
|
},
|
||||||
|
@ -147,7 +147,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"hide": false,
|
"hide": false,
|
||||||
"measurement": "PartitionProcessor",
|
"measurement": "lpar_processor",
|
||||||
"orderByTime": "ASC",
|
"orderByTime": "ASC",
|
||||||
"policy": "default",
|
"policy": "default",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
|
@ -156,7 +156,7 @@
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"value"
|
"utilizedProcUnits"
|
||||||
],
|
],
|
||||||
"type": "field"
|
"type": "field"
|
||||||
},
|
},
|
||||||
|
@ -168,21 +168,15 @@
|
||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
{
|
{
|
||||||
"key": "name",
|
"key": "servername",
|
||||||
"operator": "=",
|
"operator": "=~",
|
||||||
"value": "utilizedProcUnits"
|
"value": "/^$ServerName$/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"condition": "AND",
|
"condition": "AND",
|
||||||
"key": "system",
|
"key": "lparname",
|
||||||
"operator": "=~",
|
"operator": "=~",
|
||||||
"value": "/^$ManagedSystem$/"
|
"value": "/^$LparName$/"
|
||||||
},
|
|
||||||
{
|
|
||||||
"condition": "AND",
|
|
||||||
"key": "partition",
|
|
||||||
"operator": "=~",
|
|
||||||
"value": "/^$Partition$/"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -281,7 +275,7 @@
|
||||||
"alertThreshold": true
|
"alertThreshold": true
|
||||||
},
|
},
|
||||||
"percentage": false,
|
"percentage": false,
|
||||||
"pluginVersion": "7.3.1",
|
"pluginVersion": "7.4.2",
|
||||||
"pointradius": 5,
|
"pointradius": 5,
|
||||||
"points": false,
|
"points": false,
|
||||||
"renderer": "flot",
|
"renderer": "flot",
|
||||||
|
@ -292,7 +286,7 @@
|
||||||
"style": {},
|
"style": {},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"alias": "$tag_partition - VLAN $tag_vlanId: $tag_name",
|
"alias": "$tag_lparname - VLAN $tag_vlanId",
|
||||||
"dsType": "influxdb",
|
"dsType": "influxdb",
|
||||||
"groupBy": [
|
"groupBy": [
|
||||||
{
|
{
|
||||||
|
@ -303,7 +297,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"name"
|
"lparname"
|
||||||
],
|
],
|
||||||
"type": "tag"
|
"type": "tag"
|
||||||
},
|
},
|
||||||
|
@ -313,12 +307,6 @@
|
||||||
],
|
],
|
||||||
"type": "tag"
|
"type": "tag"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"params": [
|
|
||||||
"partition"
|
|
||||||
],
|
|
||||||
"type": "tag"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"null"
|
"null"
|
||||||
|
@ -327,7 +315,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"hide": false,
|
"hide": false,
|
||||||
"measurement": "PartitionVirtualEthernetAdapters",
|
"measurement": "lpar_network_virtual",
|
||||||
"orderByTime": "ASC",
|
"orderByTime": "ASC",
|
||||||
"policy": "default",
|
"policy": "default",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
|
@ -336,7 +324,7 @@
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"value"
|
"transferredBytes"
|
||||||
],
|
],
|
||||||
"type": "field"
|
"type": "field"
|
||||||
},
|
},
|
||||||
|
@ -348,21 +336,15 @@
|
||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
{
|
{
|
||||||
"key": "partition",
|
"key": "lparname",
|
||||||
"operator": "=~",
|
"operator": "=~",
|
||||||
"value": "/^$Partition$/"
|
"value": "/^$LparName$/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"condition": "AND",
|
"condition": "AND",
|
||||||
"key": "name",
|
"key": "servername",
|
||||||
"operator": "!~",
|
|
||||||
"value": "/Physical/"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"condition": "AND",
|
|
||||||
"key": "system",
|
|
||||||
"operator": "=~",
|
"operator": "=~",
|
||||||
"value": "/^$ManagedSystem$/"
|
"value": "/^$ServerName$/"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -422,8 +404,13 @@
|
||||||
"error": false,
|
"error": false,
|
||||||
"fieldConfig": {
|
"fieldConfig": {
|
||||||
"defaults": {
|
"defaults": {
|
||||||
|
"color": {},
|
||||||
"custom": {},
|
"custom": {},
|
||||||
"links": []
|
"thresholds": {
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": []
|
||||||
|
},
|
||||||
|
"unit": "Bps"
|
||||||
},
|
},
|
||||||
"overrides": []
|
"overrides": []
|
||||||
},
|
},
|
||||||
|
@ -460,7 +447,7 @@
|
||||||
"alertThreshold": true
|
"alertThreshold": true
|
||||||
},
|
},
|
||||||
"percentage": false,
|
"percentage": false,
|
||||||
"pluginVersion": "7.3.1",
|
"pluginVersion": "7.4.2",
|
||||||
"pointradius": 5,
|
"pointradius": 5,
|
||||||
"points": false,
|
"points": false,
|
||||||
"renderer": "flot",
|
"renderer": "flot",
|
||||||
|
@ -471,7 +458,7 @@
|
||||||
"style": {},
|
"style": {},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"alias": "$tag_partition $tag_wwpn : $tag_name",
|
"alias": "$tag_lparname writeBytes",
|
||||||
"dsType": "influxdb",
|
"dsType": "influxdb",
|
||||||
"groupBy": [
|
"groupBy": [
|
||||||
{
|
{
|
||||||
|
@ -482,42 +469,24 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"wwpn"
|
"lparname"
|
||||||
],
|
],
|
||||||
"type": "tag"
|
"type": "tag"
|
||||||
},
|
|
||||||
{
|
|
||||||
"params": [
|
|
||||||
"partition"
|
|
||||||
],
|
|
||||||
"type": "tag"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"params": [
|
|
||||||
"name"
|
|
||||||
],
|
|
||||||
"type": "tag"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"params": [
|
|
||||||
"null"
|
|
||||||
],
|
|
||||||
"type": "fill"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"hide": false,
|
"hide": false,
|
||||||
"measurement": "PartitionVirtualFiberChannelAdapters",
|
"measurement": "lpar_storage_virtual",
|
||||||
"orderByTime": "ASC",
|
"orderByTime": "ASC",
|
||||||
"policy": "default",
|
"policy": "default",
|
||||||
"query": "SELECT mean(\"value\") FROM \"PartitionVirtualFiberChannelAdapters\" WHERE (\"system\" =~ /^$ManagedSystem$/ AND \"name\" != 'transmittedBytes' AND \"partition\" =~ /^$Partition$/) AND $timeFilter GROUP BY time($interval), \"wwpn\", \"partition\", \"name\" fill(null)",
|
"query": "SELECT mean(\"writeBytes\") FROM \"lpar_storage_virtual\" WHERE (\"servername\" =~ /^$ServerName$/ AND \"lparname\" =~ /^$LparName$/) AND $timeFilter GROUP BY time($interval), \"lparname\"",
|
||||||
"rawQuery": false,
|
"rawQuery": true,
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
"resultFormat": "time_series",
|
"resultFormat": "time_series",
|
||||||
"select": [
|
"select": [
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"value"
|
"writeBytes"
|
||||||
],
|
],
|
||||||
"type": "field"
|
"type": "field"
|
||||||
},
|
},
|
||||||
|
@ -529,21 +498,74 @@
|
||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
{
|
{
|
||||||
"key": "system",
|
"key": "servername",
|
||||||
"operator": "=~",
|
"operator": "=~",
|
||||||
"value": "/^$ManagedSystem$/"
|
"value": "/^$ServerName$/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"condition": "AND",
|
"condition": "AND",
|
||||||
"key": "name",
|
"key": "lparname",
|
||||||
"operator": "!=",
|
"operator": "=~",
|
||||||
"value": "transmittedBytes"
|
"value": "/^$LparName$/"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"alias": "$tag_lparname readBytes",
|
||||||
|
"dsType": "influxdb",
|
||||||
|
"groupBy": [
|
||||||
|
{
|
||||||
|
"params": [
|
||||||
|
"$interval"
|
||||||
|
],
|
||||||
|
"type": "time"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"params": [
|
||||||
|
"lparname"
|
||||||
|
],
|
||||||
|
"type": "tag"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"hide": false,
|
||||||
|
"measurement": "lpar_storage_virtual",
|
||||||
|
"orderByTime": "ASC",
|
||||||
|
"policy": "default",
|
||||||
|
"query": "SELECT mean(\"value\") FROM \"PartitionVirtualFiberChannelAdapters\" WHERE (\"system\" =~ /^$ManagedSystem$/ AND \"name\" != 'transmittedBytes' AND \"partition\" =~ /^$Partition$/) AND $timeFilter GROUP BY time($interval), \"wwpn\", \"partition\", \"name\" fill(null)",
|
||||||
|
"rawQuery": false,
|
||||||
|
"refId": "B",
|
||||||
|
"resultFormat": "time_series",
|
||||||
|
"select": [
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"params": [
|
||||||
|
"readBytes"
|
||||||
|
],
|
||||||
|
"type": "field"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"params": [],
|
||||||
|
"type": "mean"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"params": [
|
||||||
|
"*-1"
|
||||||
|
],
|
||||||
|
"type": "math"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
{
|
||||||
|
"key": "servername",
|
||||||
|
"operator": "=~",
|
||||||
|
"value": "/^$ServerName$/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"condition": "AND",
|
"condition": "AND",
|
||||||
"key": "partition",
|
"key": "lparname",
|
||||||
"operator": "=~",
|
"operator": "=~",
|
||||||
"value": "/^$Partition$/"
|
"value": "/^$LparName$/"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -637,12 +659,13 @@
|
||||||
"values": false
|
"values": false
|
||||||
},
|
},
|
||||||
"showThresholdLabels": false,
|
"showThresholdLabels": false,
|
||||||
"showThresholdMarkers": true
|
"showThresholdMarkers": true,
|
||||||
|
"text": {}
|
||||||
},
|
},
|
||||||
"pluginVersion": "7.3.1",
|
"pluginVersion": "7.4.2",
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"alias": "$tag_partition",
|
"alias": "$tag_lparname",
|
||||||
"dsType": "influxdb",
|
"dsType": "influxdb",
|
||||||
"groupBy": [
|
"groupBy": [
|
||||||
{
|
{
|
||||||
|
@ -653,7 +676,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"partition"
|
"lparname"
|
||||||
],
|
],
|
||||||
"type": "tag"
|
"type": "tag"
|
||||||
},
|
},
|
||||||
|
@ -665,7 +688,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"hide": false,
|
"hide": false,
|
||||||
"measurement": "PartitionAffinityScore",
|
"measurement": "lpar_details",
|
||||||
"orderByTime": "ASC",
|
"orderByTime": "ASC",
|
||||||
"policy": "default",
|
"policy": "default",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
|
@ -674,7 +697,7 @@
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"value"
|
"affinityScore"
|
||||||
],
|
],
|
||||||
"type": "field"
|
"type": "field"
|
||||||
},
|
},
|
||||||
|
@ -686,21 +709,15 @@
|
||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
{
|
{
|
||||||
"key": "system",
|
"key": "servername",
|
||||||
"operator": "=~",
|
"operator": "=~",
|
||||||
"value": "/^$ManagedSystem$/"
|
"value": "/^$ServerName$/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"condition": "AND",
|
"condition": "AND",
|
||||||
"key": "partition",
|
"key": "lparname",
|
||||||
"operator": "=~",
|
"operator": "=~",
|
||||||
"value": "/^$Partition$/"
|
"value": "/^$LparName$/"
|
||||||
},
|
|
||||||
{
|
|
||||||
"condition": "AND",
|
|
||||||
"key": "name",
|
|
||||||
"operator": "=",
|
|
||||||
"value": "affinityScore"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -709,10 +726,232 @@
|
||||||
"timeShift": null,
|
"timeShift": null,
|
||||||
"title": "NUMA Affinity Score",
|
"title": "NUMA Affinity Score",
|
||||||
"type": "gauge"
|
"type": "gauge"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"aliasColors": {},
|
||||||
|
"bars": false,
|
||||||
|
"content": "",
|
||||||
|
"dashLength": 10,
|
||||||
|
"dashes": false,
|
||||||
|
"datasource": "${DS_HMCI}",
|
||||||
|
"description": "",
|
||||||
|
"editable": true,
|
||||||
|
"error": false,
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {},
|
||||||
|
"custom": {},
|
||||||
|
"thresholds": {
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": []
|
||||||
|
},
|
||||||
|
"unit": "Bps"
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"fill": 1,
|
||||||
|
"fillGradient": 1,
|
||||||
|
"grid": {},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 10,
|
||||||
|
"w": 12,
|
||||||
|
"x": 12,
|
||||||
|
"y": 34
|
||||||
|
},
|
||||||
|
"hiddenSeries": false,
|
||||||
|
"id": 12,
|
||||||
|
"legend": {
|
||||||
|
"alignAsTable": true,
|
||||||
|
"avg": true,
|
||||||
|
"current": false,
|
||||||
|
"hideEmpty": true,
|
||||||
|
"hideZero": true,
|
||||||
|
"max": true,
|
||||||
|
"min": true,
|
||||||
|
"show": false,
|
||||||
|
"sort": "avg",
|
||||||
|
"sortDesc": true,
|
||||||
|
"total": false,
|
||||||
|
"values": true
|
||||||
|
},
|
||||||
|
"lines": true,
|
||||||
|
"linewidth": 1,
|
||||||
|
"mode": "",
|
||||||
|
"nullPointMode": "connected",
|
||||||
|
"options": {
|
||||||
|
"alertThreshold": true
|
||||||
|
},
|
||||||
|
"percentage": false,
|
||||||
|
"pluginVersion": "7.4.2",
|
||||||
|
"pointradius": 5,
|
||||||
|
"points": false,
|
||||||
|
"renderer": "flot",
|
||||||
|
"seriesOverrides": [],
|
||||||
|
"spaceLength": 10,
|
||||||
|
"stack": false,
|
||||||
|
"steppedLine": false,
|
||||||
|
"style": {},
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"alias": "$tag_lparname writeBytes",
|
||||||
|
"dsType": "influxdb",
|
||||||
|
"groupBy": [
|
||||||
|
{
|
||||||
|
"params": [
|
||||||
|
"$interval"
|
||||||
|
],
|
||||||
|
"type": "time"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"params": [
|
||||||
|
"lparname"
|
||||||
|
],
|
||||||
|
"type": "tag"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"hide": false,
|
||||||
|
"measurement": "lpar_storage_generic",
|
||||||
|
"orderByTime": "ASC",
|
||||||
|
"policy": "default",
|
||||||
|
"query": "SELECT mean(\"writeBytes\") FROM \"lpar_storage_virtual\" WHERE (\"servername\" =~ /^$ServerName$/ AND \"lparname\" =~ /^$LparName$/) AND $timeFilter GROUP BY time($interval), \"lparname\"",
|
||||||
|
"rawQuery": false,
|
||||||
|
"refId": "A",
|
||||||
|
"resultFormat": "time_series",
|
||||||
|
"select": [
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"params": [
|
||||||
|
"writeBytes"
|
||||||
|
],
|
||||||
|
"type": "field"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"params": [],
|
||||||
|
"type": "mean"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
{
|
||||||
|
"key": "servername",
|
||||||
|
"operator": "=~",
|
||||||
|
"value": "/^$ServerName$/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"condition": "AND",
|
||||||
|
"key": "lparname",
|
||||||
|
"operator": "=~",
|
||||||
|
"value": "/^$LparName$/"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"alias": "$tag_lparname readBytes",
|
||||||
|
"dsType": "influxdb",
|
||||||
|
"groupBy": [
|
||||||
|
{
|
||||||
|
"params": [
|
||||||
|
"$interval"
|
||||||
|
],
|
||||||
|
"type": "time"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"params": [
|
||||||
|
"lparname"
|
||||||
|
],
|
||||||
|
"type": "tag"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"hide": false,
|
||||||
|
"measurement": "lpar_storage_generic",
|
||||||
|
"orderByTime": "ASC",
|
||||||
|
"policy": "default",
|
||||||
|
"query": "SELECT mean(\"value\") FROM \"PartitionVirtualFiberChannelAdapters\" WHERE (\"system\" =~ /^$ManagedSystem$/ AND \"name\" != 'transmittedBytes' AND \"partition\" =~ /^$Partition$/) AND $timeFilter GROUP BY time($interval), \"wwpn\", \"partition\", \"name\" fill(null)",
|
||||||
|
"rawQuery": false,
|
||||||
|
"refId": "B",
|
||||||
|
"resultFormat": "time_series",
|
||||||
|
"select": [
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"params": [
|
||||||
|
"readBytes"
|
||||||
|
],
|
||||||
|
"type": "field"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"params": [],
|
||||||
|
"type": "mean"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"params": [
|
||||||
|
"*-1"
|
||||||
|
],
|
||||||
|
"type": "math"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
{
|
||||||
|
"key": "servername",
|
||||||
|
"operator": "=~",
|
||||||
|
"value": "/^$ServerName$/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"condition": "AND",
|
||||||
|
"key": "lparname",
|
||||||
|
"operator": "=~",
|
||||||
|
"value": "/^$LparName$/"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"thresholds": [],
|
||||||
|
"timeFrom": null,
|
||||||
|
"timeRegions": [],
|
||||||
|
"timeShift": null,
|
||||||
|
"title": "Virtual Generic Adapters",
|
||||||
|
"tooltip": {
|
||||||
|
"msResolution": false,
|
||||||
|
"shared": true,
|
||||||
|
"sort": 2,
|
||||||
|
"value_type": "individual"
|
||||||
|
},
|
||||||
|
"type": "graph",
|
||||||
|
"xaxis": {
|
||||||
|
"buckets": null,
|
||||||
|
"mode": "time",
|
||||||
|
"name": null,
|
||||||
|
"show": true,
|
||||||
|
"values": []
|
||||||
|
},
|
||||||
|
"yaxes": [
|
||||||
|
{
|
||||||
|
"$$hashKey": "object:3776",
|
||||||
|
"format": "Bps",
|
||||||
|
"label": null,
|
||||||
|
"logBase": 1,
|
||||||
|
"max": null,
|
||||||
|
"min": null,
|
||||||
|
"show": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$$hashKey": "object:3777",
|
||||||
|
"format": "short",
|
||||||
|
"label": null,
|
||||||
|
"logBase": 1,
|
||||||
|
"max": null,
|
||||||
|
"min": null,
|
||||||
|
"show": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"yaxis": {
|
||||||
|
"align": false,
|
||||||
|
"alignLevel": null
|
||||||
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"refresh": "30s",
|
"refresh": "30s",
|
||||||
"schemaVersion": 26,
|
"schemaVersion": 27,
|
||||||
"style": "dark",
|
"style": "dark",
|
||||||
"tags": [
|
"tags": [
|
||||||
"Power"
|
"Power"
|
||||||
|
@ -724,16 +963,17 @@
|
||||||
"allValue": null,
|
"allValue": null,
|
||||||
"current": {},
|
"current": {},
|
||||||
"datasource": "${DS_HMCI}",
|
"datasource": "${DS_HMCI}",
|
||||||
"definition": "SHOW TAG VALUES FROM \"SystemProcessor\" WITH KEY = \"system\" WHERE time > now() - 24h",
|
"definition": "SHOW TAG VALUES FROM \"server_processor\" WITH KEY = \"servername\" WHERE time > now() - 24h",
|
||||||
|
"description": null,
|
||||||
"error": null,
|
"error": null,
|
||||||
"hide": 0,
|
"hide": 0,
|
||||||
"includeAll": true,
|
"includeAll": true,
|
||||||
"label": "System",
|
"label": "Server Name",
|
||||||
"multi": true,
|
"multi": true,
|
||||||
"multiFormat": "regex values",
|
"multiFormat": "regex values",
|
||||||
"name": "ManagedSystem",
|
"name": "ServerName",
|
||||||
"options": [],
|
"options": [],
|
||||||
"query": "SHOW TAG VALUES FROM \"SystemProcessor\" WITH KEY = \"system\" WHERE time > now() - 24h",
|
"query": "SHOW TAG VALUES FROM \"server_processor\" WITH KEY = \"servername\" WHERE time > now() - 24h",
|
||||||
"refresh": 1,
|
"refresh": 1,
|
||||||
"refresh_on_load": false,
|
"refresh_on_load": false,
|
||||||
"regex": "",
|
"regex": "",
|
||||||
|
@ -750,16 +990,17 @@
|
||||||
"allValue": null,
|
"allValue": null,
|
||||||
"current": {},
|
"current": {},
|
||||||
"datasource": "${DS_HMCI}",
|
"datasource": "${DS_HMCI}",
|
||||||
"definition": "SHOW TAG VALUES FROM \"PartitionProcessor\" WITH KEY = \"partition\" WHERE system =~ /$ManagedSystem/",
|
"definition": "SHOW TAG VALUES FROM \"lpar_processor\" WITH KEY = \"lparname\" WHERE servername =~ /$ServerName/",
|
||||||
|
"description": null,
|
||||||
"error": null,
|
"error": null,
|
||||||
"hide": 0,
|
"hide": 0,
|
||||||
"includeAll": true,
|
"includeAll": true,
|
||||||
"label": "Logical Partition",
|
"label": "Logical Partition",
|
||||||
"multi": true,
|
"multi": true,
|
||||||
"multiFormat": "regex values",
|
"multiFormat": "regex values",
|
||||||
"name": "Partition",
|
"name": "LparName",
|
||||||
"options": [],
|
"options": [],
|
||||||
"query": "SHOW TAG VALUES FROM \"PartitionProcessor\" WITH KEY = \"partition\" WHERE system =~ /$ManagedSystem/",
|
"query": "SHOW TAG VALUES FROM \"lpar_processor\" WITH KEY = \"lparname\" WHERE servername =~ /$ServerName/",
|
||||||
"refresh": 1,
|
"refresh": 1,
|
||||||
"refresh_on_load": false,
|
"refresh_on_load": false,
|
||||||
"regex": "",
|
"regex": "",
|
||||||
|
@ -806,5 +1047,5 @@
|
||||||
"timezone": "browser",
|
"timezone": "browser",
|
||||||
"title": "IBM Power - HMC Managed Systems - Logical Partitions",
|
"title": "IBM Power - HMC Managed Systems - Logical Partitions",
|
||||||
"uid": "Xl7oHESGz",
|
"uid": "Xl7oHESGz",
|
||||||
"version": 6
|
"version": 8
|
||||||
}
|
}
|
|
@ -20,7 +20,7 @@
|
||||||
"type": "grafana",
|
"type": "grafana",
|
||||||
"id": "grafana",
|
"id": "grafana",
|
||||||
"name": "Grafana",
|
"name": "Grafana",
|
||||||
"version": "7.3.1"
|
"version": "7.4.2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "panel",
|
"type": "panel",
|
||||||
|
@ -60,7 +60,7 @@
|
||||||
"gnetId": 1465,
|
"gnetId": 1465,
|
||||||
"graphTooltip": 0,
|
"graphTooltip": 0,
|
||||||
"id": null,
|
"id": null,
|
||||||
"iteration": 1610631917525,
|
"iteration": 1616701472507,
|
||||||
"links": [],
|
"links": [],
|
||||||
"panels": [
|
"panels": [
|
||||||
{
|
{
|
||||||
|
@ -75,7 +75,7 @@
|
||||||
"id": 20,
|
"id": 20,
|
||||||
"panels": [],
|
"panels": [],
|
||||||
"repeat": "ManagedSystem",
|
"repeat": "ManagedSystem",
|
||||||
"title": "$ManagedSystem Overview",
|
"title": "$ServerName Resource Overview",
|
||||||
"type": "row"
|
"type": "row"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -86,28 +86,16 @@
|
||||||
"dashes": false,
|
"dashes": false,
|
||||||
"datasource": "${DS_HMCI}",
|
"datasource": "${DS_HMCI}",
|
||||||
"decimals": 2,
|
"decimals": 2,
|
||||||
|
"description": "",
|
||||||
"editable": true,
|
"editable": true,
|
||||||
"error": false,
|
"error": false,
|
||||||
"fieldConfig": {
|
"fieldConfig": {
|
||||||
"defaults": {
|
"defaults": {
|
||||||
"custom": {
|
"custom": {},
|
||||||
"align": null,
|
|
||||||
"filterable": false
|
|
||||||
},
|
|
||||||
"links": [],
|
"links": [],
|
||||||
"mappings": [],
|
|
||||||
"thresholds": {
|
"thresholds": {
|
||||||
"mode": "absolute",
|
"mode": "absolute",
|
||||||
"steps": [
|
"steps": []
|
||||||
{
|
|
||||||
"color": "green",
|
|
||||||
"value": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"color": "red",
|
|
||||||
"value": 80
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"overrides": []
|
"overrides": []
|
||||||
|
@ -142,7 +130,7 @@
|
||||||
"alertThreshold": true
|
"alertThreshold": true
|
||||||
},
|
},
|
||||||
"percentage": false,
|
"percentage": false,
|
||||||
"pluginVersion": "7.3.1",
|
"pluginVersion": "7.4.2",
|
||||||
"pointradius": 5,
|
"pointradius": 5,
|
||||||
"points": false,
|
"points": false,
|
||||||
"renderer": "flot",
|
"renderer": "flot",
|
||||||
|
@ -153,7 +141,7 @@
|
||||||
"style": {},
|
"style": {},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"alias": "$tag_pool $tag_name",
|
"alias": "$tag_poolname",
|
||||||
"dsType": "influxdb",
|
"dsType": "influxdb",
|
||||||
"groupBy": [
|
"groupBy": [
|
||||||
{
|
{
|
||||||
|
@ -164,13 +152,13 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"name"
|
"servername"
|
||||||
],
|
],
|
||||||
"type": "tag"
|
"type": "tag"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"pool"
|
"poolname"
|
||||||
],
|
],
|
||||||
"type": "tag"
|
"type": "tag"
|
||||||
},
|
},
|
||||||
|
@ -182,7 +170,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"hide": false,
|
"hide": false,
|
||||||
"measurement": "SystemSharedProcessorPool",
|
"measurement": "server_sharedProcessorPool",
|
||||||
"orderByTime": "ASC",
|
"orderByTime": "ASC",
|
||||||
"policy": "default",
|
"policy": "default",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
|
@ -191,7 +179,7 @@
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"value"
|
"utilizedProcUnits"
|
||||||
],
|
],
|
||||||
"type": "field"
|
"type": "field"
|
||||||
},
|
},
|
||||||
|
@ -203,15 +191,9 @@
|
||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
{
|
{
|
||||||
"key": "system",
|
"key": "servername",
|
||||||
"operator": "=~",
|
"operator": "=~",
|
||||||
"value": "/^$ManagedSystem$/"
|
"value": "/^$ServerName$/"
|
||||||
},
|
|
||||||
{
|
|
||||||
"condition": "AND",
|
|
||||||
"key": "name",
|
|
||||||
"operator": "=~",
|
|
||||||
"value": "/Units/"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -220,7 +202,7 @@
|
||||||
"timeFrom": null,
|
"timeFrom": null,
|
||||||
"timeRegions": [],
|
"timeRegions": [],
|
||||||
"timeShift": null,
|
"timeShift": null,
|
||||||
"title": "$ManagedSystem Shared Processor Pools",
|
"title": "Shared Processor Pools",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"msResolution": false,
|
"msResolution": false,
|
||||||
"shared": true,
|
"shared": true,
|
||||||
|
@ -272,23 +254,11 @@
|
||||||
"error": false,
|
"error": false,
|
||||||
"fieldConfig": {
|
"fieldConfig": {
|
||||||
"defaults": {
|
"defaults": {
|
||||||
"custom": {
|
"custom": {},
|
||||||
"align": null
|
|
||||||
},
|
|
||||||
"links": [],
|
"links": [],
|
||||||
"mappings": [],
|
|
||||||
"thresholds": {
|
"thresholds": {
|
||||||
"mode": "absolute",
|
"mode": "absolute",
|
||||||
"steps": [
|
"steps": []
|
||||||
{
|
|
||||||
"color": "green",
|
|
||||||
"value": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"color": "red",
|
|
||||||
"value": 80
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"overrides": []
|
"overrides": []
|
||||||
|
@ -323,7 +293,7 @@
|
||||||
"alertThreshold": true
|
"alertThreshold": true
|
||||||
},
|
},
|
||||||
"percentage": false,
|
"percentage": false,
|
||||||
"pluginVersion": "7.3.1",
|
"pluginVersion": "7.4.2",
|
||||||
"pointradius": 5,
|
"pointradius": 5,
|
||||||
"points": false,
|
"points": false,
|
||||||
"renderer": "flot",
|
"renderer": "flot",
|
||||||
|
@ -334,7 +304,7 @@
|
||||||
"style": {},
|
"style": {},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"alias": "$tag_name",
|
"alias": "Utilized",
|
||||||
"dsType": "influxdb",
|
"dsType": "influxdb",
|
||||||
"groupBy": [
|
"groupBy": [
|
||||||
{
|
{
|
||||||
|
@ -345,7 +315,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"name"
|
"servername"
|
||||||
],
|
],
|
||||||
"type": "tag"
|
"type": "tag"
|
||||||
},
|
},
|
||||||
|
@ -357,7 +327,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"hide": false,
|
"hide": false,
|
||||||
"measurement": "SystemProcessor",
|
"measurement": "server_processor",
|
||||||
"orderByTime": "ASC",
|
"orderByTime": "ASC",
|
||||||
"policy": "default",
|
"policy": "default",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
|
@ -366,7 +336,7 @@
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"value"
|
"utilizedProcUnits"
|
||||||
],
|
],
|
||||||
"type": "field"
|
"type": "field"
|
||||||
},
|
},
|
||||||
|
@ -378,16 +348,162 @@
|
||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
{
|
{
|
||||||
"condition": "",
|
"key": "servername",
|
||||||
"key": "name",
|
|
||||||
"operator": "=~",
|
"operator": "=~",
|
||||||
"value": "/Units/"
|
"value": "/^$ServerName$/"
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"condition": "AND",
|
"alias": "Available",
|
||||||
"key": "system",
|
"dsType": "influxdb",
|
||||||
|
"groupBy": [
|
||||||
|
{
|
||||||
|
"params": [
|
||||||
|
"$interval"
|
||||||
|
],
|
||||||
|
"type": "time"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"params": [
|
||||||
|
"servername"
|
||||||
|
],
|
||||||
|
"type": "tag"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"params": [
|
||||||
|
"null"
|
||||||
|
],
|
||||||
|
"type": "fill"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"hide": false,
|
||||||
|
"measurement": "server_processor",
|
||||||
|
"orderByTime": "ASC",
|
||||||
|
"policy": "default",
|
||||||
|
"refId": "B",
|
||||||
|
"resultFormat": "time_series",
|
||||||
|
"select": [
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"params": [
|
||||||
|
"availableProcUnits"
|
||||||
|
],
|
||||||
|
"type": "field"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"params": [],
|
||||||
|
"type": "mean"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
{
|
||||||
|
"key": "servername",
|
||||||
"operator": "=~",
|
"operator": "=~",
|
||||||
"value": "/^$ManagedSystem$/"
|
"value": "/^$ServerName$/"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"alias": "Configurable",
|
||||||
|
"dsType": "influxdb",
|
||||||
|
"groupBy": [
|
||||||
|
{
|
||||||
|
"params": [
|
||||||
|
"$interval"
|
||||||
|
],
|
||||||
|
"type": "time"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"params": [
|
||||||
|
"servername"
|
||||||
|
],
|
||||||
|
"type": "tag"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"params": [
|
||||||
|
"null"
|
||||||
|
],
|
||||||
|
"type": "fill"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"hide": false,
|
||||||
|
"measurement": "server_processor",
|
||||||
|
"orderByTime": "ASC",
|
||||||
|
"policy": "default",
|
||||||
|
"refId": "C",
|
||||||
|
"resultFormat": "time_series",
|
||||||
|
"select": [
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"params": [
|
||||||
|
"configurableProcUnits"
|
||||||
|
],
|
||||||
|
"type": "field"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"params": [],
|
||||||
|
"type": "mean"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
{
|
||||||
|
"key": "servername",
|
||||||
|
"operator": "=~",
|
||||||
|
"value": "/^$ServerName$/"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"alias": "Total",
|
||||||
|
"dsType": "influxdb",
|
||||||
|
"groupBy": [
|
||||||
|
{
|
||||||
|
"params": [
|
||||||
|
"$interval"
|
||||||
|
],
|
||||||
|
"type": "time"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"params": [
|
||||||
|
"servername"
|
||||||
|
],
|
||||||
|
"type": "tag"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"params": [
|
||||||
|
"null"
|
||||||
|
],
|
||||||
|
"type": "fill"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"hide": false,
|
||||||
|
"measurement": "server_processor",
|
||||||
|
"orderByTime": "ASC",
|
||||||
|
"policy": "default",
|
||||||
|
"refId": "D",
|
||||||
|
"resultFormat": "time_series",
|
||||||
|
"select": [
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"params": [
|
||||||
|
"totalProcUnits"
|
||||||
|
],
|
||||||
|
"type": "field"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"params": [],
|
||||||
|
"type": "mean"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
{
|
||||||
|
"key": "servername",
|
||||||
|
"operator": "=~",
|
||||||
|
"value": "/^$ServerName$/"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -396,11 +512,11 @@
|
||||||
"timeFrom": null,
|
"timeFrom": null,
|
||||||
"timeRegions": [],
|
"timeRegions": [],
|
||||||
"timeShift": null,
|
"timeShift": null,
|
||||||
"title": "$ManagedSystem Processor Units",
|
"title": "Processor Units",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"msResolution": false,
|
"msResolution": false,
|
||||||
"shared": true,
|
"shared": true,
|
||||||
"sort": 0,
|
"sort": 2,
|
||||||
"value_type": "cumulative"
|
"value_type": "cumulative"
|
||||||
},
|
},
|
||||||
"type": "graph",
|
"type": "graph",
|
||||||
|
@ -453,22 +569,10 @@
|
||||||
"description": "",
|
"description": "",
|
||||||
"fieldConfig": {
|
"fieldConfig": {
|
||||||
"defaults": {
|
"defaults": {
|
||||||
"custom": {
|
"custom": {},
|
||||||
"align": null
|
|
||||||
},
|
|
||||||
"mappings": [],
|
|
||||||
"thresholds": {
|
"thresholds": {
|
||||||
"mode": "absolute",
|
"mode": "absolute",
|
||||||
"steps": [
|
"steps": []
|
||||||
{
|
|
||||||
"color": "green",
|
|
||||||
"value": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"color": "red",
|
|
||||||
"value": 80
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"overrides": []
|
"overrides": []
|
||||||
|
@ -508,7 +612,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"hide": false,
|
"hide": false,
|
||||||
"measurement": "SystemProcessor",
|
"measurement": "server_processor",
|
||||||
"orderByTime": "ASC",
|
"orderByTime": "ASC",
|
||||||
"policy": "default",
|
"policy": "default",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
|
@ -517,7 +621,7 @@
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"value"
|
"utilizedProcUnits"
|
||||||
],
|
],
|
||||||
"type": "field"
|
"type": "field"
|
||||||
},
|
},
|
||||||
|
@ -529,22 +633,16 @@
|
||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
{
|
{
|
||||||
"key": "name",
|
"key": "servername",
|
||||||
"operator": "=",
|
|
||||||
"value": "utilizedProcUnits"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"condition": "AND",
|
|
||||||
"key": "system",
|
|
||||||
"operator": "=~",
|
"operator": "=~",
|
||||||
"value": "/^$ManagedSystem$/"
|
"value": "/^$ServerName$/"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"timeFrom": null,
|
"timeFrom": null,
|
||||||
"timeShift": null,
|
"timeShift": null,
|
||||||
"title": "$ManagedSystem Processor Utilization",
|
"title": "Processor Utilization",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"show": true,
|
"show": true,
|
||||||
"showHistogram": true
|
"showHistogram": true
|
||||||
|
@ -569,7 +667,7 @@
|
||||||
"yBucketSize": null
|
"yBucketSize": null
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"collapsed": false,
|
"collapsed": true,
|
||||||
"datasource": "${DS_HMCI}",
|
"datasource": "${DS_HMCI}",
|
||||||
"gridPos": {
|
"gridPos": {
|
||||||
"h": 1,
|
"h": 1,
|
||||||
|
@ -578,11 +676,7 @@
|
||||||
"y": 16
|
"y": 16
|
||||||
},
|
},
|
||||||
"id": 22,
|
"id": 22,
|
||||||
"panels": [],
|
"panels": [
|
||||||
"repeat": "ManagedSystem",
|
|
||||||
"title": "$ManagedSystem Network",
|
|
||||||
"type": "row"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"aliasColors": {},
|
"aliasColors": {},
|
||||||
"bars": false,
|
"bars": false,
|
||||||
|
@ -632,7 +726,7 @@
|
||||||
"alertThreshold": true
|
"alertThreshold": true
|
||||||
},
|
},
|
||||||
"percentage": false,
|
"percentage": false,
|
||||||
"pluginVersion": "7.3.1",
|
"pluginVersion": "7.4.2",
|
||||||
"pointradius": 5,
|
"pointradius": 5,
|
||||||
"points": false,
|
"points": false,
|
||||||
"renderer": "flot",
|
"renderer": "flot",
|
||||||
|
@ -643,7 +737,7 @@
|
||||||
"style": {},
|
"style": {},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"alias": "$tag_device transmitted",
|
"alias": "$tag_location",
|
||||||
"dsType": "influxdb",
|
"dsType": "influxdb",
|
||||||
"groupBy": [
|
"groupBy": [
|
||||||
{
|
{
|
||||||
|
@ -654,7 +748,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"device"
|
"location"
|
||||||
],
|
],
|
||||||
"type": "tag"
|
"type": "tag"
|
||||||
},
|
},
|
||||||
|
@ -666,7 +760,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"hide": false,
|
"hide": false,
|
||||||
"measurement": "SystemFiberChannelAdapters",
|
"measurement": "vios_storage_FC",
|
||||||
"orderByTime": "ASC",
|
"orderByTime": "ASC",
|
||||||
"policy": "default",
|
"policy": "default",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
|
@ -675,7 +769,7 @@
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"value"
|
"transmittedBytes"
|
||||||
],
|
],
|
||||||
"type": "field"
|
"type": "field"
|
||||||
},
|
},
|
||||||
|
@ -687,15 +781,9 @@
|
||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
{
|
{
|
||||||
"key": "system",
|
"key": "servername",
|
||||||
"operator": "=~",
|
"operator": "=~",
|
||||||
"value": "/^$ManagedSystem$/"
|
"value": "/^$ServerName$/"
|
||||||
},
|
|
||||||
{
|
|
||||||
"condition": "AND",
|
|
||||||
"key": "name",
|
|
||||||
"operator": "=",
|
|
||||||
"value": "transmittedBytes"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -704,7 +792,7 @@
|
||||||
"timeFrom": null,
|
"timeFrom": null,
|
||||||
"timeRegions": [],
|
"timeRegions": [],
|
||||||
"timeShift": null,
|
"timeShift": null,
|
||||||
"title": "$ManagedSystem - Physical Fiber Channel Adapters",
|
"title": "$ServerName - Physical Fiber Channel Adapters",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"msResolution": false,
|
"msResolution": false,
|
||||||
"shared": true,
|
"shared": true,
|
||||||
|
@ -762,7 +850,7 @@
|
||||||
"overrides": []
|
"overrides": []
|
||||||
},
|
},
|
||||||
"fill": 1,
|
"fill": 1,
|
||||||
"fillGradient": 1,
|
"fillGradient": 2,
|
||||||
"grid": {},
|
"grid": {},
|
||||||
"gridPos": {
|
"gridPos": {
|
||||||
"h": 8,
|
"h": 8,
|
||||||
|
@ -794,7 +882,7 @@
|
||||||
"alertThreshold": true
|
"alertThreshold": true
|
||||||
},
|
},
|
||||||
"percentage": false,
|
"percentage": false,
|
||||||
"pluginVersion": "7.3.1",
|
"pluginVersion": "7.4.2",
|
||||||
"pointradius": 5,
|
"pointradius": 5,
|
||||||
"points": false,
|
"points": false,
|
||||||
"renderer": "flot",
|
"renderer": "flot",
|
||||||
|
@ -805,7 +893,7 @@
|
||||||
"style": {},
|
"style": {},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"alias": "$tag_device",
|
"alias": "$tag_location",
|
||||||
"dsType": "influxdb",
|
"dsType": "influxdb",
|
||||||
"groupBy": [
|
"groupBy": [
|
||||||
{
|
{
|
||||||
|
@ -816,7 +904,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"device"
|
"location"
|
||||||
],
|
],
|
||||||
"type": "tag"
|
"type": "tag"
|
||||||
},
|
},
|
||||||
|
@ -828,7 +916,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"hide": false,
|
"hide": false,
|
||||||
"measurement": "SystemSharedAdapters",
|
"measurement": "vios_network_shared",
|
||||||
"orderByTime": "ASC",
|
"orderByTime": "ASC",
|
||||||
"policy": "default",
|
"policy": "default",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
|
@ -837,7 +925,7 @@
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"value"
|
"transferredBytes"
|
||||||
],
|
],
|
||||||
"type": "field"
|
"type": "field"
|
||||||
},
|
},
|
||||||
|
@ -849,15 +937,9 @@
|
||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
{
|
{
|
||||||
"key": "system",
|
"key": "servername",
|
||||||
"operator": "=~",
|
"operator": "=~",
|
||||||
"value": "/^$ManagedSystem$/"
|
"value": "/^$ServerName$/"
|
||||||
},
|
|
||||||
{
|
|
||||||
"condition": "AND",
|
|
||||||
"key": "name",
|
|
||||||
"operator": "=",
|
|
||||||
"value": "transferredBytes"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -866,7 +948,7 @@
|
||||||
"timeFrom": null,
|
"timeFrom": null,
|
||||||
"timeRegions": [],
|
"timeRegions": [],
|
||||||
"timeShift": null,
|
"timeShift": null,
|
||||||
"title": "$ManagedSystem - Shared Adapters",
|
"title": "$ServerName - Shared Adapters",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"msResolution": false,
|
"msResolution": false,
|
||||||
"shared": true,
|
"shared": true,
|
||||||
|
@ -905,6 +987,11 @@
|
||||||
"align": false,
|
"align": false,
|
||||||
"alignLevel": null
|
"alignLevel": null
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"repeat": "ManagedSystem",
|
||||||
|
"title": "$ServerName Network",
|
||||||
|
"type": "row"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"collapsed": false,
|
"collapsed": false,
|
||||||
|
@ -913,12 +1000,12 @@
|
||||||
"h": 1,
|
"h": 1,
|
||||||
"w": 24,
|
"w": 24,
|
||||||
"x": 0,
|
"x": 0,
|
||||||
"y": 33
|
"y": 17
|
||||||
},
|
},
|
||||||
"id": 21,
|
"id": 21,
|
||||||
"panels": [],
|
"panels": [],
|
||||||
"repeat": "ManagedSystem",
|
"repeat": "ManagedSystem",
|
||||||
"title": "$ManagedSystem By Partition",
|
"title": "$ServerName By Partition",
|
||||||
"type": "row"
|
"type": "row"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -945,7 +1032,7 @@
|
||||||
"h": 7,
|
"h": 7,
|
||||||
"w": 12,
|
"w": 12,
|
||||||
"x": 0,
|
"x": 0,
|
||||||
"y": 34
|
"y": 18
|
||||||
},
|
},
|
||||||
"hiddenSeries": false,
|
"hiddenSeries": false,
|
||||||
"id": 12,
|
"id": 12,
|
||||||
|
@ -972,7 +1059,7 @@
|
||||||
"alertThreshold": true
|
"alertThreshold": true
|
||||||
},
|
},
|
||||||
"percentage": false,
|
"percentage": false,
|
||||||
"pluginVersion": "7.3.1",
|
"pluginVersion": "7.4.2",
|
||||||
"pointradius": 5,
|
"pointradius": 5,
|
||||||
"points": false,
|
"points": false,
|
||||||
"renderer": "flot",
|
"renderer": "flot",
|
||||||
|
@ -983,7 +1070,7 @@
|
||||||
"style": {},
|
"style": {},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"alias": "$tag_partition Utilized Processor Units",
|
"alias": "$tag_lparname",
|
||||||
"dsType": "influxdb",
|
"dsType": "influxdb",
|
||||||
"groupBy": [
|
"groupBy": [
|
||||||
{
|
{
|
||||||
|
@ -994,13 +1081,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"name"
|
"lparname"
|
||||||
],
|
|
||||||
"type": "tag"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"params": [
|
|
||||||
"partition"
|
|
||||||
],
|
],
|
||||||
"type": "tag"
|
"type": "tag"
|
||||||
},
|
},
|
||||||
|
@ -1012,7 +1093,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"hide": false,
|
"hide": false,
|
||||||
"measurement": "PartitionProcessor",
|
"measurement": "lpar_processor",
|
||||||
"orderByTime": "ASC",
|
"orderByTime": "ASC",
|
||||||
"policy": "default",
|
"policy": "default",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
|
@ -1021,7 +1102,7 @@
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"value"
|
"utilizedProcUnits"
|
||||||
],
|
],
|
||||||
"type": "field"
|
"type": "field"
|
||||||
},
|
},
|
||||||
|
@ -1033,21 +1114,15 @@
|
||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
{
|
{
|
||||||
"key": "name",
|
"key": "servername",
|
||||||
"operator": "=",
|
"operator": "=~",
|
||||||
"value": "utilizedProcUnits"
|
"value": "/^$ServerName$/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"condition": "AND",
|
"condition": "AND",
|
||||||
"key": "system",
|
"key": "lparname",
|
||||||
"operator": "=~",
|
"operator": "=~",
|
||||||
"value": "/^$ManagedSystem$/"
|
"value": "/^$LparName$/"
|
||||||
},
|
|
||||||
{
|
|
||||||
"condition": "AND",
|
|
||||||
"key": "partition",
|
|
||||||
"operator": "=~",
|
|
||||||
"value": "/^$Partition$/"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -1056,7 +1131,7 @@
|
||||||
"timeFrom": null,
|
"timeFrom": null,
|
||||||
"timeRegions": [],
|
"timeRegions": [],
|
||||||
"timeShift": null,
|
"timeShift": null,
|
||||||
"title": "$ManagedSystem Processor Utilization",
|
"title": "LPAR Processor Utilization",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"msResolution": false,
|
"msResolution": false,
|
||||||
"shared": true,
|
"shared": true,
|
||||||
|
@ -1098,11 +1173,10 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"datasource": "${DS_HMCI}",
|
"datasource": "${DS_HMCI}",
|
||||||
|
"description": "",
|
||||||
"fieldConfig": {
|
"fieldConfig": {
|
||||||
"defaults": {
|
"defaults": {
|
||||||
"custom": {
|
"custom": {},
|
||||||
"align": null
|
|
||||||
},
|
|
||||||
"mappings": [],
|
"mappings": [],
|
||||||
"thresholds": {
|
"thresholds": {
|
||||||
"mode": "absolute",
|
"mode": "absolute",
|
||||||
|
@ -1125,7 +1199,7 @@
|
||||||
"h": 7,
|
"h": 7,
|
||||||
"w": 12,
|
"w": 12,
|
||||||
"x": 12,
|
"x": 12,
|
||||||
"y": 34
|
"y": 18
|
||||||
},
|
},
|
||||||
"id": 23,
|
"id": 23,
|
||||||
"links": [],
|
"links": [],
|
||||||
|
@ -1139,12 +1213,13 @@
|
||||||
"fields": "",
|
"fields": "",
|
||||||
"values": false
|
"values": false
|
||||||
},
|
},
|
||||||
"showUnfilled": true
|
"showUnfilled": true,
|
||||||
|
"text": {}
|
||||||
},
|
},
|
||||||
"pluginVersion": "7.3.1",
|
"pluginVersion": "7.4.2",
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"alias": "$tag_partition",
|
"alias": "$tag_lparname",
|
||||||
"dsType": "influxdb",
|
"dsType": "influxdb",
|
||||||
"groupBy": [
|
"groupBy": [
|
||||||
{
|
{
|
||||||
|
@ -1155,13 +1230,13 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"name"
|
"servername"
|
||||||
],
|
],
|
||||||
"type": "tag"
|
"type": "tag"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"partition"
|
"lparname"
|
||||||
],
|
],
|
||||||
"type": "tag"
|
"type": "tag"
|
||||||
},
|
},
|
||||||
|
@ -1173,7 +1248,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"hide": false,
|
"hide": false,
|
||||||
"measurement": "PartitionMemory",
|
"measurement": "lpar_memory",
|
||||||
"orderByTime": "ASC",
|
"orderByTime": "ASC",
|
||||||
"policy": "default",
|
"policy": "default",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
|
@ -1182,7 +1257,7 @@
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"value"
|
"logicalMem"
|
||||||
],
|
],
|
||||||
"type": "field"
|
"type": "field"
|
||||||
},
|
},
|
||||||
|
@ -1194,33 +1269,27 @@
|
||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
{
|
{
|
||||||
"key": "name",
|
"key": "servername",
|
||||||
"operator": "=",
|
"operator": "=~",
|
||||||
"value": "logicalMem"
|
"value": "/^$ServerName$/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"condition": "AND",
|
"condition": "AND",
|
||||||
"key": "system",
|
"key": "lparname",
|
||||||
"operator": "=~",
|
"operator": "=~",
|
||||||
"value": "/^$ManagedSystem$/"
|
"value": "/^$LparName$/"
|
||||||
},
|
|
||||||
{
|
|
||||||
"condition": "AND",
|
|
||||||
"key": "partition",
|
|
||||||
"operator": "=~",
|
|
||||||
"value": "/^$Partition$/"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"timeFrom": null,
|
"timeFrom": null,
|
||||||
"timeShift": null,
|
"timeShift": null,
|
||||||
"title": "$ManagedSystem Memory Usage",
|
"title": "LPAR Memory Usage",
|
||||||
"type": "bargauge"
|
"type": "bargauge"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"refresh": "30s",
|
"refresh": "30s",
|
||||||
"schemaVersion": 26,
|
"schemaVersion": 27,
|
||||||
"style": "dark",
|
"style": "dark",
|
||||||
"tags": [
|
"tags": [
|
||||||
"Power"
|
"Power"
|
||||||
|
@ -1232,16 +1301,17 @@
|
||||||
"allValue": null,
|
"allValue": null,
|
||||||
"current": {},
|
"current": {},
|
||||||
"datasource": "${DS_HMCI}",
|
"datasource": "${DS_HMCI}",
|
||||||
"definition": "SHOW TAG VALUES FROM \"SystemProcessor\" WITH KEY = \"system\" WHERE time > now() - 24h",
|
"definition": "SHOW TAG VALUES FROM \"server_processor\" WITH KEY = \"servername\" WHERE time > now() - 24h",
|
||||||
|
"description": null,
|
||||||
"error": null,
|
"error": null,
|
||||||
"hide": 0,
|
"hide": 0,
|
||||||
"includeAll": false,
|
"includeAll": false,
|
||||||
"label": "System",
|
"label": "Server",
|
||||||
"multi": true,
|
"multi": true,
|
||||||
"multiFormat": "regex values",
|
"multiFormat": "regex values",
|
||||||
"name": "ManagedSystem",
|
"name": "ServerName",
|
||||||
"options": [],
|
"options": [],
|
||||||
"query": "SHOW TAG VALUES FROM \"SystemProcessor\" WITH KEY = \"system\" WHERE time > now() - 24h",
|
"query": "SHOW TAG VALUES FROM \"server_processor\" WITH KEY = \"servername\" WHERE time > now() - 24h",
|
||||||
"refresh": 1,
|
"refresh": 1,
|
||||||
"refresh_on_load": false,
|
"refresh_on_load": false,
|
||||||
"regex": "",
|
"regex": "",
|
||||||
|
@ -1258,16 +1328,17 @@
|
||||||
"allValue": null,
|
"allValue": null,
|
||||||
"current": {},
|
"current": {},
|
||||||
"datasource": "${DS_HMCI}",
|
"datasource": "${DS_HMCI}",
|
||||||
"definition": "SHOW TAG VALUES FROM \"PartitionProcessor\" WITH KEY = \"partition\" WHERE system =~ /$ManagedSystem/",
|
"definition": "SHOW TAG VALUES FROM \"lpar_processor\" WITH KEY = \"lparname\" WHERE servername =~ /$ServerName/",
|
||||||
|
"description": null,
|
||||||
"error": null,
|
"error": null,
|
||||||
"hide": 0,
|
"hide": 0,
|
||||||
"includeAll": true,
|
"includeAll": true,
|
||||||
"label": "Logical Partition",
|
"label": "Partition",
|
||||||
"multi": true,
|
"multi": true,
|
||||||
"multiFormat": "regex values",
|
"multiFormat": "regex values",
|
||||||
"name": "Partition",
|
"name": "LparName",
|
||||||
"options": [],
|
"options": [],
|
||||||
"query": "SHOW TAG VALUES FROM \"PartitionProcessor\" WITH KEY = \"partition\" WHERE system =~ /$ManagedSystem/",
|
"query": "SHOW TAG VALUES FROM \"lpar_processor\" WITH KEY = \"lparname\" WHERE servername =~ /$ServerName/",
|
||||||
"refresh": 1,
|
"refresh": 1,
|
||||||
"refresh_on_load": false,
|
"refresh_on_load": false,
|
||||||
"regex": "",
|
"regex": "",
|
||||||
|
@ -1314,5 +1385,5 @@
|
||||||
"timezone": "browser",
|
"timezone": "browser",
|
||||||
"title": "IBM Power - HMC Managed Systems - Resources",
|
"title": "IBM Power - HMC Managed Systems - Resources",
|
||||||
"uid": "ClJhHPIGz",
|
"uid": "ClJhHPIGz",
|
||||||
"version": 12
|
"version": 19
|
||||||
}
|
}
|
|
@ -20,7 +20,7 @@
|
||||||
"type": "grafana",
|
"type": "grafana",
|
||||||
"id": "grafana",
|
"id": "grafana",
|
||||||
"name": "Grafana",
|
"name": "Grafana",
|
||||||
"version": "7.3.1"
|
"version": "7.4.2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "panel",
|
"type": "panel",
|
||||||
|
@ -54,11 +54,12 @@
|
||||||
"gnetId": 1465,
|
"gnetId": 1465,
|
||||||
"graphTooltip": 0,
|
"graphTooltip": 0,
|
||||||
"id": null,
|
"id": null,
|
||||||
"iteration": 1610631883782,
|
"iteration": 1616701495725,
|
||||||
"links": [],
|
"links": [],
|
||||||
"panels": [
|
"panels": [
|
||||||
{
|
{
|
||||||
"datasource": "${DS_HMCI}",
|
"datasource": "${DS_HMCI}",
|
||||||
|
"description": "",
|
||||||
"fieldConfig": {
|
"fieldConfig": {
|
||||||
"defaults": {
|
"defaults": {
|
||||||
"custom": {},
|
"custom": {},
|
||||||
|
@ -98,9 +99,10 @@
|
||||||
"values": false
|
"values": false
|
||||||
},
|
},
|
||||||
"showThresholdLabels": false,
|
"showThresholdLabels": false,
|
||||||
"showThresholdMarkers": true
|
"showThresholdMarkers": true,
|
||||||
|
"text": {}
|
||||||
},
|
},
|
||||||
"pluginVersion": "7.3.1",
|
"pluginVersion": "7.4.2",
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"alias": "$tag_vios",
|
"alias": "$tag_vios",
|
||||||
|
@ -114,13 +116,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"vios"
|
"viosname"
|
||||||
],
|
|
||||||
"type": "tag"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"params": [
|
|
||||||
"name"
|
|
||||||
],
|
],
|
||||||
"type": "tag"
|
"type": "tag"
|
||||||
},
|
},
|
||||||
|
@ -132,7 +128,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"hide": false,
|
"hide": false,
|
||||||
"measurement": "SystemViosMemory",
|
"measurement": "vios_memory",
|
||||||
"orderByTime": "ASC",
|
"orderByTime": "ASC",
|
||||||
"policy": "default",
|
"policy": "default",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
|
@ -141,7 +137,7 @@
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"value"
|
"utilizedPct"
|
||||||
],
|
],
|
||||||
"type": "field"
|
"type": "field"
|
||||||
},
|
},
|
||||||
|
@ -153,28 +149,22 @@
|
||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
{
|
{
|
||||||
"key": "system",
|
"key": "servername",
|
||||||
"operator": "=~",
|
"operator": "=~",
|
||||||
"value": "/^$ManagedSystem$/"
|
"value": "/^$ServerName$/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"condition": "AND",
|
"condition": "AND",
|
||||||
"key": "vios",
|
"key": "viosname",
|
||||||
"operator": "=~",
|
"operator": "=~",
|
||||||
"value": "/^$Vios$/"
|
"value": "/^$ViosName$/"
|
||||||
},
|
|
||||||
{
|
|
||||||
"condition": "AND",
|
|
||||||
"key": "name",
|
|
||||||
"operator": "=",
|
|
||||||
"value": "utilizedMemPct"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"timeFrom": null,
|
"timeFrom": null,
|
||||||
"timeShift": null,
|
"timeShift": null,
|
||||||
"title": "$ManagedSystem - $Vios - Memory",
|
"title": "$ServerName - $ViosName Memory",
|
||||||
"type": "gauge"
|
"type": "gauge"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -184,6 +174,7 @@
|
||||||
"dashLength": 10,
|
"dashLength": 10,
|
||||||
"dashes": false,
|
"dashes": false,
|
||||||
"datasource": "${DS_HMCI}",
|
"datasource": "${DS_HMCI}",
|
||||||
|
"description": "",
|
||||||
"editable": true,
|
"editable": true,
|
||||||
"error": false,
|
"error": false,
|
||||||
"fieldConfig": {
|
"fieldConfig": {
|
||||||
|
@ -224,7 +215,7 @@
|
||||||
"alertThreshold": true
|
"alertThreshold": true
|
||||||
},
|
},
|
||||||
"percentage": false,
|
"percentage": false,
|
||||||
"pluginVersion": "7.3.1",
|
"pluginVersion": "7.4.2",
|
||||||
"pointradius": 5,
|
"pointradius": 5,
|
||||||
"points": false,
|
"points": false,
|
||||||
"renderer": "flot",
|
"renderer": "flot",
|
||||||
|
@ -235,7 +226,7 @@
|
||||||
"style": {},
|
"style": {},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"alias": "$tag_vios: $tag_name",
|
"alias": "$tag_viosname",
|
||||||
"dsType": "influxdb",
|
"dsType": "influxdb",
|
||||||
"groupBy": [
|
"groupBy": [
|
||||||
{
|
{
|
||||||
|
@ -246,7 +237,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"vios"
|
"viosname"
|
||||||
],
|
],
|
||||||
"type": "tag"
|
"type": "tag"
|
||||||
},
|
},
|
||||||
|
@ -264,7 +255,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"hide": false,
|
"hide": false,
|
||||||
"measurement": "SystemViosProcessor",
|
"measurement": "vios_processor",
|
||||||
"orderByTime": "ASC",
|
"orderByTime": "ASC",
|
||||||
"policy": "default",
|
"policy": "default",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
|
@ -273,7 +264,7 @@
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"value"
|
"utilizedProcUnits"
|
||||||
],
|
],
|
||||||
"type": "field"
|
"type": "field"
|
||||||
},
|
},
|
||||||
|
@ -285,21 +276,15 @@
|
||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
{
|
{
|
||||||
"key": "system",
|
"key": "servername",
|
||||||
"operator": "=~",
|
"operator": "=~",
|
||||||
"value": "/^$ManagedSystem$/"
|
"value": "/^$ServerName$/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"condition": "AND",
|
"condition": "AND",
|
||||||
"key": "vios",
|
"key": "viosname",
|
||||||
"operator": "=~",
|
"operator": "=~",
|
||||||
"value": "/^$Vios$/"
|
"value": "/^$ViosName$/"
|
||||||
},
|
|
||||||
{
|
|
||||||
"condition": "AND",
|
|
||||||
"key": "name",
|
|
||||||
"operator": "=~",
|
|
||||||
"value": "/utilized/"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -308,7 +293,7 @@
|
||||||
"timeFrom": null,
|
"timeFrom": null,
|
||||||
"timeRegions": [],
|
"timeRegions": [],
|
||||||
"timeShift": null,
|
"timeShift": null,
|
||||||
"title": "$ManagedSystem - $Vios - Processors",
|
"title": "$ServerName - $ViosName - Processors",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"msResolution": false,
|
"msResolution": false,
|
||||||
"shared": true,
|
"shared": true,
|
||||||
|
@ -355,6 +340,7 @@
|
||||||
"dashLength": 10,
|
"dashLength": 10,
|
||||||
"dashes": false,
|
"dashes": false,
|
||||||
"datasource": "${DS_HMCI}",
|
"datasource": "${DS_HMCI}",
|
||||||
|
"description": "",
|
||||||
"editable": true,
|
"editable": true,
|
||||||
"error": false,
|
"error": false,
|
||||||
"fieldConfig": {
|
"fieldConfig": {
|
||||||
|
@ -395,7 +381,7 @@
|
||||||
"alertThreshold": true
|
"alertThreshold": true
|
||||||
},
|
},
|
||||||
"percentage": false,
|
"percentage": false,
|
||||||
"pluginVersion": "7.3.1",
|
"pluginVersion": "7.4.2",
|
||||||
"pointradius": 5,
|
"pointradius": 5,
|
||||||
"points": false,
|
"points": false,
|
||||||
"renderer": "flot",
|
"renderer": "flot",
|
||||||
|
@ -406,7 +392,7 @@
|
||||||
"style": {},
|
"style": {},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"alias": "$tag_vios: $tag_id ($tag_device)",
|
"alias": "$tag_viosname: $tag_id ($tag_location)",
|
||||||
"dsType": "influxdb",
|
"dsType": "influxdb",
|
||||||
"groupBy": [
|
"groupBy": [
|
||||||
{
|
{
|
||||||
|
@ -417,13 +403,13 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"vios"
|
"viosname"
|
||||||
],
|
],
|
||||||
"type": "tag"
|
"type": "tag"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"device"
|
"location"
|
||||||
],
|
],
|
||||||
"type": "tag"
|
"type": "tag"
|
||||||
},
|
},
|
||||||
|
@ -441,7 +427,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"hide": false,
|
"hide": false,
|
||||||
"measurement": "SystemFiberChannelAdapters",
|
"measurement": "vios_storage_FC",
|
||||||
"orderByTime": "ASC",
|
"orderByTime": "ASC",
|
||||||
"policy": "default",
|
"policy": "default",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
|
@ -450,7 +436,7 @@
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"value"
|
"transmittedBytes"
|
||||||
],
|
],
|
||||||
"type": "field"
|
"type": "field"
|
||||||
},
|
},
|
||||||
|
@ -462,21 +448,15 @@
|
||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
{
|
{
|
||||||
"key": "system",
|
"key": "servername",
|
||||||
"operator": "=~",
|
"operator": "=~",
|
||||||
"value": "/^$ManagedSystem$/"
|
"value": "/^$ServerName$/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"condition": "AND",
|
"condition": "AND",
|
||||||
"key": "vios",
|
"key": "viosname",
|
||||||
"operator": "=~",
|
"operator": "=~",
|
||||||
"value": "/^$Vios$/"
|
"value": "/^$ViosName$/"
|
||||||
},
|
|
||||||
{
|
|
||||||
"condition": "AND",
|
|
||||||
"key": "name",
|
|
||||||
"operator": "=",
|
|
||||||
"value": "transmittedBytes"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -485,7 +465,7 @@
|
||||||
"timeFrom": null,
|
"timeFrom": null,
|
||||||
"timeRegions": [],
|
"timeRegions": [],
|
||||||
"timeShift": null,
|
"timeShift": null,
|
||||||
"title": "$ManagedSystem - $Vios - Fiber Channel Adapters",
|
"title": "$ServerName - $ViosName - Fiber Channel Adapters",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"msResolution": false,
|
"msResolution": false,
|
||||||
"shared": true,
|
"shared": true,
|
||||||
|
@ -546,8 +526,8 @@
|
||||||
"fillGradient": 1,
|
"fillGradient": 1,
|
||||||
"grid": {},
|
"grid": {},
|
||||||
"gridPos": {
|
"gridPos": {
|
||||||
"h": 10,
|
"h": 11,
|
||||||
"w": 12,
|
"w": 24,
|
||||||
"x": 0,
|
"x": 0,
|
||||||
"y": 20
|
"y": 20
|
||||||
},
|
},
|
||||||
|
@ -573,7 +553,7 @@
|
||||||
"alertThreshold": true
|
"alertThreshold": true
|
||||||
},
|
},
|
||||||
"percentage": false,
|
"percentage": false,
|
||||||
"pluginVersion": "7.3.1",
|
"pluginVersion": "7.4.2",
|
||||||
"pointradius": 5,
|
"pointradius": 5,
|
||||||
"points": false,
|
"points": false,
|
||||||
"renderer": "flot",
|
"renderer": "flot",
|
||||||
|
@ -584,7 +564,7 @@
|
||||||
"style": {},
|
"style": {},
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"alias": "$tag_vios: $tag_name",
|
"alias": "$tag_viosname - shared",
|
||||||
"dsType": "influxdb",
|
"dsType": "influxdb",
|
||||||
"groupBy": [
|
"groupBy": [
|
||||||
{
|
{
|
||||||
|
@ -595,13 +575,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"vios"
|
"viosname"
|
||||||
],
|
|
||||||
"type": "tag"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"params": [
|
|
||||||
"name"
|
|
||||||
],
|
],
|
||||||
"type": "tag"
|
"type": "tag"
|
||||||
},
|
},
|
||||||
|
@ -613,7 +587,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"hide": false,
|
"hide": false,
|
||||||
"measurement": "SystemVirtualEthernetAdapters",
|
"measurement": "vios_network_shared",
|
||||||
"orderByTime": "ASC",
|
"orderByTime": "ASC",
|
||||||
"policy": "default",
|
"policy": "default",
|
||||||
"refId": "A",
|
"refId": "A",
|
||||||
|
@ -622,7 +596,7 @@
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"value"
|
"transferredBytes"
|
||||||
],
|
],
|
||||||
"type": "field"
|
"type": "field"
|
||||||
},
|
},
|
||||||
|
@ -634,128 +608,20 @@
|
||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
{
|
{
|
||||||
"key": "system",
|
"key": "servername",
|
||||||
"operator": "=~",
|
"operator": "=~",
|
||||||
"value": "/^$ManagedSystem$/"
|
"value": "/^$ServerName$/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"condition": "AND",
|
"condition": "AND",
|
||||||
"key": "vios",
|
"key": "viosname",
|
||||||
"operator": "=~",
|
"operator": "=~",
|
||||||
"value": "/^$Vios$/"
|
"value": "/^$ViosName$/"
|
||||||
},
|
|
||||||
{
|
|
||||||
"condition": "AND",
|
|
||||||
"key": "name",
|
|
||||||
"operator": "=~",
|
|
||||||
"value": "/.*Bytes/"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
|
||||||
],
|
|
||||||
"thresholds": [],
|
|
||||||
"timeFrom": null,
|
|
||||||
"timeRegions": [],
|
|
||||||
"timeShift": null,
|
|
||||||
"title": "$ManagedSystem - $Vios - Virtual Ethernet Adapters",
|
|
||||||
"tooltip": {
|
|
||||||
"msResolution": false,
|
|
||||||
"shared": true,
|
|
||||||
"sort": 2,
|
|
||||||
"value_type": "individual"
|
|
||||||
},
|
|
||||||
"type": "graph",
|
|
||||||
"xaxis": {
|
|
||||||
"buckets": null,
|
|
||||||
"mode": "time",
|
|
||||||
"name": null,
|
|
||||||
"show": true,
|
|
||||||
"values": []
|
|
||||||
},
|
|
||||||
"yaxes": [
|
|
||||||
{
|
|
||||||
"$$hashKey": "object:2622",
|
|
||||||
"format": "Bps",
|
|
||||||
"label": null,
|
|
||||||
"logBase": 1,
|
|
||||||
"max": null,
|
|
||||||
"min": null,
|
|
||||||
"show": true
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$$hashKey": "object:2623",
|
"alias": "$tag_viosname - generic",
|
||||||
"format": "short",
|
|
||||||
"label": null,
|
|
||||||
"logBase": 1,
|
|
||||||
"max": null,
|
|
||||||
"min": null,
|
|
||||||
"show": false
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"yaxis": {
|
|
||||||
"align": false,
|
|
||||||
"alignLevel": null
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"aliasColors": {},
|
|
||||||
"bars": false,
|
|
||||||
"content": "",
|
|
||||||
"dashLength": 10,
|
|
||||||
"dashes": false,
|
|
||||||
"datasource": "${DS_HMCI}",
|
|
||||||
"editable": true,
|
|
||||||
"error": false,
|
|
||||||
"fieldConfig": {
|
|
||||||
"defaults": {
|
|
||||||
"custom": {},
|
|
||||||
"links": []
|
|
||||||
},
|
|
||||||
"overrides": []
|
|
||||||
},
|
|
||||||
"fill": 1,
|
|
||||||
"fillGradient": 2,
|
|
||||||
"grid": {},
|
|
||||||
"gridPos": {
|
|
||||||
"h": 10,
|
|
||||||
"w": 12,
|
|
||||||
"x": 12,
|
|
||||||
"y": 20
|
|
||||||
},
|
|
||||||
"hiddenSeries": false,
|
|
||||||
"id": 11,
|
|
||||||
"legend": {
|
|
||||||
"alignAsTable": true,
|
|
||||||
"avg": true,
|
|
||||||
"current": false,
|
|
||||||
"max": true,
|
|
||||||
"min": true,
|
|
||||||
"rightSide": false,
|
|
||||||
"show": false,
|
|
||||||
"total": false,
|
|
||||||
"values": true
|
|
||||||
},
|
|
||||||
"lines": true,
|
|
||||||
"linewidth": 2,
|
|
||||||
"links": [],
|
|
||||||
"mode": "",
|
|
||||||
"nullPointMode": "connected",
|
|
||||||
"options": {
|
|
||||||
"alertThreshold": true
|
|
||||||
},
|
|
||||||
"percentage": false,
|
|
||||||
"pluginVersion": "7.3.1",
|
|
||||||
"pointradius": 5,
|
|
||||||
"points": false,
|
|
||||||
"renderer": "flot",
|
|
||||||
"seriesOverrides": [],
|
|
||||||
"spaceLength": 10,
|
|
||||||
"stack": false,
|
|
||||||
"steppedLine": false,
|
|
||||||
"style": {},
|
|
||||||
"targets": [
|
|
||||||
{
|
|
||||||
"alias": "$tag_vios: $tag_name",
|
|
||||||
"dsType": "influxdb",
|
"dsType": "influxdb",
|
||||||
"groupBy": [
|
"groupBy": [
|
||||||
{
|
{
|
||||||
|
@ -766,13 +632,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"vios"
|
"viosname"
|
||||||
],
|
|
||||||
"type": "tag"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"params": [
|
|
||||||
"name"
|
|
||||||
],
|
],
|
||||||
"type": "tag"
|
"type": "tag"
|
||||||
},
|
},
|
||||||
|
@ -784,16 +644,16 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"hide": false,
|
"hide": false,
|
||||||
"measurement": "SystemSharedAdapters",
|
"measurement": "vios_network_generic",
|
||||||
"orderByTime": "ASC",
|
"orderByTime": "ASC",
|
||||||
"policy": "default",
|
"policy": "default",
|
||||||
"refId": "A",
|
"refId": "B",
|
||||||
"resultFormat": "time_series",
|
"resultFormat": "time_series",
|
||||||
"select": [
|
"select": [
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"params": [
|
"params": [
|
||||||
"value"
|
"transferredBytes"
|
||||||
],
|
],
|
||||||
"type": "field"
|
"type": "field"
|
||||||
},
|
},
|
||||||
|
@ -805,21 +665,72 @@
|
||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
{
|
{
|
||||||
"key": "system",
|
"key": "servername",
|
||||||
"operator": "=~",
|
"operator": "=~",
|
||||||
"value": "/^$ManagedSystem$/"
|
"value": "/^$ServerName$/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"condition": "AND",
|
"condition": "AND",
|
||||||
"key": "vios",
|
"key": "viosname",
|
||||||
"operator": "=~",
|
"operator": "=~",
|
||||||
"value": "/^$Vios$/"
|
"value": "/^$ViosName$/"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"alias": "$tag_viosname - virtual",
|
||||||
|
"dsType": "influxdb",
|
||||||
|
"groupBy": [
|
||||||
|
{
|
||||||
|
"params": [
|
||||||
|
"$interval"
|
||||||
|
],
|
||||||
|
"type": "time"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"params": [
|
||||||
|
"viosname"
|
||||||
|
],
|
||||||
|
"type": "tag"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"params": [
|
||||||
|
"null"
|
||||||
|
],
|
||||||
|
"type": "fill"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"hide": false,
|
||||||
|
"measurement": "vios_network_virtual",
|
||||||
|
"orderByTime": "ASC",
|
||||||
|
"policy": "default",
|
||||||
|
"refId": "C",
|
||||||
|
"resultFormat": "time_series",
|
||||||
|
"select": [
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"params": [
|
||||||
|
"transferredBytes"
|
||||||
|
],
|
||||||
|
"type": "field"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"params": [],
|
||||||
|
"type": "mean"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
{
|
||||||
|
"key": "servername",
|
||||||
|
"operator": "=~",
|
||||||
|
"value": "/^$ServerName$/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"condition": "AND",
|
"condition": "AND",
|
||||||
"key": "name",
|
"key": "viosname",
|
||||||
"operator": "=",
|
"operator": "=~",
|
||||||
"value": "transferredBytes"
|
"value": "/^$ViosName$/"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -828,7 +739,7 @@
|
||||||
"timeFrom": null,
|
"timeFrom": null,
|
||||||
"timeRegions": [],
|
"timeRegions": [],
|
||||||
"timeShift": null,
|
"timeShift": null,
|
||||||
"title": "$ManagedSystem - $Vios - Shared Adapters",
|
"title": "$ServerName - $ViosName - Network",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"msResolution": false,
|
"msResolution": false,
|
||||||
"shared": true,
|
"shared": true,
|
||||||
|
@ -870,7 +781,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"refresh": "30s",
|
"refresh": "30s",
|
||||||
"schemaVersion": 26,
|
"schemaVersion": 27,
|
||||||
"style": "dark",
|
"style": "dark",
|
||||||
"tags": [
|
"tags": [
|
||||||
"Power",
|
"Power",
|
||||||
|
@ -884,16 +795,17 @@
|
||||||
"allValue": null,
|
"allValue": null,
|
||||||
"current": {},
|
"current": {},
|
||||||
"datasource": "${DS_HMCI}",
|
"datasource": "${DS_HMCI}",
|
||||||
"definition": "SHOW TAG VALUES FROM \"SystemProcessor\" WITH KEY = \"system\" WHERE time > now() - 24h",
|
"definition": "SHOW TAG VALUES FROM \"server_processor\" WITH KEY = \"servername\" WHERE time > now() - 24h",
|
||||||
|
"description": null,
|
||||||
"error": null,
|
"error": null,
|
||||||
"hide": 0,
|
"hide": 0,
|
||||||
"includeAll": false,
|
"includeAll": false,
|
||||||
"label": "System",
|
"label": "Server",
|
||||||
"multi": true,
|
"multi": true,
|
||||||
"multiFormat": "regex values",
|
"multiFormat": "regex values",
|
||||||
"name": "ManagedSystem",
|
"name": "ServerName",
|
||||||
"options": [],
|
"options": [],
|
||||||
"query": "SHOW TAG VALUES FROM \"SystemProcessor\" WITH KEY = \"system\" WHERE time > now() - 24h",
|
"query": "SHOW TAG VALUES FROM \"server_processor\" WITH KEY = \"servername\" WHERE time > now() - 24h",
|
||||||
"refresh": 1,
|
"refresh": 1,
|
||||||
"refresh_on_load": false,
|
"refresh_on_load": false,
|
||||||
"regex": "",
|
"regex": "",
|
||||||
|
@ -910,16 +822,17 @@
|
||||||
"allValue": null,
|
"allValue": null,
|
||||||
"current": {},
|
"current": {},
|
||||||
"datasource": "${DS_HMCI}",
|
"datasource": "${DS_HMCI}",
|
||||||
"definition": "SHOW TAG VALUES FROM \"SystemFiberChannelAdapters\" WITH KEY = \"vios\" WHERE system =~ /$ManagedSystem/",
|
"definition": "SHOW TAG VALUES FROM \"vios_details\" WITH KEY = \"viosname\" WHERE servername =~ /$ServerName/ AND time > now() - 24h",
|
||||||
|
"description": null,
|
||||||
"error": null,
|
"error": null,
|
||||||
"hide": 0,
|
"hide": 0,
|
||||||
"includeAll": true,
|
"includeAll": true,
|
||||||
"label": "Virtual I/O Server",
|
"label": "Virtual I/O Server",
|
||||||
"multi": true,
|
"multi": true,
|
||||||
"multiFormat": "regex values",
|
"multiFormat": "regex values",
|
||||||
"name": "Vios",
|
"name": "ViosName",
|
||||||
"options": [],
|
"options": [],
|
||||||
"query": "SHOW TAG VALUES FROM \"SystemFiberChannelAdapters\" WITH KEY = \"vios\" WHERE system =~ /$ManagedSystem/",
|
"query": "SHOW TAG VALUES FROM \"vios_details\" WITH KEY = \"viosname\" WHERE servername =~ /$ServerName/ AND time > now() - 24h",
|
||||||
"refresh": 1,
|
"refresh": 1,
|
||||||
"refresh_on_load": false,
|
"refresh_on_load": false,
|
||||||
"regex": "",
|
"regex": "",
|
||||||
|
@ -966,5 +879,5 @@
|
||||||
"timezone": "browser",
|
"timezone": "browser",
|
||||||
"title": "IBM Power - HMC Managed Systems - Virtual I/O Servers",
|
"title": "IBM Power - HMC Managed Systems - Virtual I/O Servers",
|
||||||
"uid": "DDNEv5vGz",
|
"uid": "DDNEv5vGz",
|
||||||
"version": 10
|
"version": 11
|
||||||
}
|
}
|
|
@ -1,3 +1,3 @@
|
||||||
id = hmci
|
id = hmci
|
||||||
group = biz.nellemann.hmci
|
group = biz.nellemann.hmci
|
||||||
version = 1.1.6
|
version = 1.2.1
|
||||||
|
|
|
@ -1,3 +1,18 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2020 Mark Nellemann <mark.nellemann@gmail.com>
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
package biz.nellemann.hmci;
|
package biz.nellemann.hmci;
|
||||||
|
|
||||||
import org.tomlj.Toml;
|
import org.tomlj.Toml;
|
||||||
|
|
|
@ -132,58 +132,119 @@ class InfluxClient {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
getSystemMemory(system, timestamp).forEach( it -> batchPoints.point(it) );
|
getSystemDetails(system, timestamp).forEach( it -> batchPoints.point(it) );
|
||||||
getSystemProcessor(system, timestamp).forEach( it -> batchPoints.point(it) );
|
getSystemProcessor(system, timestamp).forEach( it -> batchPoints.point(it) );
|
||||||
|
getSystemPhysicalProcessorPool(system, timestamp).forEach( it -> batchPoints.point(it) );
|
||||||
getSystemSharedProcessorPools(system, timestamp).forEach( it -> batchPoints.point(it) );
|
getSystemSharedProcessorPools(system, timestamp).forEach( it -> batchPoints.point(it) );
|
||||||
getSystemSharedAdapters(system, timestamp).forEach( it -> batchPoints.point(it) );
|
getSystemMemory(system, timestamp).forEach( it -> batchPoints.point(it) );
|
||||||
getSystemFiberChannelAdapters(system, timestamp).forEach( it -> batchPoints.point(it) );
|
|
||||||
getSystemVirtualEthernetAdapters(system, timestamp).forEach( it -> batchPoints.point(it) );
|
getSystemViosDetails(system, timestamp).forEach(it -> batchPoints.point(it) );
|
||||||
getSystemViosMemory(system, timestamp).forEach( it -> batchPoints.point(it) );
|
|
||||||
getSystemViosProcessor(system, timestamp).forEach( it -> batchPoints.point(it) );
|
getSystemViosProcessor(system, timestamp).forEach( it -> batchPoints.point(it) );
|
||||||
|
getSystemViosMemory(system, timestamp).forEach( it -> batchPoints.point(it) );
|
||||||
|
|
||||||
|
getSystemViosNetworkLpars(system, timestamp).forEach(it -> batchPoints.point(it) );
|
||||||
|
getSystemViosNetworkGenericAdapters(system, timestamp).forEach(it -> batchPoints.point(it) );
|
||||||
|
getSystemViosNetworkSharedAdapters(system, timestamp).forEach(it -> batchPoints.point(it) );
|
||||||
|
getSystemViosNetworkVirtualAdapters(system, timestamp).forEach(it -> batchPoints.point(it) );
|
||||||
|
|
||||||
|
getSystemViosStorageLpars(system, timestamp).forEach(it -> batchPoints.point(it) );
|
||||||
|
getSystemViosFiberChannelAdapters(system, timestamp).forEach(it -> batchPoints.point(it) );
|
||||||
|
getSystemViosStoragePhysicalAdapters(system, timestamp).forEach(it -> batchPoints.point(it) );
|
||||||
|
getSystemViosStorageVirtualAdapters(system, timestamp).forEach(it -> batchPoints.point(it) );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static List<Point> getSystemMemory(ManagedSystem system, Instant timestamp) {
|
// TODO: server_details
|
||||||
List<Measurement> metrics = system.getMemoryMetrics();
|
|
||||||
return processMeasurementMap(metrics, timestamp, "SystemMemory");
|
private static List<Point> getSystemDetails(ManagedSystem system, Instant timestamp) {
|
||||||
|
List<Measurement> metrics = system.getDetails();
|
||||||
|
return processMeasurementMap(metrics, timestamp, "server_details");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<Point> getSystemProcessor(ManagedSystem system, Instant timestamp) {
|
private static List<Point> getSystemProcessor(ManagedSystem system, Instant timestamp) {
|
||||||
List<Measurement> metrics = system.getProcessorMetrics();
|
List<Measurement> metrics = system.getProcessorMetrics();
|
||||||
return processMeasurementMap(metrics, timestamp, "SystemProcessor");
|
return processMeasurementMap(metrics, timestamp, "server_processor");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List<Point> getSystemPhysicalProcessorPool (ManagedSystem system, Instant timestamp) {
|
||||||
|
List<Measurement> metrics = system.getPhysicalProcessorPool();
|
||||||
|
return processMeasurementMap(metrics, timestamp, "server_physicalProcessorPool");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<Point> getSystemSharedProcessorPools(ManagedSystem system, Instant timestamp) {
|
private static List<Point> getSystemSharedProcessorPools(ManagedSystem system, Instant timestamp) {
|
||||||
List<Measurement> metrics = system.getSharedProcessorPools();
|
List<Measurement> metrics = system.getSharedProcessorPools();
|
||||||
return processMeasurementMap(metrics, timestamp, "SystemSharedProcessorPool");
|
return processMeasurementMap(metrics, timestamp, "server_sharedProcessorPool");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<Point> getSystemSharedAdapters(ManagedSystem system, Instant timestamp) {
|
private static List<Point> getSystemMemory(ManagedSystem system, Instant timestamp) {
|
||||||
List<Measurement> metrics = system.getSystemSharedAdapters();
|
List<Measurement> metrics = system.getMemoryMetrics();
|
||||||
return processMeasurementMap(metrics, timestamp, "SystemSharedAdapters");
|
return processMeasurementMap(metrics, timestamp, "server_memory");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<Point> getSystemFiberChannelAdapters(ManagedSystem system, Instant timestamp) {
|
private static List<Point> getSystemViosDetails(ManagedSystem system, Instant timestamp) {
|
||||||
List<Measurement> metrics = system.getSystemFiberChannelAdapters();
|
List<Measurement> metrics = system.getViosDetails();
|
||||||
return processMeasurementMap(metrics, timestamp, "SystemFiberChannelAdapters");
|
return processMeasurementMap(metrics, timestamp, "vios_details");
|
||||||
}
|
|
||||||
|
|
||||||
private static List<Point> getSystemVirtualEthernetAdapters(ManagedSystem system, Instant timestamp) {
|
|
||||||
List<Measurement> metrics = system.getSystemVirtualEthernetAdapters();
|
|
||||||
return processMeasurementMap(metrics, timestamp, "SystemVirtualEthernetAdapters");
|
|
||||||
}
|
|
||||||
|
|
||||||
private static List<Point> getSystemViosMemory(ManagedSystem system, Instant timestamp) {
|
|
||||||
List<Measurement> metrics = system.getViosMemoryMetrics();
|
|
||||||
return processMeasurementMap(metrics, timestamp, "SystemViosMemory");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<Point> getSystemViosProcessor(ManagedSystem system, Instant timestamp) {
|
private static List<Point> getSystemViosProcessor(ManagedSystem system, Instant timestamp) {
|
||||||
List<Measurement> metrics = system.getViosProcessorMetrics();
|
List<Measurement> metrics = system.getViosProcessorMetrics();
|
||||||
return processMeasurementMap(metrics, timestamp, "SystemViosProcessor");
|
return processMeasurementMap(metrics, timestamp, "vios_processor");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static List<Point> getSystemViosMemory(ManagedSystem system, Instant timestamp) {
|
||||||
|
List<Measurement> metrics = system.getViosMemoryMetrics();
|
||||||
|
return processMeasurementMap(metrics, timestamp, "vios_memory");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List<Point> getSystemViosNetworkLpars(ManagedSystem system, Instant timestamp) {
|
||||||
|
List<Measurement> metrics = system.getViosNetworkLpars();
|
||||||
|
return processMeasurementMap(metrics, timestamp, "vios_network_lpars");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List<Point> getSystemViosNetworkVirtualAdapters(ManagedSystem system, Instant timestamp) {
|
||||||
|
List<Measurement> metrics = system.getViosNetworkVirtualAdapters();
|
||||||
|
return processMeasurementMap(metrics, timestamp, "vios_network_virtual");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List<Point> getSystemViosNetworkSharedAdapters(ManagedSystem system, Instant timestamp) {
|
||||||
|
List<Measurement> metrics = system.getViosNetworkSharedAdapters();
|
||||||
|
return processMeasurementMap(metrics, timestamp, "vios_network_shared");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List<Point> getSystemViosNetworkGenericAdapters(ManagedSystem system, Instant timestamp) {
|
||||||
|
List<Measurement> metrics = system.getViosNetworkGenericAdapters();
|
||||||
|
return processMeasurementMap(metrics, timestamp, "vios_network_generic");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static List<Point> getSystemViosStorageLpars(ManagedSystem system, Instant timestamp) {
|
||||||
|
List<Measurement> metrics = system.getViosStorageLpars();
|
||||||
|
return processMeasurementMap(metrics, timestamp, "vios_storage_lpars");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List<Point> getSystemViosFiberChannelAdapters(ManagedSystem system, Instant timestamp) {
|
||||||
|
List<Measurement> metrics = system.getViosStorageFiberChannelAdapters();
|
||||||
|
return processMeasurementMap(metrics, timestamp, "vios_storage_FC");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List<Point> getSystemViosSharedStoragePools(ManagedSystem system, Instant timestamp) {
|
||||||
|
List<Measurement> metrics = system.getViosStorageSharedStoragePools();
|
||||||
|
return processMeasurementMap(metrics, timestamp, "vios_storage_SSP");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List<Point> getSystemViosStoragePhysicalAdapters(ManagedSystem system, Instant timestamp) {
|
||||||
|
List<Measurement> metrics = system.getViosStoragePhysicalAdapters();
|
||||||
|
return processMeasurementMap(metrics, timestamp, "vios_storage_physical");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List<Point> getSystemViosStorageVirtualAdapters(ManagedSystem system, Instant timestamp) {
|
||||||
|
List<Measurement> metrics = system.getViosStorageVirtualAdapters();
|
||||||
|
return processMeasurementMap(metrics, timestamp, "vios_storage_vFC");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Logical Partitions
|
Logical Partitions
|
||||||
|
@ -202,39 +263,46 @@ class InfluxClient {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
getPartitionAffinityScore(partition, timestamp).forEach( it -> batchPoints.point(it));
|
getPartitionDetails(partition, timestamp).forEach( it -> batchPoints.point(it));
|
||||||
getPartitionMemory(partition, timestamp).forEach( it -> batchPoints.point(it));
|
getPartitionMemory(partition, timestamp).forEach( it -> batchPoints.point(it));
|
||||||
getPartitionProcessor(partition, timestamp).forEach( it -> batchPoints.point(it));
|
getPartitionProcessor(partition, timestamp).forEach( it -> batchPoints.point(it));
|
||||||
getPartitionVirtualEthernetAdapter(partition, timestamp).forEach( it -> batchPoints.point(it));
|
getPartitionNetworkVirtual(partition, timestamp).forEach(it -> batchPoints.point(it));
|
||||||
getPartitionVirtualFiberChannelAdapter(partition, timestamp).forEach( it -> batchPoints.point(it));
|
getPartitionStorageVirtualGeneric(partition, timestamp).forEach(it -> batchPoints.point(it));
|
||||||
|
getPartitionStorageVirtualFibreChannel(partition, timestamp).forEach(it -> batchPoints.point(it));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<Point> getPartitionAffinityScore(LogicalPartition partition, Instant timestamp) {
|
private static List<Point> getPartitionDetails(LogicalPartition partition, Instant timestamp) {
|
||||||
List<Measurement> metrics = partition.getAffinityScore();
|
List<Measurement> metrics = partition.getDetails();
|
||||||
return processMeasurementMap(metrics, timestamp, "PartitionAffinityScore");
|
return processMeasurementMap(metrics, timestamp, "lpar_details");
|
||||||
}
|
|
||||||
|
|
||||||
private static List<Point> getPartitionMemory(LogicalPartition partition, Instant timestamp) {
|
|
||||||
List<Measurement> metrics = partition.getMemoryMetrics();
|
|
||||||
return processMeasurementMap(metrics, timestamp, "PartitionMemory");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<Point> getPartitionProcessor(LogicalPartition partition, Instant timestamp) {
|
private static List<Point> getPartitionProcessor(LogicalPartition partition, Instant timestamp) {
|
||||||
List<Measurement> metrics = partition.getProcessorMetrics();
|
List<Measurement> metrics = partition.getProcessorMetrics();
|
||||||
return processMeasurementMap(metrics, timestamp, "PartitionProcessor");
|
return processMeasurementMap(metrics, timestamp, "lpar_processor");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<Point> getPartitionVirtualEthernetAdapter(LogicalPartition partition, Instant timestamp) {
|
private static List<Point> getPartitionMemory(LogicalPartition partition, Instant timestamp) {
|
||||||
|
List<Measurement> metrics = partition.getMemoryMetrics();
|
||||||
|
return processMeasurementMap(metrics, timestamp, "lpar_memory");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List<Point> getPartitionNetworkVirtual(LogicalPartition partition, Instant timestamp) {
|
||||||
List<Measurement> metrics = partition.getVirtualEthernetAdapterMetrics();
|
List<Measurement> metrics = partition.getVirtualEthernetAdapterMetrics();
|
||||||
return processMeasurementMap(metrics, timestamp, "PartitionVirtualEthernetAdapters");
|
return processMeasurementMap(metrics, timestamp, "lpar_net_virtual"); // Not 'network'
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<Point> getPartitionVirtualFiberChannelAdapter(LogicalPartition partition, Instant timestamp) {
|
// TODO: lpar_net_sriov
|
||||||
List<Measurement> metrics = partition.getVirtualFiberChannelAdaptersMetrics();
|
|
||||||
return processMeasurementMap(metrics, timestamp, "PartitionVirtualFiberChannelAdapters");
|
private static List<Point> getPartitionStorageVirtualGeneric(LogicalPartition partition, Instant timestamp) {
|
||||||
|
List<Measurement> metrics = partition.getVirtualGenericAdapterMetrics();
|
||||||
|
return processMeasurementMap(metrics, timestamp, "lpar_storage_virtual");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static List<Point> getPartitionStorageVirtualFibreChannel(LogicalPartition partition, Instant timestamp) {
|
||||||
|
List<Measurement> metrics = partition.getVirtualFibreChannelAdapterMetrics();
|
||||||
|
return processMeasurementMap(metrics, timestamp, "lpar_storage_vFC");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -262,12 +330,12 @@ class InfluxClient {
|
||||||
|
|
||||||
private static List<Point> getSystemEnergyPower(SystemEnergy system, Instant timestamp) {
|
private static List<Point> getSystemEnergyPower(SystemEnergy system, Instant timestamp) {
|
||||||
List<Measurement> metrics = system.getPowerMetrics();
|
List<Measurement> metrics = system.getPowerMetrics();
|
||||||
return processMeasurementMap(metrics, timestamp, "SystemEnergyPower");
|
return processMeasurementMap(metrics, timestamp, "server_energy_power");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<Point> getSystemEnergyTemperature(SystemEnergy system, Instant timestamp) {
|
private static List<Point> getSystemEnergyTemperature(SystemEnergy system, Instant timestamp) {
|
||||||
List<Measurement> metrics = system.getThermalMetrics();
|
List<Measurement> metrics = system.getThermalMetrics();
|
||||||
return processMeasurementMap(metrics, timestamp, "SystemEnergyThermal");
|
return processMeasurementMap(metrics, timestamp, "server_energy_thermal");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -280,23 +348,32 @@ class InfluxClient {
|
||||||
List<Point> listOfPoints = new ArrayList<>();
|
List<Point> listOfPoints = new ArrayList<>();
|
||||||
measurements.forEach( m -> {
|
measurements.forEach( m -> {
|
||||||
|
|
||||||
|
Point.Builder builder = Point.measurement(measurement)
|
||||||
|
.time(timestamp.toEpochMilli(), TimeUnit.MILLISECONDS);
|
||||||
|
|
||||||
// Iterate fields
|
// Iterate fields
|
||||||
m.fields.forEach((fieldName, fieldValue) -> {
|
m.fields.forEach((fieldName, fieldValue) -> {
|
||||||
|
|
||||||
log.trace("processMeasurementMap() " + measurement + " - fieldName: " + fieldName + ", fieldValue: " + fieldValue);
|
log.trace("processMeasurementMap() " + measurement + " - fieldName: " + fieldName + ", fieldValue: " + fieldValue);
|
||||||
|
if(fieldValue instanceof Number) {
|
||||||
|
Number num = (Number) fieldValue;
|
||||||
|
builder.addField(fieldName, num);
|
||||||
|
} else if(fieldValue instanceof Boolean) {
|
||||||
|
Boolean bol = (Boolean) fieldValue;
|
||||||
|
builder.addField(fieldName, bol);
|
||||||
|
} else {
|
||||||
|
String str = (String) fieldValue;
|
||||||
|
builder.addField(fieldName, str);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
Point.Builder builder = Point.measurement(measurement)
|
// Iterate tags
|
||||||
.time(timestamp.toEpochMilli(), TimeUnit.MILLISECONDS)
|
|
||||||
.tag("name", fieldName)
|
|
||||||
.addField("value", fieldValue);
|
|
||||||
|
|
||||||
// For each field, we add all tags
|
|
||||||
m.tags.forEach((tagName, tagValue) -> {
|
m.tags.forEach((tagName, tagValue) -> {
|
||||||
builder.tag(tagName, tagValue);
|
|
||||||
log.trace("processMeasurementMap() " + measurement + " - tagName: " + tagName + ", tagValue: " + tagValue);
|
log.trace("processMeasurementMap() " + measurement + " - tagName: " + tagName + ", tagValue: " + tagValue);
|
||||||
|
builder.tag(tagName, tagValue);
|
||||||
});
|
});
|
||||||
|
|
||||||
listOfPoints.add(builder.build());
|
listOfPoints.add(builder.build());
|
||||||
});
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -47,34 +47,40 @@ class LogicalPartition extends MetaSystem {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
List<Measurement> getAffinityScore() {
|
// LPAR Details
|
||||||
|
List<Measurement> getDetails() {
|
||||||
|
|
||||||
List<Measurement> list = new ArrayList<>();
|
List<Measurement> list = new ArrayList<>();
|
||||||
|
|
||||||
Map<String, String> tagsMap = new HashMap<>();
|
Map<String, String> tagsMap = new HashMap<>();
|
||||||
tagsMap.put("system", system.name);
|
tagsMap.put("servername", system.name);
|
||||||
tagsMap.put("partition", name);
|
tagsMap.put("lparname", name);
|
||||||
log.trace("getAffinityScore() - tags: " + tagsMap.toString());
|
log.trace("getDetails() - tags: " + tagsMap.toString());
|
||||||
|
|
||||||
Map<String, Number> fieldsMap = new HashMap<>();
|
Map<String, Object> fieldsMap = new HashMap<>();
|
||||||
|
fieldsMap.put("id", metrics.systemUtil.sample.lparsUtil.id);
|
||||||
|
fieldsMap.put("type", metrics.systemUtil.sample.lparsUtil.type);
|
||||||
|
fieldsMap.put("state", metrics.systemUtil.sample.lparsUtil.state);
|
||||||
|
fieldsMap.put("osType", metrics.systemUtil.sample.lparsUtil.osType);
|
||||||
fieldsMap.put("affinityScore", metrics.systemUtil.sample.lparsUtil.affinityScore);
|
fieldsMap.put("affinityScore", metrics.systemUtil.sample.lparsUtil.affinityScore);
|
||||||
log.trace("getAffinityScore() - fields: " + fieldsMap.toString());
|
log.trace("getDetails() - fields: " + fieldsMap.toString());
|
||||||
|
|
||||||
list.add(new Measurement(tagsMap, fieldsMap));
|
list.add(new Measurement(tagsMap, fieldsMap));
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// LPAR Memory
|
||||||
List<Measurement> getMemoryMetrics() {
|
List<Measurement> getMemoryMetrics() {
|
||||||
|
|
||||||
List<Measurement> list = new ArrayList<>();
|
List<Measurement> list = new ArrayList<>();
|
||||||
|
|
||||||
Map<String, String> tagsMap = new HashMap<>();
|
Map<String, String> tagsMap = new HashMap<>();
|
||||||
tagsMap.put("system", system.name);
|
tagsMap.put("servername", system.name);
|
||||||
tagsMap.put("partition", name);
|
tagsMap.put("lparname", name);
|
||||||
log.trace("getMemoryMetrics() - tags: " + tagsMap.toString());
|
log.trace("getMemoryMetrics() - tags: " + tagsMap.toString());
|
||||||
|
|
||||||
Map<String, Number> fieldsMap = new HashMap<>();
|
Map<String, Object> fieldsMap = new HashMap<>();
|
||||||
fieldsMap.put("logicalMem", metrics.systemUtil.sample.lparsUtil.memory.logicalMem);
|
fieldsMap.put("logicalMem", metrics.systemUtil.sample.lparsUtil.memory.logicalMem);
|
||||||
fieldsMap.put("backedPhysicalMem", metrics.systemUtil.sample.lparsUtil.memory.backedPhysicalMem);
|
fieldsMap.put("backedPhysicalMem", metrics.systemUtil.sample.lparsUtil.memory.backedPhysicalMem);
|
||||||
log.trace("getMemoryMetrics() - fields: " + fieldsMap.toString());
|
log.trace("getMemoryMetrics() - fields: " + fieldsMap.toString());
|
||||||
|
@ -84,27 +90,31 @@ class LogicalPartition extends MetaSystem {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// LPAR Processor
|
||||||
List<Measurement> getProcessorMetrics() {
|
List<Measurement> getProcessorMetrics() {
|
||||||
|
|
||||||
List<Measurement> list = new ArrayList<>();
|
List<Measurement> list = new ArrayList<>();
|
||||||
|
|
||||||
HashMap<String, String> tagsMap = new HashMap<>();
|
HashMap<String, String> tagsMap = new HashMap<>();
|
||||||
tagsMap.put("system", system.name);
|
tagsMap.put("servername", system.name);
|
||||||
tagsMap.put("partition", name);
|
tagsMap.put("lparname", name);
|
||||||
log.trace("getProcessorMetrics() - tags: " + tagsMap.toString());
|
log.trace("getProcessorMetrics() - tags: " + tagsMap.toString());
|
||||||
|
|
||||||
HashMap<String, Number> fieldsMap = new HashMap<>();
|
HashMap<String, Object> fieldsMap = new HashMap<>();
|
||||||
fieldsMap.put("utilizedProcUnits", metrics.systemUtil.sample.lparsUtil.processor.utilizedProcUnits);
|
fieldsMap.put("utilizedProcUnits", metrics.systemUtil.sample.lparsUtil.processor.utilizedProcUnits);
|
||||||
|
fieldsMap.put("entitledProcUnits", metrics.systemUtil.sample.lparsUtil.processor.entitledProcUnits);
|
||||||
|
fieldsMap.put("donatedProcUnits", metrics.systemUtil.sample.lparsUtil.processor.donatedProcUnits);
|
||||||
|
fieldsMap.put("idleProcUnits", metrics.systemUtil.sample.lparsUtil.processor.idleProcUnits);
|
||||||
|
fieldsMap.put("maxProcUnits", metrics.systemUtil.sample.lparsUtil.processor.maxProcUnits);
|
||||||
fieldsMap.put("maxVirtualProcessors", metrics.systemUtil.sample.lparsUtil.processor.maxVirtualProcessors);
|
fieldsMap.put("maxVirtualProcessors", metrics.systemUtil.sample.lparsUtil.processor.maxVirtualProcessors);
|
||||||
fieldsMap.put("currentVirtualProcessors", metrics.systemUtil.sample.lparsUtil.processor.currentVirtualProcessors);
|
fieldsMap.put("currentVirtualProcessors", metrics.systemUtil.sample.lparsUtil.processor.currentVirtualProcessors);
|
||||||
//fieldsMap.donatedProcUnits: metrics.systemUtil.utilSamples.first().lparsUtil.first().processor.donatedProcUnits.first(),
|
|
||||||
fieldsMap.put("entitledProcUnits", metrics.systemUtil.sample.lparsUtil.processor.entitledProcUnits);
|
|
||||||
//fieldsMap.idleProcUnits: metrics.systemUtil.utilSamples.first().lparsUtil.first().processor.idleProcUnits.first(),
|
|
||||||
//fieldsMap.maxProcUnits: metrics.systemUtil.utilSamples.first().lparsUtil.first().processor.maxProcUnits.first(),
|
|
||||||
fieldsMap.put("utilizedCappedProcUnits", metrics.systemUtil.sample.lparsUtil.processor.utilizedCappedProcUnits);
|
fieldsMap.put("utilizedCappedProcUnits", metrics.systemUtil.sample.lparsUtil.processor.utilizedCappedProcUnits);
|
||||||
fieldsMap.put("utilizedUncappedProcUnits", metrics.systemUtil.sample.lparsUtil.processor.utilizedUncappedProcUnits);
|
fieldsMap.put("utilizedUncappedProcUnits", metrics.systemUtil.sample.lparsUtil.processor.utilizedUncappedProcUnits);
|
||||||
fieldsMap.put("timePerInstructionExecution", metrics.systemUtil.sample.lparsUtil.processor.timeSpentWaitingForDispatch);
|
fieldsMap.put("timePerInstructionExecution", metrics.systemUtil.sample.lparsUtil.processor.timeSpentWaitingForDispatch);
|
||||||
fieldsMap.put("timeSpentWaitingForDispatch", metrics.systemUtil.sample.lparsUtil.processor.timePerInstructionExecution);
|
fieldsMap.put("timeSpentWaitingForDispatch", metrics.systemUtil.sample.lparsUtil.processor.timePerInstructionExecution);
|
||||||
|
fieldsMap.put("mode", metrics.systemUtil.sample.lparsUtil.processor.mode);
|
||||||
|
fieldsMap.put("weight", metrics.systemUtil.sample.lparsUtil.processor.weight);
|
||||||
|
fieldsMap.put("poolId", metrics.systemUtil.sample.lparsUtil.processor.poolId);
|
||||||
log.trace("getProcessorMetrics() - fields: " + fieldsMap.toString());
|
log.trace("getProcessorMetrics() - fields: " + fieldsMap.toString());
|
||||||
|
|
||||||
list.add(new Measurement(tagsMap, fieldsMap));
|
list.add(new Measurement(tagsMap, fieldsMap));
|
||||||
|
@ -112,6 +122,7 @@ class LogicalPartition extends MetaSystem {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// LPAR Network - Virtual
|
||||||
List<Measurement> getVirtualEthernetAdapterMetrics() {
|
List<Measurement> getVirtualEthernetAdapterMetrics() {
|
||||||
|
|
||||||
List<Measurement> list = new ArrayList<>();
|
List<Measurement> list = new ArrayList<>();
|
||||||
|
@ -119,19 +130,29 @@ class LogicalPartition extends MetaSystem {
|
||||||
metrics.systemUtil.sample.lparsUtil.network.virtualEthernetAdapters.forEach( adapter -> {
|
metrics.systemUtil.sample.lparsUtil.network.virtualEthernetAdapters.forEach( adapter -> {
|
||||||
|
|
||||||
HashMap<String, String> tagsMap = new HashMap<>();
|
HashMap<String, String> tagsMap = new HashMap<>();
|
||||||
tagsMap.put("system", system.name);
|
tagsMap.put("servername", system.name);
|
||||||
tagsMap.put("partition", name);
|
tagsMap.put("lparname", name);
|
||||||
tagsMap.put("sea", adapter.sharedEthernetAdapterId);
|
tagsMap.put("location", adapter.physicalLocation);
|
||||||
tagsMap.put("viosId", adapter.viosId.toString());
|
tagsMap.put("viosId", adapter.viosId.toString());
|
||||||
tagsMap.put("vlanId", adapter.vlanId.toString());
|
tagsMap.put("vlanId", adapter.vlanId.toString());
|
||||||
tagsMap.put("vswitchId", adapter.vswitchId.toString());
|
tagsMap.put("vswitchId", adapter.vswitchId.toString());
|
||||||
log.trace("getVirtualEthernetAdapterMetrics() - tags: " + tagsMap.toString());
|
log.trace("getVirtualEthernetAdapterMetrics() - tags: " + tagsMap.toString());
|
||||||
|
|
||||||
HashMap<String, Number> fieldsMap = new HashMap<>();
|
HashMap<String, Object> fieldsMap = new HashMap<>();
|
||||||
|
fieldsMap.put("droppedPackets", adapter.droppedPackets);
|
||||||
|
fieldsMap.put("droppedPhysicalPackets", adapter.droppedPhysicalPackets);
|
||||||
|
fieldsMap.put("isPortVlanId", adapter.isPortVlanId);
|
||||||
fieldsMap.put("receivedPhysicalBytes", adapter.receivedPhysicalBytes);
|
fieldsMap.put("receivedPhysicalBytes", adapter.receivedPhysicalBytes);
|
||||||
|
fieldsMap.put("receivedPhysicalPackets", adapter.receivedPhysicalPackets);
|
||||||
fieldsMap.put("sentPhysicalBytes", adapter.sentPhysicalBytes);
|
fieldsMap.put("sentPhysicalBytes", adapter.sentPhysicalBytes);
|
||||||
|
fieldsMap.put("sentPhysicalPackets", adapter.sentPhysicalPackets);
|
||||||
fieldsMap.put("receivedBytes", adapter.receivedBytes);
|
fieldsMap.put("receivedBytes", adapter.receivedBytes);
|
||||||
|
fieldsMap.put("receivedPackets", adapter.receivedPackets);
|
||||||
fieldsMap.put("sentBytes", adapter.sentBytes);
|
fieldsMap.put("sentBytes", adapter.sentBytes);
|
||||||
|
fieldsMap.put("sentPackets", adapter.sentPackets);
|
||||||
|
fieldsMap.put("transferredBytes", adapter.transferredBytes);
|
||||||
|
fieldsMap.put("transferredPhysicalBytes", adapter.transferredPhysicalBytes);
|
||||||
|
fieldsMap.put("sharedEthernetAdapterId", adapter.sharedEthernetAdapterId);
|
||||||
log.trace("getVirtualEthernetAdapterMetrics() - fields: " + fieldsMap.toString());
|
log.trace("getVirtualEthernetAdapterMetrics() - fields: " + fieldsMap.toString());
|
||||||
|
|
||||||
list.add(new Measurement(tagsMap, fieldsMap));
|
list.add(new Measurement(tagsMap, fieldsMap));
|
||||||
|
@ -141,23 +162,27 @@ class LogicalPartition extends MetaSystem {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
List<Measurement> getVirtualFiberChannelAdaptersMetrics() {
|
// LPAR Storage - Virtual Generic
|
||||||
|
List<Measurement> getVirtualGenericAdapterMetrics() {
|
||||||
|
|
||||||
List<Measurement> list = new ArrayList<>();
|
List<Measurement> list = new ArrayList<>();
|
||||||
metrics.systemUtil.sample.lparsUtil.storage.virtualFiberChannelAdapters.forEach( adapter -> {
|
metrics.systemUtil.sample.lparsUtil.storage.genericVirtualAdapters.forEach( adapter -> {
|
||||||
|
|
||||||
HashMap<String, String> tagsMap = new HashMap<>();
|
HashMap<String, String> tagsMap = new HashMap<>();
|
||||||
tagsMap.put("system", system.name);
|
tagsMap.put("servername", system.name);
|
||||||
tagsMap.put("partition", name);
|
tagsMap.put("lparname", name);
|
||||||
tagsMap.put("viosId", adapter.viosId.toString());
|
tagsMap.put("viosId", adapter.viosId.toString());
|
||||||
tagsMap.put("wwpn", adapter.wwpn);
|
tagsMap.put("location", adapter.physicalLocation);
|
||||||
log.trace("getVirtualFiberChannelAdaptersMetrics() - tags: " + tagsMap.toString());
|
tagsMap.put("id", adapter.id);
|
||||||
|
log.trace("getVirtualGenericAdapterMetrics() - tags: " + tagsMap.toString());
|
||||||
|
|
||||||
HashMap<String, Number> fieldsMap = new HashMap<>();
|
HashMap<String, Object> fieldsMap = new HashMap<>();
|
||||||
fieldsMap.put("transmittedBytes", adapter.transmittedBytes.get(0));
|
fieldsMap.put("numOfReads", adapter.numOfReads);
|
||||||
fieldsMap.put("writeBytes", adapter.writeBytes.get(0));
|
fieldsMap.put("numOfWrites", adapter.numOfWrites);
|
||||||
fieldsMap.put("readBytes", adapter.readBytes.get(0));
|
fieldsMap.put("writeBytes", adapter.writeBytes);
|
||||||
log.trace("getVirtualFiberChannelAdaptersMetrics() - fields: " + fieldsMap.toString());
|
fieldsMap.put("readBytes", adapter.readBytes);
|
||||||
|
fieldsMap.put("type", adapter.type);
|
||||||
|
log.trace("getVirtualGenericAdapterMetrics() - fields: " + fieldsMap.toString());
|
||||||
|
|
||||||
list.add(new Measurement(tagsMap, fieldsMap));
|
list.add(new Measurement(tagsMap, fieldsMap));
|
||||||
});
|
});
|
||||||
|
@ -165,4 +190,36 @@ class LogicalPartition extends MetaSystem {
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// LPAR Storage - Virtual FC
|
||||||
|
List<Measurement> getVirtualFibreChannelAdapterMetrics() {
|
||||||
|
|
||||||
|
List<Measurement> list = new ArrayList<>();
|
||||||
|
metrics.systemUtil.sample.lparsUtil.storage.virtualFiberChannelAdapters.forEach( adapter -> {
|
||||||
|
|
||||||
|
HashMap<String, String> tagsMap = new HashMap<>();
|
||||||
|
tagsMap.put("servername", system.name);
|
||||||
|
tagsMap.put("lparname", name);
|
||||||
|
tagsMap.put("viosId", adapter.viosId.toString());
|
||||||
|
tagsMap.put("location", adapter.physicalLocation);
|
||||||
|
log.trace("getVirtualFibreChannelAdapterMetrics() - tags: " + tagsMap.toString());
|
||||||
|
|
||||||
|
HashMap<String, Object> fieldsMap = new HashMap<>();
|
||||||
|
fieldsMap.put("numOfReads", adapter.numOfReads);
|
||||||
|
fieldsMap.put("numOfWrites", adapter.numOfWrites);
|
||||||
|
fieldsMap.put("writeBytes", adapter.writeBytes);
|
||||||
|
fieldsMap.put("readBytes", adapter.readBytes);
|
||||||
|
fieldsMap.put("runningSpeed", adapter.runningSpeed);
|
||||||
|
fieldsMap.put("transmittedBytes", adapter.transmittedBytes);
|
||||||
|
fieldsMap.put("transferredByte", adapter.transmittedBytes); // TODO: Must be error in dashboard, remove when checked.
|
||||||
|
//fieldsMap.put("wwpn", adapter.wwpn);
|
||||||
|
//fieldsMap.put("wwpn2", adapter.wwpn2);
|
||||||
|
log.trace("getVirtualFibreChannelAdapterMetrics() - fields: " + fieldsMap.toString());
|
||||||
|
|
||||||
|
list.add(new Measurement(tagsMap, fieldsMap));
|
||||||
|
});
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,36 +52,62 @@ class ManagedSystem extends MetaSystem {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
List<Measurement> getDetails() {
|
||||||
|
|
||||||
|
List<Measurement> list = new ArrayList<>();
|
||||||
|
|
||||||
|
HashMap<String, String> tagsMap = new HashMap<>();
|
||||||
|
tagsMap.put("servername", name);
|
||||||
|
log.trace("getDetails() - tags: " + tagsMap.toString());
|
||||||
|
|
||||||
|
Map<String, Object> fieldsMap = new HashMap<>();
|
||||||
|
fieldsMap.put("mtm", String.format("%s-%s %s", type, model, serialNumber));
|
||||||
|
fieldsMap.put("APIversion", metrics.systemUtil.utilInfo.version);
|
||||||
|
fieldsMap.put("metric", metrics.systemUtil.utilInfo.metricType);
|
||||||
|
fieldsMap.put("frequency", metrics.systemUtil.utilInfo.frequency);
|
||||||
|
fieldsMap.put("nextract", "HMCi");
|
||||||
|
fieldsMap.put("name", name);
|
||||||
|
fieldsMap.put("utilizedProcUnits", metrics.systemUtil.sample.systemFirmwareUtil.utilizedProcUnits);
|
||||||
|
fieldsMap.put("assignedMem", metrics.systemUtil.sample.systemFirmwareUtil.assignedMem);
|
||||||
|
log.trace("getDetails() - fields: " + fieldsMap.toString());
|
||||||
|
|
||||||
|
list.add(new Measurement(tagsMap, fieldsMap));
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Memory
|
||||||
List<Measurement> getMemoryMetrics() {
|
List<Measurement> getMemoryMetrics() {
|
||||||
|
|
||||||
List<Measurement> list = new ArrayList<>();
|
List<Measurement> list = new ArrayList<>();
|
||||||
|
|
||||||
HashMap<String, String> tagsMap = new HashMap<>();
|
HashMap<String, String> tagsMap = new HashMap<>();
|
||||||
tagsMap.put("system", name);
|
tagsMap.put("servername", name);
|
||||||
log.trace("getMemoryMetrics() - tags: " + tagsMap.toString());
|
log.trace("getMemoryMetrics() - tags: " + tagsMap.toString());
|
||||||
|
|
||||||
Map<String, Number> fieldsMap = new HashMap<>();
|
Map<String, Object> fieldsMap = new HashMap<>();
|
||||||
fieldsMap.put("totalMem", metrics.systemUtil.sample.serverUtil.memory.totalMem);
|
fieldsMap.put("totalMem", metrics.systemUtil.sample.serverUtil.memory.totalMem);
|
||||||
fieldsMap.put("availableMem", metrics.systemUtil.sample.serverUtil.memory.availableMem);
|
fieldsMap.put("availableMem", metrics.systemUtil.sample.serverUtil.memory.availableMem);
|
||||||
fieldsMap.put("configurableMem", metrics.systemUtil.sample.serverUtil.memory.configurableMem);
|
fieldsMap.put("configurableMem", metrics.systemUtil.sample.serverUtil.memory.configurableMem);
|
||||||
fieldsMap.put("assignedMemToLpars", metrics.systemUtil.sample.serverUtil.memory.assignedMemToLpars);
|
fieldsMap.put("assignedMemToLpars", metrics.systemUtil.sample.serverUtil.memory.assignedMemToLpars);
|
||||||
|
fieldsMap.put("virtualPersistentMem", metrics.systemUtil.sample.serverUtil.memory.virtualPersistentMem);
|
||||||
log.trace("getMemoryMetrics() - fields: " + fieldsMap.toString());
|
log.trace("getMemoryMetrics() - fields: " + fieldsMap.toString());
|
||||||
|
|
||||||
list.add(new Measurement(tagsMap, fieldsMap));
|
list.add(new Measurement(tagsMap, fieldsMap));
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Processor
|
||||||
List<Measurement> getProcessorMetrics() {
|
List<Measurement> getProcessorMetrics() {
|
||||||
|
|
||||||
List<Measurement> list = new ArrayList<>();
|
List<Measurement> list = new ArrayList<>();
|
||||||
|
|
||||||
HashMap<String, String> tagsMap = new HashMap<>();
|
HashMap<String, String> tagsMap = new HashMap<>();
|
||||||
tagsMap.put("system", name);
|
tagsMap.put("servername", name);
|
||||||
log.trace("getProcessorMetrics() - tags: " + tagsMap.toString());
|
log.trace("getProcessorMetrics() - tags: " + tagsMap.toString());
|
||||||
|
|
||||||
HashMap<String, Number> fieldsMap = new HashMap<>();
|
HashMap<String, Object> fieldsMap = new HashMap<>();
|
||||||
fieldsMap.put("totalProcUnits", metrics.systemUtil.sample.serverUtil.processor.totalProcUnits);
|
fieldsMap.put("totalProcUnits", metrics.systemUtil.sample.serverUtil.processor.totalProcUnits);
|
||||||
fieldsMap.put("utilizedProcUnits", metrics.systemUtil.sample.serverUtil.processor.utilizedProcUnits);
|
fieldsMap.put("utilizedProcUnits", metrics.systemUtil.sample.serverUtil.processor.utilizedProcUnits);
|
||||||
fieldsMap.put("availableProcUnits", metrics.systemUtil.sample.serverUtil.processor.availableProcUnits);
|
fieldsMap.put("availableProcUnits", metrics.systemUtil.sample.serverUtil.processor.availableProcUnits);
|
||||||
|
@ -92,20 +118,24 @@ class ManagedSystem extends MetaSystem {
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Shared ProcessorPools
|
||||||
List<Measurement> getSharedProcessorPools() {
|
List<Measurement> getSharedProcessorPools() {
|
||||||
|
|
||||||
List<Measurement> list = new ArrayList<>();
|
List<Measurement> list = new ArrayList<>();
|
||||||
metrics.systemUtil.sample.serverUtil.sharedProcessorPool.forEach(adapter -> {
|
metrics.systemUtil.sample.serverUtil.sharedProcessorPool.forEach(sharedProcessorPool -> {
|
||||||
|
|
||||||
HashMap<String, String> tagsMap = new HashMap<>();
|
HashMap<String, String> tagsMap = new HashMap<>();
|
||||||
tagsMap.put("system", name);
|
tagsMap.put("servername", name);
|
||||||
tagsMap.put("pool", adapter.name);
|
tagsMap.put("pool", sharedProcessorPool.id);
|
||||||
|
tagsMap.put("poolname", sharedProcessorPool.name);
|
||||||
log.trace("getSharedProcessorPools() - tags: " + tagsMap.toString());
|
log.trace("getSharedProcessorPools() - tags: " + tagsMap.toString());
|
||||||
|
|
||||||
HashMap<String, Number> fieldsMap = new HashMap<>();
|
HashMap<String, Object> fieldsMap = new HashMap<>();
|
||||||
fieldsMap.put("assignedProcUnits", adapter.assignedProcUnits);
|
fieldsMap.put("assignedProcUnits", sharedProcessorPool.assignedProcUnits);
|
||||||
fieldsMap.put("availableProcUnits", adapter.availableProcUnits);
|
fieldsMap.put("availableProcUnits", sharedProcessorPool.availableProcUnits);
|
||||||
|
fieldsMap.put("utilizedProcUnits", sharedProcessorPool.utilizedProcUnits);
|
||||||
|
fieldsMap.put("borrowedProcUnits", sharedProcessorPool.borrowedProcUnits);
|
||||||
|
fieldsMap.put("configuredProcUnits", sharedProcessorPool.configuredProcUnits);
|
||||||
log.trace("getSharedProcessorPools() - fields: " + fieldsMap.toString());
|
log.trace("getSharedProcessorPools() - fields: " + fieldsMap.toString());
|
||||||
|
|
||||||
list.add(new Measurement(tagsMap, fieldsMap));
|
list.add(new Measurement(tagsMap, fieldsMap));
|
||||||
|
@ -115,18 +145,65 @@ class ManagedSystem extends MetaSystem {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// VIOs Memory
|
// Physical ProcessorPool
|
||||||
|
List<Measurement> getPhysicalProcessorPool() {
|
||||||
|
|
||||||
|
List<Measurement> list = new ArrayList<>();
|
||||||
|
|
||||||
|
HashMap<String, String> tagsMap = new HashMap<>();
|
||||||
|
tagsMap.put("servername", name);
|
||||||
|
log.trace("getPhysicalProcessorPool() - tags: " + tagsMap.toString());
|
||||||
|
|
||||||
|
HashMap<String, Object> fieldsMap = new HashMap<>();
|
||||||
|
fieldsMap.put("assignedProcUnits", metrics.systemUtil.sample.serverUtil.physicalProcessorPool.assignedProcUnits);
|
||||||
|
fieldsMap.put("availableProcUnits", metrics.systemUtil.sample.serverUtil.physicalProcessorPool.availableProcUnits);
|
||||||
|
fieldsMap.put("utilizedProcUnits", metrics.systemUtil.sample.serverUtil.physicalProcessorPool.utilizedProcUnits);
|
||||||
|
fieldsMap.put("configuredProcUnits", metrics.systemUtil.sample.serverUtil.physicalProcessorPool.configuredProcUnits);
|
||||||
|
fieldsMap.put("borrowedProcUnits", metrics.systemUtil.sample.serverUtil.physicalProcessorPool.borrowedProcUnits);
|
||||||
|
log.trace("getPhysicalProcessorPool() - fields: " + fieldsMap.toString());
|
||||||
|
|
||||||
|
list.add(new Measurement(tagsMap, fieldsMap));
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// VIO Details
|
||||||
|
List<Measurement> getViosDetails() {
|
||||||
|
|
||||||
|
List<Measurement> list = new ArrayList<>();
|
||||||
|
metrics.systemUtil.sample.viosUtil.forEach(vios -> {
|
||||||
|
|
||||||
|
HashMap<String, String> tagsMap = new HashMap<>();
|
||||||
|
tagsMap.put("servername", name);
|
||||||
|
tagsMap.put("viosname", vios.name);
|
||||||
|
log.trace("getViosDetails() - tags: " + tagsMap.toString());
|
||||||
|
|
||||||
|
HashMap<String, Object> fieldsMap = new HashMap<>();
|
||||||
|
fieldsMap.put("viosid", vios.id);
|
||||||
|
fieldsMap.put("viosstate", vios.state);
|
||||||
|
fieldsMap.put("viosname", vios.name);
|
||||||
|
fieldsMap.put("affinityScore", vios.affinityScore);
|
||||||
|
log.trace("getViosDetails() - fields: " + fieldsMap.toString());
|
||||||
|
|
||||||
|
list.add(new Measurement(tagsMap, fieldsMap));
|
||||||
|
});
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// VIO Memory
|
||||||
List<Measurement> getViosMemoryMetrics() {
|
List<Measurement> getViosMemoryMetrics() {
|
||||||
|
|
||||||
List<Measurement> list = new ArrayList<>();
|
List<Measurement> list = new ArrayList<>();
|
||||||
metrics.systemUtil.sample.viosUtil.forEach(vios -> {
|
metrics.systemUtil.sample.viosUtil.forEach(vios -> {
|
||||||
|
|
||||||
HashMap<String, String> tagsMap = new HashMap<>();
|
HashMap<String, String> tagsMap = new HashMap<>();
|
||||||
tagsMap.put("system", name);
|
tagsMap.put("servername", name);
|
||||||
tagsMap.put("vios", vios.name);
|
tagsMap.put("viosname", vios.name);
|
||||||
log.trace("getViosMemoryMetrics() - tags: " + tagsMap.toString());
|
log.trace("getViosMemoryMetrics() - tags: " + tagsMap.toString());
|
||||||
|
|
||||||
HashMap<String, Number> fieldsMap = new HashMap<>();
|
HashMap<String, Object> fieldsMap = new HashMap<>();
|
||||||
Number assignedMem = getNumberMetricObject(vios.memory.assignedMem);
|
Number assignedMem = getNumberMetricObject(vios.memory.assignedMem);
|
||||||
Number utilizedMem = getNumberMetricObject(vios.memory.utilizedMem);
|
Number utilizedMem = getNumberMetricObject(vios.memory.utilizedMem);
|
||||||
if(assignedMem != null) {
|
if(assignedMem != null) {
|
||||||
|
@ -137,7 +214,7 @@ class ManagedSystem extends MetaSystem {
|
||||||
}
|
}
|
||||||
if(assignedMem != null && utilizedMem != null) {
|
if(assignedMem != null && utilizedMem != null) {
|
||||||
Number usedMemPct = (utilizedMem.intValue() * 100 ) / assignedMem.intValue();
|
Number usedMemPct = (utilizedMem.intValue() * 100 ) / assignedMem.intValue();
|
||||||
fieldsMap.put("utilizedMemPct", usedMemPct.floatValue());
|
fieldsMap.put("utilizedPct", usedMemPct.floatValue());
|
||||||
}
|
}
|
||||||
log.trace("getViosMemoryMetrics() - fields: " + fieldsMap.toString());
|
log.trace("getViosMemoryMetrics() - fields: " + fieldsMap.toString());
|
||||||
|
|
||||||
|
@ -148,26 +225,30 @@ class ManagedSystem extends MetaSystem {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// VIOs Processor
|
// VIO Processor
|
||||||
List<Measurement> getViosProcessorMetrics() {
|
List<Measurement> getViosProcessorMetrics() {
|
||||||
|
|
||||||
List<Measurement> list = new ArrayList<>();
|
List<Measurement> list = new ArrayList<>();
|
||||||
metrics.systemUtil.sample.viosUtil.forEach(vios -> {
|
metrics.systemUtil.sample.viosUtil.forEach(vios -> {
|
||||||
|
|
||||||
HashMap<String, String> tagsMap = new HashMap<>();
|
HashMap<String, String> tagsMap = new HashMap<>();
|
||||||
tagsMap.put("system", name);
|
tagsMap.put("servername", name);
|
||||||
tagsMap.put("vios", vios.name);
|
tagsMap.put("viosname", vios.name);
|
||||||
log.trace("getViosProcessorMetrics() - tags: " + tagsMap.toString());
|
log.trace("getViosProcessorMetrics() - tags: " + tagsMap.toString());
|
||||||
|
|
||||||
HashMap<String, Number> fieldsMap = new HashMap<>();
|
HashMap<String, Object> fieldsMap = new HashMap<>();
|
||||||
fieldsMap.put("utilizedProcUnits", vios.processor.utilizedProcUnits);
|
fieldsMap.put("utilizedProcUnits", vios.processor.utilizedProcUnits);
|
||||||
fieldsMap.put("maxVirtualProcessors", vios.processor.maxVirtualProcessors);
|
|
||||||
fieldsMap.put("currentVirtualProcessors", vios.processor.currentVirtualProcessors);
|
|
||||||
fieldsMap.put("entitledProcUnits", vios.processor.entitledProcUnits);
|
|
||||||
fieldsMap.put("utilizedCappedProcUnits", vios.processor.utilizedCappedProcUnits);
|
fieldsMap.put("utilizedCappedProcUnits", vios.processor.utilizedCappedProcUnits);
|
||||||
fieldsMap.put("utilizedUncappedProcUnits", vios.processor.utilizedUncappedProcUnits);
|
fieldsMap.put("utilizedUncappedProcUnits", vios.processor.utilizedUncappedProcUnits);
|
||||||
fieldsMap.put("timePerInstructionExecution", vios.processor.timeSpentWaitingForDispatch);
|
fieldsMap.put("currentVirtualProcessors", vios.processor.currentVirtualProcessors);
|
||||||
|
fieldsMap.put("maxVirtualProcessors", vios.processor.maxVirtualProcessors);
|
||||||
|
fieldsMap.put("maxProcUnits", vios.processor.maxProcUnits);
|
||||||
|
fieldsMap.put("entitledProcUnits", vios.processor.entitledProcUnits);
|
||||||
|
fieldsMap.put("donatedProcUnits", vios.processor.donatedProcUnits);
|
||||||
|
fieldsMap.put("idleProcUnits", vios.processor.idleProcUnits);
|
||||||
fieldsMap.put("timeSpentWaitingForDispatch", vios.processor.timePerInstructionExecution);
|
fieldsMap.put("timeSpentWaitingForDispatch", vios.processor.timePerInstructionExecution);
|
||||||
|
fieldsMap.put("timePerInstructionExecution", vios.processor.timeSpentWaitingForDispatch);
|
||||||
|
fieldsMap.put("weight", vios.processor.weight);
|
||||||
log.trace("getViosProcessorMetrics() - fields: " + fieldsMap.toString());
|
log.trace("getViosProcessorMetrics() - fields: " + fieldsMap.toString());
|
||||||
|
|
||||||
list.add(new Measurement(tagsMap, fieldsMap));
|
list.add(new Measurement(tagsMap, fieldsMap));
|
||||||
|
@ -177,8 +258,30 @@ class ManagedSystem extends MetaSystem {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// VIOs
|
// VIOs - Network
|
||||||
List<Measurement> getSystemSharedAdapters() {
|
List<Measurement> getViosNetworkLpars() {
|
||||||
|
|
||||||
|
List<Measurement> list = new ArrayList<>();
|
||||||
|
metrics.systemUtil.sample.viosUtil.forEach(vios -> {
|
||||||
|
|
||||||
|
HashMap<String, String> tagsMap = new HashMap<>();
|
||||||
|
tagsMap.put("servername", name);
|
||||||
|
tagsMap.put("viosname", vios.name);
|
||||||
|
log.trace("getViosNetworkLpars() - tags: " + tagsMap.toString());
|
||||||
|
|
||||||
|
HashMap<String, Object> fieldsMap = new HashMap<>();
|
||||||
|
fieldsMap.put("clientlpars", vios.network.clientLpars.size());
|
||||||
|
log.trace("getViosNetworkLpars() - fields: " + fieldsMap.toString());
|
||||||
|
|
||||||
|
list.add(new Measurement(tagsMap, fieldsMap));
|
||||||
|
});
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// VIO Network - Shared
|
||||||
|
List<Measurement> getViosNetworkSharedAdapters() {
|
||||||
|
|
||||||
List<Measurement> list = new ArrayList<>();
|
List<Measurement> list = new ArrayList<>();
|
||||||
metrics.systemUtil.sample.viosUtil.forEach(vios -> {
|
metrics.systemUtil.sample.viosUtil.forEach(vios -> {
|
||||||
|
@ -186,48 +289,23 @@ class ManagedSystem extends MetaSystem {
|
||||||
vios.network.sharedAdapters.forEach(adapter -> {
|
vios.network.sharedAdapters.forEach(adapter -> {
|
||||||
|
|
||||||
HashMap<String, String> tagsMap = new HashMap<>();
|
HashMap<String, String> tagsMap = new HashMap<>();
|
||||||
tagsMap.put("system", name);
|
tagsMap.put("servername", name);
|
||||||
tagsMap.put("type", adapter.type);
|
tagsMap.put("viosname", vios.name);
|
||||||
tagsMap.put("vios", vios.name);
|
//tagsMap.put("id", adapter.id);
|
||||||
tagsMap.put("device", adapter.physicalLocation);
|
tagsMap.put("location", adapter.physicalLocation);
|
||||||
log.trace("getSystemSharedAdapters() - tags: " + tagsMap.toString());
|
log.trace("getViosNetworkSharedAdapters() - tags: " + tagsMap.toString());
|
||||||
|
|
||||||
HashMap<String, Number> fieldsMap = new HashMap<>();
|
HashMap<String, Object> fieldsMap = new HashMap<>();
|
||||||
|
fieldsMap.put("id", adapter.id);
|
||||||
|
fieldsMap.put("type", adapter.type);
|
||||||
fieldsMap.put("sentBytes", adapter.sentBytes);
|
fieldsMap.put("sentBytes", adapter.sentBytes);
|
||||||
|
fieldsMap.put("sentPackets", adapter.sentPackets);
|
||||||
fieldsMap.put("receivedBytes", adapter.receivedBytes);
|
fieldsMap.put("receivedBytes", adapter.receivedBytes);
|
||||||
|
fieldsMap.put("receivedPackets", adapter.receivedPackets);
|
||||||
|
fieldsMap.put("droppedPackets", adapter.droppedPackets);
|
||||||
fieldsMap.put("transferredBytes", adapter.transferredBytes);
|
fieldsMap.put("transferredBytes", adapter.transferredBytes);
|
||||||
log.trace("getSystemSharedAdapters() - fields: " + fieldsMap.toString());
|
fieldsMap.put("physicalLocation", adapter.physicalLocation);
|
||||||
|
log.trace("getViosNetworkSharedAdapters() - fields: " + fieldsMap.toString());
|
||||||
list.add(new Measurement(tagsMap, fieldsMap));
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
|
|
||||||
// VIOs
|
|
||||||
List<Measurement> getSystemFiberChannelAdapters() {
|
|
||||||
|
|
||||||
List<Measurement> list = new ArrayList<>();
|
|
||||||
metrics.systemUtil.sample.viosUtil.forEach( vios -> {
|
|
||||||
log.trace("getSystemFiberChannelAdapters() - VIOS: " + vios.name);
|
|
||||||
|
|
||||||
vios.storage.fiberChannelAdapters.forEach( adapter -> {
|
|
||||||
|
|
||||||
HashMap<String, String> tagsMap = new HashMap<>();
|
|
||||||
tagsMap.put("id", adapter.id);
|
|
||||||
tagsMap.put("system", name);
|
|
||||||
tagsMap.put("wwpn", adapter.wwpn);
|
|
||||||
tagsMap.put("vios", vios.name);
|
|
||||||
tagsMap.put("device", adapter.physicalLocation);
|
|
||||||
log.trace("getSystemFiberChannelAdapters() - tags: " + tagsMap.toString());
|
|
||||||
|
|
||||||
HashMap<String, Number> fieldsMap = new HashMap<>();
|
|
||||||
fieldsMap.put("writeBytes", adapter.writeBytes);
|
|
||||||
fieldsMap.put("readBytes", adapter.readBytes);
|
|
||||||
fieldsMap.put("transmittedBytes", adapter.transmittedBytes);
|
|
||||||
log.trace("getSystemFiberChannelAdapters() - fields: " + fieldsMap.toString());
|
|
||||||
|
|
||||||
list.add(new Measurement(tagsMap, fieldsMap));
|
list.add(new Measurement(tagsMap, fieldsMap));
|
||||||
});
|
});
|
||||||
|
@ -238,73 +316,8 @@ class ManagedSystem extends MetaSystem {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// VIOs
|
// VIO Network - Virtual
|
||||||
/*
|
List<Measurement> getViosNetworkVirtualAdapters() {
|
||||||
List<Measurement> getSystemGenericPhysicalAdapters() {
|
|
||||||
|
|
||||||
List<Measurement> list = new ArrayList<>();
|
|
||||||
|
|
||||||
metrics.systemUtil.sample.viosUtil.forEach( vios -> {
|
|
||||||
|
|
||||||
vios.storage.genericPhysicalAdapters.forEach( adapter -> {
|
|
||||||
|
|
||||||
HashMap<String, String> tagsMap = new HashMap<String, String>();
|
|
||||||
tagsMap.put("id", adapter.id);
|
|
||||||
tagsMap.put("system", name);
|
|
||||||
tagsMap.put("vios", vios.name);
|
|
||||||
tagsMap.put("device", adapter.physicalLocation);
|
|
||||||
log.trace("getSystemGenericPhysicalAdapters() - tags: " + tagsMap.toString());
|
|
||||||
|
|
||||||
HashMap<String, Number> fieldsMap = new HashMap<String, Number>();
|
|
||||||
fieldsMap.put("writeBytes", adapter.writeBytes);
|
|
||||||
fieldsMap.put("readBytes", adapter.readBytes);
|
|
||||||
fieldsMap.put("transmittedBytes", adapter.transmittedBytes);
|
|
||||||
log.trace("getSystemGenericPhysicalAdapters() - fields: " + fieldsMap.toString());
|
|
||||||
|
|
||||||
list.add(new Measurement(tagsMap, fieldsMap));
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
// VIOs
|
|
||||||
/*
|
|
||||||
List<Measurement> getSystemGenericVirtualAdapters() {
|
|
||||||
|
|
||||||
List<Measurement> list = new ArrayList<>();
|
|
||||||
|
|
||||||
metrics.systemUtil.sample.viosUtil.forEach( vios -> {
|
|
||||||
|
|
||||||
vios.storage.genericVirtualAdapters.forEach( adapter -> {
|
|
||||||
|
|
||||||
HashMap<String, String> tagsMap = new HashMap<String, String>();
|
|
||||||
tagsMap.put("id", adapter.id);
|
|
||||||
tagsMap.put("system", name);
|
|
||||||
tagsMap.put("vios", vios.name);
|
|
||||||
tagsMap.put("device", adapter.physicalLocation);
|
|
||||||
log.trace("getSystemGenericVirtualAdapters() - tags: " + tagsMap.toString());
|
|
||||||
|
|
||||||
HashMap<String, Number> fieldsMap = new HashMap<String, Number>();
|
|
||||||
fieldsMap.put("writeBytes", adapter.writeBytes);
|
|
||||||
fieldsMap.put("readBytes", adapter.readBytes);
|
|
||||||
fieldsMap.put("transmittedBytes", adapter.transmittedBytes);
|
|
||||||
log.trace("getSystemGenericVirtualAdapters() - fields: " + fieldsMap.toString());
|
|
||||||
|
|
||||||
list.add(new Measurement(tagsMap, fieldsMap));
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
// VIOs
|
|
||||||
List<Measurement> getSystemVirtualEthernetAdapters() {
|
|
||||||
|
|
||||||
List<Measurement> list = new ArrayList<>();
|
List<Measurement> list = new ArrayList<>();
|
||||||
|
|
||||||
|
@ -313,15 +326,29 @@ class ManagedSystem extends MetaSystem {
|
||||||
vios.network.virtualEthernetAdapters.forEach( adapter -> {
|
vios.network.virtualEthernetAdapters.forEach( adapter -> {
|
||||||
|
|
||||||
HashMap<String, String> tagsMap = new HashMap<>();
|
HashMap<String, String> tagsMap = new HashMap<>();
|
||||||
tagsMap.put("system", name);
|
tagsMap.put("vlanid", String.valueOf(adapter.vlanId));
|
||||||
tagsMap.put("vios", vios.name);
|
tagsMap.put("vswitchid", String.valueOf(adapter.vswitchId));
|
||||||
tagsMap.put("device", adapter.physicalLocation);
|
tagsMap.put("systemname", name);
|
||||||
log.trace("getSystemGenericVirtualAdapters() - tags: " + tagsMap.toString());
|
tagsMap.put("viosname", vios.name);
|
||||||
|
tagsMap.put("location", adapter.physicalLocation);
|
||||||
|
log.trace("getViosNetworkVirtualAdapters() - tags: " + tagsMap.toString());
|
||||||
|
|
||||||
HashMap<String, Number> fieldsMap = new HashMap<>();
|
HashMap<String, Object> fieldsMap = new HashMap<>();
|
||||||
fieldsMap.put("sentBytes", adapter.sentBytes);
|
fieldsMap.put("droppedPackets", adapter.droppedPackets);
|
||||||
|
fieldsMap.put("droppedPhysicalPackets", adapter.droppedPhysicalPackets);
|
||||||
|
fieldsMap.put("isPortVlanId", adapter.isPortVlanId);
|
||||||
fieldsMap.put("receivedBytes", adapter.receivedBytes);
|
fieldsMap.put("receivedBytes", adapter.receivedBytes);
|
||||||
log.trace("getSystemGenericVirtualAdapters() - fields: " + fieldsMap.toString());
|
fieldsMap.put("receivedPackets", adapter.receivedPackets);
|
||||||
|
fieldsMap.put("receivedPhysicalBytes", adapter.receivedPhysicalBytes);
|
||||||
|
fieldsMap.put("receivedPhysicalPackets", adapter.receivedPhysicalPackets);
|
||||||
|
fieldsMap.put("sentBytes", adapter.sentBytes);
|
||||||
|
fieldsMap.put("sentPackets", adapter.sentPackets);
|
||||||
|
fieldsMap.put("sentPhysicalBytes", adapter.sentPhysicalBytes);
|
||||||
|
fieldsMap.put("sentPhysicalPackets", adapter.sentPhysicalPackets);
|
||||||
|
fieldsMap.put("transferredBytes", adapter.transferredBytes);
|
||||||
|
fieldsMap.put("transferredPhysicalBytes", adapter.transferredPhysicalBytes);
|
||||||
|
fieldsMap.put("physicalLocation", adapter.physicalLocation);
|
||||||
|
log.trace("getViosNetworkVirtualAdapters() - fields: " + fieldsMap.toString());
|
||||||
|
|
||||||
list.add(new Measurement(tagsMap, fieldsMap));
|
list.add(new Measurement(tagsMap, fieldsMap));
|
||||||
});
|
});
|
||||||
|
@ -331,4 +358,194 @@ class ManagedSystem extends MetaSystem {
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// VIO Network - Generic
|
||||||
|
List<Measurement> getViosNetworkGenericAdapters() {
|
||||||
|
|
||||||
|
List<Measurement> list = new ArrayList<>();
|
||||||
|
|
||||||
|
metrics.systemUtil.sample.viosUtil.forEach( vios -> {
|
||||||
|
|
||||||
|
vios.network.genericAdapters.forEach( adapter -> {
|
||||||
|
|
||||||
|
HashMap<String, String> tagsMap = new HashMap<>();
|
||||||
|
tagsMap.put("id", adapter.id);
|
||||||
|
tagsMap.put("servername", name);
|
||||||
|
tagsMap.put("viosname", vios.name);
|
||||||
|
tagsMap.put("location", adapter.physicalLocation);
|
||||||
|
log.trace("getViosNetworkGenericAdapters() - tags: " + tagsMap.toString());
|
||||||
|
|
||||||
|
HashMap<String, Object> fieldsMap = new HashMap<>();
|
||||||
|
fieldsMap.put("sentBytes", adapter.sentBytes);
|
||||||
|
fieldsMap.put("sentPackets", adapter.sentPackets);
|
||||||
|
fieldsMap.put("receivedBytes", adapter.receivedBytes);
|
||||||
|
fieldsMap.put("receivedPackets", adapter.receivedPackets);
|
||||||
|
fieldsMap.put("droppedPackets", adapter.droppedPackets);
|
||||||
|
fieldsMap.put("transferredBytes", adapter.transferredBytes);
|
||||||
|
log.trace("getViosNetworkGenericAdapters() - fields: " + fieldsMap.toString());
|
||||||
|
|
||||||
|
list.add(new Measurement(tagsMap, fieldsMap));
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
// VIOs - Storage
|
||||||
|
List<Measurement> getViosStorageLpars() {
|
||||||
|
|
||||||
|
List<Measurement> list = new ArrayList<>();
|
||||||
|
metrics.systemUtil.sample.viosUtil.forEach(vios -> {
|
||||||
|
|
||||||
|
HashMap<String, String> tagsMap = new HashMap<>();
|
||||||
|
tagsMap.put("servername", name);
|
||||||
|
tagsMap.put("viosname", vios.name);
|
||||||
|
log.trace("getViosStorageLpars() - tags: " + tagsMap.toString());
|
||||||
|
|
||||||
|
HashMap<String, Object> fieldsMap = new HashMap<>();
|
||||||
|
fieldsMap.put("clientlpars", vios.storage.clientLpars.size());
|
||||||
|
log.trace("getViosStorageLpars() - fields: " + fieldsMap.toString());
|
||||||
|
|
||||||
|
list.add(new Measurement(tagsMap, fieldsMap));
|
||||||
|
});
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
// VIO Storage FC
|
||||||
|
List<Measurement> getViosStorageFiberChannelAdapters() {
|
||||||
|
|
||||||
|
List<Measurement> list = new ArrayList<>();
|
||||||
|
metrics.systemUtil.sample.viosUtil.forEach( vios -> {
|
||||||
|
log.trace("getViosStorageFiberChannelAdapters() - VIOS: " + vios.name);
|
||||||
|
|
||||||
|
vios.storage.fiberChannelAdapters.forEach( adapter -> {
|
||||||
|
|
||||||
|
HashMap<String, String> tagsMap = new HashMap<>();
|
||||||
|
tagsMap.put("servername", name);
|
||||||
|
tagsMap.put("viosname", vios.name);
|
||||||
|
tagsMap.put("location", adapter.physicalLocation);
|
||||||
|
log.trace("getViosStorageFiberChannelAdapters() - tags: " + tagsMap.toString());
|
||||||
|
|
||||||
|
HashMap<String, Object> fieldsMap = new HashMap<>();
|
||||||
|
fieldsMap.put("id", adapter.id);
|
||||||
|
fieldsMap.put("numOfReads", adapter.numOfReads);
|
||||||
|
fieldsMap.put("numOfWrites", adapter.numOfWrites);
|
||||||
|
fieldsMap.put("readBytes", adapter.readBytes);
|
||||||
|
fieldsMap.put("writeBytes", adapter.writeBytes);
|
||||||
|
fieldsMap.put("transmittedBytes", adapter.transmittedBytes);
|
||||||
|
fieldsMap.put("physicalLocation", adapter.physicalLocation);
|
||||||
|
log.trace("getViosStorageFiberChannelAdapters() - fields: " + fieldsMap.toString());
|
||||||
|
|
||||||
|
list.add(new Measurement(tagsMap, fieldsMap));
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
// VIO Storage SSP TODO
|
||||||
|
List<Measurement> getViosStorageSharedStoragePools() {
|
||||||
|
|
||||||
|
List<Measurement> list = new ArrayList<>();
|
||||||
|
/*
|
||||||
|
metrics.systemUtil.sample.viosUtil.forEach( vios -> {
|
||||||
|
|
||||||
|
vios.storage.fiberChannelAdapters.forEach( adapter -> {
|
||||||
|
|
||||||
|
HashMap<String, String> tagsMap = new HashMap<>();
|
||||||
|
tagsMap.put("servername", name);
|
||||||
|
tagsMap.put("viosname", vios.name);
|
||||||
|
tagsMap.put("id", adapter.id);
|
||||||
|
tagsMap.put("location", adapter.physicalLocation);
|
||||||
|
log.trace("getViosStorageSharedStoragePools() - tags: " + tagsMap.toString());
|
||||||
|
|
||||||
|
HashMap<String, Object> fieldsMap = new HashMap<>();
|
||||||
|
fieldsMap.put("numOfReads", adapter.numOfReads);
|
||||||
|
fieldsMap.put("numOfWrites", adapter.numOfWrites);
|
||||||
|
fieldsMap.put("readBytes", adapter.readBytes);
|
||||||
|
fieldsMap.put("writeBytes", adapter.writeBytes);
|
||||||
|
fieldsMap.put("transmittedBytes", adapter.transmittedBytes);
|
||||||
|
fieldsMap.put("physicalLocation", adapter.physicalLocation);
|
||||||
|
log.trace("getViosStorageSharedStoragePools() - fields: " + fieldsMap.toString());
|
||||||
|
|
||||||
|
list.add(new Measurement(tagsMap, fieldsMap));
|
||||||
|
});
|
||||||
|
|
||||||
|
log.trace("getViosStorageSharedStoragePools() - VIOS: " + vios.name);
|
||||||
|
});
|
||||||
|
*/
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
// VIO Storage - Physical
|
||||||
|
List<Measurement> getViosStoragePhysicalAdapters() {
|
||||||
|
|
||||||
|
List<Measurement> list = new ArrayList<>();
|
||||||
|
metrics.systemUtil.sample.viosUtil.forEach( vios -> {
|
||||||
|
log.trace("getViosStoragePhysicalAdapters() - VIOS: " + vios.name);
|
||||||
|
|
||||||
|
vios.storage.genericPhysicalAdapters.forEach( adapter -> {
|
||||||
|
|
||||||
|
HashMap<String, String> tagsMap = new HashMap<>();
|
||||||
|
tagsMap.put("servername", name);
|
||||||
|
tagsMap.put("viosname", vios.name);
|
||||||
|
tagsMap.put("id", adapter.id);
|
||||||
|
tagsMap.put("location", adapter.physicalLocation);
|
||||||
|
log.trace("getViosStoragePhysicalAdapters() - tags: " + tagsMap.toString());
|
||||||
|
|
||||||
|
HashMap<String, Object> fieldsMap = new HashMap<>();
|
||||||
|
fieldsMap.put("numOfReads", adapter.numOfReads);
|
||||||
|
fieldsMap.put("numOfWrites", adapter.numOfWrites);
|
||||||
|
fieldsMap.put("readBytes", adapter.readBytes);
|
||||||
|
fieldsMap.put("writeBytes", adapter.writeBytes);
|
||||||
|
fieldsMap.put("transmittedBytes", adapter.transmittedBytes);
|
||||||
|
fieldsMap.put("type", adapter.type);
|
||||||
|
fieldsMap.put("physicalLocation", adapter.physicalLocation);
|
||||||
|
log.trace("getViosStoragePhysicalAdapters() - fields: " + fieldsMap.toString());
|
||||||
|
|
||||||
|
list.add(new Measurement(tagsMap, fieldsMap));
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// VIO Storage - Virtual
|
||||||
|
List<Measurement> getViosStorageVirtualAdapters() {
|
||||||
|
|
||||||
|
List<Measurement> list = new ArrayList<>();
|
||||||
|
metrics.systemUtil.sample.viosUtil.forEach( vios -> {
|
||||||
|
log.trace("getViosStorageVirtualAdapters() - VIOS: " + vios.name);
|
||||||
|
|
||||||
|
vios.storage.genericVirtualAdapters.forEach( adapter -> {
|
||||||
|
|
||||||
|
HashMap<String, String> tagsMap = new HashMap<>();
|
||||||
|
tagsMap.put("servername", name);
|
||||||
|
tagsMap.put("viosname", vios.name);
|
||||||
|
tagsMap.put("location", adapter.physicalLocation);
|
||||||
|
tagsMap.put("id", adapter.id);
|
||||||
|
log.trace("getViosStorageVirtualAdapters() - tags: " + tagsMap.toString());
|
||||||
|
|
||||||
|
HashMap<String, Object> fieldsMap = new HashMap<>();
|
||||||
|
fieldsMap.put("numOfReads", adapter.numOfReads);
|
||||||
|
fieldsMap.put("numOfWrites", adapter.numOfWrites);
|
||||||
|
fieldsMap.put("readBytes", adapter.readBytes);
|
||||||
|
fieldsMap.put("writeBytes", adapter.writeBytes);
|
||||||
|
fieldsMap.put("transmittedBytes", adapter.transmittedBytes);
|
||||||
|
fieldsMap.put("type", adapter.type);
|
||||||
|
fieldsMap.put("physicalLocation", adapter.physicalLocation);
|
||||||
|
log.trace("getViosStorageVirtualAdapters() - fields: " + fieldsMap.toString());
|
||||||
|
|
||||||
|
list.add(new Measurement(tagsMap, fieldsMap));
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,9 +20,9 @@ import java.util.Map;
|
||||||
public class Measurement {
|
public class Measurement {
|
||||||
|
|
||||||
final Map<String, String> tags;
|
final Map<String, String> tags;
|
||||||
final Map<String, Number> fields;
|
final Map<String, Object> fields;
|
||||||
|
|
||||||
Measurement(Map<String, String> tags, Map<String, Number> fields) {
|
Measurement(Map<String, String> tags, Map<String, Object> fields) {
|
||||||
this.tags = tags;
|
this.tags = tags;
|
||||||
this.fields = fields;
|
this.fields = fields;
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,10 +47,10 @@ class SystemEnergy extends MetaSystem {
|
||||||
List<Measurement> list = new ArrayList<>();
|
List<Measurement> list = new ArrayList<>();
|
||||||
|
|
||||||
HashMap<String, String> tagsMap = new HashMap<>();
|
HashMap<String, String> tagsMap = new HashMap<>();
|
||||||
tagsMap.put("system", system.name);
|
tagsMap.put("servername", system.name);
|
||||||
log.trace("getPowerMetrics() - tags: " + tagsMap.toString());
|
log.trace("getPowerMetrics() - tags: " + tagsMap.toString());
|
||||||
|
|
||||||
Map<String, Number> fieldsMap = new HashMap<>();
|
Map<String, Object> fieldsMap = new HashMap<>();
|
||||||
fieldsMap.put("powerReading", metrics.systemUtil.sample.energyUtil.powerUtil.powerReading);
|
fieldsMap.put("powerReading", metrics.systemUtil.sample.energyUtil.powerUtil.powerReading);
|
||||||
log.trace("getPowerMetrics() - fields: " + fieldsMap.toString());
|
log.trace("getPowerMetrics() - fields: " + fieldsMap.toString());
|
||||||
|
|
||||||
|
@ -64,10 +64,10 @@ class SystemEnergy extends MetaSystem {
|
||||||
List<Measurement> list = new ArrayList<>();
|
List<Measurement> list = new ArrayList<>();
|
||||||
|
|
||||||
HashMap<String, String> tagsMap = new HashMap<>();
|
HashMap<String, String> tagsMap = new HashMap<>();
|
||||||
tagsMap.put("system", system.name);
|
tagsMap.put("servername", system.name);
|
||||||
log.trace("getThermalMetrics() - tags: " + tagsMap.toString());
|
log.trace("getThermalMetrics() - tags: " + tagsMap.toString());
|
||||||
|
|
||||||
Map<String, Number> fieldsMap = new HashMap<>();
|
Map<String, Object> fieldsMap = new HashMap<>();
|
||||||
|
|
||||||
for(Temperature t : metrics.systemUtil.sample.energyUtil.thermalUtil.cpuTemperatures) {
|
for(Temperature t : metrics.systemUtil.sample.energyUtil.thermalUtil.cpuTemperatures) {
|
||||||
fieldsMap.put("cpuTemperature_" + t.entityInstance, t.temperatureReading);
|
fieldsMap.put("cpuTemperature_" + t.entityInstance, t.temperatureReading);
|
||||||
|
|
|
@ -1,3 +1,18 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2020 Mark Nellemann <mark.nellemann@gmail.com>
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
package biz.nellemann.hmci;
|
package biz.nellemann.hmci;
|
||||||
|
|
||||||
import picocli.CommandLine;
|
import picocli.CommandLine;
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package biz.nellemann.hmci.pcm;
|
package biz.nellemann.hmci.pcm;
|
||||||
|
|
||||||
|
import com.serjltt.moshi.adapters.FirstElement;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -8,11 +10,23 @@ public class GenericAdapter {
|
||||||
public String id = "";
|
public String id = "";
|
||||||
public String type = "";
|
public String type = "";
|
||||||
public String physicalLocation = "";
|
public String physicalLocation = "";
|
||||||
public List<Number> receivedPackets = new ArrayList<>();
|
|
||||||
public List<Number> sentPackets = new ArrayList<>();
|
@FirstElement
|
||||||
public List<Number> droppedPackets = new ArrayList<>();
|
public Number receivedPackets = 0.0;
|
||||||
public List<Number> sentBytes = new ArrayList<>();
|
|
||||||
public List<Number> receivedBytes = new ArrayList<>();
|
@FirstElement
|
||||||
public List<Number> transferredBytes = new ArrayList<>();
|
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 transferredBytes = 0.0;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ import java.util.List;
|
||||||
|
|
||||||
public class Network {
|
public class Network {
|
||||||
|
|
||||||
|
public List<String> clientLpars = new ArrayList<>();
|
||||||
public List<GenericAdapter> genericAdapters = new ArrayList<>();
|
public List<GenericAdapter> genericAdapters = new ArrayList<>();
|
||||||
public List<SharedAdapter> sharedAdapters = new ArrayList<>();
|
public List<SharedAdapter> sharedAdapters = new ArrayList<>();
|
||||||
public List<VirtualEthernetAdapter> virtualEthernetAdapters = new ArrayList<>();
|
public List<VirtualEthernetAdapter> virtualEthernetAdapters = new ArrayList<>();
|
||||||
|
|
|
@ -1,14 +1,25 @@
|
||||||
package biz.nellemann.hmci.pcm;
|
package biz.nellemann.hmci.pcm;
|
||||||
|
|
||||||
|
import com.serjltt.moshi.adapters.FirstElement;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class PhysicalProcessorPool {
|
public class PhysicalProcessorPool {
|
||||||
|
|
||||||
public List<Number> assignedProcUnits = new ArrayList<>();
|
@FirstElement
|
||||||
public List<Number> utilizedProcUnits = new ArrayList<>();
|
public Number assignedProcUnits = 0.0;
|
||||||
public List<Number> availableProcUnits = new ArrayList<>();
|
|
||||||
public List<Number> configuredProcUnits = new ArrayList<>();
|
@FirstElement
|
||||||
public List<Number> borrowedProcUnits = new ArrayList<>();
|
public Number utilizedProcUnits = 0.0;
|
||||||
|
|
||||||
|
@FirstElement
|
||||||
|
public Number availableProcUnits = 0.0;
|
||||||
|
|
||||||
|
@FirstElement
|
||||||
|
public Number configuredProcUnits = 0.0;
|
||||||
|
|
||||||
|
@FirstElement
|
||||||
|
public Number borrowedProcUnits = 0.0;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,4 +16,7 @@ public class ServerMemory {
|
||||||
@FirstElement
|
@FirstElement
|
||||||
public Number assignedMemToLpars = 0.0;
|
public Number assignedMemToLpars = 0.0;
|
||||||
|
|
||||||
|
@FirstElement
|
||||||
|
public Number virtualPersistentMem = 0.0;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
16
src/main/java/biz/nellemann/hmci/pcm/SystemFirmware.java
Normal file
16
src/main/java/biz/nellemann/hmci/pcm/SystemFirmware.java
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
package biz.nellemann.hmci.pcm;
|
||||||
|
|
||||||
|
import com.serjltt.moshi.adapters.FirstElement;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class SystemFirmware {
|
||||||
|
|
||||||
|
@FirstElement
|
||||||
|
public Number utilizedProcUnits = 0.0;
|
||||||
|
|
||||||
|
@FirstElement
|
||||||
|
public Number assignedMem = 0.0;
|
||||||
|
|
||||||
|
}
|
|
@ -1,5 +1,7 @@
|
||||||
package biz.nellemann.hmci.pcm;
|
package biz.nellemann.hmci.pcm;
|
||||||
|
|
||||||
|
import com.serjltt.moshi.adapters.FirstElement;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -13,6 +15,8 @@ public class UtilInfo {
|
||||||
public String mtms = "";
|
public String mtms = "";
|
||||||
public String name = "";
|
public String name = "";
|
||||||
public String uuid = "";
|
public String uuid = "";
|
||||||
public List<String> metricArrayOrder = new ArrayList<>();
|
|
||||||
|
@FirstElement
|
||||||
|
public String metricArrayOrder = "";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,7 @@ public class UtilSample {
|
||||||
|
|
||||||
public String sampleType = "";
|
public String sampleType = "";
|
||||||
public SampleInfo sampleInfo = new SampleInfo();
|
public SampleInfo sampleInfo = new SampleInfo();
|
||||||
|
public SystemFirmware systemFirmwareUtil = new SystemFirmware();
|
||||||
public ServerUtil serverUtil = new ServerUtil();
|
public ServerUtil serverUtil = new ServerUtil();
|
||||||
public EnergyUtil energyUtil = new EnergyUtil();
|
public EnergyUtil energyUtil = new EnergyUtil();
|
||||||
public List<ViosUtil> viosUtil = new ArrayList<>();
|
public List<ViosUtil> viosUtil = new ArrayList<>();
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package biz.nellemann.hmci.pcm;
|
package biz.nellemann.hmci.pcm;
|
||||||
|
|
||||||
|
import com.serjltt.moshi.adapters.FirstElement;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -10,11 +12,23 @@ public class VirtualFiberChannelAdapter {
|
||||||
public String physicalLocation = "";
|
public String physicalLocation = "";
|
||||||
public String physicalPortWWPN = "";
|
public String physicalPortWWPN = "";
|
||||||
public Integer viosId = 0;
|
public Integer viosId = 0;
|
||||||
public List<Number> numOfReads = new ArrayList<>();
|
|
||||||
public List<Number> numOfWrites = new ArrayList<>();
|
@FirstElement
|
||||||
public List<Number> readBytes = new ArrayList<>();
|
public Number numOfReads = 0.0;
|
||||||
public List<Number> writeBytes = new ArrayList<>();
|
|
||||||
public List<Number> runningSpeed = new ArrayList<>();
|
@FirstElement
|
||||||
public List<Number> transmittedBytes = new ArrayList<>();
|
public Number numOfWrites = 0.0;
|
||||||
|
|
||||||
|
@FirstElement
|
||||||
|
public Number readBytes = 0.0;
|
||||||
|
|
||||||
|
@FirstElement
|
||||||
|
public Number writeBytes = 0.0;
|
||||||
|
|
||||||
|
@FirstElement
|
||||||
|
public Number runningSpeed = 0.0;
|
||||||
|
|
||||||
|
@FirstElement
|
||||||
|
public Number transmittedBytes = 0.0;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,6 +24,29 @@ class LogicalPartitionTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void "test getDetails"() {
|
||||||
|
|
||||||
|
setup:
|
||||||
|
def testFile = new File(getClass().getResource('/pcm-data-logical-partition.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<Measurement> listOfMeasurements = lpar.getDetails()
|
||||||
|
|
||||||
|
then:
|
||||||
|
listOfMeasurements.size() == 1
|
||||||
|
listOfMeasurements.first().fields['affinityScore'] == 100.0
|
||||||
|
listOfMeasurements.first().fields['osType'] == 'Linux'
|
||||||
|
listOfMeasurements.first().fields['type'] == 'AIX/Linux'
|
||||||
|
listOfMeasurements.first().tags['lparname'] == '9Flash01'
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void "test getMemoryMetrics"() {
|
void "test getMemoryMetrics"() {
|
||||||
|
|
||||||
setup:
|
setup:
|
||||||
|
@ -39,7 +62,7 @@ class LogicalPartitionTest extends Specification {
|
||||||
then:
|
then:
|
||||||
listOfMeasurements.size() == 1
|
listOfMeasurements.size() == 1
|
||||||
listOfMeasurements.first().fields['logicalMem'] == 8192.000
|
listOfMeasurements.first().fields['logicalMem'] == 8192.000
|
||||||
listOfMeasurements.first().tags['partition'] == '9Flash01'
|
listOfMeasurements.first().tags['lparname'] == '9Flash01'
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,7 +81,7 @@ class LogicalPartitionTest extends Specification {
|
||||||
then:
|
then:
|
||||||
listOfMeasurements.size() == 1
|
listOfMeasurements.size() == 1
|
||||||
listOfMeasurements.first().fields['utilizedProcUnits'] == 0.001
|
listOfMeasurements.first().fields['utilizedProcUnits'] == 0.001
|
||||||
listOfMeasurements.first().tags['partition'] == '9Flash01'
|
listOfMeasurements.first().tags['lparname'] == '9Flash01'
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,7 +100,7 @@ class LogicalPartitionTest extends Specification {
|
||||||
then:
|
then:
|
||||||
listOfMeasurements.size() == 1
|
listOfMeasurements.size() == 1
|
||||||
listOfMeasurements.first().fields['receivedBytes'] == 276.467
|
listOfMeasurements.first().fields['receivedBytes'] == 276.467
|
||||||
listOfMeasurements.first().tags['sea'] == 'ent5'
|
listOfMeasurements.first().tags['location'] == 'U9009.42A.21F64EV-V13-C32'
|
||||||
}
|
}
|
||||||
|
|
||||||
void "test getVirtualFiberChannelAdaptersMetrics"() {
|
void "test getVirtualFiberChannelAdaptersMetrics"() {
|
||||||
|
@ -90,7 +113,7 @@ class LogicalPartitionTest extends Specification {
|
||||||
|
|
||||||
when:
|
when:
|
||||||
lpar.processMetrics(testJson)
|
lpar.processMetrics(testJson)
|
||||||
List<Measurement> listOfMeasurements = lpar.getVirtualFiberChannelAdaptersMetrics()
|
List<Measurement> listOfMeasurements = lpar.getVirtualFibreChannelAdapterMetrics()
|
||||||
|
|
||||||
then:
|
then:
|
||||||
listOfMeasurements.size() == 4
|
listOfMeasurements.size() == 4
|
||||||
|
|
|
@ -24,6 +24,23 @@ class ManagedSystemTest extends Specification {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void "test getDetails"() {
|
||||||
|
|
||||||
|
setup:
|
||||||
|
def testFile = new File(getClass().getResource('/pcm-data-managed-system.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")
|
||||||
|
|
||||||
|
when:
|
||||||
|
system.processMetrics(testJson)
|
||||||
|
List<Measurement> listOfMeasurements = system.getDetails()
|
||||||
|
|
||||||
|
then:
|
||||||
|
listOfMeasurements.size() == 1
|
||||||
|
listOfMeasurements.first().tags['servername'] == 'Test Name'
|
||||||
|
listOfMeasurements.first().fields['utilizedProcUnits'] == 0.0
|
||||||
|
listOfMeasurements.first().fields['assignedMem'] == 5632.0
|
||||||
|
}
|
||||||
|
|
||||||
void "test getMemoryMetrics"() {
|
void "test getMemoryMetrics"() {
|
||||||
|
|
||||||
|
@ -103,7 +120,6 @@ class ManagedSystemTest extends Specification {
|
||||||
listOfMeasurements.size() == 2
|
listOfMeasurements.size() == 2
|
||||||
listOfMeasurements.first().fields['assignedMem'] == 8192.000
|
listOfMeasurements.first().fields['assignedMem'] == 8192.000
|
||||||
listOfMeasurements.first().fields['utilizedMem'] == 2093.000
|
listOfMeasurements.first().fields['utilizedMem'] == 2093.000
|
||||||
listOfMeasurements.first().fields['utilizedMemPct'] == 25.000
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void "test getViosProcessorMetrics"() {
|
void "test getViosProcessorMetrics"() {
|
||||||
|
|
Loading…
Reference in a new issue