ZEBRA is an open-source incubator project for Zowe. The project is best described as a z/OS performance metric framework and API that allows for quick and automated data handling through other services, such as Grafana. Currently, ZEBRA supports RMF as its performance metric data source, with plans to expand to SMF in the future.
Before installing ZEBRA, make sure you meet the following system requirements.
ZEBRA uses the RMF Distributed Data Server as the source for its RMF data. Any installation of z/OS that uses RMF should have access to setting it up. You can find out more through the official IBM Documentation.
ZEBRA requires the LTS Gallium version of Node.js (v16). Since ZEBRA is a Node.js application, it can run anywhere Node.js can run. It does not need to be run on z/OS to work.
To run ZEBRA, use the executable:
npx zebra start
For more information about the zebra executable, use:
npx zebra --help
As an alternative, you can manually use the npm script:
npm start
This repository serves as a monorepo managing the various packages for ZEBRA. The following are the currently supported packages:
This package handles the parsing of XML data retrieved from RMF Distributed Data Server into ZEBRA's JSON format. This is the core component of the project. Find out more here.
This package creates a REST API that can be used to retrieve RMF data in ZEBRA format. Find out more here.
This section provides some insight on what kind of data can be accessed wit ZEBRA.
Anything that can be accessed via the RMF Distributed Data Server for z/OS can be accessed via ZEBRA. Here are some examples:
These reports contain historical data:
- CPU
- WLMGL
- CHAN
- and much more!
These reports contain near real-time data:
- CPC
- SYSINFO
- CHANNEL
- and much more!
Coming soon!
We encourage anyone to contribute to ZEBRA, whether it be with code or knowledge of the performance metrics it uses! Check out the Contribution Guidelines for more on contributing code.
The ZEBRA team meets biweekly on Thursdays at 8:00AM ET via Zoom to discuss plans and general topics. All are welcome! Checkout the Zowe Calendar for the link!
After cloning the source code from this repo, set up the development environment with Node.js by running:
npx lerna bootstrap
to install all dependencies across the packages.
This project makes use of the Conventional Commit format. Commit messages must follow this format, otherwise the commit will be cancelled via husky hooks.
To take advantage of real-time changes when developing in the server directory, we have set up a script that allows for live reloading when changes are made. To run this first go to the server directory.
cd packages/server
Next, run the dev script using the following command:
npm run dev
Every time a change is made within the src directory, the script will automatically generate routes based off the controllers defined in the controller directory, transpile the TypeScript source files into Javascript, and then run the result.
This program and the accompanying materials are made available under the terms of the Eclipse Public License v2.0 which accompanies this distribution, and is available at https://www.eclipse.org/legal/epl-v20.html
SPDX-License-Identifier: EPL-2.0
Copyright Contributors to the Zowe Project.
