Skip to content

jsanter27/zebra-typescript

 
 

Repository files navigation

zowe License ts node lerna jest code style: airbnb build

ZEBRA logo

About

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.

Getting Started

System Requirements

Before installing ZEBRA, make sure you meet the following system requirements.

RMF Distributed Data Server

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.

Node.js

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.

How to Run

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

Packages

This repository serves as a monorepo managing the various packages for ZEBRA. The following are the currently supported packages:

@zebra-omp/parser

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.

@zebra-omp/server

This package creates a REST API that can be used to retrieve RMF data in ZEBRA format. Find out more here.

Supported Metrics

This section provides some insight on what kind of data can be accessed wit ZEBRA.

RMF

Anything that can be accessed via the RMF Distributed Data Server for z/OS can be accessed via ZEBRA. Here are some examples:

RMF Postprocessor Reports

These reports contain historical data:

  • CPU
  • WLMGL
  • CHAN
  • and much more!

RMF Monitor III Reports

These reports contain near real-time data:

  • CPC
  • SYSINFO
  • CHANNEL
  • and much more!

SMF

Coming soon!

Contribution

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.

Conventional Commits

This project makes use of the Conventional Commit format. Commit messages must follow this format, otherwise the commit will be cancelled via husky hooks.

Live Reloading for @zebra-omp/server

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.

License

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.

About

ZEBRA is an open-source incubator project for Zowe. It is a data parsing framework that allows quick and easy access to z/OS performance metrics.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • TypeScript 88.3%
  • JavaScript 11.6%
  • Shell 0.1%