From ae939d0183aead85d4f10450e1893b34e2f4a199 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Reinst=C3=A4dtler?= Date: Sat, 5 Jun 2021 22:59:56 +0200 Subject: [PATCH] prometheus_exporter installed and initial docu written --- Gemfile | 1 + Gemfile.lock | 4 +++ MONITORING.md | 30 ++++++++++++++++++++++ config/initializers/prometheus_exporter.rb | 7 +++++ 4 files changed, 42 insertions(+) create mode 100644 MONITORING.md create mode 100644 config/initializers/prometheus_exporter.rb diff --git a/Gemfile b/Gemfile index 4e5004155..b59c17eaf 100644 --- a/Gemfile +++ b/Gemfile @@ -144,3 +144,4 @@ end group :test, :development, :docker_development do gem 'cypress-on-rails', '~> 1.0' end +gem 'prometheus_exporter' \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock index 31dda743f..8ba34f558 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -383,6 +383,8 @@ GEM progress_bar (1.3.3) highline (>= 1.6, < 3) options (~> 2.3.0) + prometheus_exporter (0.7.0) + webrick public_suffix (4.0.6) puma (4.3.7) nio4r (~> 2.0) @@ -606,6 +608,7 @@ GEM rack-proxy (>= 0.6.1) railties (>= 5.2) semantic_range (>= 2.3.0) + webrick (1.7.0) websocket-driver (0.7.3) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) @@ -668,6 +671,7 @@ DEPENDENCIES pgreset premailer-rails progress_bar + prometheus_exporter puma (~> 4.1) rack rails (~> 6.1) diff --git a/MONITORING.md b/MONITORING.md new file mode 100644 index 000000000..9477a5b4c --- /dev/null +++ b/MONITORING.md @@ -0,0 +1,30 @@ +# Monitoring + +## Getting started (development mode): Setting up prometheus & grafana + +0. Start prometheus_exporter in the mampf container +`sudo docker-compose exec mampf prometheus_exporter -b 0.0.0.0` +1. Setup prometheus in development + +```sh +cd docker/development +sudo docker run -d \ +-p 9090:9090 \ +--name prometheus -v $(pwd)/prometheus.yml:/etc/prometheus/prometheus.yml \ +prom/prometheus +# Add to mampf dev network +sudo docker network connect development_default prometheus +``` +2. setup Grafana: + +```sh +sudo docker run -d \ +-p 2345:2345 \ +--name grafana \ +-e "GF_SERVER_HTTP_PORT=2345" \ +grafana/grafana +``` +3. Now visit localhost:2345 and configure the datasource (`prometheus:9090`) +4. Setup the dashboard, interisting metrics: + - `rate(ruby_collector_sessions_total[5m])` + - `rate(ruby_http_requests_total[5m])` \ No newline at end of file diff --git a/config/initializers/prometheus_exporter.rb b/config/initializers/prometheus_exporter.rb new file mode 100644 index 000000000..a1793c0a7 --- /dev/null +++ b/config/initializers/prometheus_exporter.rb @@ -0,0 +1,7 @@ +# in config/initializers/prometheus.rb +if Rails.env != "test" + require 'prometheus_exporter/middleware' + + # This reports stats per request like HTTP status and timings + Rails.application.middleware.unshift PrometheusExporter::Middleware + end \ No newline at end of file