Skip to content

datadrivers/opentelemetry-hand-on

Folders and files

NameName
Last commit message
Last commit date
Feb 13, 2025
Feb 13, 2025
Mar 13, 2025
Mar 13, 2025
Mar 13, 2025
Mar 13, 2025
Mar 13, 2025
Feb 13, 2025
Feb 13, 2025

Repository files navigation

OpenTelemetry Hands-On

OpenTelemetry setup showing its capabilities.

Using:

  • Node.js
    • An example app to send traces, metrics and logs via OpenTelemetry SDK
  • OpenTelemetry Collector
    • To receive metrics and logs
    • To export metrics to Prometheus and export logs to Loki
  • Jaeger
    • To receive and visualize traces
  • Prometheus - To gather metrics
  • Grafana - To visualize metrics from Prometheus
  • Loki - To visualize logs

URLs

TODOs

  • Decide whether to use Jaeger or OpenTelemetry Collector to collect traces, metrics and logs
    • If Jaeger: Find a way to export data sent to Jaeger to Prometheus for metrics and Loki for logs
    • If OpenTelemetry Collector: Find a way to export traces to Jaeger, metrics to Prometheus and logs to Loki

App Set Up

cd ./app

# Use the correct Node.js version defined in .nvmrc
nvm use

# Install the dependencies
npm install

Docker Compose Set Up

# Build the Docker Image in ./app
docker compose build

# Start the services
docker compose up -d

# Check the logs of the app
docker compose logs -f app
# ... or of the collector
docker compose logs -f otel-collector

Send requests to the app

# GET /rolldice
curl http://localhost:8080/rolldice

# GET /rollrick
curl http://localhost:8080/rollrick