imprint 1.4.2 → 1.4.3.pre
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.
- data/imprint.gemspec +1 -0
- data/lib/imprint/tracer.rb +11 -2
- data/lib/imprint/version.rb +1 -1
- data/test/test_helper.rb +1 -0
- data/test/unit/tracer_test.rb +20 -0
- metadata +22 -9
data/imprint.gemspec
CHANGED
data/lib/imprint/tracer.rb
CHANGED
@@ -4,10 +4,12 @@ module Imprint
|
|
4
4
|
TRACER_KEY = 'IMPRINTID'
|
5
5
|
RAILS_REQUEST_ID = "action_dispatch.request_id"
|
6
6
|
TRACE_ID_DEFAULT = "-1"
|
7
|
-
|
7
|
+
TRACER_TIMESTAMP = "TIMESTAMP"
|
8
|
+
|
8
9
|
TRACE_CHARS = [('a'..'z'), ('A'..'Z')].map { |i| i.to_a }.flatten
|
9
10
|
|
10
11
|
def self.set_trace_id(id, rack_env = {})
|
12
|
+
Thread.current[TRACER_TIMESTAMP] ||= Time.now.to_f
|
11
13
|
Thread.current[TRACER_KEY] = id
|
12
14
|
# setting to the rack_env, gives error tracking support in some systems
|
13
15
|
rack_env[TRACER_KEY] = id
|
@@ -21,11 +23,18 @@ module Imprint
|
|
21
23
|
end
|
22
24
|
end
|
23
25
|
|
26
|
+
def self.get_trace_timestamp
|
27
|
+
Thread.current[TRACER_TIMESTAMP] ||= Time.now.to_f
|
28
|
+
end
|
29
|
+
|
24
30
|
def self.insert_trace_id_in_message(message)
|
25
31
|
if message && message.is_a?(String) && message.length > 1 && !message.include?('trace_id=')
|
26
32
|
trace_id = get_trace_id
|
27
33
|
|
28
|
-
|
34
|
+
if trace_id && trace_id != TRACE_ID_DEFAULT
|
35
|
+
message.insert 0, "[#{get_trace_timestamp}] "
|
36
|
+
message.gsub!("\n"," trace_id=#{trace_id}\n")
|
37
|
+
end
|
29
38
|
end
|
30
39
|
end
|
31
40
|
|
data/lib/imprint/version.rb
CHANGED
data/test/test_helper.rb
CHANGED
data/test/unit/tracer_test.rb
CHANGED
@@ -8,6 +8,17 @@ class TracerTest < Minitest::Test
|
|
8
8
|
assert_equal fake_trace, Imprint::Tracer.get_trace_id
|
9
9
|
end
|
10
10
|
|
11
|
+
should "set trace timestamp" do
|
12
|
+
fake_trace = "tracer"
|
13
|
+
Timecop.freeze do
|
14
|
+
test_time = Time.now
|
15
|
+
Imprint::Tracer.set_trace_id(fake_trace, fake_rack_env)
|
16
|
+
# timecop has a bug with millisec time on osx
|
17
|
+
# this makes the check ignore millisec
|
18
|
+
assert !!Imprint::Tracer.get_trace_timestamp.to_s.match(/#{test_time.to_i.to_s}/)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
11
22
|
should "get trace id defaults" do
|
12
23
|
assert_equal Imprint::Tracer::TRACE_ID_DEFAULT, Imprint::Tracer.get_trace_id
|
13
24
|
Imprint::Tracer.set_trace_id("fake_trace", fake_rack_env)
|
@@ -16,6 +27,15 @@ class TracerTest < Minitest::Test
|
|
16
27
|
assert_equal Imprint::Tracer::TRACE_ID_DEFAULT, Imprint::Tracer.get_trace_id
|
17
28
|
end
|
18
29
|
|
30
|
+
should "get trace timestamp defaults" do
|
31
|
+
Timecop.freeze do
|
32
|
+
test_time = Time.now
|
33
|
+
# timecop has a bug with millisec time on osx
|
34
|
+
# this makes the check ignore millisec
|
35
|
+
assert !!Imprint::Tracer.get_trace_timestamp.to_s.match(/#{test_time.to_i.to_s}/)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
19
39
|
should "generate rand trace id" do
|
20
40
|
trace_id = Imprint::Tracer.rand_trace_id
|
21
41
|
refute_nil trace_id
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: imprint
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.4.
|
5
|
-
prerelease:
|
4
|
+
version: 1.4.3.pre
|
5
|
+
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Dan Mayer
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-04-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -91,6 +91,22 @@ dependencies:
|
|
91
91
|
- - ! '>='
|
92
92
|
- !ruby/object:Gem::Version
|
93
93
|
version: '0'
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: timecop
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
type: :development
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
94
110
|
description: A gem to help improve logging. Focused on request tracing and cross app
|
95
111
|
tracing.
|
96
112
|
email:
|
@@ -132,16 +148,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
132
148
|
version: '0'
|
133
149
|
segments:
|
134
150
|
- 0
|
135
|
-
hash:
|
151
|
+
hash: 689667875995530347
|
136
152
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
137
153
|
none: false
|
138
154
|
requirements:
|
139
|
-
- - ! '
|
155
|
+
- - ! '>'
|
140
156
|
- !ruby/object:Gem::Version
|
141
|
-
version:
|
142
|
-
segments:
|
143
|
-
- 0
|
144
|
-
hash: -2434163442242259334
|
157
|
+
version: 1.3.1
|
145
158
|
requirements: []
|
146
159
|
rubyforge_project:
|
147
160
|
rubygems_version: 1.8.23
|