The Node implementation of the Opbeans demo app for Elastic APM
10K+
The Opbeans inventory management system is a demo app created and maintained by Elastic.
This application uses the following technologies:
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 hostPGPORT - PostgreSQL server portPGUSER - PostgreSQL database usernamePGPASSWORD - PostgreSQL database passwordPGDATABASE - 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
fileELASTIC_APM_JS_SERVICE_VERSION - Elastic APM App Name for the
client app (defaults to version from opbeans-frontend package.json
fileFor 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.
Populate the database with tables and basic data:
npm run db-setup
Generate random orders:
node db/generate_orders.js <num>
Where <num> is the amount of orders to create.
npm start
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:
npm run client-update
The simplest way to test this demo is by running:
make test
Tests are written using bats under the tests dir
Publish the docker image with
VERSION=1.2.3 make publish
NOTE: VERSION refers to the tag for the docker image which will be published in the registry
The app have a built-in bug that you can trigger by navigating to the
path /is-it-coffee-time.
The app have two npm scripts for adding a new customer:
customer-add-ok, which will add a new customercustomer-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:
docker-compose exec opbeans-node npm run customer-add-redos
MIT
Made with ♥️ and ☕️ by Elastic.
Content type
Image
Digest
sha256:574251bbc…
Size
86.5 MB
Last updated
4 months ago
docker pull opbeans/opbeans-node