lhc-core-interceptors 2.4.0 → 3.0.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 06055f3a1962c8675da6aa73da1256fbe733e02f
4
- data.tar.gz: c504a736602334e94a6f5ddbc6d55e5eee46fc13
3
+ metadata.gz: 16bce23e32361c1e5c4a8363136c80654bf8aa8b
4
+ data.tar.gz: 6b3844d8f2aae9522f760007f83ce93221f75118
5
5
  SHA512:
6
- metadata.gz: b81ad3581b2a80274c96f12b39be97132a38e3ac1ccb0d7bc2c1d85efa51a9bc0e332d6f0226b7cc233267abe26680eee195a0a56461cafdcee0ba800fbac94f
7
- data.tar.gz: 9dc9f095a8a3560827fb25607e92e6d071bc5351bed5432d9c27ca1d1a38db3b788101fc0b13b83f0305103b2919380ec81a074000d4ad092746fbf2d6109b25
6
+ metadata.gz: ccfc9da67e8473de4975c071552c293894c3d9722d10c1623710eb8926c7e111754ff2050dfd5cbc5b874f247752580e87d104208034496b4087ef133ae5d228
7
+ data.tar.gz: fac37b477195608abc57dfe6609abfcfcebfd4a2132400a72adee3aec735de6c6ca7afcf8fd941e3943fbc5d76009aaa56324e9e7928fdfd54dca67b41fdb803
data/README.md CHANGED
@@ -1,173 +1,2 @@
1
- LHC Core Interceptors
2
- ===
3
-
4
- The following set of interceptors can be used with [LHC](https://github.com/local-ch/lhc).
5
-
6
- ## Cache Interceptor
7
-
8
- Add the cache interceptor to your basic set of LHC interceptors.
9
-
10
- ```ruby
11
- LHC.config.interceptors = [LHC::Caching]
12
- ```
13
-
14
- You can configure your own cache (default Rails.cache) and logger (default Rails.logger):
15
-
16
- ```ruby
17
- LHC::Caching.cache = ActiveSupport::Cache::MemoryStore.new
18
- LHC::Caching.logger = Logger.new(STDOUT)
19
- ```
20
-
21
-
22
- Caching is not enabled by default, although you added it to your basic set of interceptors.
23
- If you want to have requests served/stored and stored in/from cache, you have to enable it by request.
24
-
25
- ```ruby
26
- LHC.get('http://local.ch', cache: true)
27
- ```
28
-
29
- You can also enable caching when configuring an endpoint in LHS.
30
-
31
- ```ruby
32
- class Feedbacks < LHS::Service
33
- endpoint ':datastore/v2/feedbacks', cache: true
34
- end
35
- ```
36
-
37
- ### Cache Interceptor Options
38
-
39
- ```ruby
40
- LHC.get('http://local.ch', cache: true, cache_expires_in: 1.day, cache_race_condition_ttl: 15.seconds)
41
- ```
42
-
43
- `cache_expires_in` lets the cache expires every X seconds.
44
-
45
- Set the key that is used for caching by using the `cache_key` option. Every key is prefixed with `LHC_CACHE: `.
46
-
47
- Setting `cache_race_condition_ttl` is very useful in situations where a cache entry is used very frequently and is under heavy load.
48
- If a cache expires and due to heavy load several different processes will try to read data natively and then they all will try to write to cache.
49
- To avoid that case the first process to find an expired cache entry will bump the cache expiration time by the value set in `cache_race_condition_ttl`.
50
-
51
- ### Testing
52
-
53
- Add to your spec_helper.rb:
54
-
55
- ```ruby
56
- require 'lhc-core-interceptors/test/cache_helper.rb'
57
- ```
58
-
59
- This will initialize a MemoryStore cache for LHC::Caching interceptor and resets the cache before every test.
60
-
61
- ## Monitoring Interceptor
62
-
63
- Add the monitoring interceptor to your basic set of LHC interceptors.
64
-
65
- ```ruby
66
- LHC.config.interceptors = [LHC::Monitoring]
67
- ```
68
-
69
- You also have to configure statsd in order to have the monitoring interceptor report.
70
-
71
- ```ruby
72
- LHC::Monitoring.statsd = <your-instance-of-statsd>
73
- ```
74
-
75
- The monitoring interceptor reports all the HTTP communication done with LHS.
76
- It reports the trial always.
77
-
78
- In case of a successful response it reports the response code with a count and the response time with a gauge value.
79
-
80
- ```ruby
81
- LHC.get('http://local.ch')
82
-
83
- "lhc.<app_name>.<env>.<host>.<http_method>.count", 1
84
- "lhc.<app_name>.<env>.<host>.<http_method>.200", 1
85
- "lhc.<app_name>.<env>.<host>.<http_method>.time", 43
86
- ```
87
-
88
- In case your workers/processes are getting killed due limited time constraints,
89
- you are able to detect deltas with relying on "before_request", and "after_request" counts:
90
-
91
- ```ruby
92
- "lhc.<app_name>.<env>.<host>.<http_method>.before_request", 1
93
- "lhc.<app_name>.<env>.<host>.<http_method>.after_request", 1
94
- ```
95
-
96
- Timeouts are also reported:
97
-
98
- ```ruby
99
- "lhc.<app_name>.<env>.<host>.<http_method>.timeout", 1
100
- ```
101
-
102
- All the dots in the host are getting replaced with underscore (_), because dot is the default separator in graphite.
103
-
104
- It is also possible to set the key for Monitoring Interceptor on per request basis:
105
-
106
- ```ruby
107
- LHC.get('http://local.ch', monitoring_key: 'local_website')
108
-
109
- "local_website.count", 1
110
- "local_website.200", 1
111
- "local_website.time", 43
112
- ```
113
-
114
- If you use this approach you need to add all namespaces (app, environment etc.) to the key on your own.
115
-
116
-
117
- ### Auth Interceptor
118
-
119
- Add the auth interceptor to your basic set of LHC interceptors.
120
-
121
- ```ruby
122
- LHC.config.interceptors = [LHC::Auth]
123
- ```
124
-
125
- #### Bearer Authentication
126
-
127
- ```ruby
128
- LHC.get('http://local.ch', auth: { bearer: -> { access_token } })
129
- ```
130
-
131
- Adds the following header to the request:
132
- ```
133
- 'Authorization': 'Bearer 123456'
134
- ```
135
-
136
- Assuming the method `access_token` responds on runtime of the request with `123456`.
137
-
138
- #### Basic Authentication
139
-
140
- ```ruby
141
- LHC.get('http://local.ch', auth: { basic: { username: 'steve', password: 'can' } })
142
- ```
143
-
144
- Adds the following header to the request:
145
- ```
146
- 'Authorization': 'Basic c3RldmU6Y2Fu'
147
- ```
148
-
149
- Which is the base64 encoded credentials "username:password".
150
-
151
- ## Rollbar Interceptor
152
-
153
- Forward errors to rollbar when exceptions occur during http requests.
154
-
155
- ```ruby
156
- LHC.config.interceptors = [LHC::Rollbar]
157
- ```
158
-
159
- ```ruby
160
- LHC.get('http://local.ch')
161
- ```
162
-
163
- If it raises, it forwards the request and response object to rollbar, which contain all necessary data.
164
-
165
- ### Forward additional parameters
166
-
167
- ```ruby
168
- LHC.get('http://local.ch', rollbar: { tracking_key: 'this particular request' })
169
- ```
170
-
171
- ## License
172
-
173
- [GNU Affero General Public License Version 3.](https://www.gnu.org/licenses/agpl-3.0.en.html)
1
+ # DEPRECATED
2
+ Merged into lhc: https://github.com/local-ch/lhc/blob/master/docs/interceptors.md
@@ -7,11 +7,11 @@ require "lhc-core-interceptors/version"
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "lhc-core-interceptors"
9
9
  s.version = LHCCoreInterceptors::VERSION
10
- s.authors = ['local.ch']
10
+ s.authors = ['https://github.com/local-ch/lhc-core-interceptors/graphs/contributors']
11
11
  s.email = ['ws-operations@local.ch']
12
12
  s.homepage = 'https://github.com/local-ch/lhc-core-interceptors'
13
- s.summary = 'A set of interceptors'
14
- s.description = 'A set of useful interceptors to use with LHC (like caching, monitoring etc.)'
13
+ s.summary = '[DEPRECATED] Merged into lhc: https://github.com/local-ch/lhc/blob/master/docs/interceptors.md'
14
+ s.description = '[DEPRECATED] Merged into lhc: https://github.com/local-ch/lhc/blob/master/docs/interceptors.md'
15
15
 
16
16
  s.files = `git ls-files`.split("\n")
17
17
  s.test_files = `git ls-files -- spec/*`.split("\n")
@@ -1,3 +1,3 @@
1
1
  module LHCCoreInterceptors
2
- VERSION = '2.4.0'
2
+ VERSION = '3.0.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lhc-core-interceptors
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
- - local.ch
7
+ - https://github.com/local-ch/lhc-core-interceptors/graphs/contributors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-23 00:00:00.000000000 Z
11
+ date: 2017-04-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lhc
@@ -108,8 +108,7 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
- description: A set of useful interceptors to use with LHC (like caching, monitoring
112
- etc.)
111
+ description: "[DEPRECATED] Merged into lhc: https://github.com/local-ch/lhc/blob/master/docs/interceptors.md"
113
112
  email:
114
113
  - ws-operations@local.ch
115
114
  executables: []
@@ -215,7 +214,7 @@ rubyforge_project:
215
214
  rubygems_version: 2.6.8
216
215
  signing_key:
217
216
  specification_version: 4
218
- summary: A set of interceptors
217
+ summary: "[DEPRECATED] Merged into lhc: https://github.com/local-ch/lhc/blob/master/docs/interceptors.md"
219
218
  test_files:
220
219
  - spec/auth/basic_auth_spec.rb
221
220
  - spec/auth/bearer_spec.rb