appsignal 2.1.2 → 2.2.0.beta.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +14 -0
- data/.rubocop_todo.yml +16 -171
- data/.travis.yml +14 -1
- data/.yardopts +8 -0
- data/CHANGELOG.md +21 -3
- data/README.md +20 -2
- data/Rakefile +60 -62
- data/appsignal.gemspec +24 -23
- data/ext/agent.yml +11 -11
- data/ext/appsignal_extension.c +43 -12
- data/ext/extconf.rb +9 -9
- data/gemfiles/padrino.gemfile +1 -1
- data/lib/appsignal.rb +403 -26
- data/lib/appsignal/auth_check.rb +28 -1
- data/lib/appsignal/cli.rb +1 -0
- data/lib/appsignal/cli/demo.rb +40 -0
- data/lib/appsignal/cli/diagnose.rb +345 -89
- data/lib/appsignal/cli/helpers.rb +9 -4
- data/lib/appsignal/cli/install.rb +6 -6
- data/lib/appsignal/cli/notify_of_deploy.rb +58 -0
- data/lib/appsignal/config.rb +40 -38
- data/lib/appsignal/demo.rb +20 -0
- data/lib/appsignal/event_formatter.rb +4 -0
- data/lib/appsignal/event_formatter/action_view/render_formatter.rb +1 -0
- data/lib/appsignal/event_formatter/active_record/instantiation_formatter.rb +1 -0
- data/lib/appsignal/event_formatter/active_record/sql_formatter.rb +1 -0
- data/lib/appsignal/event_formatter/elastic_search/search_formatter.rb +1 -0
- data/lib/appsignal/event_formatter/faraday/request_formatter.rb +1 -0
- data/lib/appsignal/event_formatter/mongo_ruby_driver/query_formatter.rb +2 -1
- data/lib/appsignal/event_formatter/moped/query_formatter.rb +1 -0
- data/lib/appsignal/extension.rb +1 -0
- data/lib/appsignal/garbage_collection_profiler.rb +20 -19
- data/lib/appsignal/hooks.rb +1 -0
- data/lib/appsignal/hooks/active_support_notifications.rb +1 -0
- data/lib/appsignal/hooks/celluloid.rb +1 -0
- data/lib/appsignal/hooks/data_mapper.rb +1 -0
- data/lib/appsignal/hooks/delayed_job.rb +1 -0
- data/lib/appsignal/hooks/mongo_ruby_driver.rb +1 -0
- data/lib/appsignal/hooks/net_http.rb +1 -0
- data/lib/appsignal/hooks/passenger.rb +1 -0
- data/lib/appsignal/hooks/puma.rb +1 -0
- data/lib/appsignal/hooks/rake.rb +1 -0
- data/lib/appsignal/hooks/redis.rb +1 -0
- data/lib/appsignal/hooks/sequel.rb +1 -0
- data/lib/appsignal/hooks/shoryuken.rb +1 -0
- data/lib/appsignal/hooks/sidekiq.rb +1 -0
- data/lib/appsignal/hooks/unicorn.rb +1 -0
- data/lib/appsignal/hooks/webmachine.rb +1 -0
- data/lib/appsignal/integrations/capistrano/appsignal.cap +4 -4
- data/lib/appsignal/integrations/capistrano/capistrano_2_tasks.rb +2 -0
- data/lib/appsignal/integrations/data_mapper.rb +1 -1
- data/lib/appsignal/integrations/delayed_job_plugin.rb +1 -0
- data/lib/appsignal/integrations/grape.rb +3 -1
- data/lib/appsignal/integrations/mongo_ruby_driver.rb +1 -0
- data/lib/appsignal/integrations/padrino.rb +36 -21
- data/lib/appsignal/integrations/railtie.rb +2 -2
- data/lib/appsignal/integrations/resque.rb +1 -0
- data/lib/appsignal/integrations/resque_active_job.rb +1 -0
- data/lib/appsignal/integrations/webmachine.rb +27 -24
- data/lib/appsignal/js_exception_transaction.rb +8 -8
- data/lib/appsignal/marker.rb +41 -4
- data/lib/appsignal/minutely.rb +1 -0
- data/lib/appsignal/rack/generic_instrumentation.rb +3 -2
- data/lib/appsignal/rack/js_exception_catcher.rb +55 -15
- data/lib/appsignal/rack/rails_instrumentation.rb +2 -1
- data/lib/appsignal/rack/sinatra_instrumentation.rb +4 -2
- data/lib/appsignal/rack/streaming_listener.rb +4 -2
- data/lib/appsignal/system.rb +5 -31
- data/lib/appsignal/transaction.rb +71 -6
- data/lib/appsignal/transmitter.rb +24 -13
- data/lib/appsignal/utils.rb +18 -11
- data/lib/appsignal/utils/params_sanitizer.rb +2 -1
- data/lib/appsignal/utils/query_params_sanitizer.rb +1 -0
- data/lib/appsignal/version.rb +1 -1
- data/resources/appsignal.yml.erb +1 -1
- data/spec/lib/appsignal/auth_check_spec.rb +64 -22
- data/spec/lib/appsignal/cli/diagnose_spec.rb +539 -81
- data/spec/lib/appsignal/cli/helpers_spec.rb +74 -2
- data/spec/lib/appsignal/cli/install_spec.rb +3 -3
- data/spec/lib/appsignal/config_spec.rb +38 -72
- data/spec/lib/appsignal/demo_spec.rb +2 -2
- data/spec/lib/appsignal/event_formatter_spec.rb +2 -2
- data/spec/lib/appsignal/extension_spec.rb +4 -0
- data/spec/lib/appsignal/garbage_collection_profiler_spec.rb +18 -21
- data/spec/lib/appsignal/hooks/mongo_ruby_driver_spec.rb +1 -1
- data/spec/lib/appsignal/hooks/redis_spec.rb +34 -44
- data/spec/lib/appsignal/hooks/sidekiq_spec.rb +2 -2
- data/spec/lib/appsignal/integrations/grape_spec.rb +6 -6
- data/spec/lib/appsignal/integrations/padrino_spec.rb +241 -122
- data/spec/lib/appsignal/integrations/railtie_spec.rb +34 -16
- data/spec/lib/appsignal/integrations/resque_spec.rb +1 -1
- data/spec/lib/appsignal/integrations/sinatra_spec.rb +38 -10
- data/spec/lib/appsignal/integrations/webmachine_spec.rb +2 -2
- data/spec/lib/appsignal/rack/generic_instrumentation_spec.rb +7 -6
- data/spec/lib/appsignal/rack/js_exception_catcher_spec.rb +95 -58
- data/spec/lib/appsignal/rack/rails_instrumentation_spec.rb +9 -6
- data/spec/lib/appsignal/rack/sinatra_instrumentation_spec.rb +11 -10
- data/spec/lib/appsignal/rack/streaming_listener_spec.rb +20 -13
- data/spec/lib/appsignal/system_spec.rb +2 -32
- data/spec/lib/appsignal/transaction_spec.rb +48 -7
- data/spec/lib/appsignal/transmitter_spec.rb +52 -33
- data/spec/lib/appsignal/utils/params_sanitizer_spec.rb +3 -1
- data/spec/lib/appsignal/utils/query_params_sanitizer_spec.rb +3 -3
- data/spec/lib/appsignal/utils_spec.rb +49 -6
- data/spec/lib/appsignal_spec.rb +60 -5
- data/spec/spec_helper.rb +4 -3
- data/spec/support/helpers/api_request_helper.rb +1 -4
- data/spec/support/helpers/dependency_helper.rb +4 -0
- data/spec/support/helpers/system_helpers.rb +1 -17
- data/spec/support/helpers/time_helpers.rb +1 -1
- metadata +19 -8
- data/spec/lib/appsignal/system/container_spec.rb +0 -67
- data/spec/lib/appsignal/utils/gzip_spec.rb +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 57f576bab6bcb116a443d5ba191d9b76d8451654
|
4
|
+
data.tar.gz: c87e7167c5ccf4cc00b3948776cc0c12ffea3644
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ddd3744e790d81d79d11e7b3a0312f0aa352a3db48722c243438cf39021c6d37f7b0d83a62a74d36bb3bd55c476c9cae310fe51f3e49862c923885621c41e010
|
7
|
+
data.tar.gz: 89c2d0c9c12deca8051569a2f646d9091abcc280e5dc6b6b7c02f91642483b671465a9c36017826fa31df170a25f094ea0c1bf7a4f2ae411e7146b43d676f3e9
|
data/.rubocop.yml
CHANGED
@@ -3,7 +3,10 @@ inherit_from: .rubocop_todo.yml
|
|
3
3
|
AllCops:
|
4
4
|
TargetRubyVersion: 1.9
|
5
5
|
Include:
|
6
|
+
- "**/*.cap"
|
6
7
|
- "Gemfile"
|
8
|
+
- "Rakefile"
|
9
|
+
- "appsignal.gemspec"
|
7
10
|
Exclude:
|
8
11
|
- "tmp/**/*"
|
9
12
|
- "gemfiles/vendor/**/*"
|
@@ -39,5 +42,16 @@ Style/AlignHash:
|
|
39
42
|
Style/IndentArray:
|
40
43
|
EnforcedStyle: consistent
|
41
44
|
|
45
|
+
Style/EmptyMethod:
|
46
|
+
EnforcedStyle: expanded
|
47
|
+
|
48
|
+
Style/MethodMissing:
|
49
|
+
Exclude:
|
50
|
+
- "lib/appsignal/extension.rb"
|
51
|
+
- "lib/appsignal/transaction.rb"
|
52
|
+
|
53
|
+
Style/TrailingUnderscoreVariable:
|
54
|
+
Enabled: false
|
55
|
+
|
42
56
|
# Metrics/LineLength:
|
43
57
|
# Max: 80
|
data/.rubocop_todo.yml
CHANGED
@@ -1,18 +1,11 @@
|
|
1
1
|
# This configuration was generated by
|
2
2
|
# `rubocop --auto-gen-config`
|
3
|
-
# on
|
3
|
+
# on 2017-04-06 22:15:48 +0200 using RuboCop version 0.46.0.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
7
7
|
# versions of RuboCop, may require this file to be generated again.
|
8
8
|
|
9
|
-
# Offense count: 6
|
10
|
-
# Configuration parameters: AllowSafeAssignment.
|
11
|
-
Lint/AssignmentInCondition:
|
12
|
-
Exclude:
|
13
|
-
- 'lib/appsignal/config.rb'
|
14
|
-
- 'lib/appsignal/transaction.rb'
|
15
|
-
|
16
9
|
# Offense count: 7
|
17
10
|
Lint/HandleExceptions:
|
18
11
|
Exclude:
|
@@ -21,29 +14,17 @@ Lint/HandleExceptions:
|
|
21
14
|
- 'spec/lib/appsignal/hooks/sidekiq_spec.rb'
|
22
15
|
- 'spec/lib/appsignal/integrations/resque_spec.rb'
|
23
16
|
|
24
|
-
# Offense count: 1
|
25
|
-
Lint/IneffectiveAccessModifier:
|
26
|
-
Exclude:
|
27
|
-
- 'lib/appsignal/garbage_collection_profiler.rb'
|
28
|
-
|
29
17
|
# Offense count: 4
|
30
18
|
Lint/RescueException:
|
31
19
|
Exclude:
|
32
20
|
- 'lib/appsignal/minutely.rb'
|
33
21
|
- 'lib/appsignal/rack/streaming_listener.rb'
|
34
22
|
|
35
|
-
# Offense count:
|
36
|
-
# Cop supports --auto-correct.
|
37
|
-
Lint/UnifiedInteger:
|
38
|
-
Exclude:
|
39
|
-
- 'lib/appsignal/utils.rb'
|
40
|
-
- 'lib/appsignal/utils/params_sanitizer.rb'
|
41
|
-
|
42
|
-
# Offense count: 36
|
23
|
+
# Offense count: 38
|
43
24
|
Metrics/AbcSize:
|
44
|
-
Max:
|
25
|
+
Max: 61
|
45
26
|
|
46
|
-
# Offense count:
|
27
|
+
# Offense count: 3
|
47
28
|
# Configuration parameters: CountComments.
|
48
29
|
Metrics/BlockLength:
|
49
30
|
Max: 31
|
@@ -51,19 +32,23 @@ Metrics/BlockLength:
|
|
51
32
|
# Offense count: 4
|
52
33
|
# Configuration parameters: CountComments.
|
53
34
|
Metrics/ClassLength:
|
54
|
-
|
35
|
+
Exclude:
|
36
|
+
- "lib/appsignal/cli/diagnose.rb"
|
37
|
+
- "lib/appsignal/cli/install.rb"
|
38
|
+
- "lib/appsignal/config.rb"
|
39
|
+
- "lib/appsignal/transaction.rb"
|
55
40
|
|
56
|
-
# Offense count:
|
41
|
+
# Offense count: 15
|
57
42
|
Metrics/CyclomaticComplexity:
|
58
43
|
Max: 11
|
59
44
|
|
60
|
-
# Offense count:
|
45
|
+
# Offense count: 437
|
61
46
|
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
|
62
47
|
# URISchemes: http, https
|
63
48
|
Metrics/LineLength:
|
64
49
|
Max: 456
|
65
50
|
|
66
|
-
# Offense count:
|
51
|
+
# Offense count: 79
|
67
52
|
# Configuration parameters: CountComments.
|
68
53
|
Metrics/MethodLength:
|
69
54
|
Max: 60
|
@@ -74,11 +59,11 @@ Metrics/ModuleLength:
|
|
74
59
|
Exclude:
|
75
60
|
- "lib/appsignal.rb"
|
76
61
|
|
77
|
-
# Offense count:
|
62
|
+
# Offense count: 9
|
78
63
|
Metrics/PerceivedComplexity:
|
79
|
-
Max:
|
64
|
+
Max: 14
|
80
65
|
|
81
|
-
# Offense count:
|
66
|
+
# Offense count: 11
|
82
67
|
Style/AccessorMethodName:
|
83
68
|
Exclude:
|
84
69
|
- 'lib/appsignal.rb'
|
@@ -103,20 +88,11 @@ Style/Alias:
|
|
103
88
|
- 'lib/appsignal/transaction.rb'
|
104
89
|
|
105
90
|
# Offense count: 1
|
106
|
-
# Cop supports --auto-correct.
|
107
|
-
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
108
|
-
# SupportedStyles: always, conditionals
|
109
|
-
Style/AndOr:
|
110
|
-
Exclude:
|
111
|
-
- 'lib/appsignal.rb'
|
112
|
-
|
113
|
-
# Offense count: 3
|
114
91
|
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
115
92
|
# SupportedStyles: nested, compact
|
116
93
|
Style/ClassAndModuleChildren:
|
117
94
|
Exclude:
|
118
95
|
- 'lib/appsignal/integrations/padrino.rb'
|
119
|
-
- 'lib/appsignal/integrations/webmachine.rb'
|
120
96
|
|
121
97
|
# Offense count: 3
|
122
98
|
Style/ClassVars:
|
@@ -129,20 +105,6 @@ Style/DoubleNegation:
|
|
129
105
|
Exclude:
|
130
106
|
- 'lib/appsignal.rb'
|
131
107
|
|
132
|
-
# Offense count: 9
|
133
|
-
# Cop supports --auto-correct.
|
134
|
-
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
135
|
-
# SupportedStyles: compact, expanded
|
136
|
-
Style/EmptyMethod:
|
137
|
-
Exclude:
|
138
|
-
- 'lib/appsignal/transaction.rb'
|
139
|
-
- 'spec/lib/appsignal/event_formatter_spec.rb'
|
140
|
-
- 'spec/lib/appsignal/hooks/mongo_ruby_driver_spec.rb'
|
141
|
-
- 'spec/lib/appsignal/hooks/puma_spec.rb'
|
142
|
-
- 'spec/lib/appsignal/hooks/unicorn_spec.rb'
|
143
|
-
- 'spec/lib/appsignal/integrations/data_mapper_spec.rb'
|
144
|
-
- 'spec/lib/appsignal/integrations/resque_active_job_spec.rb'
|
145
|
-
|
146
108
|
# Offense count: 5
|
147
109
|
# Configuration parameters: MinBodyLength.
|
148
110
|
Style/GuardClause:
|
@@ -153,47 +115,12 @@ Style/GuardClause:
|
|
153
115
|
- 'lib/appsignal/hooks.rb'
|
154
116
|
- 'lib/appsignal/marker.rb'
|
155
117
|
|
156
|
-
# Offense count:
|
118
|
+
# Offense count: 2
|
157
119
|
# Cop supports --auto-correct.
|
158
120
|
# Configuration parameters: MaxLineLength.
|
159
121
|
Style/IfUnlessModifier:
|
160
122
|
Exclude:
|
161
123
|
- 'lib/appsignal.rb'
|
162
|
-
- 'lib/appsignal/garbage_collection_profiler.rb'
|
163
|
-
|
164
|
-
# Offense count: 2
|
165
|
-
Style/MethodMissing:
|
166
|
-
Exclude:
|
167
|
-
- 'lib/appsignal/extension.rb'
|
168
|
-
- 'lib/appsignal/transaction.rb'
|
169
|
-
|
170
|
-
# Offense count: 1
|
171
|
-
# Cop supports --auto-correct.
|
172
|
-
Style/MultilineIfModifier:
|
173
|
-
Exclude:
|
174
|
-
- 'lib/appsignal/js_exception_transaction.rb'
|
175
|
-
|
176
|
-
# Offense count: 9
|
177
|
-
# Cop supports --auto-correct.
|
178
|
-
Style/MutableConstant:
|
179
|
-
Exclude:
|
180
|
-
- 'ext/extconf.rb'
|
181
|
-
- 'lib/appsignal/event_formatter/mongo_ruby_driver/query_formatter.rb'
|
182
|
-
- 'lib/appsignal/integrations/data_mapper.rb'
|
183
|
-
- 'lib/appsignal/marker.rb'
|
184
|
-
- 'lib/appsignal/transaction.rb'
|
185
|
-
- 'lib/appsignal/transmitter.rb'
|
186
|
-
- 'lib/appsignal/version.rb'
|
187
|
-
- 'spec/lib/appsignal/hooks/mongo_ruby_driver_spec.rb'
|
188
|
-
- 'spec/lib/appsignal/hooks/redis_spec.rb'
|
189
|
-
|
190
|
-
# Offense count: 1
|
191
|
-
# Cop supports --auto-correct.
|
192
|
-
# Configuration parameters: EnforcedStyle, MinBodyLength, SupportedStyles.
|
193
|
-
# SupportedStyles: skip_modifier_ifs, always
|
194
|
-
Style/Next:
|
195
|
-
Exclude:
|
196
|
-
- 'ext/extconf.rb'
|
197
124
|
|
198
125
|
# Offense count: 1
|
199
126
|
# Cop supports --auto-correct.
|
@@ -202,88 +129,6 @@ Style/NonNilCheck:
|
|
202
129
|
Exclude:
|
203
130
|
- 'lib/appsignal/transaction.rb'
|
204
131
|
|
205
|
-
# Offense count: 20
|
206
|
-
# Cop supports --auto-correct.
|
207
|
-
# Configuration parameters: EnforcedOctalStyle, SupportedOctalStyles.
|
208
|
-
# SupportedOctalStyles: zero_with_o, zero_only
|
209
|
-
Style/NumericLiteralPrefix:
|
210
|
-
Exclude:
|
211
|
-
- 'ext/extconf.rb'
|
212
|
-
- 'spec/lib/appsignal/cli/diagnose_spec.rb'
|
213
|
-
- 'spec/lib/appsignal/config_spec.rb'
|
214
|
-
- 'spec/lib/appsignal/system/container_spec.rb'
|
215
|
-
- 'spec/lib/appsignal/transmitter_spec.rb'
|
216
|
-
- 'spec/lib/appsignal_spec.rb'
|
217
|
-
- 'spec/support/helpers/time_helpers.rb'
|
218
|
-
|
219
|
-
# Offense count: 1
|
220
|
-
# Cop supports --auto-correct.
|
221
|
-
# Configuration parameters: AutoCorrect, EnforcedStyle, SupportedStyles.
|
222
|
-
# SupportedStyles: predicate, comparison
|
223
|
-
Style/NumericPredicate:
|
224
|
-
Exclude:
|
225
|
-
- 'spec/**/*'
|
226
|
-
- 'lib/appsignal/cli/diagnose.rb'
|
227
|
-
|
228
|
-
# Offense count: 2
|
229
|
-
# Cop supports --auto-correct.
|
230
|
-
Style/PerlBackrefs:
|
231
|
-
Exclude:
|
232
|
-
- 'lib/appsignal/system.rb'
|
233
|
-
|
234
|
-
# Offense count: 2
|
235
|
-
# Configuration parameters: NamePrefix, NamePrefixBlacklist, NameWhitelist.
|
236
|
-
# NamePrefix: is_, has_, have_
|
237
|
-
# NamePrefixBlacklist: is_, has_, have_
|
238
|
-
# NameWhitelist: is_a?
|
239
|
-
Style/PredicateName:
|
240
|
-
Exclude:
|
241
|
-
- 'spec/**/*'
|
242
|
-
- 'lib/appsignal.rb'
|
243
|
-
|
244
|
-
# Offense count: 2
|
245
|
-
# Cop supports --auto-correct.
|
246
|
-
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
247
|
-
# SupportedStyles: compact, exploded
|
248
|
-
Style/RaiseArgs:
|
249
|
-
Exclude:
|
250
|
-
- 'lib/appsignal/utils.rb'
|
251
|
-
- 'spec/lib/appsignal/integrations/resque_spec.rb'
|
252
|
-
|
253
|
-
# Offense count: 7
|
254
|
-
# Cop supports --auto-correct.
|
255
|
-
Style/RescueModifier:
|
256
|
-
Exclude:
|
257
|
-
- 'spec/lib/appsignal/integrations/padrino_spec.rb'
|
258
|
-
- 'spec/lib/appsignal/rack/generic_instrumentation_spec.rb'
|
259
|
-
- 'spec/lib/appsignal/rack/rails_instrumentation_spec.rb'
|
260
|
-
- 'spec/lib/appsignal/rack/sinatra_instrumentation_spec.rb'
|
261
|
-
- 'spec/lib/appsignal/rack/streaming_listener_spec.rb'
|
262
|
-
|
263
|
-
# Offense count: 2
|
264
|
-
# Cop supports --auto-correct.
|
265
|
-
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
266
|
-
# SupportedStyles: use_perl_names, use_english_names
|
267
|
-
Style/SpecialGlobalVars:
|
268
|
-
Exclude:
|
269
|
-
- 'lib/appsignal.rb'
|
270
|
-
- 'lib/appsignal/config.rb'
|
271
|
-
|
272
|
-
# Offense count: 1
|
273
|
-
# Cop supports --auto-correct.
|
274
|
-
Style/UnlessElse:
|
275
|
-
Exclude:
|
276
|
-
- 'lib/appsignal.rb'
|
277
|
-
|
278
|
-
# Offense count: 16
|
279
|
-
# Cop supports --auto-correct.
|
280
|
-
# Configuration parameters: EnforcedStyle, SupportedStyles, MinSize, WordRegex.
|
281
|
-
# SupportedStyles: percent, brackets
|
282
132
|
Style/WordArray:
|
283
133
|
Exclude:
|
284
|
-
- 'lib/appsignal/cli/install.rb'
|
285
|
-
- 'spec/lib/appsignal/config_spec.rb'
|
286
134
|
- 'spec/lib/appsignal/hooks/shoryuken_spec.rb'
|
287
|
-
- 'spec/lib/appsignal/hooks/sidekiq_spec.rb'
|
288
|
-
- 'spec/lib/appsignal/transaction_spec.rb'
|
289
|
-
- 'spec/lib/appsignal/utils/query_params_sanitizer_spec.rb'
|
data/.travis.yml
CHANGED
@@ -13,6 +13,7 @@ rvm:
|
|
13
13
|
- "2.1.8"
|
14
14
|
- "2.2.4"
|
15
15
|
- "2.3.0"
|
16
|
+
- "2.4.0"
|
16
17
|
- "jruby-19mode"
|
17
18
|
|
18
19
|
gemfile:
|
@@ -46,10 +47,22 @@ matrix:
|
|
46
47
|
gemfile: "gemfiles/rails-5.0.gemfile"
|
47
48
|
allow_failures:
|
48
49
|
- rvm: "jruby-19mode"
|
50
|
+
- rvm: "2.4.0"
|
51
|
+
gemfile: "gemfiles/rails-4.0.gemfile"
|
52
|
+
- rvm: "2.4.0"
|
53
|
+
gemfile: "gemfiles/rails-4.1.gemfile"
|
54
|
+
- rvm: "2.4.0"
|
55
|
+
gemfile: "gemfiles/rails-4.2.gemfile"
|
56
|
+
- rvm: "2.4.0"
|
57
|
+
gemfile: "gemfiles/resque.gemfile"
|
49
58
|
|
50
59
|
env:
|
51
60
|
global: "RAILS_ENV=test"
|
52
61
|
|
53
|
-
|
62
|
+
before_install:
|
63
|
+
- "gem update --system"
|
64
|
+
- "gem update bundler"
|
65
|
+
before_script:
|
66
|
+
- "bundle exec rake extension:install"
|
54
67
|
|
55
68
|
script: "bundle exec rake test"
|
data/.yardopts
ADDED
data/CHANGELOG.md
CHANGED
@@ -1,11 +1,29 @@
|
|
1
|
+
# 2.2.0
|
2
|
+
* Support Ruby 2.4 better. PR #234
|
3
|
+
* Initial setup for documenting the Ruby gem's code. PR #243
|
4
|
+
* Move `running_in_container` auto detection to extension for easy reuse.
|
5
|
+
PR #249
|
6
|
+
* Allow overriding of action and namespace for a transaction. PR #254
|
7
|
+
* Prefix all agent configuration environment variables with an underscore to
|
8
|
+
separate the two usages. PR #258
|
9
|
+
* Force agent to run in diagnostic mode even when the user config is set to
|
10
|
+
`active: false`. PR #260
|
11
|
+
* Stub JS error catching endpoint when not active. PR #263
|
12
|
+
* Use better event names for Padrino integration. PR #265
|
13
|
+
* No longer gzip payloads send by the Ruby gem transmitter. PR #269
|
14
|
+
* Send diagnostics data report to AppSignal on request. PR #270
|
15
|
+
* When JS exception endpoint payload is empty return 400 code. PR #271
|
16
|
+
* Remove hardcoded DNS servers from agent and add config option. PR #278
|
17
|
+
|
1
18
|
# 2.1.2
|
2
19
|
* Fix error with Grape request methods defined with symbols. PR #259
|
3
20
|
|
4
21
|
# 2.1.1
|
5
|
-
* Fix DNS issue related to musl build.
|
6
|
-
Commit 732c877de8faceabe8a977bf80a82a6a89065c4d
|
22
|
+
* Fix DNS issue related to the musl build.
|
23
|
+
Commit 732c877de8faceabe8a977bf80a82a6a89065c4d and
|
24
|
+
84e521d20d4438f7b1dda82d5e9f1f533ae27c4b
|
7
25
|
* Update benchmark and add load test. PR #248
|
8
|
-
* Fix configuring instrument
|
26
|
+
* Fix configuring instrument Redis and Sequel from env. PR #257
|
9
27
|
|
10
28
|
# 2.1.0
|
11
29
|
* Add support for musl based libc (Alpine Linux). PR #229
|
data/README.md
CHANGED
@@ -160,11 +160,29 @@ systems][supported-systems] page.
|
|
160
160
|
Make sure you have Bundler installed and then use the Rake install task to
|
161
161
|
install all possible dependencies.
|
162
162
|
|
163
|
-
```
|
163
|
+
```bash
|
164
|
+
# Install Bundler
|
164
165
|
gem install bundler
|
165
|
-
|
166
|
+
# Install the AppSignal extension and _all_ gems we support.
|
167
|
+
bundle exec rake install
|
168
|
+
# Only install the AppSignal extension.
|
169
|
+
bundle exec rake extension:install
|
170
|
+
```
|
171
|
+
|
172
|
+
### Testing
|
173
|
+
|
174
|
+
```bash
|
175
|
+
bundle exec rspec
|
176
|
+
# Or with one file
|
177
|
+
bundle exec rspec spec/lib/appsignal_spec.rb
|
166
178
|
```
|
167
179
|
|
180
|
+
Note that some specs depend on certain other gems to run and if they are not
|
181
|
+
loaded RSpec will not run them. See also [Testing with other
|
182
|
+
gems](#testing-with-other-gems).
|
183
|
+
|
184
|
+
#### Testing with other gems
|
185
|
+
|
168
186
|
AppSignal runs in many different configurations. To replicate these
|
169
187
|
configurations you need to run the spec suite with a specific Gemfile.
|
170
188
|
|
data/Rakefile
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require "bundler"
|
2
2
|
|
3
3
|
GEMFILES = %w(
|
4
4
|
capistrano2
|
@@ -17,50 +17,49 @@ GEMFILES = %w(
|
|
17
17
|
sinatra
|
18
18
|
grape
|
19
19
|
webmachine
|
20
|
-
)
|
20
|
+
).freeze
|
21
21
|
|
22
22
|
RUBY_VERSIONS = %w(
|
23
23
|
2.0.0-p648
|
24
24
|
2.1.8
|
25
25
|
2.2.4
|
26
26
|
2.3.0
|
27
|
-
|
27
|
+
2.4.0
|
28
|
+
).freeze
|
28
29
|
|
29
30
|
EXCLUSIONS = {
|
30
|
-
|
31
|
-
}
|
31
|
+
"rails-5.0" => %w(2.0.0 2.1.8)
|
32
|
+
}.freeze
|
32
33
|
|
33
34
|
VERSION_MANAGERS = {
|
34
|
-
:rbenv =>
|
35
|
-
:rvm =>
|
36
|
-
}
|
35
|
+
:rbenv => ->(version) { "rbenv local #{version}" },
|
36
|
+
:rvm => ->(version) { "rvm use --default #{version.split("-").first}" }
|
37
|
+
}.freeze
|
37
38
|
|
38
39
|
task :publish do
|
39
|
-
require
|
40
|
+
require "appsignal/version"
|
40
41
|
|
41
|
-
NAME =
|
42
|
-
VERSION_FILE =
|
43
|
-
CHANGELOG_FILE =
|
42
|
+
NAME = "appsignal".freeze
|
43
|
+
VERSION_FILE = "lib/appsignal/version.rb".freeze
|
44
|
+
CHANGELOG_FILE = "CHANGELOG.md".freeze
|
44
45
|
|
45
|
-
raise
|
46
|
+
raise "$EDITOR should be set" unless ENV["EDITOR"]
|
46
47
|
|
47
48
|
def build_and_push_gem
|
48
|
-
puts
|
49
|
+
puts "# Building gem"
|
49
50
|
puts `gem build #{NAME}.gemspec`
|
50
|
-
puts
|
51
|
+
puts "# Publishing Gem"
|
51
52
|
puts `gem push #{NAME}-#{gem_version}.gem`
|
52
53
|
end
|
53
54
|
|
54
55
|
def create_and_push_tag
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
raise "Tag: '#{version}' already exists"
|
63
|
-
end
|
56
|
+
puts `git commit -am 'Bump to #{version} [ci skip]'`
|
57
|
+
puts "# Creating tag #{version}"
|
58
|
+
puts `git tag #{version}`
|
59
|
+
puts `git push origin #{version}`
|
60
|
+
puts `git push origin #{current_branch}`
|
61
|
+
rescue
|
62
|
+
raise "Tag: '#{version}' already exists"
|
64
63
|
end
|
65
64
|
|
66
65
|
def changes
|
@@ -72,7 +71,7 @@ task :publish do
|
|
72
71
|
end
|
73
72
|
|
74
73
|
def version
|
75
|
-
@version ||=
|
74
|
+
@version ||= "v#{gem_version}"
|
76
75
|
end
|
77
76
|
|
78
77
|
def current_branch
|
@@ -80,24 +79,24 @@ task :publish do
|
|
80
79
|
end
|
81
80
|
|
82
81
|
def git_status_to_array(changes)
|
83
|
-
changes.split("\n").each { |change| change.gsub!(/^.. /,
|
82
|
+
changes.split("\n").each { |change| change.gsub!(/^.. /, "") }
|
84
83
|
end
|
85
84
|
|
86
85
|
raise "Branch should hold no uncommitted file change)" unless changes.empty?
|
87
86
|
|
88
87
|
system("$EDITOR #{VERSION_FILE}")
|
89
|
-
|
90
|
-
Appsignal.send(:remove_const, :VERSION)
|
91
|
-
load File.expand_path(VERSION_FILE)
|
92
|
-
system("$EDITOR #{CHANGELOG_FILE}")
|
93
|
-
build_and_push_gem
|
94
|
-
create_and_push_tag
|
95
|
-
else
|
88
|
+
unless changes.member?(VERSION_FILE)
|
96
89
|
raise "Actually change the version in: #{VERSION_FILE}"
|
97
90
|
end
|
91
|
+
|
92
|
+
Appsignal.send(:remove_const, :VERSION)
|
93
|
+
load File.expand_path(VERSION_FILE)
|
94
|
+
system("$EDITOR #{CHANGELOG_FILE}")
|
95
|
+
build_and_push_gem
|
96
|
+
create_and_push_tag
|
98
97
|
end
|
99
98
|
|
100
|
-
desc
|
99
|
+
desc "Install the AppSignal gem, extension and all possible dependencies."
|
101
100
|
task :install => "extension:install" do
|
102
101
|
Bundler.with_clean_env do
|
103
102
|
GEMFILES.each do |gemfile|
|
@@ -110,7 +109,7 @@ task :spec_all_gemfiles do
|
|
110
109
|
GEMFILES.each do |gemfile|
|
111
110
|
puts "Running tests for #{gemfile}"
|
112
111
|
unless system("env BUNDLE_GEMFILE=gemfiles/#{gemfile}.gemfile bundle exec rspec")
|
113
|
-
raise
|
112
|
+
raise "Not successful"
|
114
113
|
end
|
115
114
|
end
|
116
115
|
end
|
@@ -118,60 +117,59 @@ end
|
|
118
117
|
task :generate_bundle_and_spec_all do
|
119
118
|
VERSION_MANAGERS.each do |version_manager, switch_command|
|
120
119
|
out = []
|
121
|
-
if version_manager == :rvm
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
out <<
|
120
|
+
out << if version_manager == :rvm
|
121
|
+
"#!/bin/bash --login"
|
122
|
+
else
|
123
|
+
"#!/bin/sh"
|
124
|
+
end
|
125
|
+
out << "rm -f .ruby-version"
|
127
126
|
out << "echo 'Using #{version_manager}'"
|
128
127
|
RUBY_VERSIONS.each do |version|
|
129
|
-
short_version = version.split(
|
128
|
+
short_version = version.split("-").first
|
130
129
|
out << "echo 'Switching to #{short_version}'"
|
131
130
|
out << "#{switch_command.call(version)} || { echo 'Switching Ruby failed'; exit 1; }"
|
132
131
|
out << "ruby -v"
|
133
132
|
out << "echo 'Compiling extension'"
|
134
|
-
out <<
|
133
|
+
out << "cd ext && rm -f appsignal-agent appsignal_extension.bundle appsignal.h libappsignal.a Makefile && ruby extconf.rb && make && cd .."
|
135
134
|
GEMFILES.each do |gemfile|
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
end
|
135
|
+
next if EXCLUSIONS[gemfile] && EXCLUSIONS[gemfile].include?(short_version)
|
136
|
+
out << "echo 'Bundling #{gemfile} in #{short_version}'"
|
137
|
+
out << "bundle --quiet --gemfile gemfiles/#{gemfile}.gemfile || { echo 'Bundling failed'; exit 1; }"
|
138
|
+
out << "echo 'Running #{gemfile} in #{short_version}'"
|
139
|
+
out << "env BUNDLE_GEMFILE=gemfiles/#{gemfile}.gemfile bundle exec rspec || { echo 'Running specs failed'; exit 1; }"
|
142
140
|
end
|
143
141
|
end
|
144
|
-
out <<
|
142
|
+
out << "rm -f .ruby-version"
|
145
143
|
out << "echo 'Successfully ran specs for all environments'"
|
146
144
|
|
147
145
|
script = "bundle_and_spec_all_#{version_manager}"
|
148
146
|
FileUtils.rm_f(script)
|
149
|
-
File.open(script,
|
147
|
+
File.open(script, "w") do |file|
|
150
148
|
file.write out.join("\n")
|
151
149
|
end
|
152
|
-
File.chmod(
|
150
|
+
File.chmod(0o775, script)
|
153
151
|
puts "Generated #{script}"
|
154
152
|
end
|
155
153
|
end
|
156
154
|
|
157
155
|
task :console do
|
158
|
-
require
|
159
|
-
require
|
160
|
-
require
|
156
|
+
require "irb"
|
157
|
+
require "irb/completion"
|
158
|
+
require "appsignal"
|
161
159
|
|
162
|
-
Appsignal.config = Appsignal::Config.new(
|
160
|
+
Appsignal.config = Appsignal::Config.new(".", :console)
|
163
161
|
|
164
162
|
ARGV.clear
|
165
163
|
IRB.start
|
166
164
|
end
|
167
165
|
|
168
166
|
namespace :extension do
|
169
|
-
desc
|
167
|
+
desc "Install the AppSignal gem extension"
|
170
168
|
task :install => :clean do
|
171
|
-
system
|
169
|
+
system "cd ext && ruby extconf.rb && make clean && make"
|
172
170
|
end
|
173
171
|
|
174
|
-
desc
|
172
|
+
desc "Clean the AppSignal gem extension directory of installation artifacts"
|
175
173
|
task :clean do
|
176
174
|
system <<-COMMAND
|
177
175
|
cd ext &&
|
@@ -188,10 +186,10 @@ namespace :extension do
|
|
188
186
|
end
|
189
187
|
|
190
188
|
begin
|
191
|
-
require
|
192
|
-
desc
|
189
|
+
require "rspec/core/rake_task"
|
190
|
+
desc "Run the AppSignal gem test suite."
|
193
191
|
RSpec::Core::RakeTask.new :test
|
194
|
-
rescue LoadError
|
192
|
+
rescue LoadError # rubocop:disable Lint/HandleExceptions
|
195
193
|
# When running rake install, there is no RSpec yet.
|
196
194
|
end
|
197
195
|
|