diff options
author | Kevin Lyda <kevin@ie.suberic.net> | 2017-03-29 21:20:13 +0300 |
---|---|---|
committer | Pawel Chojnacki <pawel@chojnacki.ws> | 2017-06-02 20:45:57 +0300 |
commit | e4fb16218693edd4382b96482ba94eba6c8a7f1a (patch) | |
tree | 5100ada9c38d5f5c1348cfa63bbea9ab786177b3 /app | |
parent | f1cb09913754a9f5d449f01c91de397d7153d3c1 (diff) |
Initial pass at prometheus monitoring.
This is a step for #29118.
Add a single metric to count successful logins.
Summary types are not supported so remove Collector. Either
we need to support the summary type or we need to create a
multiprocess-friendly Collector.
Add config to load prometheus and set up the Collector and the
Exporter.
Fix `Gemfile` as current prometheus-client gemspec is missing the
`mmap2` dependency.
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/sessions_controller.rb | 1 | ||||
-rw-r--r-- | app/services/prom_service.rb | 16 |
2 files changed, 17 insertions, 0 deletions
diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb index 8c6ba4915cd..9870d4286a6 100644 --- a/app/controllers/sessions_controller.rb +++ b/app/controllers/sessions_controller.rb @@ -34,6 +34,7 @@ class SessionsController < Devise::SessionsController end # hide the signed-in notification flash[:notice] = nil + PromService.instance.login.increment log_audit_event(current_user, with: authentication_method) log_user_activity(current_user) end diff --git a/app/services/prom_service.rb b/app/services/prom_service.rb new file mode 100644 index 00000000000..e9ccce758e9 --- /dev/null +++ b/app/services/prom_service.rb @@ -0,0 +1,16 @@ +require 'prometheus/client' +require 'singleton' + +class PromService + include Singleton + + attr_reader :login + + def initialize + @prometheus = Prometheus::Client.registry + + @login = Prometheus::Client::Counter.new(:login, 'Login counter') + @prometheus.register(@login) + + end +end |