/telemetry-stacks

A simple telemetry setup using Grafana, Prometheus, Loki, Jaeger and OpenTelemetry in an easy-to-use docker compose example setup to extract logs, metrics and traces in development.

Apache License 2.0Apache-2.0

Telemetry stacks

This setup uses Loki for logs, Prometheus for metrics, and Jaeger for tracing. It will automatically collect logs from other Docker containers running on the same server if the installation steps below are followed.

The stack includes the following:

  • cAdvisor [Docs] [Local UI] - Provides resource usage and performance metrics of Docker containers to Prometheus
  • Grafana [Docs] [Local UI] - UI to explore logs and metrics using queries, charts, and alerts
  • Jaeger [Docs] [Local UI] - Provides tracing data which is linked to each incoming server request
  • Loki [Docs] - Ingests logs which can be viewed and queried from within Grafana
  • OpenTelemetry Collector [Docs] - Collects metrics data from server and exports the data to Prometheus
  • Zipkin [Docs] - A distributed tracing system, it helps gather timing data needed to troubleshoot latency problems in service architectures
  • Prometheus [Docs] [Local UI] - A monitoring toolkit for timeseries based metrics
  • Vector [Docs] - Transforms Docker logs and send them to Loki, as well as collecting logs from local Node.js processes if required

Installation

  • Clone the repository and launch cAdvisor, Grafana, Jaeger, Loki, OpenTelemetry Collector, Prometheus, and Vector:
    git clone git@github.com:cybergitt/telemetry-stacks.git
    cd telemetry-stacks
    docker-compose up -d
  • Navigate to http://localhost:3000/ and log in using the default Grafana user (admin/admin).

Troubleshooting

Jaeger EMSGSIZE error

Jaeger needs higher UDP package sizes than the maximum configured on Mac. The default value should be increased using:

sudo sysctl net.inet.udp.maxdgram=65536