instana 1.10.8-java → 1.10.9-java
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/Rakefile +3 -3
- data/gemfiles/.bundle/config +3 -0
- data/gemfiles/rails32.gemfile +3 -3
- data/gemfiles/rails42.gemfile +2 -2
- data/gemfiles/rails50.gemfile +2 -2
- data/lib/instana/config.rb +2 -0
- data/lib/instana/frameworks/instrumentation/postgresql_adapter.rb +15 -1
- data/lib/instana/test.rb +9 -7
- data/lib/instana/tracing/span.rb +2 -0
- data/lib/instana/version.rb +1 -1
- data/test/frameworks/rails/actionview3_test.rb +21 -66
- data/test/frameworks/rails/actionview4_test.rb +115 -161
- data/test/frameworks/rails/activerecord_test.rb +227 -0
- data/test/servers/rails_3205.rb +48 -12
- data/test/test_helper.rb +19 -0
- metadata +5 -8
- data/test/frameworks/rails/activerecord3_test.rb +0 -134
- data/test/frameworks/rails/activerecord4_test.rb +0 -134
- data/test/frameworks/rails/activerecord5_test.rb +0 -87
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
require 'active_record'
|
|
3
|
+
|
|
4
|
+
class ActiveRecordTest < Minitest::Test
|
|
5
|
+
def test_config_defaults
|
|
6
|
+
assert ::Instana.config[:active_record].is_a?(Hash)
|
|
7
|
+
assert ::Instana.config[:active_record].key?(:enabled)
|
|
8
|
+
assert_equal true, ::Instana.config[:active_record][:enabled]
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def test_postgresql
|
|
12
|
+
skip unless ::Instana::Test.postgresql?
|
|
13
|
+
|
|
14
|
+
clear_all!
|
|
15
|
+
|
|
16
|
+
Net::HTTP.get(URI.parse('http://localhost:3205/test/db'))
|
|
17
|
+
|
|
18
|
+
spans = Instana.processor.queued_spans
|
|
19
|
+
assert_equal 6, spans.length
|
|
20
|
+
rack_span = find_first_span_by_name(spans, :rack)
|
|
21
|
+
|
|
22
|
+
ar_spans = find_spans_by_name(spans, :activerecord)
|
|
23
|
+
assert_equal 3, ar_spans.length
|
|
24
|
+
|
|
25
|
+
ar_spans.each do |span|
|
|
26
|
+
assert_equal "postgresql", span[:data][:activerecord][:adapter]
|
|
27
|
+
assert span[:data][:activerecord].key?(:host)
|
|
28
|
+
assert span[:data][:activerecord].key?(:username)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
found = false
|
|
33
|
+
if ::Rails::VERSION::MAJOR < 4
|
|
34
|
+
sql = "INSERT INTO \"blocks\" (\"color\", \"created_at\", \"name\", \"updated_at\") VALUES ($?, $?, $?, $?) RETURNING \"id\""
|
|
35
|
+
else
|
|
36
|
+
sql = "INSERT INTO \"blocks\" (\"name\", \"color\", \"created_at\", \"updated_at\") VALUES ($?, $?, $?, $?) RETURNING \"id\""
|
|
37
|
+
end
|
|
38
|
+
ar_spans.each do |span|
|
|
39
|
+
if span[:data][:activerecord][:sql] ==
|
|
40
|
+
found = true
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
assert found
|
|
44
|
+
|
|
45
|
+
found = false
|
|
46
|
+
if ::Rails::VERSION::MAJOR >= 5
|
|
47
|
+
sql = "SELECT \"blocks\".* FROM \"blocks\" WHERE \"blocks\".\"name\" = $? ORDER BY \"blocks\".\"id\" ASC LIMIT $?"
|
|
48
|
+
elsif ::Rails::VERSION::MAJOR == 4
|
|
49
|
+
sql = "SELECT \"blocks\".* FROM \"blocks\" WHERE \"blocks\".\"name\" = $? ORDER BY \"blocks\".\"id\" ASC LIMIT ?"
|
|
50
|
+
else
|
|
51
|
+
sql = "SELECT \"blocks\".* FROM \"blocks\" WHERE \"blocks\".\"name\" = ? LIMIT ?"
|
|
52
|
+
end
|
|
53
|
+
ar_spans.each do |span|
|
|
54
|
+
if span[:data][:activerecord][:sql] == sql
|
|
55
|
+
found = true
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
assert found
|
|
59
|
+
|
|
60
|
+
found = false
|
|
61
|
+
if ::Rails::VERSION::MAJOR == 3
|
|
62
|
+
sql = "DELETE FROM \"blocks\" WHERE \"blocks\".\"id\" = ?"
|
|
63
|
+
else
|
|
64
|
+
sql = "DELETE FROM \"blocks\" WHERE \"blocks\".\"id\" = $?"
|
|
65
|
+
end
|
|
66
|
+
ar_spans.each do |span|
|
|
67
|
+
if span[:data][:activerecord][:sql] == sql
|
|
68
|
+
found = true
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
assert found
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def test_postgresql_lock_table
|
|
75
|
+
skip unless ::Instana::Test.postgresql?
|
|
76
|
+
|
|
77
|
+
clear_all!
|
|
78
|
+
|
|
79
|
+
Net::HTTP.get(URI.parse('http://localhost:3205/test/db_lock_table'))
|
|
80
|
+
|
|
81
|
+
spans = Instana.processor.queued_spans
|
|
82
|
+
assert_equal 5, spans.length
|
|
83
|
+
|
|
84
|
+
rack_span = find_first_span_by_name(spans, :rack)
|
|
85
|
+
ac_span = find_first_span_by_name(spans, :actioncontroller)
|
|
86
|
+
av_span = find_first_span_by_name(spans, :actionview)
|
|
87
|
+
|
|
88
|
+
ar_spans = find_spans_by_name(spans, :activerecord)
|
|
89
|
+
assert_equal 2, ar_spans.length
|
|
90
|
+
|
|
91
|
+
ar_spans.each do |ar_span|
|
|
92
|
+
assert_equal "postgresql", ar_span[:data][:activerecord][:adapter]
|
|
93
|
+
assert_equal "postgres", ar_span[:data][:activerecord][:username]
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
found = false
|
|
97
|
+
ar_spans.each do |span|
|
|
98
|
+
if span[:data][:activerecord][:sql] == "LOCK blocks IN ACCESS EXCLUSIVE MODE"
|
|
99
|
+
found = true
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
assert found
|
|
103
|
+
|
|
104
|
+
found = false
|
|
105
|
+
ar_spans.each do |span|
|
|
106
|
+
if span[:data][:activerecord][:sql] == "SELECT ?"
|
|
107
|
+
found = true
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
assert found
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
def test_postgresql_raw_execute
|
|
114
|
+
skip unless ::Instana::Test.postgresql?
|
|
115
|
+
|
|
116
|
+
clear_all!
|
|
117
|
+
|
|
118
|
+
Net::HTTP.get(URI.parse('http://localhost:3205/test/db_raw_execute'))
|
|
119
|
+
|
|
120
|
+
spans = Instana.processor.queued_spans
|
|
121
|
+
|
|
122
|
+
assert_equal 4, spans.length
|
|
123
|
+
rack_span = find_first_span_by_name(spans, :rack)
|
|
124
|
+
ac_span = find_first_span_by_name(spans, :actioncontroller)
|
|
125
|
+
av_span = find_first_span_by_name(spans, :actionview)
|
|
126
|
+
ar_span = find_first_span_by_name(spans, :activerecord)
|
|
127
|
+
|
|
128
|
+
assert_equal "SELECT ?", ar_span[:data][:activerecord][:sql]
|
|
129
|
+
assert_equal "postgresql", ar_span[:data][:activerecord][:adapter]
|
|
130
|
+
assert_equal "postgres", ar_span[:data][:activerecord][:username]
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
def test_postgresql_raw_execute_error
|
|
134
|
+
skip unless ::Instana::Test.postgresql?
|
|
135
|
+
|
|
136
|
+
clear_all!
|
|
137
|
+
|
|
138
|
+
Net::HTTP.get(URI.parse('http://localhost:3205/test/db_raw_execute_error'))
|
|
139
|
+
|
|
140
|
+
spans = Instana.processor.queued_spans
|
|
141
|
+
|
|
142
|
+
assert_equal 3, spans.length
|
|
143
|
+
rack_span = find_first_span_by_name(spans, :rack)
|
|
144
|
+
ac_span = find_first_span_by_name(spans, :actioncontroller)
|
|
145
|
+
ar_span = find_first_span_by_name(spans, :activerecord)
|
|
146
|
+
|
|
147
|
+
assert ar_span.key?(:stack)
|
|
148
|
+
assert ar_span[:data][:activerecord].key?(:error)
|
|
149
|
+
assert ar_span[:data][:activerecord][:error].include?("syntax error")
|
|
150
|
+
assert_equal "This is not real SQL but an intended error", ar_span[:data][:activerecord][:sql]
|
|
151
|
+
assert_equal "postgresql", ar_span[:data][:activerecord][:adapter]
|
|
152
|
+
assert_equal "postgres", ar_span[:data][:activerecord][:username]
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
def test_mysql2
|
|
156
|
+
skip unless ::Instana::Test.mysql2?
|
|
157
|
+
|
|
158
|
+
clear_all!
|
|
159
|
+
|
|
160
|
+
Net::HTTP.get(URI.parse('http://localhost:3205/test/db'))
|
|
161
|
+
|
|
162
|
+
spans = Instana.processor.queued_spans
|
|
163
|
+
assert_equal 6, spans.length
|
|
164
|
+
rack_span = find_first_span_by_name(spans, :rack)
|
|
165
|
+
|
|
166
|
+
ar_spans = find_spans_by_name(spans, :activerecord)
|
|
167
|
+
assert_equal 3, ar_spans.length
|
|
168
|
+
|
|
169
|
+
ar_spans.each do |span|
|
|
170
|
+
assert_equal "mysql2", span[:data][:activerecord][:adapter]
|
|
171
|
+
assert span[:data][:activerecord].key?(:host)
|
|
172
|
+
assert span[:data][:activerecord].key?(:username)
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
queries = [
|
|
176
|
+
"INSERT INTO `blocks` (`name`, `color`, `created_at`, `updated_at`) VALUES (?, ?, ?, ?)",
|
|
177
|
+
"SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`name` = ? ORDER BY `blocks`.`id` ASC LIMIT ?",
|
|
178
|
+
"DELETE FROM `blocks` WHERE `blocks`.`id` = ?"
|
|
179
|
+
]
|
|
180
|
+
|
|
181
|
+
queries.each do |sql|
|
|
182
|
+
found = false
|
|
183
|
+
ar_spans.each do |span|
|
|
184
|
+
if span[:data][:activerecord][:sql] = sql
|
|
185
|
+
found = true
|
|
186
|
+
end
|
|
187
|
+
end
|
|
188
|
+
assert found
|
|
189
|
+
end
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
def test_mysql
|
|
193
|
+
skip unless ::Instana::Test.mysql?
|
|
194
|
+
|
|
195
|
+
clear_all!
|
|
196
|
+
|
|
197
|
+
Net::HTTP.get(URI.parse('http://localhost:3205/test/db'))
|
|
198
|
+
|
|
199
|
+
spans = Instana.processor.queued_spans
|
|
200
|
+
assert_equal 6, spans.length
|
|
201
|
+
first_span = spans[0]
|
|
202
|
+
second_span = spans[2]
|
|
203
|
+
third_span = spans[3]
|
|
204
|
+
fourth_span = spans[4]
|
|
205
|
+
|
|
206
|
+
assert_equal :rack, first_span[:n]
|
|
207
|
+
assert_equal :activerecord, second_span[:n]
|
|
208
|
+
assert_equal :activerecord, third_span[:n]
|
|
209
|
+
assert_equal :activerecord, fourth_span[:n]
|
|
210
|
+
|
|
211
|
+
assert_equal "INSERT INTO `blocks` (`name`, `color`, `created_at`, `updated_at`) VALUES (?, ?, ?, ?)", second_span[:data][:activerecord][:sql]
|
|
212
|
+
assert_equal "SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`name` = ? ORDER BY `blocks`.`id` ASC LIMIT ?", third_span[:data][:activerecord][:sql]
|
|
213
|
+
assert_equal "DELETE FROM `blocks` WHERE `blocks`.`id` = ?", fourth_span[:data][:activerecord][:sql]
|
|
214
|
+
|
|
215
|
+
assert_equal "mysql", second_span[:data][:activerecord][:adapter]
|
|
216
|
+
assert_equal "mysql", third_span[:data][:activerecord][:adapter]
|
|
217
|
+
assert_equal "mysql", fourth_span[:data][:activerecord][:adapter]
|
|
218
|
+
|
|
219
|
+
assert_equal ENV['TRAVIS_MYSQL_HOST'], second_span[:data][:activerecord][:host]
|
|
220
|
+
assert_equal ENV['TRAVIS_MYSQL_HOST'], third_span[:data][:activerecord][:host]
|
|
221
|
+
assert_equal ENV['TRAVIS_MYSQL_HOST'], fourth_span[:data][:activerecord][:host]
|
|
222
|
+
|
|
223
|
+
assert_equal ENV['TRAVIS_MYSQL_USER'], second_span[:data][:activerecord][:username]
|
|
224
|
+
assert_equal ENV['TRAVIS_MYSQL_USER'], third_span[:data][:activerecord][:username]
|
|
225
|
+
assert_equal ENV['TRAVIS_MYSQL_USER'], fourth_span[:data][:activerecord][:username]
|
|
226
|
+
end
|
|
227
|
+
end
|
data/test/servers/rails_3205.rb
CHANGED
|
@@ -22,18 +22,21 @@ end
|
|
|
22
22
|
|
|
23
23
|
class RailsTestApp < Rails::Application
|
|
24
24
|
routes.append do
|
|
25
|
-
get "/test/world"
|
|
26
|
-
get "/test/db"
|
|
27
|
-
get "/test/
|
|
28
|
-
get "/test/
|
|
29
|
-
get "/test/
|
|
30
|
-
get "/test/
|
|
31
|
-
get "/test/
|
|
32
|
-
get "/test/
|
|
33
|
-
get "/test/
|
|
34
|
-
get "/test/
|
|
35
|
-
get "/test/
|
|
36
|
-
get "/test/
|
|
25
|
+
get "/test/world" => "test#world"
|
|
26
|
+
get "/test/db" => "test#db"
|
|
27
|
+
get "/test/db_lock_table" => "test#db_lock_table"
|
|
28
|
+
get "/test/db_raw_execute" => "test#db_raw_execute"
|
|
29
|
+
get "/test/db_raw_execute_error" => "test#db_raw_execute_error"
|
|
30
|
+
get "/test/error" => "test#error"
|
|
31
|
+
get "/test/render_view" => "test#render_view"
|
|
32
|
+
get "/test/render_partial" => "test#render_partial"
|
|
33
|
+
get "/test/render_collection" => "test#render_collection"
|
|
34
|
+
get "/test/render_file" => "test#render_file"
|
|
35
|
+
get "/test/render_nothing" => "test#render_nothing"
|
|
36
|
+
get "/test/render_json" => "test#render_json"
|
|
37
|
+
get "/test/render_xml" => "test#render_xml"
|
|
38
|
+
get "/test/render_rawbody" => "test#render_rawbody"
|
|
39
|
+
get "/test/render_js" => "test#render_js"
|
|
37
40
|
get "/test/render_alternate_layout" => "test#render_alternate_layout"
|
|
38
41
|
get "/test/render_partial_that_errors" => "test#render_partial_that_errors"
|
|
39
42
|
|
|
@@ -82,6 +85,39 @@ class TestController < ActionController::Base
|
|
|
82
85
|
end
|
|
83
86
|
end
|
|
84
87
|
|
|
88
|
+
def db_raw_execute
|
|
89
|
+
ActiveRecord::Base.connection.execute("SELECT 1")
|
|
90
|
+
|
|
91
|
+
if ::Rails::VERSION::MAJOR > 4
|
|
92
|
+
render :plain => "Hello test db!"
|
|
93
|
+
else
|
|
94
|
+
render :text => "Hello test db!"
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def db_raw_execute_error
|
|
99
|
+
ActiveRecord::Base.connection.execute("This is not real SQL but an intended error")
|
|
100
|
+
|
|
101
|
+
if ::Rails::VERSION::MAJOR > 4
|
|
102
|
+
render :plain => "Hello test db!"
|
|
103
|
+
else
|
|
104
|
+
render :text => "Hello test db!"
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def db_lock_table
|
|
109
|
+
ActiveRecord::Base.transaction do
|
|
110
|
+
ActiveRecord::Base.connection.execute('LOCK blocks IN ACCESS EXCLUSIVE MODE')
|
|
111
|
+
ActiveRecord::Base.connection.execute("SELECT 1")
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
if ::Rails::VERSION::MAJOR > 4
|
|
115
|
+
render :plain => "Hello test db!"
|
|
116
|
+
else
|
|
117
|
+
render :text => "Hello test db!"
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
|
|
85
121
|
def render_view
|
|
86
122
|
@message = "Hello Instana!"
|
|
87
123
|
end
|
data/test/test_helper.rb
CHANGED
|
@@ -142,4 +142,23 @@ def find_span_by_id(spans, id)
|
|
|
142
142
|
end
|
|
143
143
|
end
|
|
144
144
|
raise Exception.new("Span with id (#{id}) not found")
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
# Finds the first span in +spans+ for which +block+ returns true
|
|
148
|
+
#
|
|
149
|
+
# ar_span = find_first_span_by_qualifier(ar_spans) do |span|
|
|
150
|
+
# span[:data][:activerecord][:sql] == sql
|
|
151
|
+
# end
|
|
152
|
+
#
|
|
153
|
+
# This helper will raise an exception if no span evaluates to true against he provided block.
|
|
154
|
+
#
|
|
155
|
+
# +spans+: +Array+ of spans to search
|
|
156
|
+
# +block+: The Ruby block to evaluate against each span
|
|
157
|
+
def find_first_span_by_qualifier(spans, &block)
|
|
158
|
+
spans.each do |span|
|
|
159
|
+
if block.call(span)
|
|
160
|
+
return span
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
raise Exception.new("Span with qualifier not found")
|
|
145
164
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: instana
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.10.
|
|
4
|
+
version: 1.10.9
|
|
5
5
|
platform: java
|
|
6
6
|
authors:
|
|
7
7
|
- Peter Giacomo Lombardo
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2019-
|
|
11
|
+
date: 2019-10-07 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -152,6 +152,7 @@ files:
|
|
|
152
152
|
- bin/setup
|
|
153
153
|
- examples/opentracing.rb
|
|
154
154
|
- examples/tracing.rb
|
|
155
|
+
- gemfiles/.bundle/config
|
|
155
156
|
- gemfiles/libraries.gemfile
|
|
156
157
|
- gemfiles/rails32.gemfile
|
|
157
158
|
- gemfiles/rails42.gemfile
|
|
@@ -223,9 +224,7 @@ files:
|
|
|
223
224
|
- test/frameworks/rails/actionview3_test.rb
|
|
224
225
|
- test/frameworks/rails/actionview4_test.rb
|
|
225
226
|
- test/frameworks/rails/actionview5_test.rb
|
|
226
|
-
- test/frameworks/rails/
|
|
227
|
-
- test/frameworks/rails/activerecord4_test.rb
|
|
228
|
-
- test/frameworks/rails/activerecord5_test.rb
|
|
227
|
+
- test/frameworks/rails/activerecord_test.rb
|
|
229
228
|
- test/frameworks/roda_test.rb
|
|
230
229
|
- test/frameworks/sinatra_test.rb
|
|
231
230
|
- test/instana_test.rb
|
|
@@ -310,12 +309,10 @@ test_files:
|
|
|
310
309
|
- test/frameworks/roda_test.rb
|
|
311
310
|
- test/frameworks/sinatra_test.rb
|
|
312
311
|
- test/frameworks/rails/actionview4_test.rb
|
|
313
|
-
- test/frameworks/rails/
|
|
312
|
+
- test/frameworks/rails/activerecord_test.rb
|
|
314
313
|
- test/frameworks/rails/actioncontroller_test.rb
|
|
315
314
|
- test/frameworks/rails/actionview5_test.rb
|
|
316
315
|
- test/frameworks/rails/actionview3_test.rb
|
|
317
|
-
- test/frameworks/rails/activerecord5_test.rb
|
|
318
|
-
- test/frameworks/rails/activerecord4_test.rb
|
|
319
316
|
- test/apps/sinatra.rb
|
|
320
317
|
- test/apps/roda.rb
|
|
321
318
|
- test/apps/cuba.rb
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
require 'test_helper'
|
|
2
|
-
require 'active_record'
|
|
3
|
-
|
|
4
|
-
class ActiveRecordTest < Minitest::Test
|
|
5
|
-
def test_config_defaults
|
|
6
|
-
assert ::Instana.config[:active_record].is_a?(Hash)
|
|
7
|
-
assert ::Instana.config[:active_record].key?(:enabled)
|
|
8
|
-
assert_equal true, ::Instana.config[:active_record][:enabled]
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def test_postgresql
|
|
12
|
-
# Make one call to warm up the Rails stack and allow it to load
|
|
13
|
-
# relations
|
|
14
|
-
Net::HTTP.get(URI.parse('http://localhost:3205/test/db'))
|
|
15
|
-
|
|
16
|
-
skip unless ::Instana::Test.postgresql?
|
|
17
|
-
|
|
18
|
-
clear_all!
|
|
19
|
-
|
|
20
|
-
Net::HTTP.get(URI.parse('http://localhost:3205/test/db'))
|
|
21
|
-
|
|
22
|
-
traces = Instana.processor.queued_traces
|
|
23
|
-
assert_equal 1, traces.length
|
|
24
|
-
trace = traces.first
|
|
25
|
-
|
|
26
|
-
assert_equal 6, trace.spans.length
|
|
27
|
-
spans = trace.spans.to_a
|
|
28
|
-
first_span = spans[0]
|
|
29
|
-
second_span = spans[2]
|
|
30
|
-
third_span = spans[3]
|
|
31
|
-
fourth_span = spans[4]
|
|
32
|
-
|
|
33
|
-
assert_equal :rack, first_span.name
|
|
34
|
-
assert_equal :activerecord, second_span.name
|
|
35
|
-
assert_equal :activerecord, third_span.name
|
|
36
|
-
assert_equal :activerecord, fourth_span.name
|
|
37
|
-
|
|
38
|
-
assert_equal "INSERT INTO \"blocks\" (\"color\", \"created_at\", \"name\", \"updated_at\") VALUES ($?, $?, $?, $?) RETURNING \"id\"", second_span[:data][:activerecord][:sql]
|
|
39
|
-
assert_equal "SELECT \"blocks\".* FROM \"blocks\" WHERE \"blocks\".\"name\" = ? LIMIT ?", third_span[:data][:activerecord][:sql]
|
|
40
|
-
assert_equal "DELETE FROM \"blocks\" WHERE \"blocks\".\"id\" = ?", fourth_span[:data][:activerecord][:sql]
|
|
41
|
-
|
|
42
|
-
assert_equal "postgresql", second_span[:data][:activerecord][:adapter]
|
|
43
|
-
assert_equal "postgresql", third_span[:data][:activerecord][:adapter]
|
|
44
|
-
assert_equal "postgresql", fourth_span[:data][:activerecord][:adapter]
|
|
45
|
-
|
|
46
|
-
assert_equal ENV['TRAVIS_PSQL_HOST'], second_span[:data][:activerecord][:host]
|
|
47
|
-
assert_equal ENV['TRAVIS_PSQL_HOST'], third_span[:data][:activerecord][:host]
|
|
48
|
-
assert_equal ENV['TRAVIS_PSQL_HOST'], fourth_span[:data][:activerecord][:host]
|
|
49
|
-
|
|
50
|
-
assert_equal "postgres", second_span[:data][:activerecord][:username]
|
|
51
|
-
assert_equal "postgres", third_span[:data][:activerecord][:username]
|
|
52
|
-
assert_equal "postgres", fourth_span[:data][:activerecord][:username]
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def test_mysql2
|
|
56
|
-
skip unless ::Instana::Test.mysql2?
|
|
57
|
-
|
|
58
|
-
clear_all!
|
|
59
|
-
|
|
60
|
-
Net::HTTP.get(URI.parse('http://localhost:3205/test/db'))
|
|
61
|
-
|
|
62
|
-
traces = Instana.processor.queued_traces
|
|
63
|
-
assert_equal 1, traces.length
|
|
64
|
-
trace = traces.first
|
|
65
|
-
|
|
66
|
-
assert_equal 6, trace.spans.length
|
|
67
|
-
spans = trace.spans.to_a
|
|
68
|
-
first_span = spans[0]
|
|
69
|
-
second_span = spans[2]
|
|
70
|
-
third_span = spans[3]
|
|
71
|
-
fourth_span = spans[4]
|
|
72
|
-
|
|
73
|
-
assert_equal :rack, first_span.name
|
|
74
|
-
assert_equal :activerecord, second_span.name
|
|
75
|
-
assert_equal :activerecord, third_span.name
|
|
76
|
-
assert_equal :activerecord, fourth_span.name
|
|
77
|
-
|
|
78
|
-
assert_equal "INSERT INTO `blocks` (`color`, `created_at`, `name`, `updated_at`) VALUES (?, ?, ?, ?)", second_span[:data][:activerecord][:sql]
|
|
79
|
-
assert_equal "SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`name` = ? LIMIT ?", third_span[:data][:activerecord][:sql]
|
|
80
|
-
assert_equal "DELETE FROM `blocks` WHERE `blocks`.`id` = ?", fourth_span[:data][:activerecord][:sql]
|
|
81
|
-
|
|
82
|
-
assert_equal "mysql2", second_span[:data][:activerecord][:adapter]
|
|
83
|
-
assert_equal "mysql2", third_span[:data][:activerecord][:adapter]
|
|
84
|
-
assert_equal "mysql2", fourth_span[:data][:activerecord][:adapter]
|
|
85
|
-
|
|
86
|
-
assert_equal ENV['TRAVIS_MYSQL_HOST'], second_span[:data][:activerecord][:host]
|
|
87
|
-
assert_equal ENV['TRAVIS_MYSQL_HOST'], third_span[:data][:activerecord][:host]
|
|
88
|
-
assert_equal ENV['TRAVIS_MYSQL_HOST'], fourth_span[:data][:activerecord][:host]
|
|
89
|
-
|
|
90
|
-
assert_equal ENV['TRAVIS_MYSQL_USER'], second_span[:data][:activerecord][:username]
|
|
91
|
-
assert_equal ENV['TRAVIS_MYSQL_USER'], third_span[:data][:activerecord][:username]
|
|
92
|
-
assert_equal ENV['TRAVIS_MYSQL_USER'], fourth_span[:data][:activerecord][:username]
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
def test_mysql
|
|
96
|
-
skip unless ::Instana::Test.mysql?
|
|
97
|
-
|
|
98
|
-
clear_all!
|
|
99
|
-
|
|
100
|
-
Net::HTTP.get(URI.parse('http://localhost:3205/test/db'))
|
|
101
|
-
|
|
102
|
-
traces = Instana.processor.queued_traces
|
|
103
|
-
assert_equal 1, traces.length
|
|
104
|
-
trace = traces.first
|
|
105
|
-
|
|
106
|
-
assert_equal 6, trace.spans.length
|
|
107
|
-
spans = trace.spans.to_a
|
|
108
|
-
first_span = spans[0]
|
|
109
|
-
second_span = spans[2]
|
|
110
|
-
third_span = spans[3]
|
|
111
|
-
fourth_span = spans[4]
|
|
112
|
-
|
|
113
|
-
assert_equal :rack, first_span.name
|
|
114
|
-
assert_equal :activerecord, second_span.name
|
|
115
|
-
assert_equal :activerecord, third_span.name
|
|
116
|
-
assert_equal :activerecord, fourth_span.name
|
|
117
|
-
|
|
118
|
-
assert_equal "INSERT INTO `blocks` (`color`, `created_at`, `name`, `updated_at`) VALUES (?, ?, ?, ?)", second_span[:data][:activerecord][:sql]
|
|
119
|
-
assert_equal "SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`name` = ? LIMIT ?", third_span[:data][:activerecord][:sql]
|
|
120
|
-
assert_equal "DELETE FROM `blocks` WHERE `blocks`.`id` = ?", fourth_span[:data][:activerecord][:sql]
|
|
121
|
-
|
|
122
|
-
assert_equal "mysql", second_span[:data][:activerecord][:adapter]
|
|
123
|
-
assert_equal "mysql", third_span[:data][:activerecord][:adapter]
|
|
124
|
-
assert_equal "mysql", fourth_span[:data][:activerecord][:adapter]
|
|
125
|
-
|
|
126
|
-
assert_equal ENV['TRAVIS_MYSQL_HOST'], second_span[:data][:activerecord][:host]
|
|
127
|
-
assert_equal ENV['TRAVIS_MYSQL_HOST'], third_span[:data][:activerecord][:host]
|
|
128
|
-
assert_equal ENV['TRAVIS_MYSQL_HOST'], fourth_span[:data][:activerecord][:host]
|
|
129
|
-
|
|
130
|
-
assert_equal ENV['TRAVIS_MYSQL_USER'], second_span[:data][:activerecord][:username]
|
|
131
|
-
assert_equal ENV['TRAVIS_MYSQL_USER'], third_span[:data][:activerecord][:username]
|
|
132
|
-
assert_equal ENV['TRAVIS_MYSQL_USER'], fourth_span[:data][:activerecord][:username]
|
|
133
|
-
end
|
|
134
|
-
end
|