sapience 2.5.3 → 2.5.4
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/CHANGELOG.md +9 -5
- data/README.md +27 -4
- data/docker-compose.yml +0 -5
- data/lib/sapience/loggers/concurrent.rb +17 -0
- data/lib/sapience/rails/engine.rb +2 -1
- data/lib/sapience/sapience.rb +0 -2
- data/lib/sapience/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 082583db334e5fff1d6de299a25848c22faa69dd
|
4
|
+
data.tar.gz: 8ea9117a75c74bcc52c8e4339576e2fc56d87ffa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ecf26ed2e95a788a328c40492ef61f0fa81cdb133ae6ba4e5fa2007820f4b574fb687ddc9f173f7eec33055de7877b853e9f6341e5504eadae356da91616745b
|
7
|
+
data.tar.gz: 6a085768d78deeb6495d70a0602c22f1ed8e9f6da7ae6f70539cbd35c6761e54db1de7f46ade23892ad2bfa3c2bd1c2f43952aca3daf919e34a45a37e2dbdc18
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,10 @@
|
|
1
|
+
## v2.5.4
|
2
|
+
|
3
|
+
- Add compatibility fix for concurrent-ruby library logger which expect `call` method to be defined
|
4
|
+
|
1
5
|
## v2.5.3
|
2
6
|
|
3
|
-
- Fix issues after applying fronzen_string_literal = true. Make it compatible to Ruby 2.1
|
7
|
+
- Fix issues after applying fronzen_string_literal = true. Make it compatible to Ruby 2.1
|
4
8
|
|
5
9
|
## v2.5.2
|
6
10
|
|
@@ -21,7 +25,7 @@
|
|
21
25
|
|
22
26
|
## v2.3.5
|
23
27
|
|
24
|
-
- Set Sapience.config.app_name when APP_NAME environment variable is set
|
28
|
+
- Set Sapience.config.app_name when APP_NAME environment variable is set
|
25
29
|
|
26
30
|
## v2.3.3
|
27
31
|
|
@@ -39,8 +43,8 @@
|
|
39
43
|
|
40
44
|
## v2.2.3
|
41
45
|
|
42
|
-
- Set immediate_executor by default to avoid Errno::EIO error for multithreaded processes.
|
43
|
-
This could happen when orphaned process (whose parent has died) attempts to get stdio from parent process,
|
46
|
+
- Set immediate_executor by default to avoid Errno::EIO error for multithreaded processes.
|
47
|
+
This could happen when orphaned process (whose parent has died) attempts to get stdio from parent process,
|
44
48
|
or when stream is closed.
|
45
49
|
|
46
50
|
## v2.2.1
|
@@ -107,7 +111,7 @@
|
|
107
111
|
|
108
112
|
## v1.0.10
|
109
113
|
|
110
|
-
- Automatically add default `datadog` appender when calling `Sapience.metrics`
|
114
|
+
- Automatically add default `datadog` appender when calling `Sapience.metrics`
|
111
115
|
|
112
116
|
## v1.0.9
|
113
117
|
|
data/README.md
CHANGED
@@ -13,16 +13,17 @@ This project aims to make it easier to centralise the configuration of these thr
|
|
13
13
|
We have taken a great deal of inspiration from the amazing [Semantic Logger](https://github.com/rocketjob/semantic_logger) and implemented something similar to [Rubocop](https://github.com/bbatsov/rubocop) for handling and overriding how to find configuration. If you want some inspiration for how we do something similar for our projects for Rubocop check: [Reevoocop](https://github.com/reevoo/reevoocop).
|
14
14
|
|
15
15
|
## Installation
|
16
|
-
|
17
|
-
First of all we need to require the right file for the project. There are currently two frameworks supported (rails and grape).
|
16
|
+
sapience-rb integrates with rails, grape or can be used standalone.
|
18
17
|
|
19
18
|
### Rails
|
19
|
+
Add the gem:
|
20
20
|
|
21
21
|
```ruby
|
22
22
|
gem "sapience", require: "sapience/rails"
|
23
23
|
```
|
24
24
|
|
25
25
|
### Grape
|
26
|
+
Add the gem:
|
26
27
|
|
27
28
|
```ruby
|
28
29
|
gem "sapience", require: "sapience/grape"
|
@@ -91,6 +92,24 @@ API.logger = Sapience.logger
|
|
91
92
|
**Note**: If you're using the rackup command to run your server in development, pass the -q flag to silence the default
|
92
93
|
rack logger so you don't get double logging.
|
93
94
|
|
95
|
+
### Standalone
|
96
|
+
Add the gem:
|
97
|
+
|
98
|
+
```ruby
|
99
|
+
gem "sapience"
|
100
|
+
```
|
101
|
+
|
102
|
+
Somewhere early in your code execute the following:
|
103
|
+
```ruby
|
104
|
+
require "sapience"
|
105
|
+
|
106
|
+
Sapience.configure do |config|
|
107
|
+
config.app_name = "My Application"
|
108
|
+
end
|
109
|
+
```
|
110
|
+
This will apply the default configuration. See section [Configuration](#configuration) for instructions on
|
111
|
+
how to configure the library according to your needs.
|
112
|
+
|
94
113
|
|
95
114
|
## Configuration
|
96
115
|
|
@@ -98,7 +117,11 @@ The sapience configuration can be controlled by either a "sapience.yml" file, or
|
|
98
117
|
|
99
118
|
#### Configuration by sapience.yml file
|
100
119
|
|
101
|
-
Add a `config/sapience.yml` file to
|
120
|
+
Add a `config/sapience.yml` file to your application. The config file contains sections for different environments.
|
121
|
+
When using with rails or grape the environment will be set by the framework. When using as standalone, use ENV
|
122
|
+
variable `SAPIENCE_ENV` for setting the environment.
|
123
|
+
|
124
|
+
Or if you, like us, have many projects that use the same configuration you can create your own gem with a shared .yml config. Have a look at [reevoo/reevoo_sapience-rb](https://github.com/reevoo/reevoo_sapience-rb) for an example . See below an example of how to configure "sapience.yml":
|
102
125
|
|
103
126
|
```yaml
|
104
127
|
default:
|
@@ -186,7 +209,7 @@ You need to create the test postgres db, by running the command below:
|
|
186
209
|
|
187
210
|
`createdb rails_app_test`
|
188
211
|
|
189
|
-
Then you can run them with the
|
212
|
+
Then you can run them with the following command:
|
190
213
|
|
191
214
|
`bin/tests`
|
192
215
|
|
data/docker-compose.yml
CHANGED
@@ -1,7 +1,4 @@
|
|
1
1
|
version: '2'
|
2
|
-
volumes:
|
3
|
-
gems:
|
4
|
-
driver: local
|
5
2
|
|
6
3
|
services:
|
7
4
|
rabbitmq:
|
@@ -34,8 +31,6 @@ services:
|
|
34
31
|
# Mount our app code directory (".") into our app containers at the
|
35
32
|
# "/usr/src/app" folder:
|
36
33
|
- .:/usr/src/app
|
37
|
-
# Mount the 'gems' volume on the folder that stores bundled gems:
|
38
|
-
- gems:/usr/local/bundle
|
39
34
|
|
40
35
|
|
41
36
|
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# Sapience::Loggers::Concurrent is a class wrapping all methods necessary for integration with concurrent-ruby gem .
|
2
|
+
module Sapience
|
3
|
+
module Loggers
|
4
|
+
class Concurrent < Sapience::Logger
|
5
|
+
|
6
|
+
def initialize(level = nil, filter = nil)
|
7
|
+
super("Concurrent", level, filter)
|
8
|
+
end
|
9
|
+
|
10
|
+
# *call* method is expected to be defined for all Concurrent.global_logger instances
|
11
|
+
# see https://github.com/ruby-concurrency/concurrent-ruby/blob/master/lib/concurrent/concern/logging.rb#L25
|
12
|
+
def call(level, progname, message, &block)
|
13
|
+
log(level, message, progname, &block)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -13,6 +13,7 @@ require "sapience/extensions/active_job/notifications" if defined?(ActiveJob)
|
|
13
13
|
require "sapience/extensions/rails/rack/logger"
|
14
14
|
require "sapience/extensions/rails/rack/logger_info_as_debug"
|
15
15
|
require "sapience/extensions/action_view/log_subscriber"
|
16
|
+
require "sapience/loggers/concurrent"
|
16
17
|
|
17
18
|
module Sapience
|
18
19
|
module Rails
|
@@ -58,7 +59,7 @@ module Sapience
|
|
58
59
|
Bugsnag.configure { |config| config.logger = Sapience[Bugsnag] } if defined?(Bugsnag)
|
59
60
|
|
60
61
|
# Set the logger for concurrent-ruby
|
61
|
-
Concurrent.global_logger = Sapience
|
62
|
+
Concurrent.global_logger = Sapience::Loggers::Concurrent.new if defined?(Concurrent)
|
62
63
|
end
|
63
64
|
|
64
65
|
# Before any initializers run, but after the gems have been loaded
|
data/lib/sapience/sapience.rb
CHANGED
@@ -91,7 +91,6 @@ module Sapience
|
|
91
91
|
@@appenders = Concurrent::Array.new
|
92
92
|
end
|
93
93
|
|
94
|
-
# TODO: Default to SAPIENCE_ENV (if present it should be returned first)
|
95
94
|
def self.environment
|
96
95
|
@@environment ||=
|
97
96
|
ENV.fetch(SAPIENCE_ENV) do
|
@@ -100,7 +99,6 @@ module Sapience
|
|
100
99
|
if defined?(::Rails) && ::Rails.respond_to?(:env)
|
101
100
|
::Rails.env
|
102
101
|
else
|
103
|
-
warn "Sapience is going to use default configuration"
|
104
102
|
DEFAULT_ENV
|
105
103
|
end
|
106
104
|
end
|
data/lib/sapience/version.rb
CHANGED
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: 2.5.
|
4
|
+
version: 2.5.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mikael Henriksson
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2018-09-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: concurrent-ruby
|
@@ -368,6 +368,7 @@ files:
|
|
368
368
|
- lib/sapience/log_methods.rb
|
369
369
|
- lib/sapience/loggable.rb
|
370
370
|
- lib/sapience/logger.rb
|
371
|
+
- lib/sapience/loggers/concurrent.rb
|
371
372
|
- lib/sapience/metrics.rb
|
372
373
|
- lib/sapience/metrics/datadog.rb
|
373
374
|
- lib/sapience/rails.rb
|