sidekiq-gelf 0.0.2 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +11 -3
- data/lib/sidekiq-gelf.rb +6 -3
- data/lib/sidekiq-gelf/middleware.rb +83 -0
- data/sidekiq-gelf.gemspec +2 -2
- metadata +6 -6
- data/lib/sidekiq-gelf/formatter.rb +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0161085b4bfbd7f4835b5c1158abaed97562c28a
|
4
|
+
data.tar.gz: 9764d0c63c041f58b5708ad7337e422ff2dac164
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 457ccf8317313e94edca9a7d8a0da5cfd268e50d7b474451dc58bfa19b889772ae5e9c27611ee6d7acd2b78e17b2a429363199f3b03210d713d3567d359743bf
|
7
|
+
data.tar.gz: a150d03466d764bd25f7d9478ad0c83b322c95db65c8b7d50333bbb35638e98f9331d111d61a63548def235428fc543b9b72fdadbc973ff932aaa94870542b2d
|
data/README.md
CHANGED
@@ -2,13 +2,21 @@
|
|
2
2
|
|
3
3
|
Enables Sidekiq logging to a GELF-supported server, such as Graylog2.
|
4
4
|
|
5
|
-
**Note:** at this time, you must use [this version](https://github.com/layervault/gelf-rb) of gelf-rb. The main version does not have formatted logging support yet.
|
6
|
-
|
7
5
|
## Usage
|
8
6
|
|
9
7
|
``` ruby
|
10
|
-
#
|
8
|
+
# Adds the GELF logger as middleware in Sidekiq in order
|
11
9
|
# to include important logging information.
|
12
10
|
# These arguments are passed through to gelf-rb.
|
13
11
|
Sidekiq::Logging::GELF.hook!('127.0.0.1', 12201, 'LAN', facility: "my-application")
|
12
|
+
```
|
13
|
+
|
14
|
+
**Note:** by default, normal logging is left as-is. If you wish to log only to the GELF input, you can do:
|
15
|
+
|
16
|
+
``` ruby
|
17
|
+
Sidekiq.configure_server do |config|
|
18
|
+
config.server_middleware do |chain|
|
19
|
+
chain.remove Sidekiq::Middleware::Server::Logging
|
20
|
+
end
|
21
|
+
end
|
14
22
|
```
|
data/lib/sidekiq-gelf.rb
CHANGED
@@ -2,7 +2,7 @@ require 'logger'
|
|
2
2
|
require 'gelf'
|
3
3
|
require 'sidekiq'
|
4
4
|
|
5
|
-
require 'sidekiq-gelf/
|
5
|
+
require 'sidekiq-gelf/middleware'
|
6
6
|
|
7
7
|
module Sidekiq
|
8
8
|
module Logging
|
@@ -10,8 +10,11 @@ module Sidekiq
|
|
10
10
|
extend self
|
11
11
|
|
12
12
|
def hook!(*args)
|
13
|
-
Sidekiq
|
14
|
-
|
13
|
+
Sidekiq.configure_server do |config|
|
14
|
+
config.server_middleware do |chain|
|
15
|
+
chain.add Middleware::Server::GELFLogging, *args
|
16
|
+
end
|
17
|
+
end
|
15
18
|
end
|
16
19
|
end
|
17
20
|
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
module Sidekiq
|
2
|
+
module Middleware
|
3
|
+
module Server
|
4
|
+
class GELFLogging
|
5
|
+
def initialize(*args)
|
6
|
+
@args = *args
|
7
|
+
end
|
8
|
+
|
9
|
+
def call(worker, item, queue)
|
10
|
+
Sidekiq::Logging.with_context("#{worker.class.to_s} JID-#{item['jid']}") do
|
11
|
+
begin
|
12
|
+
logger.info({
|
13
|
+
short_message: "Start: #{worker.class.to_s} JID-#{item['jid']}",
|
14
|
+
jid: item['jid'],
|
15
|
+
pid: pid,
|
16
|
+
tid: tid,
|
17
|
+
context: context,
|
18
|
+
worker: worker.class.to_s,
|
19
|
+
queue: queue,
|
20
|
+
params: item['args']
|
21
|
+
})
|
22
|
+
|
23
|
+
start = Time.now
|
24
|
+
|
25
|
+
yield # Pass the torch
|
26
|
+
|
27
|
+
logger.info({
|
28
|
+
short_message: "Done: #{worker.class.to_s} JID-#{item['jid']}",
|
29
|
+
jid: item['jid'],
|
30
|
+
pid: pid,
|
31
|
+
tid: tid,
|
32
|
+
context: context,
|
33
|
+
worker: worker.class.to_s,
|
34
|
+
queue: queue,
|
35
|
+
params: item['args'],
|
36
|
+
runtime: elapsed(start)
|
37
|
+
})
|
38
|
+
rescue Exception => e
|
39
|
+
logger.error({
|
40
|
+
short_message: "Fail: #{worker.class.to_s} JID-#{item['jid']}",
|
41
|
+
jid: item['jid'],
|
42
|
+
pid: pid,
|
43
|
+
tid: tid,
|
44
|
+
context: context,
|
45
|
+
worker: worker.class.to_s,
|
46
|
+
queue: queue,
|
47
|
+
params: item['args'],
|
48
|
+
runtime: elapsed(start),
|
49
|
+
exception_class: e.class.to_s,
|
50
|
+
exception_message: e.message,
|
51
|
+
backtrace: e.backtrace.join("\n")
|
52
|
+
})
|
53
|
+
|
54
|
+
raise e
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def logger
|
60
|
+
@logger ||= ::GELF::Logger.new(*@args)
|
61
|
+
end
|
62
|
+
|
63
|
+
private
|
64
|
+
|
65
|
+
def pid
|
66
|
+
Process.pid
|
67
|
+
end
|
68
|
+
|
69
|
+
def tid
|
70
|
+
Thread.current.object_id.to_s(36)
|
71
|
+
end
|
72
|
+
|
73
|
+
def context
|
74
|
+
Thread.current[:sidekiq_context]
|
75
|
+
end
|
76
|
+
|
77
|
+
def elapsed(start)
|
78
|
+
(Time.now - start).to_f.round(3)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
data/sidekiq-gelf.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = "sidekiq-gelf"
|
5
|
-
s.version = "0.0
|
5
|
+
s.version = "1.0.0"
|
6
6
|
|
7
7
|
s.author = "Ryan LeFevre"
|
8
8
|
s.date = "2014-04-21"
|
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.summary = "Format Sidekiq log messages for a GELF-supported logging server like Graylog2"
|
19
19
|
s.license = 'MIT'
|
20
20
|
|
21
|
-
s.add_dependency "gelf", '
|
21
|
+
s.add_dependency "gelf", '>= 1.4'
|
22
22
|
s.add_dependency "sidekiq", '~> 3'
|
23
23
|
|
24
24
|
s.add_development_dependency 'rake'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sidekiq-gelf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan LeFevre
|
@@ -14,16 +14,16 @@ dependencies:
|
|
14
14
|
name: gelf
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
19
|
+
version: '1.4'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1.
|
26
|
+
version: '1.4'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: sidekiq
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,7 +66,7 @@ files:
|
|
66
66
|
- README.md
|
67
67
|
- Rakefile
|
68
68
|
- lib/sidekiq-gelf.rb
|
69
|
-
- lib/sidekiq-gelf/
|
69
|
+
- lib/sidekiq-gelf/middleware.rb
|
70
70
|
- sidekiq-gelf.gemspec
|
71
71
|
homepage: http://github.com/layervault/sidekiq-gelf-rb
|
72
72
|
licenses:
|
@@ -1,15 +0,0 @@
|
|
1
|
-
module Sidekiq
|
2
|
-
module Logging
|
3
|
-
module GELF
|
4
|
-
class Formatter < Logger::Formatter
|
5
|
-
def call(severity, time, facility, message)
|
6
|
-
message.merge({
|
7
|
-
pid: Process.pid,
|
8
|
-
tid: Thread.current.object_id.to_s(36),
|
9
|
-
context: Thread.current[:sidekiq_context]
|
10
|
-
})
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|