Skip to content

Commit 6d475a6

Browse files
authored
Initial upload
1 parent 38fcb14 commit 6d475a6

File tree

3 files changed

+200
-2
lines changed

3 files changed

+200
-2
lines changed

CHANGELOG.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# Version 5 (12/01/2019)
2+
3+
Moved the source code & documentation to the IBM GITHUB
4+
5+
Source code refactoring(bridge internal optimization)
6+
- metadata retrieval optimizations (time performance)
7+
8+
9+
10+
# Version 4 (04/08/2019)
11+
12+
Added aggregation support to query interval
13+
- set the query interval automatically to the metric data polling interval if the downsampling is disabled explicitly
14+
- allow usage of AVG, MIN, MAX, SUM aggregators for the downsampled polling intervals
15+
16+
Changed the logic for checking the metric sensor configuration data.
17+
- Reason: GPFSFSInodeCap and GPFSPoolCap are virtual sensors. The config settings for this sensors need to be derived from the sensor GPFSDiskCap.
18+
19+
20+
21+
# Version 3 (08/06/2018)
22+
23+
Added python3.6 support
24+
25+
Source code changes based on [openTSDB datasource](https://github.com/grafana/grafana/tree/master/public/app/plugins/datasource/opentsdb) plugin supported by Grafana
26+
- Query requests and results in [openTSDB API 2.3 supported format](http://opentsdb.net/docs/build/html/api_http/query/index.html)
27+
- Fixed [alias tag issue](https://github.com/grafana/grafana/issues/7560)
28+
29+
Source code changes based on latest configuration updates to IBM Spectrum Scale performance monitoring tool (ZIMon):
30+
- changed '-s --server' option from required to optional. If not specified the server will be automatically set to 'localhost'.
31+
>> **NOTE**: Since Spectrum Scale version 5.0.0 the ZImon pmcollector allows query requests, per default, only from local host.
32+
- added vlaidity check for '-P --serverPort'
33+
- added configuration check for multithreaded serverPort. If configured, this will be automatically used for querying pmcollector.
34+
35+
Source code refactoring(bridge internal optimization)
36+
- refactoring of GET, POST Handler result objects (bridge internal)
37+
- metadata retrieval optimizations (time performance)
38+
39+
Improved logging, more options for troubleshooting
40+
- improved trace messages for logging connection issues
41+
- improved trace messages for logging wrong input parameters f.e. tag names, tag values
42+
43+
44+
45+
# Version 2 (05/24/2017)
46+
47+
Added HTTPS(SSL) connection support(via port 8443)
48+
- required [CherryPy version 4.0](download from: https://pypi.python.org/pypi/CherryPy/4.0.0) or higher
49+
- required [SSL private key and certificate](http://cherrypy.readthedocs.io/en/latest/deploy.html#ssl-support) to be generated
50+
- start the bridge with '-k' option (followed by the SSLkey location path) and port 8443 (-p option)
51+
52+
Source code changes based on [openTSDB datasource](https://github.com/grafana/grafana/tree/master/public/app/plugins/datasource/opentsdb) plugin supported by Grafana
53+
- allowing the multiple filters usage in the [lookup](http://opentsdb.net/docs/build/html/api_http/search/lookup.html?) queries
54+
- Query requests and results in [openTSDB API 2.3 query format](http://opentsdb.net/docs/build/html/api_http/query/index.html)
55+
56+
Improved logging, more options for troubleshooting
57+
- added python version, cherryPy version and the list of enabled sensors to the console message during the bridge start
58+
- added trace messages for logging received requests from Grafana and processed queries stored in zserver.log(INFO-level)
59+
- added trace messages for logging process details at different places (DEBUG-level)
60+
- added HTTPError codes to the error trace messages(if the error cause is known)
61+
- cherrypy_access.log enabled (automatically created with the bridge start)
62+
- cherrypy_error.log (automatically created with the bridge start)
63+
64+
Source code refactoring(bridge internal optimization)
65+
- moved to the new QueryHandler(backend query engine)
66+
- metadata retrieval simplification (all methods quering metadata moved to the separate module)
67+
68+
69+
70+
# Version 1 (06/16/2016)
71+
72+
Initial version

README.md

Lines changed: 97 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,97 @@
1-
# ibm-spectrum-scale-bridge-for-grafana
2-
This tool allows the IBM Spectrum Scale users to perform performance monitoring for IBM Spectrum Scale devices using third-party applications such as Grafana software.
1+
The ***IBM Spectrum Scale bridge for Grafana*** could be used for exploring IBM Spectrum Scale performance data on [Grafana dashboards](https://grafana.com/grafana/).
2+
3+
Grafana Bridge is a standalone Python application. It translates the IBM Spectrum Scale metadata and performance data collected by the [IBM Spectrum Scale performance monitoring tool (ZiMon)](https://www.ibm.com/support/knowledgecenter/en/STXKQY_4.2.3/com.ibm.spectrum.scale.v4r23.doc/bl1adv_PMToverview.htm) to the query requests acceptable by the [Grafana integrated openTSDB plugin](https://grafana.com/docs/features/datasources/opentsdb/).
4+
5+
6+
7+
## Setup
8+
9+
### Prerequisites
10+
11+
Before installing the IBM Spectrum Scale bridge for Grafana you must install the software prerequisites. Those are:
12+
1. [Performance Monitoring tool](https://www.ibm.com/support/knowledgecenter/en/STXKQY_4.2.3/com.ibm.spectrum.scale.v4r23.doc/bl1adv_PMToverview.htm) installed and configured on your IBM Spectrum Scale device
13+
2. On the [collector node](https://www.ibm.com/support/knowledgecenter/en/STXKQY_5.0.4/com.ibm.spectrum.scale.v5r04.doc/bl1adv_configurecollector.htm) the following software need to be installed:
14+
- [Python2.7](https://www.python.org/downloads/release/python-2717/)/ [Python3.6](https://www.python.org/downloads/release/python-369/)
15+
- [CerryPy](https://cherrypy.org/)
16+
17+
18+
### Dependencies
19+
This package could be used for:
20+
- IBM Spectrum Scale devices having mimimum release level 5.0.3 FP2 and above
21+
- Grafana 6.0.0 and above
22+
23+
To use this tool on the older IBM Spectrum Scale devices please refer to the [SUPPORT_MATRIX](SUPPORT_MATRIX.md) file.
24+
25+
26+
27+
### Installation, Configuration and Usage
28+
29+
#### Step 1. Ensure that IBM Spectrum Scale meets prerequisite conditions
30+
31+
The IBM Spectrum Scale system must run 4.2.1. or above. Run mmlsconfig to view the current configuration data of a GPFS™ cluster).
32+
33+
The bridge works in permanent communication with the pmcollector. Therefore it is recommended to install and run this tool directly on a pmcollector node.
34+
35+
In a multi-collector environment, there is no need to run the bridge on each pmcollector node separately, provided that they are configured in federated mode. Federation basically allows collectors to connect and collaborate with their peer collectors. If the peers have been specified, any query for measurement data must be directed to any of the collectors listed in the peer definition. The chosen collector will collect and assemble a response based on all relevant data from all collectors. For more information, see [Performance Monitoring tool overview](https://www.ibm.com/support/knowledgecenter/en/STXKQY_4.2.3/com.ibm.spectrum.scale.v4r23.doc/bl1adv_PMToverview.htm) in IBM Spectrum Scale: Advanced Administration Guide.
36+
37+
38+
39+
#### Step 2. Verify Python and CherryPy
40+
41+
Ensure that Python and CherryPy have been installed on the IBM Spectrum Scale system.
42+
Check the SUPPORT_MATRIX file for the recommended version.
43+
44+
45+
46+
#### Step 3. Set up IBM Spectrum Scale Performance Monitoring Bridge
47+
48+
Download the zip package and unpack it in your favorite directory on the collector node :
49+
50+
```shell
51+
# unzip zimonGrafanaIntf.zip
52+
```
53+
54+
Start the bridge application by issuing:
55+
56+
```shell
57+
# python zimonGrafanaIntf.py
58+
```
59+
60+
If the bridge did establish the connection to the specified pmcollector and the initialization of the metadata was performed successfully, you should get the message "server started" at the end of line. Otherwise check the zserver.log stored in the zimonGrafanaIntf directory. Additionally, check the pmcollector service running properly by issuing:
61+
62+
```shell
63+
# systemctl status pmcollector
64+
```
65+
66+
67+
68+
#### Step 4. Install Grafana
69+
70+
Download and install [Grafana](https://grafana.com/get) according to the given instructions. Before you start Grafana for the first time, check [the configuration options](http://docs.grafana.org/installation/configuration/) for port settings. Start the Grafana server as it described on the Grafana configuration pages.
71+
72+
73+
74+
#### Step 5. Establish connection to the running bridge in Grafana
75+
76+
Define a new data source (Data Sources -> Add New)
77+
78+
![](Example_Add_DataSource.png)
79+
80+
**NOTE**: The IBM Spectrum Scale bridge listens on port 4242 for HTTP connections, and on port 8443 for HTTPS connections
81+
82+
Grafana now can talk to Spectrum Scale Performance Monitoring tool via the bridge. Follow the grafana instructions to create dashboards.
83+
84+
85+
86+
## Contributing
87+
88+
At this time, third party contributions to this code will not be accepted.
89+
90+
91+
92+
## License
93+
94+
IBM Spectrum Scale bridge for Grafana is licensed under version 2.0 of the Apache License. See the [LICENSE](LICENSE.txt) file for details.
95+
96+
97+

SUPPORT_MATRIX.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
The following matrix gives a quick overview of the supported software for the IBM Spectrum Scale bridge for Grafana packages by version number:
2+
3+
# Version 5 (12/01/2019)
4+
- Python 2.7 or Python 3.6
5+
- CherryPy 8.0.0 and above (For HTTPS connection required CherryPy 8.0.0/Python 2.7 or CherryPy 18.0.0/Python3.6)
6+
- IBM Spectrum Scale system must run 5.0.3 FP2 and above
7+
- Grafana 6.0.0 and above
8+
9+
# Version 4 (04/08/2019)
10+
- Python 2.7 or Python 3.6
11+
- CherryPy 8.0.0 and above (For HTTPS connection required CherryPy 8.0.0/Python 2.7 or CherryPy 18.0.0/Python3.6)
12+
- IBM Spectrum Scale system must run 4.2.3. FP14 and above
13+
- Grafana 6.0.0 and above
14+
15+
# Version 3 (08/06/2018)
16+
- Python 2.7 or Python 3.6
17+
- CherryPy 4.0.0 and above (For HTTPS connection required CherryPy 4.0.0/Python 2.7 or CherryPy 14.0.1/Python3.6)
18+
- IBM Spectrum Scale system must run 4.2.3. FP8 and above
19+
- Grafana 5.0.0 and above
20+
21+
# Version 2 (05/24/2017)
22+
- Python 2.7 or Python 3.4
23+
- CherryPy 3.6.0 (For HTTPS connection required CherryPy 4.0.0/Python 2.7 or CherryPy 8.2.0/Python3.4.3)
24+
- IBM Spectrum Scale system must run 4.2.1. or above (Note: For the optimal bridge performance we recommend to use the IBM Spectrum Scale release level 4.2.3 FP1)
25+
- Grafana 4.2.0
26+
27+
# Version 1 (06/16/2016)
28+
- Python 2.7
29+
- CherryPy 3.6.0
30+
- IBM Spectrum Scale system must run 4.2.1. or above
31+
- Grafana 3.1

0 commit comments

Comments
 (0)