Commit 79558da9 authored by Ahmad Sherif's avatar Ahmad Sherif

Add instrumentation to push hooks

Related to #22053
parent ed59fbc3
...@@ -2,6 +2,7 @@ require_relative 'gitlab_init' ...@@ -2,6 +2,7 @@ require_relative 'gitlab_init'
require_relative 'gitlab_net' require_relative 'gitlab_net'
require_relative 'gitlab_access_status' require_relative 'gitlab_access_status'
require_relative 'names_helper' require_relative 'names_helper'
require_relative 'gitlab_metrics'
require 'json' require 'json'
class GitlabAccess class GitlabAccess
...@@ -20,7 +21,9 @@ class GitlabAccess ...@@ -20,7 +21,9 @@ class GitlabAccess
end end
def exec def exec
status = api.check_access('git-receive-pack', @repo_path, @actor, @changes, @protocol) status = GitlabMetrics.measure('check-access:git-receive-pack') do
api.check_access('git-receive-pack', @repo_path, @actor, @changes, @protocol)
end
raise AccessDeniedError, status.message unless status.allowed? raise AccessDeniedError, status.message unless status.allowed?
......
require 'open3' require 'open3'
require_relative 'gitlab_metrics'
class GitlabCustomHook class GitlabCustomHook
attr_reader :vars attr_reader :vars
...@@ -11,21 +12,21 @@ class GitlabCustomHook ...@@ -11,21 +12,21 @@ class GitlabCustomHook
hook = hook_file('pre-receive', repo_path) hook = hook_file('pre-receive', repo_path)
return true if hook.nil? return true if hook.nil?
call_receive_hook(hook, changes) GitlabMetrics.measure("pre-receive-hook") { call_receive_hook(hook, changes) }
end end
def post_receive(changes, repo_path) def post_receive(changes, repo_path)
hook = hook_file('post-receive', repo_path) hook = hook_file('post-receive', repo_path)
return true if hook.nil? return true if hook.nil?
call_receive_hook(hook, changes) GitlabMetrics.measure("post-receive-hook") { call_receive_hook(hook, changes) }
end end
def update(ref_name, old_value, new_value, repo_path) def update(ref_name, old_value, new_value, repo_path)
hook = hook_file('update', repo_path) hook = hook_file('update', repo_path)
return true if hook.nil? return true if hook.nil?
system(vars, hook, ref_name, old_value, new_value) GitlabMetrics.measure("update-hook") { system(vars, hook, ref_name, old_value, new_value) }
end end
private private
......
require_relative 'gitlab_init' require_relative 'gitlab_init'
require_relative 'gitlab_net' require_relative 'gitlab_net'
require_relative 'gitlab_reference_counter' require_relative 'gitlab_reference_counter'
require_relative 'gitlab_metrics'
require 'json' require 'json'
require 'base64' require 'base64'
require 'securerandom' require 'securerandom'
...@@ -21,14 +22,18 @@ class GitlabPostReceive ...@@ -21,14 +22,18 @@ class GitlabPostReceive
result = update_redis result = update_redis
begin begin
broadcast_message = api.broadcast_message broadcast_message = GitlabMetrics.measure("broadcast-message") do
api.broadcast_message
end
if broadcast_message.has_key?("message") if broadcast_message.has_key?("message")
puts puts
print_broadcast_message(broadcast_message["message"]) print_broadcast_message(broadcast_message["message"])
end end
merge_request_urls = api.merge_request_urls(@repo_path, @changes) merge_request_urls = GitlabMetrics.measure("merge-request-urls") do
api.merge_request_urls(@repo_path, @changes)
end
print_merge_request_links(merge_request_urls) print_merge_request_links(merge_request_urls)
rescue GitlabNet::ApiUnreachableError rescue GitlabNet::ApiUnreachableError
nil nil
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment