diff options
author | Stan Hu <stanhu@gmail.com> | 2016-04-20 04:33:22 +0000 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2016-04-20 04:33:22 +0000 |
commit | c73b6a1c593f7bbab4b09d5cf882de78f54d6f09 (patch) | |
tree | 18e52a25c25dd18e52c57f9aed979260702caf0e | |
parent | 4a8db75d9de6ff5ce56be6c36e957e89971a2d42 (diff) | |
parent | 750fd3f8447c3e7a742a33f45b46b10e4d763c3e (diff) | |
download | gitlab-shell-c73b6a1c593f7bbab4b09d5cf882de78f54d6f09.tar.gz |
Merge branch 'aiionx/gitlab-shell-aiionx-post_receive_jid' into 'master'
Update post receive worker so it logs a unique JID in sidekiq
Taken from !50.
Instead of
```
2016-04-14T03:07:32.373Z 5285 TID-osycgmlyo PostReceive JID- INFO: start
2016-04-14T03:07:32.374Z 5285 TID-osycgmlyo PostReceive JID- INFO: arguments: [...]
2016-04-14T03:07:32.534Z 5285 TID-osycgmlyo PostReceive JID- INFO: done: 0.161 sec
```
Have this log
```
2016-04-14T03:07:32.373Z 5285 TID-osycgmlyo PostReceive JID-54b0b2f6616cae37e3e87f8a INFO: start
2016-04-14T03:07:32.374Z 5285 TID-osycgmlyo PostReceive JID-54b0b2f6616cae37e3e87f8a INFO: arguments: [...]
2016-04-14T03:07:32.534Z 5285 TID-osycgmlyo PostReceive JID-54b0b2f6616cae37e3e87f8a INFO: done: 0.161 sec
```
This way sidekiq can Log a unique JID in the sidekiq.log for PostReceive.
So when parsing the logs (with logstash for example) you know it belongs to that unique job.
This puts the logs in a uniform manner like the other workers that are pushed to redis (which do have a JID)
For example the ProjectWebHookWorker
```
2016-04-14T03:13:07.917Z 5285 TID-osycsh7z0 ProjectWebHookWorker JID-800085fb3cf7241fdeecc6ec INFO: start
2016-04-14T03:13:07.918Z 5285 TID-osycsh7z0 ProjectWebHookWorker JID-800085fb3cf7241fdeecc6ec INFO: arguments: [...]
2016-04-14T03:13:12.500Z 5285 TID-osycsh7z0 ProjectWebHookWorker JID-800085fb3cf7241fdeecc6ec INFO: done: 4.583 sec
```
See merge request !55
-rw-r--r-- | CHANGELOG | 4 | ||||
-rw-r--r-- | lib/gitlab_post_receive.rb | 6 | ||||
-rw-r--r-- | spec/gitlab_post_receive_spec.rb | 2 |
3 files changed, 9 insertions, 3 deletions
@@ -2,6 +2,10 @@ v3.0.0 - Remove list-remote-tags command (Robert Schilling) - Remove rm-tag command (Robert Schilling) - Remove create-branch and rm-branch commands (Robert Schilling) + - Update PostReceive worker so it logs a unique JID in Sidekiq + +v2.7.2 + - Do not prune objects during 'git gc' v2.7.1 - Add new command to list tags from a remote repo diff --git a/lib/gitlab_post_receive.rb b/lib/gitlab_post_receive.rb index ede64f2..0fff479 100644 --- a/lib/gitlab_post_receive.rb +++ b/lib/gitlab_post_receive.rb @@ -2,14 +2,16 @@ require_relative 'gitlab_init' require_relative 'gitlab_net' require 'json' require 'base64' +require 'securerandom' class GitlabPostReceive - attr_reader :config, :repo_path, :changes + attr_reader :config, :repo_path, :changes, :jid def initialize(repo_path, actor, changes) @config = GitlabConfig.new @repo_path, @actor = repo_path.strip, actor @changes = changes + @jid = SecureRandom.hex(12) end def exec @@ -71,7 +73,7 @@ class GitlabPostReceive changes = Base64.encode64(@changes) queue = "#{config.redis_namespace}:queue:post_receive" - msg = JSON.dump({ 'class' => 'PostReceive', 'args' => [@repo_path, @actor, changes] }) + msg = JSON.dump({ 'class' => 'PostReceive', 'args' => [@repo_path, @actor, changes], 'jid' => @jid }) if system(*config.redis_command, 'rpush', queue, msg, err: '/dev/null', out: '/dev/null') return true diff --git a/spec/gitlab_post_receive_spec.rb b/spec/gitlab_post_receive_spec.rb index 3c1f362..9d7696e 100644 --- a/spec/gitlab_post_receive_spec.rb +++ b/spec/gitlab_post_receive_spec.rb @@ -50,7 +50,7 @@ describe GitlabPostReceive do expect(gitlab_post_receive).to receive(:system).with( *[ *%w(env -i redis-cli rpush resque:gitlab:queue:post_receive), - %Q/{"class":"PostReceive","args":["#{repo_path}","#{actor}",#{base64_changes.inspect}]}/, + %Q/{"class":"PostReceive","args":["#{repo_path}","#{actor}",#{base64_changes.inspect}],"jid":"#{gitlab_post_receive.jid}"}/, { err: "/dev/null", out: "/dev/null" } ] ).and_return(true) |