Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorKevin Lyda <kevin@ie.suberic.net>2017-03-29 21:20:13 +0300
committerPawel Chojnacki <pawel@chojnacki.ws>2017-06-02 20:45:57 +0300
commite4fb16218693edd4382b96482ba94eba6c8a7f1a (patch)
tree5100ada9c38d5f5c1348cfa63bbea9ab786177b3 /app
parentf1cb09913754a9f5d449f01c91de397d7153d3c1 (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.rb1
-rw-r--r--app/services/prom_service.rb16
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