Beginner's Guide to Application Performance Monitoring

Published on 2025-10-04

« See All Lectures Contact Us
Beginner's Guide to Application Performance Monitoring

Introduction

This page is a place holder for the video Beginner's Guide to Application Performance Monitoring with Elasticsearch.

Testing Applications

All app code found here: App on GitHub

The instructions below are for instrumented applications you can test with in subsequent guides.

OPTIONAL - Install Docker

If you want to use docker instead of installing environments for nodejs, python, go etc... you can install docker with these commands:

apt-get install -y docker.io; sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose

NodeJS App

Go to the ~/app/nodejs/app/.env and update the variables if necessary.

Using Docker

cd ~/app/nodejs/ docker-compose up --build -d

Using NodeJS

Get NodeJS

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" nvm install node

Start the app:

cd ~/app/nodejs npm install node index.js

Visit the following urls in your browser:

http://ip.of.app.server:3030/demo http://ip.of.app.server:3030/path/i-love-food http://ip.of.app.server:3030/error

Go App

Go to the ~/app/go/app/.env and update the variables if necessary.

Using Docker

cd ~/app/go/ docker-compose up --build -d

Using Go

Get Go:

curl -OL https://go.dev/dl/go1.24.1.linux-amd64.tar.gz rm -rf /usr/local/go && tar -C /usr/local -xzf go1.24.1.linux-amd64.tar.gz echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc /bin/bash cd ~/app/go go get go run main.go

Visit the following urls in your browser:

http://ip.of.app.server:3031/ http://ip.of.app.server:3031/log/my-logging-golang http://ip.of.app.server:3031/fatal/my-fatal-go http://ip.of.app.server:3031/error/my-error-golang

fatal not captured?

Python App

Go to the ~/app/python/app/.env and update the variables if necessary.

Using Docker

cd ~/app/python/ docker-compose up --build -d

Using Python

Get Python

apt-get install -y python3 python3-pip

Star the app:

cd ~/app/python pip install -r requirements.txt uvicorn main:app --host 0.0.0.0 --port 3032 --log-level info --workers 1

Visit http://ip.of.app.server:3032/ and click some of the buttons to send information to the apm service and logging server.