docker build -t hyperpilot/analyzer-ui:alpha .
- Deploy a cluster using deployer through executing
./deploy-gcp <username> no-snap
underhyperpilot-demo/workloads/tech-demo
- Deploy HyperPilot components through executing
kubectl create -f hyperpilot-install.yaml
underhyperpilot-install
- Run load controllers through demo-ui:
kubectl create -f scripts/load-controller-deployment.json
kubectl create -f scripts/spark-load-controller-deployment.json
- Set up GoDDD application
- You have to at least select
goddd
deployment underdefault
namespace as a microservice - Select goddd deployment as SLO source service, with the port of 8080
- Select
api_booking_service_request_latency_microseconds
as the metric, with tagsummary=quantile_90
, value set to 0.1 seconds
- You have to at least select
This repository consists of three JavaScript apps:
- alpha
- interference-analysis
- sizing-analysis
- Node.js
- npm or yarn
yarn install
yarn dev-server
(npm run dev-server
) to start webpack for server side codeyarn dev
(npm run dev
) to runserver.js
and start the development server for client side code
ANALYSIS_APP
: Any ofalpha
,sizing-analysis
,interference-analysis
, default toalpha
NODE_ENV
: Can beproduction
or any thing else, setting it toproduction
triggers webpack to build for productionANALYZER_HOST
,ANALYZER_PORT
: Configurations for connecting to analyzerOPERATOR_HOST
,OPERATOR_PORT
: Configurations for connecting to operatorMONGO_HOST
,MONGO_PORT
,MONGO_USERNAME
,MONGO_PASSWORD
: Configurations for connecting to MongoCONFIGDB_NAME
,METRICDB_NAME
: Mongo database names configurationsINFLUXDB_HOST
,INFLUXDB_PORT
,INFLUXDB_USERNAME
,INFLUXDB_PASSWORD
: Configurations for connecting to InfluxDB
yarn build-server
ornpm run build-server
yarn build
ornpm run build
yarn serve
ornpm run serve
to serve the app
yarn lint
(Runseslint
)
package.json
: Dependencies and useful scriptsyarn.lock
: Auto-generated lock file produced by yarn.eslintrc.js
: Eslint configurations
config.js
: Configurations for application, such as Mongo URL, analyzer URL etc., they are almost always configurable through environment variablesserver.js
: A Node.js script that imports the corresponding router module fromrouters/
according to theANALYSIS_APP
environment variable. However it behaves differently when it's in development and production mode:NODE_ENV=development
(NODE_ENV
is notproduction
): Launches webpack dev middleware and hot middleware that not only builds the client side JavaScript code, but also hot reloading itNODE_ENV=production
: Serves the files underdist/static/
directory as static assets, and serves all the other routes with the corresponding HTML file according toANALYSIS_APP
webpack.server.config.js
: Webpack configuration for server side code, builds theserver.js
file intodist/server.bundle.js
webpack.client.config.js
: Webpack configuration for client side codealpha/
The app for Alpha 2 UIsizing-analysis/
: The app for sizing analysis UIinterference-analysis/
: The app for interference analysis UIcommons/
: Shared components and stylesheets across different appsassets/
: App's static assets such as images and fonts
npm run styleguide
: Run styleguide server to see all UI componennets at localhost:6060styles/
: master stylesheets => Sizing + Interference (Sass or Scss)commons/components
: UI components w/component based sass