Professional Documents
Culture Documents
smith / opbeans-node
forked from elastic/opbeans-node
Star
Watch
Code
Pull requests
Actions
Projects
Security
Insights
master
Go to file
View code
README.md
build passing
Technology Stack
This application uses the following technologies:
Node.js
Express
PostgreSQL
Redis
React (via opbeans-frontend)
React Router (via opbeans-frontend)
Redux (via opbeans-frontend)
Elastic APM
Configuration
Setup the following environment variables:
NODE_ENV - The current Node environment (set to production to enable Elastic APM)
PORT - The port at which to run the Opbeans server (default: 3000 )
PGHOST - PostgreSQL server host
PGPORT - PostgreSQL server port
PGUSER - PostgreSQL database username
PGPASSWORD - PostgreSQL database password
PGDATABASE - PostgreSQL database name (default: opbeans )
ELASTIC_APM_SERVICE_NAME - Elastic APM service name for the server app (default: opbeans-node )
ELASTIC_APM_SERVER_URL - APM Server URL (default: http://localhost:8200 )
ELASTIC_APM_JS_SERVER_URL - Elastic APM Server URL for the client app (default: http://localhost:3000 )
ELASTIC_APM_JS_SERVICE_NAME - Elastic APM App Name for the client app (defaults to name from opbeans-
frontend package.json file
ELASTIC_APM_JS_SERVICE_VERSION - Elastic APM App Name for the client app (defaults to version from
opbeans-frontend package.json file
For a complete list of Elastic APM agent environment variables, see the offical documentation
For a complete list of PostgreSQL environment variables see the official documentation.
In development, you can create a .env file in the root of the project containing all your secret environment variables.
See dotenv for details.
Bootstrap
Populate the database with tables and basic data:
Start
npm start
Updating the client
If NODE_ENV isn't production , running npm install will also clone, install and build [opbeats-frontend]. If you ever
want to update the opbeans-frontend, just run:
Testing locally
The simplest way to test this demo is by running:
make test
NOTE: VERSION refers to the tag for the docker image which will be published in the registry
Demo notes
Trigger error
The app have a built-in bug that you can trigger by navigating to the path /is-it-coffee-time .
Trigger slowness
The app have two npm scripts for adding a new customer:
customer-add-ok , which will add a new customer
customer-add-redos , which fail adding a new customer and block the server from processing any other requests
in the meantime.
Run either of the two scripts using npm run <name> .
If running inside docker, you can run it using docker-compose , e.g:
License
MIT
Languages
TSQL 88.4% JavaScript 9.4% Python 1.1% Shell 0.5% Makefile 0.5% Dockerfile 0.1%