traceview 3.7.0-java → 3.7.1-java

Sign up to get free protection for your applications and to get access to all the features.
@@ -7,7 +7,7 @@ unless ENV['TV_MONGO_SERVER']
7
7
  ENV['TV_MONGO_SERVER'] = "127.0.0.1:27017"
8
8
  end
9
9
 
10
- if defined?(::BSON::VERSION) and (BSON::VERSION < "2.0")
10
+ if Gem.loaded_specs['mongo'].version.to_s < '2.0.0'
11
11
  describe "Mongo" do
12
12
  before do
13
13
  clear_all_traces
@@ -45,6 +45,12 @@ if defined?(::BSON::VERSION) and (BSON::VERSION < "2.0")
45
45
  defined?(::Mongo::Collection).wont_match nil
46
46
  end
47
47
 
48
+ it 'reports mongo gem version in init' do
49
+ init_kvs = ::TraceView::Util.build_init_report
50
+ assert init_kvs.key?('Ruby.mongo.Version')
51
+ assert_equal Gem.loaded_specs['mongo'].version.to_s, init_kvs['Ruby.mongo.Version']
52
+ end
53
+
48
54
  it 'Mongo should have traceview methods defined' do
49
55
  TraceView::Inst::Mongo::DB_OPS.each do |m|
50
56
  ::Mongo::DB.method_defined?("#{m}_with_traceview").must_equal true
@@ -181,7 +187,7 @@ if defined?(::BSON::VERSION) and (BSON::VERSION < "2.0")
181
187
  traces[1]['QueryOp'].must_equal "map_reduce"
182
188
  traces[1]['Map_Function'].must_equal "function() { emit(this.name, 1); }"
183
189
  traces[1]['Reduce_Function'].must_equal "function(k, vals) { var sum = 0; for(var i in vals) sum += vals[i]; return sum; }"
184
- traces[1]['Limit'].must_equal "100"
190
+ traces[1]['Limit'].must_equal 100
185
191
  end
186
192
 
187
193
  it "should trace remove" do
@@ -309,7 +315,7 @@ if defined?(::BSON::VERSION) and (BSON::VERSION < "2.0")
309
315
  traces[1].has_key?('Backtrace').must_equal TraceView::Config[:mongo][:collect_backtraces]
310
316
  traces[1]['QueryOp'].must_equal "find"
311
317
  traces[1].has_key?('Query').must_equal true
312
- traces[1]['Limit'].must_equal "1"
318
+ traces[1]['Limit'].must_equal 1
313
319
  end
314
320
 
315
321
  it "should trace find (with block)" do
@@ -0,0 +1,124 @@
1
+ # Copyright (c) 2015 AppNeta, Inc.
2
+ # All rights reserved.
3
+
4
+ require 'minitest_helper'
5
+
6
+ unless ENV['TV_MONGO_SERVER']
7
+ ENV['TV_MONGO_SERVER'] = "127.0.0.1:27017"
8
+ end
9
+
10
+ if defined?(::Mongo::VERSION) && Mongo::VERSION >= '2.0.0'
11
+ describe "MongoIndex" do
12
+ before do
13
+ clear_all_traces
14
+
15
+ @client = Mongo::Client.new([ ENV['TV_MONGO_SERVER'] ], :database => "traceview-#{ENV['RACK_ENV']}")
16
+ if Mongo::VERSION < '2.2'
17
+ Mongo::Logger.logger.level = Logger::INFO
18
+ else
19
+ @client.logger.level = Logger::INFO
20
+ end
21
+ @db = @client.database
22
+
23
+ @collections = @db.collection_names
24
+ @testCollection = @client[:test_collection]
25
+ @testCollection.create unless @collections.include? "test_collection"
26
+
27
+ # These are standard entry/exit KVs that are passed up with all mongo operations
28
+ @entry_kvs = {
29
+ 'Layer' => 'mongo',
30
+ 'Label' => 'entry',
31
+ 'Flavor' => 'mongodb',
32
+ 'Database' => 'traceview-test',
33
+ 'RemoteHost' => ENV['TV_MONGO_SERVER'] }
34
+
35
+ @exit_kvs = { 'Layer' => 'mongo', 'Label' => 'exit' }
36
+ @collect_backtraces = TraceView::Config[:mongo][:collect_backtraces]
37
+ end
38
+
39
+ after do
40
+ TraceView::Config[:mongo][:collect_backtraces] = @collect_backtraces
41
+ end
42
+
43
+ it "should trace create_one" do
44
+ coll = @db[:test_collection]
45
+ coll.indexes.drop_all
46
+
47
+ TraceView::API.start_trace('mongo_test', '', {}) do
48
+ coll.indexes.create_one({ :name => 1 })
49
+ end
50
+
51
+ traces = get_all_traces
52
+ traces.count.must_equal 4
53
+
54
+ validate_outer_layers(traces, 'mongo_test')
55
+ validate_event_keys(traces[1], @entry_kvs)
56
+ validate_event_keys(traces[2], @exit_kvs)
57
+
58
+ traces[1]['Collection'].must_equal "test_collection"
59
+ traces[1].has_key?('Backtrace').must_equal TraceView::Config[:mongo][:collect_backtraces]
60
+ traces[1]['QueryOp'].must_equal "create_one"
61
+ end
62
+
63
+ it "should trace create_many" do
64
+ coll = @db[:test_collection]
65
+ coll.indexes.drop_all
66
+
67
+ TraceView::API.start_trace('mongo_test', '', {}) do
68
+ coll.indexes.create_many([ { :key => {:asdf => 1}, :unique => false },
69
+ { :key => {:age => -1}, :background => true} ])
70
+ end
71
+
72
+ traces = get_all_traces
73
+ traces.count.must_equal 4
74
+
75
+ validate_outer_layers(traces, 'mongo_test')
76
+ validate_event_keys(traces[1], @entry_kvs)
77
+ validate_event_keys(traces[2], @exit_kvs)
78
+
79
+ traces[1]['Collection'].must_equal "test_collection"
80
+ traces[1].has_key?('Backtrace').must_equal TraceView::Config[:mongo][:collect_backtraces]
81
+ traces[1]['QueryOp'].must_equal "create_many"
82
+ end
83
+
84
+ it "should trace drop_one" do
85
+ coll = @db[:test_collection]
86
+ coll.indexes.create_one({ :name => 1 })
87
+
88
+ TraceView::API.start_trace('mongo_test', '', {}) do
89
+ coll.indexes.drop_one('name_1')
90
+ end
91
+
92
+ traces = get_all_traces
93
+ traces.count.must_equal 4
94
+
95
+ validate_outer_layers(traces, 'mongo_test')
96
+ validate_event_keys(traces[1], @entry_kvs)
97
+ validate_event_keys(traces[2], @exit_kvs)
98
+
99
+ traces[1]['Collection'].must_equal "test_collection"
100
+ traces[1].has_key?('Backtrace').must_equal TraceView::Config[:mongo][:collect_backtraces]
101
+ traces[1]['QueryOp'].must_equal "drop_one"
102
+ end
103
+
104
+ it "should trace drop_all" do
105
+ coll = @db[:test_collection]
106
+ coll.indexes.create_one({ :name => 1 })
107
+
108
+ TraceView::API.start_trace('mongo_test', '', {}) do
109
+ coll.indexes.drop_all
110
+ end
111
+
112
+ traces = get_all_traces
113
+ traces.count.must_equal 4
114
+
115
+ validate_outer_layers(traces, 'mongo_test')
116
+ validate_event_keys(traces[1], @entry_kvs)
117
+ validate_event_keys(traces[2], @exit_kvs)
118
+
119
+ traces[1]['Collection'].must_equal "test_collection"
120
+ traces[1].has_key?('Backtrace').must_equal TraceView::Config[:mongo][:collect_backtraces]
121
+ traces[1]['QueryOp'].must_equal "drop_all"
122
+ end
123
+ end
124
+ end