sapience 0.1.1 → 0.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.
- checksums.yaml +4 -4
- data/.simplecov +6 -2
- data/.travis.yml +8 -25
- data/CODE_OF_CONDUCT.md +1 -1
- data/Gemfile +5 -5
- data/README.md +146 -15
- data/Rakefile +2 -1
- data/config/default.yml +29 -0
- data/dev-entrypoint.sh +10 -0
- data/docker-compose.yml +42 -0
- data/lib/sapience/appender/datadog.rb +100 -0
- data/lib/sapience/appender/file.rb +11 -22
- data/lib/sapience/appender/sentry.rb +61 -55
- data/lib/sapience/appender/wrapper.rb +5 -4
- data/lib/sapience/base.rb +21 -13
- data/lib/sapience/config_loader.rb +66 -0
- data/lib/sapience/configuration/grape.rb +9 -0
- data/lib/sapience/configuration.rb +32 -22
- data/lib/sapience/core_ext/hash.rb +25 -0
- data/lib/sapience/core_ext/thread.rb +2 -2
- data/lib/sapience/extensions/action_cable/tagged_logger_proxy.rb +6 -0
- data/lib/sapience/extensions/action_controller/live.rb +6 -0
- data/lib/sapience/extensions/action_controller/log_subscriber.rb +127 -0
- data/lib/sapience/extensions/action_controller/log_subscriber_processing.rb +24 -0
- data/lib/sapience/extensions/action_dispatch/debug_exceptions.rb +11 -0
- data/lib/sapience/extensions/action_view/log_subscriber.rb +9 -0
- data/lib/sapience/extensions/action_view/streaming_template_renderer.rb +11 -0
- data/lib/sapience/extensions/active_job/logging.rb +14 -0
- data/lib/sapience/extensions/active_model_serializers/logging.rb +14 -0
- data/lib/sapience/extensions/active_record/log_subscriber.rb +35 -0
- data/lib/sapience/extensions/grape/middleware/logging.rb +91 -0
- data/lib/sapience/extensions/grape/timings.rb +25 -0
- data/lib/sapience/extensions/rails/rack/logger.rb +11 -0
- data/lib/sapience/extensions/rails/rack/logger_info_as_debug.rb +24 -0
- data/lib/sapience/formatters/color.rb +3 -3
- data/lib/sapience/formatters/default.rb +1 -1
- data/lib/sapience/grape.rb +25 -0
- data/lib/sapience/log.rb +8 -6
- data/lib/sapience/loggable.rb +19 -17
- data/lib/sapience/logger.rb +46 -126
- data/lib/sapience/rails.rb +65 -8
- data/lib/sapience/sapience.rb +74 -73
- data/lib/sapience/subscriber.rb +5 -1
- data/lib/sapience/version.rb +1 -1
- data/lib/sapience.rb +4 -1
- data/sapience.gemspec +7 -4
- data/test_app/Gemfile +5 -1
- data/test_app/Rakefile +5 -1
- data/test_app/app/controllers/posts_controller.rb +12 -11
- data/test_app/config/application.rb +0 -1
- data/test_app/spec/controllers/posts_controller_spec.rb +1 -1
- data/test_app/spec/fixtures/sapience.yml +14 -0
- data/test_app/spec/helpers/posts_helper_spec.rb +1 -1
- data/test_app/spec/integration/sapience_spec.rb +14 -0
- data/test_app/spec/models/post_spec.rb +1 -1
- data/test_app/spec/models/user_spec.rb +1 -1
- data/test_app/spec/rails_helper.rb +15 -0
- data/test_app/spec/requests/posts_spec.rb +1 -1
- data/test_app/spec/routing/posts_routing_spec.rb +8 -10
- data/test_app/spec/spec_helper.rb +0 -44
- metadata +76 -11
- data/lib/sapience/appender/statsd.rb +0 -68
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sapience
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mikael Henriksson
|
@@ -9,22 +9,22 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-08-
|
12
|
+
date: 2016-08-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: concurrent-ruby
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - "
|
18
|
+
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '0'
|
20
|
+
version: '1.0'
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- - "
|
25
|
+
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: '0'
|
27
|
+
version: '1.0'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: bundler
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -137,7 +137,49 @@ dependencies:
|
|
137
137
|
- - ">="
|
138
138
|
- !ruby/object:Gem::Version
|
139
139
|
version: '0'
|
140
|
-
|
140
|
+
- !ruby/object:Gem::Dependency
|
141
|
+
name: codeclimate-test-reporter
|
142
|
+
requirement: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - ">="
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: '0'
|
147
|
+
type: :development
|
148
|
+
prerelease: false
|
149
|
+
version_requirements: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - ">="
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '0'
|
154
|
+
- !ruby/object:Gem::Dependency
|
155
|
+
name: coveralls
|
156
|
+
requirement: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - ">="
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: '0'
|
161
|
+
type: :development
|
162
|
+
prerelease: false
|
163
|
+
version_requirements: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - ">="
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: '0'
|
168
|
+
- !ruby/object:Gem::Dependency
|
169
|
+
name: gem-release
|
170
|
+
requirement: !ruby/object:Gem::Requirement
|
171
|
+
requirements:
|
172
|
+
- - ">="
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: '0'
|
175
|
+
type: :development
|
176
|
+
prerelease: false
|
177
|
+
version_requirements: !ruby/object:Gem::Requirement
|
178
|
+
requirements:
|
179
|
+
- - ">="
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: '0'
|
182
|
+
description: Hasslefree autoconfiguration for logging, metrics and exception collection.
|
141
183
|
email:
|
142
184
|
- mika@reevoo.com
|
143
185
|
- alex.malkov@reevoo.com
|
@@ -160,21 +202,42 @@ files:
|
|
160
202
|
- Rakefile
|
161
203
|
- bin/console
|
162
204
|
- bin/setup
|
205
|
+
- config/default.yml
|
206
|
+
- dev-entrypoint.sh
|
207
|
+
- docker-compose.yml
|
163
208
|
- lib/sapience.rb
|
164
209
|
- lib/sapience/ansi_colors.rb
|
210
|
+
- lib/sapience/appender/datadog.rb
|
165
211
|
- lib/sapience/appender/file.rb
|
166
212
|
- lib/sapience/appender/sentry.rb
|
167
|
-
- lib/sapience/appender/statsd.rb
|
168
213
|
- lib/sapience/appender/wrapper.rb
|
169
214
|
- lib/sapience/base.rb
|
170
215
|
- lib/sapience/concerns/compatibility.rb
|
216
|
+
- lib/sapience/config_loader.rb
|
171
217
|
- lib/sapience/configuration.rb
|
218
|
+
- lib/sapience/configuration/grape.rb
|
219
|
+
- lib/sapience/core_ext/hash.rb
|
172
220
|
- lib/sapience/core_ext/thread.rb
|
221
|
+
- lib/sapience/extensions/action_cable/tagged_logger_proxy.rb
|
222
|
+
- lib/sapience/extensions/action_controller/live.rb
|
223
|
+
- lib/sapience/extensions/action_controller/log_subscriber.rb
|
224
|
+
- lib/sapience/extensions/action_controller/log_subscriber_processing.rb
|
225
|
+
- lib/sapience/extensions/action_dispatch/debug_exceptions.rb
|
226
|
+
- lib/sapience/extensions/action_view/log_subscriber.rb
|
227
|
+
- lib/sapience/extensions/action_view/streaming_template_renderer.rb
|
228
|
+
- lib/sapience/extensions/active_job/logging.rb
|
229
|
+
- lib/sapience/extensions/active_model_serializers/logging.rb
|
230
|
+
- lib/sapience/extensions/active_record/log_subscriber.rb
|
231
|
+
- lib/sapience/extensions/grape/middleware/logging.rb
|
232
|
+
- lib/sapience/extensions/grape/timings.rb
|
233
|
+
- lib/sapience/extensions/rails/rack/logger.rb
|
234
|
+
- lib/sapience/extensions/rails/rack/logger_info_as_debug.rb
|
173
235
|
- lib/sapience/formatters/base.rb
|
174
236
|
- lib/sapience/formatters/color.rb
|
175
237
|
- lib/sapience/formatters/default.rb
|
176
238
|
- lib/sapience/formatters/json.rb
|
177
239
|
- lib/sapience/formatters/raw.rb
|
240
|
+
- lib/sapience/grape.rb
|
178
241
|
- lib/sapience/log.rb
|
179
242
|
- lib/sapience/loggable.rb
|
180
243
|
- lib/sapience/logger.rb
|
@@ -261,7 +324,9 @@ files:
|
|
261
324
|
- test_app/public/favicon.ico
|
262
325
|
- test_app/public/robots.txt
|
263
326
|
- test_app/spec/controllers/posts_controller_spec.rb
|
327
|
+
- test_app/spec/fixtures/sapience.yml
|
264
328
|
- test_app/spec/helpers/posts_helper_spec.rb
|
329
|
+
- test_app/spec/integration/sapience_spec.rb
|
265
330
|
- test_app/spec/models/post_spec.rb
|
266
331
|
- test_app/spec/models/user_spec.rb
|
267
332
|
- test_app/spec/rails_helper.rb
|
@@ -270,7 +335,7 @@ files:
|
|
270
335
|
- test_app/spec/spec_helper.rb
|
271
336
|
- test_app/tmp/.keep
|
272
337
|
- test_app/vendor/assets/stylesheets/.keep
|
273
|
-
homepage: https://
|
338
|
+
homepage: https://github.com/reevoo/sapience
|
274
339
|
licenses:
|
275
340
|
- MIT
|
276
341
|
metadata:
|
@@ -291,8 +356,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
291
356
|
version: '0'
|
292
357
|
requirements: []
|
293
358
|
rubyforge_project:
|
294
|
-
rubygems_version: 2.
|
359
|
+
rubygems_version: 2.5.1
|
295
360
|
signing_key:
|
296
361
|
specification_version: 4
|
297
|
-
summary:
|
362
|
+
summary: Hasslefree autoconfiguration for logging, metrics and exception collection.
|
298
363
|
test_files: []
|
@@ -1,68 +0,0 @@
|
|
1
|
-
require "uri"
|
2
|
-
begin
|
3
|
-
require "statsd-ruby"
|
4
|
-
rescue LoadError
|
5
|
-
raise 'Gem statsd-ruby is required for logging metrics. Please add the gem "statsd-ruby" to your Gemfile.'
|
6
|
-
end
|
7
|
-
|
8
|
-
# Example:
|
9
|
-
# Sapience.add_appender(:statsd, {url: "udp://localhost:2222"})
|
10
|
-
#
|
11
|
-
class Sapience::Appender::Statsd < Sapience::Subscriber
|
12
|
-
# Create Appender
|
13
|
-
#
|
14
|
-
# Parameters:
|
15
|
-
# url: [String]
|
16
|
-
# Valid URL to post to.
|
17
|
-
# Example:
|
18
|
-
# udp://localhost:8125
|
19
|
-
# Example, send all metrics to a particular namespace:
|
20
|
-
# udp://localhost:8125/namespace
|
21
|
-
# Default: udp://localhost:8125
|
22
|
-
def initialize(options = {}, &block)
|
23
|
-
options = options.is_a?(Hash) ? options.dup : { level: options }
|
24
|
-
url = options.delete(:url) || "udp://localhost:8125"
|
25
|
-
uri = URI.parse(url)
|
26
|
-
fail('Statsd only supports udp. Example: "udp://localhost:8125"') if uri.scheme != "udp"
|
27
|
-
|
28
|
-
@statsd = ::Statsd.new(uri.host, uri.port)
|
29
|
-
path = uri.path.chomp("/")
|
30
|
-
@statsd.namespace = path.sub("/", "") if path != ""
|
31
|
-
|
32
|
-
super(options, &block)
|
33
|
-
end
|
34
|
-
|
35
|
-
# Send an error notification to sentry
|
36
|
-
def log(log)
|
37
|
-
metric = log.metric
|
38
|
-
return false unless metric
|
39
|
-
|
40
|
-
if log.duration
|
41
|
-
timing(metric, log.duration)
|
42
|
-
else
|
43
|
-
amount = (log.metric_amount || 1).round
|
44
|
-
if amount < 0
|
45
|
-
decrement(metric, amount)
|
46
|
-
else
|
47
|
-
increment(metric, amount)
|
48
|
-
end
|
49
|
-
end
|
50
|
-
true
|
51
|
-
end
|
52
|
-
|
53
|
-
def timing(metric, duration)
|
54
|
-
@statsd.timing(metric, duration)
|
55
|
-
end
|
56
|
-
|
57
|
-
def increment(metric, amount)
|
58
|
-
@statsd.batch do
|
59
|
-
amount.times { @statsd.increment(metric) }
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
def decrement(metric, amount)
|
64
|
-
@statsd.batch do
|
65
|
-
amount.abs.times { @statsd.decrement(metric) }
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|