appsignal 1.1.1 → 1.1.2
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/CHANGELOG.md +6 -3
- data/lib/appsignal/cli.rb +3 -3
- data/lib/appsignal/cli/notify_of_deploy.rb +3 -4
- data/lib/appsignal/config.rb +2 -5
- data/lib/appsignal/integrations/capistrano/appsignal.cap +4 -3
- data/lib/appsignal/integrations/capistrano/capistrano_2_tasks.rb +5 -3
- data/lib/appsignal/marker.rb +5 -12
- data/lib/appsignal/params_sanitizer.rb +1 -7
- data/lib/appsignal/version.rb +1 -1
- data/spec/lib/appsignal/capistrano2_spec.rb +21 -28
- data/spec/lib/appsignal/capistrano3_spec.rb +14 -14
- data/spec/lib/appsignal/cli/notify_of_deploy_spec.rb +2 -4
- data/spec/lib/appsignal/config_spec.rb +3 -3
- data/spec/lib/appsignal/marker_spec.rb +26 -41
- data/spec/lib/appsignal/params_sanitizer_spec.rb +4 -2
- metadata +43 -25
- checksums.yaml +0 -7
- data/lib/appsignal/integrations/capistrano/careful_logger.rb +0 -14
data/CHANGELOG.md
CHANGED
@@ -1,13 +1,16 @@
|
|
1
|
-
# 1.1.
|
2
|
-
*
|
1
|
+
# 1.1.2
|
2
|
+
* Bug fix in notify of deploy cli
|
3
3
|
|
4
|
-
# 1.1
|
4
|
+
# 1.1.1
|
5
5
|
* Collect global metrics for GC durations (in beta, disabled by default)
|
6
6
|
* Collect params from Delayed Job in a reliable way
|
7
7
|
* Collect perams for Delayed Job and Sidekiq when using ActiveJob
|
8
8
|
* Official Grape support
|
9
9
|
* Easier installation using `bundle exec appsignal install`
|
10
10
|
|
11
|
+
# 1.1.0
|
12
|
+
Yanked
|
13
|
+
|
11
14
|
# 1.0.7
|
12
15
|
* Another multibyte bugfix in sql sanizitation
|
13
16
|
|
data/lib/appsignal/cli.rb
CHANGED
@@ -27,7 +27,7 @@ module Appsignal
|
|
27
27
|
when :diagnose
|
28
28
|
Appsignal::CLI::Diagnose.run
|
29
29
|
when :install
|
30
|
-
Appsignal::CLI::Install.run(argv.shift, config
|
30
|
+
Appsignal::CLI::Install.run(argv.shift, config)
|
31
31
|
when :notify_of_deploy
|
32
32
|
Appsignal::CLI::NotifyOfDeploy.run(options, config)
|
33
33
|
end
|
@@ -43,12 +43,12 @@ module Appsignal
|
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
46
|
-
def config
|
46
|
+
def config
|
47
47
|
Appsignal::Config.new(
|
48
48
|
ENV['PWD'],
|
49
49
|
options[:environment],
|
50
50
|
initial_config,
|
51
|
-
|
51
|
+
Logger.new(StringIO.new)
|
52
52
|
)
|
53
53
|
end
|
54
54
|
|
@@ -11,8 +11,7 @@ module Appsignal
|
|
11
11
|
:revision => options[:revision],
|
12
12
|
:user => options[:user]
|
13
13
|
},
|
14
|
-
config
|
15
|
-
nil
|
14
|
+
config
|
16
15
|
).transmit
|
17
16
|
end
|
18
17
|
|
@@ -25,14 +24,14 @@ module Appsignal
|
|
25
24
|
end
|
26
25
|
if missing.any?
|
27
26
|
puts "Missing options: #{missing.join(', ')}"
|
28
|
-
exit
|
27
|
+
exit 1
|
29
28
|
end
|
30
29
|
end
|
31
30
|
|
32
31
|
def validate_active_config(config)
|
33
32
|
unless config.active?
|
34
33
|
puts 'Exiting: No config file or push api key env var found'
|
35
|
-
exit
|
34
|
+
exit 1
|
36
35
|
end
|
37
36
|
end
|
38
37
|
end
|
data/lib/appsignal/config.rb
CHANGED
@@ -1,12 +1,9 @@
|
|
1
1
|
require 'erb'
|
2
2
|
require 'yaml'
|
3
3
|
require 'uri'
|
4
|
-
require 'appsignal/integrations/capistrano/careful_logger'
|
5
4
|
|
6
5
|
module Appsignal
|
7
6
|
class Config
|
8
|
-
include Appsignal::CarefulLogger
|
9
|
-
|
10
7
|
DEFAULT_CONFIG = {
|
11
8
|
:debug => false,
|
12
9
|
:ignore_errors => [],
|
@@ -138,7 +135,7 @@ module Appsignal
|
|
138
135
|
|
139
136
|
merge(@config_hash, config_for_this_env)
|
140
137
|
else
|
141
|
-
|
138
|
+
@logger.error "Not loading from config file: config for '#{env}' not found"
|
142
139
|
end
|
143
140
|
end
|
144
141
|
|
@@ -207,7 +204,7 @@ module Appsignal
|
|
207
204
|
@valid = true
|
208
205
|
else
|
209
206
|
@valid = false
|
210
|
-
|
207
|
+
@logger.error "Push api key not set after loading config"
|
211
208
|
end
|
212
209
|
end
|
213
210
|
|
@@ -3,13 +3,12 @@ namespace :appsignal do
|
|
3
3
|
env = fetch(:stage, fetch(:rails_env, fetch(:rack_env, 'production')))
|
4
4
|
user = ENV['USER'] || ENV['USERNAME']
|
5
5
|
revision = fetch(:appsignal_revision, fetch(:current_revision))
|
6
|
-
logger = fetch(:logger, Logger.new($stdout))
|
7
6
|
|
8
7
|
appsignal_config = Appsignal::Config.new(
|
9
8
|
ENV['PWD'],
|
10
9
|
env,
|
11
10
|
fetch(:appsignal_config, {}),
|
12
|
-
|
11
|
+
Logger.new(StringIO.new)
|
13
12
|
)
|
14
13
|
|
15
14
|
if appsignal_config && appsignal_config.active?
|
@@ -18,8 +17,10 @@ namespace :appsignal do
|
|
18
17
|
:user => user
|
19
18
|
}
|
20
19
|
|
21
|
-
marker = Appsignal::Marker.new(marker_data, appsignal_config
|
20
|
+
marker = Appsignal::Marker.new(marker_data, appsignal_config)
|
22
21
|
marker.transmit
|
22
|
+
else
|
23
|
+
puts 'Not notifying of deploy, config is not active'
|
23
24
|
end
|
24
25
|
end
|
25
26
|
end
|
@@ -15,7 +15,7 @@ module Appsignal
|
|
15
15
|
ENV['PWD'],
|
16
16
|
env,
|
17
17
|
fetch(:appsignal_config, {}),
|
18
|
-
|
18
|
+
Logger.new(StringIO.new)
|
19
19
|
)
|
20
20
|
|
21
21
|
if appsignal_config && appsignal_config.active?
|
@@ -24,12 +24,14 @@ module Appsignal
|
|
24
24
|
:user => user
|
25
25
|
}
|
26
26
|
|
27
|
-
marker = Marker.new(marker_data, appsignal_config
|
27
|
+
marker = Marker.new(marker_data, appsignal_config)
|
28
28
|
if config.dry_run
|
29
|
-
|
29
|
+
puts 'Dry run: AppSignal deploy marker not actually sent.'
|
30
30
|
else
|
31
31
|
marker.transmit
|
32
32
|
end
|
33
|
+
else
|
34
|
+
puts 'Not notifying of deploy, config is not active'
|
33
35
|
end
|
34
36
|
end
|
35
37
|
end
|
data/lib/appsignal/marker.rb
CHANGED
@@ -1,31 +1,24 @@
|
|
1
|
-
require 'appsignal/integrations/capistrano/careful_logger'
|
2
|
-
|
3
1
|
module Appsignal
|
4
2
|
class Marker
|
5
|
-
|
6
|
-
|
7
|
-
attr_reader :marker_data, :config, :logger
|
3
|
+
attr_reader :marker_data, :config
|
8
4
|
ACTION = 'markers'
|
9
5
|
|
10
|
-
def initialize(marker_data, config
|
6
|
+
def initialize(marker_data, config)
|
11
7
|
@marker_data = marker_data
|
12
8
|
@config = config
|
13
|
-
@logger = logger
|
14
9
|
end
|
15
10
|
|
16
11
|
def transmit
|
17
12
|
transmitter = Transmitter.new(ACTION, config)
|
18
|
-
|
13
|
+
puts "Notifying Appsignal of deploy with: revision: #{marker_data[:revision]}, user: #{marker_data[:user]}"
|
19
14
|
result = transmitter.transmit(marker_data)
|
20
15
|
if result == '200'
|
21
|
-
|
16
|
+
puts 'Appsignal has been notified of this deploy!'
|
22
17
|
else
|
23
18
|
raise "#{result} at #{transmitter.uri}"
|
24
19
|
end
|
25
20
|
rescue Exception => e
|
26
|
-
|
27
|
-
"Something went wrong while trying to notify Appsignal: #{e}"
|
28
|
-
)
|
21
|
+
puts "Something went wrong while trying to notify Appsignal: #{e}"
|
29
22
|
end
|
30
23
|
end
|
31
24
|
end
|
@@ -25,10 +25,8 @@ module Appsignal
|
|
25
25
|
sanitize_hash(value)
|
26
26
|
when Array
|
27
27
|
sanitize_array(value)
|
28
|
-
when Fixnum, String, Symbol, Float
|
28
|
+
when TrueClass, FalseClass, NilClass, Fixnum, String, Symbol, Float
|
29
29
|
unmodified(value)
|
30
|
-
when TrueClass, FalseClass
|
31
|
-
stringified(value)
|
32
30
|
else
|
33
31
|
inspected(value)
|
34
32
|
end
|
@@ -48,10 +46,6 @@ module Appsignal
|
|
48
46
|
target_array
|
49
47
|
end
|
50
48
|
|
51
|
-
def stringified(value)
|
52
|
-
value.to_s
|
53
|
-
end
|
54
|
-
|
55
49
|
def unmodified(value)
|
56
50
|
value
|
57
51
|
end
|
data/lib/appsignal/version.rb
CHANGED
@@ -6,8 +6,17 @@ if capistrano2_present?
|
|
6
6
|
require 'appsignal/capistrano'
|
7
7
|
|
8
8
|
describe "Capistrano 2 integration" do
|
9
|
+
let(:out_stream) { StringIO.new }
|
9
10
|
let(:config) { project_fixture_config }
|
10
11
|
|
12
|
+
before do
|
13
|
+
@original_stdout = $stdout
|
14
|
+
$stdout = out_stream
|
15
|
+
end
|
16
|
+
after do
|
17
|
+
$stdout = @original_stdout
|
18
|
+
end
|
19
|
+
|
11
20
|
before :all do
|
12
21
|
@capistrano_config = Capistrano::Configuration.new
|
13
22
|
Appsignal::Capistrano.tasks(@capistrano_config)
|
@@ -39,7 +48,7 @@ if capistrano2_present?
|
|
39
48
|
project_fixture_path,
|
40
49
|
'production',
|
41
50
|
{},
|
42
|
-
kind_of(
|
51
|
+
kind_of(Logger)
|
43
52
|
)
|
44
53
|
end
|
45
54
|
|
@@ -53,7 +62,7 @@ if capistrano2_present?
|
|
53
62
|
project_fixture_path,
|
54
63
|
'production',
|
55
64
|
{:name => 'AppName'},
|
56
|
-
kind_of(
|
65
|
+
kind_of(Logger)
|
57
66
|
)
|
58
67
|
end
|
59
68
|
|
@@ -68,7 +77,7 @@ if capistrano2_present?
|
|
68
77
|
project_fixture_path,
|
69
78
|
'rack_production',
|
70
79
|
{:name => 'AppName'},
|
71
|
-
kind_of(
|
80
|
+
kind_of(Logger)
|
72
81
|
)
|
73
82
|
end
|
74
83
|
end
|
@@ -78,13 +87,6 @@ if capistrano2_present?
|
|
78
87
|
end
|
79
88
|
|
80
89
|
context "send marker" do
|
81
|
-
before :all do
|
82
|
-
@io = StringIO.new
|
83
|
-
@logger = Capistrano::Logger.new(:output => @io)
|
84
|
-
@logger.level = Capistrano::Logger::MAX_LEVEL
|
85
|
-
@capistrano_config.logger = @logger
|
86
|
-
end
|
87
|
-
|
88
90
|
let(:marker_data) do
|
89
91
|
{
|
90
92
|
:revision => '503ce0923ed177a3ce000005',
|
@@ -96,8 +98,7 @@ if capistrano2_present?
|
|
96
98
|
before do
|
97
99
|
@marker = Appsignal::Marker.new(
|
98
100
|
marker_data,
|
99
|
-
config
|
100
|
-
@logger
|
101
|
+
config
|
101
102
|
)
|
102
103
|
Appsignal::Marker.stub(:new => @marker)
|
103
104
|
end
|
@@ -111,8 +112,7 @@ if capistrano2_present?
|
|
111
112
|
it "should add the correct marker data" do
|
112
113
|
Appsignal::Marker.should_receive(:new).with(
|
113
114
|
marker_data,
|
114
|
-
kind_of(Appsignal::Config)
|
115
|
-
kind_of(Capistrano::Logger)
|
115
|
+
kind_of(Appsignal::Config)
|
116
116
|
).and_return(@marker)
|
117
117
|
|
118
118
|
@capistrano_config.find_and_execute_task('appsignal:deploy')
|
@@ -121,8 +121,8 @@ if capistrano2_present?
|
|
121
121
|
it "should transmit data" do
|
122
122
|
@transmitter.should_receive(:transmit).and_return('200')
|
123
123
|
@capistrano_config.find_and_execute_task('appsignal:deploy')
|
124
|
-
|
125
|
-
|
124
|
+
out_stream.string.should include('Notifying Appsignal of deploy with: revision: 503ce0923ed177a3ce000005, user: batman')
|
125
|
+
out_stream.string.should include('Appsignal has been notified of this deploy!')
|
126
126
|
end
|
127
127
|
|
128
128
|
context "with overridden revision" do
|
@@ -135,8 +135,7 @@ if capistrano2_present?
|
|
135
135
|
:revision => 'abc123',
|
136
136
|
:user => 'batman'
|
137
137
|
},
|
138
|
-
kind_of(Appsignal::Config)
|
139
|
-
kind_of(Capistrano::Logger)
|
138
|
+
kind_of(Appsignal::Config)
|
140
139
|
).and_return(@marker)
|
141
140
|
|
142
141
|
@capistrano_config.find_and_execute_task('appsignal:deploy')
|
@@ -146,8 +145,8 @@ if capistrano2_present?
|
|
146
145
|
|
147
146
|
it "should not transmit data" do
|
148
147
|
@capistrano_config.find_and_execute_task('appsignal:deploy')
|
149
|
-
|
150
|
-
|
148
|
+
out_stream.string.should include('Notifying Appsignal of deploy with: revision: 503ce0923ed177a3ce000005, user: batman')
|
149
|
+
out_stream.string.should include('Something went wrong while trying to notify Appsignal:')
|
151
150
|
end
|
152
151
|
|
153
152
|
context "dry run" do
|
@@ -156,7 +155,7 @@ if capistrano2_present?
|
|
156
155
|
it "should not send deploy marker" do
|
157
156
|
@marker.should_not_receive(:transmit)
|
158
157
|
@capistrano_config.find_and_execute_task('appsignal:deploy')
|
159
|
-
|
158
|
+
out_stream.string.should include('Dry run: AppSignal deploy marker not actually sent.')
|
160
159
|
end
|
161
160
|
end
|
162
161
|
end
|
@@ -169,13 +168,7 @@ if capistrano2_present?
|
|
169
168
|
it "should not send deploy marker" do
|
170
169
|
Appsignal::Marker.should_not_receive(:new)
|
171
170
|
@capistrano_config.find_and_execute_task('appsignal:deploy')
|
172
|
-
|
173
|
-
'UTF-8',
|
174
|
-
'binary',
|
175
|
-
:invalid => :replace,
|
176
|
-
:undef => :replace,
|
177
|
-
:replace => ''
|
178
|
-
).should include("config for 'nonsense' not found")
|
171
|
+
out_stream.string.should include('Not notifying of deploy, config is not active')
|
179
172
|
end
|
180
173
|
end
|
181
174
|
end
|
@@ -9,8 +9,8 @@ if capistrano3_present?
|
|
9
9
|
|
10
10
|
describe "Capistrano 3 integration" do
|
11
11
|
let(:config) { project_fixture_config }
|
12
|
-
let(:
|
13
|
-
let(:logger) { Logger.new(
|
12
|
+
let(:out_stream) { StringIO.new }
|
13
|
+
let(:logger) { Logger.new(out_stream) }
|
14
14
|
|
15
15
|
before do
|
16
16
|
@capistrano_config = Capistrano::Configuration.env
|
@@ -18,10 +18,13 @@ if capistrano3_present?
|
|
18
18
|
@capistrano_config.set(:logger, logger)
|
19
19
|
end
|
20
20
|
before do
|
21
|
+
@original_stdout = $stdout
|
22
|
+
$stdout = out_stream
|
21
23
|
@original_stderr = $stderr
|
22
|
-
$stderr =
|
24
|
+
$stderr = out_stream
|
23
25
|
end
|
24
26
|
after do
|
27
|
+
$stdout = @original_stdout
|
25
28
|
$stderr = @original_stderr
|
26
29
|
Rake::Task['appsignal:deploy'].reenable
|
27
30
|
end
|
@@ -117,8 +120,7 @@ if capistrano3_present?
|
|
117
120
|
before do
|
118
121
|
@marker = Appsignal::Marker.new(
|
119
122
|
marker_data,
|
120
|
-
config
|
121
|
-
logger
|
123
|
+
config
|
122
124
|
)
|
123
125
|
Appsignal::Marker.stub(:new => @marker)
|
124
126
|
end
|
@@ -132,8 +134,7 @@ if capistrano3_present?
|
|
132
134
|
it "should add the correct marker data" do
|
133
135
|
Appsignal::Marker.should_receive(:new).with(
|
134
136
|
marker_data,
|
135
|
-
kind_of(Appsignal::Config)
|
136
|
-
kind_of(Logger)
|
137
|
+
kind_of(Appsignal::Config)
|
137
138
|
).and_return(@marker)
|
138
139
|
|
139
140
|
invoke('appsignal:deploy')
|
@@ -142,8 +143,8 @@ if capistrano3_present?
|
|
142
143
|
it "should transmit data" do
|
143
144
|
@transmitter.should_receive(:transmit).and_return('200')
|
144
145
|
invoke('appsignal:deploy')
|
145
|
-
|
146
|
-
|
146
|
+
out_stream.string.should include('Notifying Appsignal of deploy with: revision: 503ce0923ed177a3ce000005, user: batman')
|
147
|
+
out_stream.string.should include('ppsignal has been notified of this deploy!')
|
147
148
|
end
|
148
149
|
|
149
150
|
context "with overridden revision" do
|
@@ -156,8 +157,7 @@ if capistrano3_present?
|
|
156
157
|
:revision => 'abc123',
|
157
158
|
:user => 'batman'
|
158
159
|
},
|
159
|
-
kind_of(Appsignal::Config)
|
160
|
-
kind_of(Logger)
|
160
|
+
kind_of(Appsignal::Config)
|
161
161
|
).and_return(@marker)
|
162
162
|
|
163
163
|
invoke('appsignal:deploy')
|
@@ -167,8 +167,8 @@ if capistrano3_present?
|
|
167
167
|
|
168
168
|
it "should not transmit data" do
|
169
169
|
invoke('appsignal:deploy')
|
170
|
-
|
171
|
-
|
170
|
+
out_stream.string.should include('Notifying Appsignal of deploy with: revision: 503ce0923ed177a3ce000005, user: batman')
|
171
|
+
out_stream.string.should include('Something went wrong while trying to notify Appsignal:')
|
172
172
|
end
|
173
173
|
end
|
174
174
|
|
@@ -180,7 +180,7 @@ if capistrano3_present?
|
|
180
180
|
it "should not send deploy marker" do
|
181
181
|
Appsignal::Marker.should_not_receive(:new)
|
182
182
|
invoke('appsignal:deploy')
|
183
|
-
|
183
|
+
out_stream.string.should include("Not notifying of deploy, config is not active")
|
184
184
|
end
|
185
185
|
end
|
186
186
|
end
|
@@ -34,8 +34,7 @@ describe Appsignal::CLI::NotifyOfDeploy do
|
|
34
34
|
:revision => 'aaaaa',
|
35
35
|
:user => 'thijs'
|
36
36
|
},
|
37
|
-
kind_of(Appsignal::Config)
|
38
|
-
nil
|
37
|
+
kind_of(Appsignal::Config)
|
39
38
|
).and_return(marker)
|
40
39
|
marker.should_receive(:transmit)
|
41
40
|
|
@@ -52,8 +51,7 @@ describe Appsignal::CLI::NotifyOfDeploy do
|
|
52
51
|
:revision => 'aaaaa',
|
53
52
|
:user => 'thijs'
|
54
53
|
},
|
55
|
-
kind_of(Appsignal::Config)
|
56
|
-
nil
|
54
|
+
kind_of(Appsignal::Config)
|
57
55
|
).and_return(marker)
|
58
56
|
marker.should_receive(:transmit)
|
59
57
|
|
@@ -7,7 +7,7 @@ describe Appsignal::Config do
|
|
7
7
|
let(:config) { project_fixture_config('production') }
|
8
8
|
|
9
9
|
it "should not log an error" do
|
10
|
-
|
10
|
+
Logger.any_instance.should_not_receive(:log_error)
|
11
11
|
subject
|
12
12
|
end
|
13
13
|
|
@@ -178,10 +178,10 @@ describe Appsignal::Config do
|
|
178
178
|
let(:config) { project_fixture_config('nonsense') }
|
179
179
|
|
180
180
|
it "should log an error" do
|
181
|
-
|
181
|
+
Logger.any_instance.should_receive(:error).with(
|
182
182
|
"Not loading from config file: config for 'nonsense' not found"
|
183
183
|
).once
|
184
|
-
|
184
|
+
Logger.any_instance.should_receive(:error).with(
|
185
185
|
"Push api key not set after loading config"
|
186
186
|
).once
|
187
187
|
subject
|
@@ -10,12 +10,17 @@ describe Appsignal::Marker do
|
|
10
10
|
:user => 'batman',
|
11
11
|
:rails_env => 'production'
|
12
12
|
},
|
13
|
-
config
|
14
|
-
logger
|
13
|
+
config
|
15
14
|
)
|
16
15
|
}
|
17
|
-
let(:
|
18
|
-
|
16
|
+
let(:out_stream) { StringIO.new }
|
17
|
+
before do
|
18
|
+
@original_stdout = $stdout
|
19
|
+
$stdout = out_stream
|
20
|
+
end
|
21
|
+
after do
|
22
|
+
$stdout = @original_stdout
|
23
|
+
end
|
19
24
|
|
20
25
|
context "transmit" do
|
21
26
|
let(:transmitter) { double }
|
@@ -36,48 +41,28 @@ describe Appsignal::Marker do
|
|
36
41
|
marker.transmit
|
37
42
|
end
|
38
43
|
|
39
|
-
|
40
|
-
|
41
|
-
it "should log status 200" do
|
42
|
-
transmitter.should_receive(:transmit).and_return('200')
|
43
|
-
|
44
|
-
marker.transmit
|
45
|
-
|
46
|
-
log.string.should include('Notifying Appsignal of deploy with: revision: 503ce0923ed177a3ce000005, user: batman')
|
47
|
-
log.string.should include('Appsignal has been notified of this deploy!')
|
48
|
-
end
|
49
|
-
|
50
|
-
it "should log other status" do
|
51
|
-
transmitter.should_receive(:transmit).and_return('500')
|
52
|
-
transmitter.should_receive(:uri).and_return('http://localhost:3000/1/markers')
|
53
|
-
|
54
|
-
marker.transmit
|
44
|
+
it "should log status 200" do
|
45
|
+
transmitter.should_receive(:transmit).and_return('200')
|
55
46
|
|
56
|
-
|
57
|
-
log.string.should include(
|
58
|
-
'Something went wrong while trying to notify Appsignal: 500 at http://localhost:3000/1/markers'
|
59
|
-
)
|
60
|
-
log.string.should_not include(
|
61
|
-
'Appsignal has been notified of this deploy!'
|
62
|
-
)
|
63
|
-
end
|
64
|
-
end
|
47
|
+
marker.transmit
|
65
48
|
|
66
|
-
|
49
|
+
out_stream.string.should include('Notifying Appsignal of deploy with: revision: 503ce0923ed177a3ce000005, user: batman')
|
50
|
+
out_stream.string.should include('Appsignal has been notified of this deploy!')
|
51
|
+
end
|
67
52
|
|
68
|
-
|
69
|
-
|
53
|
+
it "should log other status" do
|
54
|
+
transmitter.should_receive(:transmit).and_return('500')
|
55
|
+
transmitter.should_receive(:uri).and_return('http://localhost:3000/1/markers')
|
70
56
|
|
71
|
-
|
72
|
-
let(:logger) {
|
73
|
-
Capistrano::Logger.new(:output => log).tap do |logger|
|
74
|
-
logger.level = Capistrano::Logger::MAX_LEVEL
|
75
|
-
end
|
76
|
-
}
|
57
|
+
marker.transmit
|
77
58
|
|
78
|
-
|
79
|
-
|
80
|
-
|
59
|
+
out_stream.string.should include('Notifying Appsignal of deploy with: revision: 503ce0923ed177a3ce000005, user: batman')
|
60
|
+
out_stream.string.should include(
|
61
|
+
'Something went wrong while trying to notify Appsignal: 500 at http://localhost:3000/1/markers'
|
62
|
+
)
|
63
|
+
out_stream.string.should_not include(
|
64
|
+
'Appsignal has been notified of this deploy!'
|
65
|
+
)
|
81
66
|
end
|
82
67
|
end
|
83
68
|
end
|
@@ -22,6 +22,7 @@ describe Appsignal::ParamsSanitizer do
|
|
22
22
|
:float => 0.0,
|
23
23
|
:bool_true => true,
|
24
24
|
:bool_false => false,
|
25
|
+
:nil => nil,
|
25
26
|
:int => 1,
|
26
27
|
:hash => {
|
27
28
|
:nested_text => 'string',
|
@@ -52,8 +53,9 @@ describe Appsignal::ParamsSanitizer do
|
|
52
53
|
its([:file]) { should include '::UploadedFile' }
|
53
54
|
its([:float]) { should == 0.0 }
|
54
55
|
its([:int]) { should == 1 }
|
55
|
-
its([:bool_true]) { should ==
|
56
|
-
its([:bool_false]) { should ==
|
56
|
+
its([:bool_true]) { should == true }
|
57
|
+
its([:bool_false]) { should == false }
|
58
|
+
its([:nil]) { should == nil }
|
57
59
|
|
58
60
|
context "hash" do
|
59
61
|
subject { params[:hash] }
|
metadata
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: appsignal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.2
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Robert Beekman
|
@@ -9,104 +10,118 @@ authors:
|
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date: 2016-
|
13
|
+
date: 2016-04-02 00:00:00.000000000 Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: rack
|
16
17
|
requirement: !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
17
19
|
requirements:
|
18
|
-
- -
|
20
|
+
- - ! '>='
|
19
21
|
- !ruby/object:Gem::Version
|
20
22
|
version: '0'
|
21
23
|
type: :runtime
|
22
24
|
prerelease: false
|
23
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
24
27
|
requirements:
|
25
|
-
- -
|
28
|
+
- - ! '>='
|
26
29
|
- !ruby/object:Gem::Version
|
27
30
|
version: '0'
|
28
31
|
- !ruby/object:Gem::Dependency
|
29
32
|
name: thread_safe
|
30
33
|
requirement: !ruby/object:Gem::Requirement
|
34
|
+
none: false
|
31
35
|
requirements:
|
32
|
-
- -
|
36
|
+
- - ! '>='
|
33
37
|
- !ruby/object:Gem::Version
|
34
38
|
version: '0'
|
35
39
|
type: :runtime
|
36
40
|
prerelease: false
|
37
41
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
38
43
|
requirements:
|
39
|
-
- -
|
44
|
+
- - ! '>='
|
40
45
|
- !ruby/object:Gem::Version
|
41
46
|
version: '0'
|
42
47
|
- !ruby/object:Gem::Dependency
|
43
48
|
name: rake
|
44
49
|
requirement: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
45
51
|
requirements:
|
46
|
-
- -
|
52
|
+
- - ! '>='
|
47
53
|
- !ruby/object:Gem::Version
|
48
54
|
version: '0'
|
49
55
|
type: :development
|
50
56
|
prerelease: false
|
51
57
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
52
59
|
requirements:
|
53
|
-
- -
|
60
|
+
- - ! '>='
|
54
61
|
- !ruby/object:Gem::Version
|
55
62
|
version: '0'
|
56
63
|
- !ruby/object:Gem::Dependency
|
57
64
|
name: rspec
|
58
65
|
requirement: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
59
67
|
requirements:
|
60
|
-
- -
|
68
|
+
- - ~>
|
61
69
|
- !ruby/object:Gem::Version
|
62
70
|
version: 2.14.1
|
63
71
|
type: :development
|
64
72
|
prerelease: false
|
65
73
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
66
75
|
requirements:
|
67
|
-
- -
|
76
|
+
- - ~>
|
68
77
|
- !ruby/object:Gem::Version
|
69
78
|
version: 2.14.1
|
70
79
|
- !ruby/object:Gem::Dependency
|
71
80
|
name: pry
|
72
81
|
requirement: !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
73
83
|
requirements:
|
74
|
-
- -
|
84
|
+
- - ! '>='
|
75
85
|
- !ruby/object:Gem::Version
|
76
86
|
version: '0'
|
77
87
|
type: :development
|
78
88
|
prerelease: false
|
79
89
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
+
none: false
|
80
91
|
requirements:
|
81
|
-
- -
|
92
|
+
- - ! '>='
|
82
93
|
- !ruby/object:Gem::Version
|
83
94
|
version: '0'
|
84
95
|
- !ruby/object:Gem::Dependency
|
85
96
|
name: timecop
|
86
97
|
requirement: !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
87
99
|
requirements:
|
88
|
-
- -
|
100
|
+
- - ! '>='
|
89
101
|
- !ruby/object:Gem::Version
|
90
102
|
version: '0'
|
91
103
|
type: :development
|
92
104
|
prerelease: false
|
93
105
|
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
none: false
|
94
107
|
requirements:
|
95
|
-
- -
|
108
|
+
- - ! '>='
|
96
109
|
- !ruby/object:Gem::Version
|
97
110
|
version: '0'
|
98
111
|
- !ruby/object:Gem::Dependency
|
99
112
|
name: webmock
|
100
113
|
requirement: !ruby/object:Gem::Requirement
|
114
|
+
none: false
|
101
115
|
requirements:
|
102
|
-
- -
|
116
|
+
- - ! '>='
|
103
117
|
- !ruby/object:Gem::Version
|
104
118
|
version: '0'
|
105
119
|
type: :development
|
106
120
|
prerelease: false
|
107
121
|
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
none: false
|
108
123
|
requirements:
|
109
|
-
- -
|
124
|
+
- - ! '>='
|
110
125
|
- !ruby/object:Gem::Version
|
111
126
|
version: '0'
|
112
127
|
description: The official appsignal.com gem
|
@@ -118,9 +133,9 @@ extensions:
|
|
118
133
|
- ext/extconf.rb
|
119
134
|
extra_rdoc_files: []
|
120
135
|
files:
|
121
|
-
-
|
122
|
-
-
|
123
|
-
-
|
136
|
+
- .gitignore
|
137
|
+
- .rspec
|
138
|
+
- .travis.yml
|
124
139
|
- CHANGELOG.md
|
125
140
|
- Gemfile
|
126
141
|
- LICENSE
|
@@ -178,7 +193,6 @@ files:
|
|
178
193
|
- lib/appsignal/hooks/unicorn.rb
|
179
194
|
- lib/appsignal/integrations/capistrano/appsignal.cap
|
180
195
|
- lib/appsignal/integrations/capistrano/capistrano_2_tasks.rb
|
181
|
-
- lib/appsignal/integrations/capistrano/careful_logger.rb
|
182
196
|
- lib/appsignal/integrations/delayed_job_plugin.rb
|
183
197
|
- lib/appsignal/integrations/grape.rb
|
184
198
|
- lib/appsignal/integrations/mongo_ruby_driver.rb
|
@@ -279,27 +293,31 @@ files:
|
|
279
293
|
homepage: https://github.com/appsignal/appsignal
|
280
294
|
licenses:
|
281
295
|
- MIT
|
282
|
-
metadata: {}
|
283
296
|
post_install_message:
|
284
297
|
rdoc_options: []
|
285
298
|
require_paths:
|
286
299
|
- lib
|
287
300
|
- ext
|
288
301
|
required_ruby_version: !ruby/object:Gem::Requirement
|
302
|
+
none: false
|
289
303
|
requirements:
|
290
|
-
- -
|
304
|
+
- - ! '>='
|
291
305
|
- !ruby/object:Gem::Version
|
292
306
|
version: '1.9'
|
293
307
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
308
|
+
none: false
|
294
309
|
requirements:
|
295
|
-
- -
|
310
|
+
- - ! '>='
|
296
311
|
- !ruby/object:Gem::Version
|
297
312
|
version: '0'
|
313
|
+
segments:
|
314
|
+
- 0
|
315
|
+
hash: 1564789879550157319
|
298
316
|
requirements: []
|
299
317
|
rubyforge_project:
|
300
|
-
rubygems_version:
|
318
|
+
rubygems_version: 1.8.23.2
|
301
319
|
signing_key:
|
302
|
-
specification_version:
|
320
|
+
specification_version: 3
|
303
321
|
summary: Logs performance and exception data from your app to appsignal.com
|
304
322
|
test_files:
|
305
323
|
- spec/lib/appsignal/auth_check_spec.rb
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 7af95b9fcc0067065bfdf2c2902622485b0ef393
|
4
|
-
data.tar.gz: beb70850686295325b7e6c84f3bebc2ccd2a0857
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: a3e06cef9d62da7608b6855a1f3779915e62c174fc97ab140996381ab0dca5fcaf3d975d38e83a9347268d683b15dc61b26c2d0a26ac7b4e181def73064197d9
|
7
|
-
data.tar.gz: a9d030849d51e1af279192b90c21b831b333a4de4f936398ecdfec7d9171bc4332ff4f60cb2097830556f0a25003f4ccdffd79cef29f1f0e7bacfa1c6f7e262f
|
@@ -1,14 +0,0 @@
|
|
1
|
-
module Appsignal
|
2
|
-
module CarefulLogger
|
3
|
-
# Because Capistrano 2's logger uses the term important
|
4
|
-
# instead of error.
|
5
|
-
def carefully_log_error(message)
|
6
|
-
return unless @logger
|
7
|
-
if @logger.respond_to?(:important)
|
8
|
-
@logger.important(message)
|
9
|
-
else
|
10
|
-
@logger.error(message)
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|