connorlindsey / otel-grafana-demo

Demo application showing how to instrument a Node application with OpenTelemetry, Prometheus, Jaeger, Loki, and Grafana. Built with Next.js, Fastify, and Postgres.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

OpenTelemetry - Grafana Demo

Author: Connor Lindsey

This demo application demonstrates how to monitor a JavaScript application using open source observability software. The following projects are used:

  • OpenTelemetry - Instrument the application and send observability data to each backend.
  • Jaeger - Distributed tracing backend.
  • Prometheus - Metrics and alerting backend.
  • Loki - Logs aggregation system.
  • Grafana - Visualize all of our observability data.

Project Structure

App architecture

  • api/ - Fastify API. Instrumented with OpenTelemetry
  • app/ - Simple Next.js app.
  • db/ - Stores copy of Postgres data for persistence.
  • config/ - Standard configuration for Prometheus, Promtail, Loki, etc.
  • data/ - Stores server logs

Running the app

  1. Run with npm run dev. Requires Docker and docker-compose.
  2. Optionally, run npm install in /api and /app.
  3. Open the app at http://localhost
  4. View traces, logs, and metrics in Grafana at http://localhost:3000

Additional Resources

About

Demo application showing how to instrument a Node application with OpenTelemetry, Prometheus, Jaeger, Loki, and Grafana. Built with Next.js, Fastify, and Postgres.


Languages

Language:TypeScript 89.1%Language:CSS 7.6%Language:JavaScript 1.7%Language:Dockerfile 0.9%Language:Shell 0.7%