logjam_agent 0.32.1 → 0.33.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/lib/logjam_agent.rb +4 -6
- data/lib/logjam_agent/middleware.rb +2 -0
- data/lib/logjam_agent/monkey_patches/ffi-rzmq-patch.rb +19 -0
- data/lib/logjam_agent/railtie.rb +2 -2
- data/lib/logjam_agent/request.rb +5 -0
- data/lib/logjam_agent/version.rb +1 -1
- data/test/request_test.rb +10 -0
- metadata +9 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dbd400c4a9aedda3d5659a550bd2da21e9a29696cd1e5c77c14cb1f15d8e7e50
|
4
|
+
data.tar.gz: d71e179fd331b16c0b2117a31a15e45278477b8f4709ffaf93d91c2a859d9a44
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d5fbde19a0225c1859940ab1add7a690ef67109f861154e7a9d80bbc33834ae18fc415d1ab90ca891d7c245c20761c96ab92d07e99ca011ac5866a740ba37376
|
7
|
+
data.tar.gz: ff9c7d40001b7902f5fbccb8db57b32d57f23760e74225412be354d046967c97c7e0eafec4bc31b7cd2c961920d31fbc2645671091081e441100001ce82c1d40
|
data/lib/logjam_agent.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require "socket"
|
2
2
|
require "time_bandits"
|
3
|
+
require "logjam_agent/monkey_patches/ffi-rzmq-patch"
|
3
4
|
|
4
5
|
module LogjamAgent
|
5
6
|
module RequestHandling
|
@@ -76,12 +77,9 @@ module LogjamAgent
|
|
76
77
|
self.parameter_filters = []
|
77
78
|
|
78
79
|
def self.get_hostname
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
else
|
83
|
-
Socket.gethostbyname(n).first rescue n
|
84
|
-
end
|
80
|
+
name = Socket.gethostname
|
81
|
+
host = name.split('.').first
|
82
|
+
Addrinfo.getaddrinfo(host, nil, nil, :STREAM, nil, Socket::AI_CANONNAME).first.canonname rescue name
|
85
83
|
end
|
86
84
|
|
87
85
|
mattr_accessor :hostname
|
@@ -50,9 +50,11 @@ module LogjamAgent
|
|
50
50
|
env_name = env["logjam_agent.environment_name"] || LogjamAgent.environment_name
|
51
51
|
caller_id = env["HTTP_X_LOGJAM_CALLER_ID"] || ""
|
52
52
|
caller_action = env["HTTP_X_LOGJAM_ACTION"] || ""
|
53
|
+
trace_id = env["HTTP_X_LOGJAM_TRACE_ID"] || ""
|
53
54
|
extra_fields = {}
|
54
55
|
extra_fields[:caller_id] = caller_id if caller_id.present?
|
55
56
|
extra_fields[:caller_action] = caller_action if caller_action.present?
|
57
|
+
extra_fields[:trace_id] = trace_id if trace_id.present?
|
56
58
|
LogjamAgent.start_request(app_name, env_name, extra_fields)
|
57
59
|
end
|
58
60
|
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# see https://github.com/chuckremes/ffi-rzmq/pull/133
|
2
|
+
|
3
|
+
require 'ffi-rzmq'
|
4
|
+
require 'ffi-rzmq/message'
|
5
|
+
|
6
|
+
module ZMQ
|
7
|
+
class Message
|
8
|
+
def copy_in_bytes bytes, len
|
9
|
+
data_buffer = LibC.malloc len
|
10
|
+
# writes the exact number of bytes, no null byte to terminate string
|
11
|
+
data_buffer.put_bytes 0, bytes, 0, len
|
12
|
+
|
13
|
+
# use libC to call free on the data buffer; earlier versions used an
|
14
|
+
# FFI::Function here that called back into Ruby, but Rubinius won't
|
15
|
+
# support that and there are issues with the other runtimes too
|
16
|
+
LibZMQ.zmq_msg_init_data @pointer, data_buffer, len, LibC::Free, nil
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/logjam_agent/railtie.rb
CHANGED
@@ -90,9 +90,9 @@ module LogjamAgent
|
|
90
90
|
# Rails 5 fires on_load events multiple times, so we need to protect against endless recursion
|
91
91
|
next if ActionController::TestCase::Behavior.instance_methods.include?(:process_without_logjam)
|
92
92
|
module ActionController::TestCase::Behavior
|
93
|
-
def process_with_logjam(
|
93
|
+
def process_with_logjam(action, **opts)
|
94
94
|
LogjamAgent.start_request
|
95
|
-
process_without_logjam(
|
95
|
+
process_without_logjam(action, **opts)
|
96
96
|
ensure
|
97
97
|
LogjamAgent.finish_request
|
98
98
|
end
|
data/lib/logjam_agent/request.rb
CHANGED
@@ -17,6 +17,7 @@ module LogjamAgent
|
|
17
17
|
@uuid = LogjamAgent.generate_uuid
|
18
18
|
@fields = initial_fields.merge(:request_id => @uuid, :host => LogjamAgent.hostname,
|
19
19
|
:process_id => Process.pid, :lines => @lines)
|
20
|
+
@fields[:trace_id] ||= @uuid
|
20
21
|
unless (revision = LogjamAgent.application_revision).blank?
|
21
22
|
@fields[:revision] = revision
|
22
23
|
end
|
@@ -70,6 +71,10 @@ module LogjamAgent
|
|
70
71
|
@fields[:caller_action]
|
71
72
|
end
|
72
73
|
|
74
|
+
def trace_id
|
75
|
+
@fields[:trace_id]
|
76
|
+
end
|
77
|
+
|
73
78
|
def add_line(severity, timestamp, message)
|
74
79
|
@mutex.synchronize do
|
75
80
|
if @bytes_all_lines > @max_bytes_all_lines
|
data/lib/logjam_agent/version.rb
CHANGED
data/test/request_test.rb
CHANGED
@@ -44,6 +44,16 @@ module LogjamAgent
|
|
44
44
|
assert_equal TRUNCATED_LINE, lines(@request)[1][2]
|
45
45
|
end
|
46
46
|
|
47
|
+
def test_sets_trace_id_to_request_id_if_not_passed_in
|
48
|
+
assert_equal @request.uuid, @request.fields[:trace_id]
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_sets_trace_id_to_passed_in_field_value
|
52
|
+
trace_id = "murks"
|
53
|
+
request = Request.new("app", "env", {trace_id: trace_id})
|
54
|
+
assert_equal trace_id, request.fields[:trace_id]
|
55
|
+
end
|
56
|
+
|
47
57
|
private
|
48
58
|
|
49
59
|
def lines(request)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logjam_agent
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.33.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefan Kaes
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-08-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -236,6 +236,7 @@ files:
|
|
236
236
|
- lib/logjam_agent/buffered_logger.rb
|
237
237
|
- lib/logjam_agent/forwarders.rb
|
238
238
|
- lib/logjam_agent/middleware.rb
|
239
|
+
- lib/logjam_agent/monkey_patches/ffi-rzmq-patch.rb
|
239
240
|
- lib/logjam_agent/rack/logger.rb
|
240
241
|
- lib/logjam_agent/rack/rails_support.rb
|
241
242
|
- lib/logjam_agent/rack/sinatra_request.rb
|
@@ -274,16 +275,16 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
274
275
|
- !ruby/object:Gem::Version
|
275
276
|
version: '0'
|
276
277
|
requirements: []
|
277
|
-
rubygems_version: 3.
|
278
|
+
rubygems_version: 3.2.24
|
278
279
|
signing_key:
|
279
280
|
specification_version: 4
|
280
281
|
summary: Logjam client library to be used with logjam
|
281
282
|
test_files:
|
283
|
+
- test/request_test.rb
|
282
284
|
- test/sinatra_app.rb
|
283
|
-
- test/sinatra_classic_test.rb
|
284
285
|
- test/sinatra_classic_app.rb
|
285
|
-
- test/
|
286
|
-
- test/zmq_forwarder_test.rb
|
287
|
-
- test/util_test.rb
|
288
|
-
- test/test_helper.rb
|
286
|
+
- test/sinatra_classic_test.rb
|
289
287
|
- test/sinatra_test.rb
|
288
|
+
- test/test_helper.rb
|
289
|
+
- test/util_test.rb
|
290
|
+
- test/zmq_forwarder_test.rb
|