Skip to content

Commit 26deb0e

Browse files
authored
Move OS/runtime context to extra (#587)
Unfortunately this won't really integrate well with Sentry, but its better than not reporting anything. Waiting on upstream to fix the contexts hash.
1 parent 425c535 commit 26deb0e

File tree

3 files changed

+20
-26
lines changed

3 files changed

+20
-26
lines changed

lib/raven/context.rb

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,28 +13,28 @@ def self.clear!
1313
attr_accessor :extra, :server_os, :rack_env, :runtime, :tags, :user
1414

1515
def initialize
16-
self.extra = {}
1716
self.server_os = self.class.os_context
18-
self.rack_env = nil
1917
self.runtime = self.class.runtime_context
18+
self.extra = { :server => { :os => server_os, :runtime => runtime } }
19+
self.rack_env = nil
2020
self.tags = {}
2121
self.user = {}
2222
end
2323

2424
class << self
2525
def os_context
2626
@os_context ||= {
27-
"name" => Raven.sys_command("uname -s") || RbConfig::CONFIG["host_os"],
28-
"version" => Raven.sys_command("uname -v"),
29-
"build" => Raven.sys_command("uname -r"),
30-
"kernel_version" => Raven.sys_command("uname -a") || Raven.sys_command("ver") # windows
27+
:name => Raven.sys_command("uname -s") || RbConfig::CONFIG["host_os"],
28+
:version => Raven.sys_command("uname -v"),
29+
:build => Raven.sys_command("uname -r"),
30+
:kernel_version => Raven.sys_command("uname -a") || Raven.sys_command("ver") # windows
3131
}
3232
end
3333

3434
def runtime_context
3535
@runtime_context ||= {
36-
"name" => RbConfig::CONFIG["ruby_install_name"],
37-
"version" => Raven.sys_command("ruby -v")
36+
:name => RbConfig::CONFIG["ruby_install_name"],
37+
:version => Raven.sys_command("ruby -v")
3838
}
3939
end
4040
end

lib/raven/event.rb

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,6 @@ def initialize(init = {})
6868
@user = @context.user.merge(@user) # TODO: contexts
6969
@extra = @context.extra.merge(@extra) # TODO: contexts
7070
@tags = @configuration.tags.merge(@context.tags).merge(@tags) # TODO: contexts
71-
@server_os = @context.server_os # TODO: contexts
72-
@runtime = @context.runtime # TODO: contexts
7371

7472
# Some type coercion
7573
@timestamp = @timestamp.strftime('%Y-%m-%dT%H:%M:%S') if @timestamp.is_a?(Time)
@@ -248,11 +246,7 @@ def to_hash
248246
:time_spent => @time_spent,
249247
:level => @level,
250248
:platform => PLATFORM,
251-
:sdk => SDK,
252-
:contexts => {
253-
:server_os => @server_os,
254-
:runtime => @runtime
255-
}
249+
:sdk => SDK
256250
}
257251

258252
data[:logger] = @logger if @logger

spec/raven/event_spec.rb

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
end
5252

5353
it 'has extra data' do
54-
expect(hash[:extra]).to eq('my_custom_variable' => 'value')
54+
expect(hash[:extra]["my_custom_variable"]).to eq('value')
5555
end
5656

5757
it 'has platform' do
@@ -63,11 +63,11 @@
6363
end
6464

6565
it 'has server os' do
66-
expect(hash[:contexts][:server_os].keys).to eq(%w(name version build kernel_version))
66+
expect(hash[:extra][:server][:os].keys).to eq([:name, :version, :build, :kernel_version])
6767
end
6868

6969
it 'has runtime' do
70-
expect(hash[:contexts][:runtime]["version"]).to match(/ruby/)
70+
expect(hash[:extra][:server][:runtime][:version]).to match(/ruby/)
7171
end
7272
end
7373

@@ -128,8 +128,8 @@
128128
end
129129

130130
it "merges extra data" do
131-
expect(hash[:extra]).to eq('key' => 'value',
132-
'my_custom_variable' => 'value')
131+
expect(hash[:extra]['key']).to eq('value')
132+
expect(hash[:extra]['my_custom_variable']).to eq('value')
133133
end
134134
end
135135

@@ -309,9 +309,9 @@
309309
end
310310

311311
it 'prioritizes event context over request context' do
312-
expect(hash[:extra]).to eq('context_event_key' => 'event_value',
313-
'context_key' => 'context_value',
314-
'event_key' => 'event_value')
312+
expect(hash[:extra]['context_event_key']).to eq('event_value')
313+
expect(hash[:extra]['context_key']).to eq('context_value')
314+
expect(hash[:extra]['event_key']).to eq('event_value')
315315
end
316316
end
317317

@@ -333,9 +333,9 @@ def raven_context
333333
end
334334

335335
it 'prioritizes event context over request context' do
336-
expect(hash[:extra]).to eq('context_event_key' => 'event_value',
337-
'context_key' => 'context_value',
338-
'event_key' => 'event_value')
336+
expect(hash[:extra]['context_event_key']).to eq('event_value')
337+
expect(hash[:extra]['context_key']).to eq('context_value')
338+
expect(hash[:extra]['event_key']).to eq('event_value')
339339
end
340340
end
341341

0 commit comments

Comments
 (0)