alephant-publisher-request 0.2.2 → 0.2.3

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: eb84e094682ee284b3f10409bba5c099fb6a5ad8
4
- data.tar.gz: 5647259f3a883f3eeae5d4518eabf9bc11aed5a8
3
+ metadata.gz: 2e649b5dacc3ea7947fc3e5847443aba993fe68d
4
+ data.tar.gz: a55112f022d2af134ba5e6828cbf7b3059c00d99
5
5
  SHA512:
6
- metadata.gz: 71b10daae590f91b8a88d962c4241a1cd850b54a7eb452aa2aef6084111d163e6045aceae6bb9d8fc081b910a5a67a0fc205817f73ddb5f9e4007ee243ec5fb5
7
- data.tar.gz: 49657c9ba9a542c4ad9089db93f6a5b69383e07bc619706ab947b825edfd514c922aafc117e9aeefd7af26bcb73e883615b5077ad3e489b51b72b8aaaa783ea3
6
+ metadata.gz: cc054a9c77582ab4e2ef1866dd274912001713b1c8df079fbe4ad556af525c8bc33885231b460094b37074931a478cc4c2e5c7a2d49ad1449781d4c882257561
7
+ data.tar.gz: a80e4a46c3bfd9870ae4f04f90b2f5a9743117f07fa66fcc08718378dbc3524badb778ed4374c2e92705db22b6a86d6409a391c1bb00fa97c857281000525e6b
@@ -34,8 +34,11 @@ module Alephant
34
34
  when /status$/
35
35
  response = Rack::Response.new('ok', 200, DEFAULT_CONTENT_TYPE)
36
36
  when /component\/(?<id>[^\/]+)$/
37
+ component_id = $~['id']
38
+ logger.info "Component request for: #{component_id} with options: #{req.params.inspect}"
39
+
37
40
  response = Rack::Response.new(
38
- template_data($~['id'], req.params),
41
+ template_data(component_id, req.params),
39
42
  200,
40
43
  DEFAULT_CONTENT_TYPE
41
44
  )
@@ -68,6 +71,7 @@ module Alephant
68
71
  end
69
72
 
70
73
  def error_response(e = '', code = 500)
74
+ logger.error "Publisher::Request#error_response: #{e.message}"
71
75
  logger.metric(:name => "PublisherRequestErrorResponseStatus#{code}", :unit => "Count", :value => 1)
72
76
  message = opts.fetch(:debug, false) ? e.message : ''
73
77
  Rack::Response.new(message, code, DEFAULT_CONTENT_TYPE).finish
@@ -1,10 +1,12 @@
1
1
  require "alephant/logger"
2
+ require "alephant/publisher/request/log_helper"
2
3
 
3
4
  module Alephant
4
5
  module Publisher
5
6
  module Request
6
7
  class Connection
7
8
  include Logger
9
+ include Alephant::Publisher::Request::LogHelper
8
10
  attr_reader :driver
9
11
 
10
12
  def initialize(driver)
@@ -12,24 +14,35 @@ module Alephant
12
14
  end
13
15
 
14
16
  def get(uri)
15
- before = Time.new
16
- response = driver.get(uri)
17
- logger.metric(:name => "PublisherRequestDataMapperRequestHTTPTime", :unit => 'Seconds', :value => Time.new - before)
18
- raise InvalidApiStatus, response.status unless response.status == 200
19
- JSON::parse(response.body, :symbolize_names => true)
20
- rescue Faraday::ConnectionFailed
21
- logger.metric(:name => "PublisherRequestDataMapperConnectionFailed", :unit => "Count", :value => 1)
17
+ JSON::parse(request(uri).body, :symbolize_names => true)
18
+ rescue Faraday::ConnectionFailed => e
19
+ log_error_with_metric(e, 'DataMapper#request', uri, "PublisherRequestDataMapperConnectionFailed")
22
20
  raise ConnectionFailed
23
- rescue JSON::ParserError
24
- logger.metric(:name => "PublisherRequestDataMapperInvalidApiResponse", :unit => "Count", :value => 1)
25
- raise InvalidApiResponse, "JSON parsing error: #{response.body}"
26
21
  rescue InvalidApiStatus => e
27
- logger.metric(:name => "PublisherRequestDataMapperInvalidStatus#{e.status}", :unit => "Count", :value => 1)
22
+ log_error_with_metric(e, 'DataMapper#request', uri, "PublisherRequestDataMapperInvalidStatus#{e.status}")
28
23
  raise e
24
+ rescue JSON::ParserError => e
25
+ log_error_with_metric(e, 'DataMapper#get', uri, "PublisherRequestDataMapperInvalidApiResponse")
26
+ raise InvalidApiResponse, "JSON parsing error: #{response.body}"
29
27
  rescue StandardError => e
30
- logger.metric(:name => "PublisherRequestDataMapperApiError", :unit => "Count", :value => 1)
28
+ log_error_with_metric(e, 'DataMapper#get', uri, "PublisherRequestDataMapperApiError")
31
29
  raise ApiError, e.message
32
30
  end
31
+
32
+ private
33
+
34
+ def request(uri)
35
+ before = Time.new
36
+ logger.info "Publisher::Request::DataMapper#request: uri: #{uri}"
37
+
38
+ driver.get(uri).tap do |response|
39
+ response_time = Time.new - before
40
+ logger.metric(:name => "PublisherRequestDataMapperRequestHTTPTime", :unit => 'Seconds', :value => response_time)
41
+ logger.info "Publisher::Request::DataMapper#request: API response time: #{response_time}"
42
+ logger.info "Publisher::Request::DataMapper#request: status returned: #{response.status} for #{uri}"
43
+ raise InvalidApiStatus, response.status unless response.status == 200
44
+ end
45
+ end
33
46
  end
34
47
  end
35
48
  end
@@ -1,10 +1,10 @@
1
- require 'alephant/logger'
1
+ require 'alephant/publisher/request/log_helper'
2
2
 
3
3
  module Alephant
4
4
  module Publisher
5
5
  module Request
6
6
  class DataMapperFactory
7
- include Logger
7
+ include Alephant::Publisher::Request::LogHelper
8
8
 
9
9
  attr_reader :connection, :base_path
10
10
 
@@ -19,14 +19,14 @@ module Alephant
19
19
 
20
20
  klass = mapper_class_for(component_id)
21
21
  klass.new(connection, context)
22
- rescue LoadError
23
- logger.metric(:name => "PublisherRequestDataMapperFactoryInvalidComponentName", :unit => "Count", :value => 1)
22
+ rescue LoadError => e
23
+ log_error_with_metric(e, component_id, "PublisherRequestDataMapperFactoryInvalidComponentName")
24
24
  raise InvalidComponentName, "Invalid component name: #{component_id}"
25
- rescue NameError
26
- logger.metric(:name => "PublisherRequestDataMapperFactoryInvalidComponentClassName", :unit => "Count", :value => 1)
25
+ rescue NameError => e
26
+ log_error_with_metric(e, component_id, "PublisherRequestDataMapperFactoryInvalidComponentClassName")
27
27
  raise InvalidComponentClassName, "Invalid class name #{klass}"
28
- rescue
29
- logger.metric(:name => "PublisherRequestDataMapperFactoryInvalidComponent", :unit => "Count", :value => 1)
28
+ rescue => e
29
+ log_error_with_metric(e, component_id, "PublisherRequestDataMapperFactoryInvalidComponent")
30
30
  raise InvalidComponent, "Name: #{component_id}, Class: #{klass}"
31
31
  end
32
32
 
@@ -44,6 +44,9 @@ module Alephant
44
44
  Object.const_get("#{camalize component_id}Mapper")
45
45
  end
46
46
 
47
+ def log_error(e, component_id, metric)
48
+ log_error_with_metric(e, 'DataMapperFactory#create', component_id, metric)
49
+ end
47
50
  end
48
51
  end
49
52
  end
@@ -0,0 +1,15 @@
1
+ require 'alephant/logger'
2
+
3
+ module Alephant
4
+ module Publisher
5
+ module Request
6
+ module LogHelper
7
+ include Logger
8
+ def log_error_with_metric(e, method, message, metric = nil, metric_count = 1)
9
+ logger.error "Publisher::Request::#{method}: '#{e.class}(#{e.message})' exception raised for: #{message}"
10
+ logger.metric(:name => metric, :unit => "Count", :value => metric_count) unless metric.nil?
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -1,7 +1,7 @@
1
1
  module Alephant
2
2
  module Publisher
3
3
  module Request
4
- VERSION = "0.2.2"
4
+ VERSION = "0.2.3"
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,225 +1,225 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alephant-publisher-request
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Integralist
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-15 00:00:00.000000000 Z
11
+ date: 2015-01-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
15
- version_requirements: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ~>
18
- - !ruby/object:Gem::Version
19
- version: '1.5'
20
14
  requirement: !ruby/object:Gem::Requirement
21
15
  requirements:
22
16
  - - ~>
23
17
  - !ruby/object:Gem::Version
24
18
  version: '1.5'
19
+ name: bundler
25
20
  prerelease: false
26
21
  type: :development
27
- - !ruby/object:Gem::Dependency
28
- name: rspec
29
22
  version_requirements: !ruby/object:Gem::Requirement
30
23
  requirements:
31
- - - '>='
24
+ - - ~>
32
25
  - !ruby/object:Gem::Version
33
- version: '0'
26
+ version: '1.5'
27
+ - !ruby/object:Gem::Dependency
34
28
  requirement: !ruby/object:Gem::Requirement
35
29
  requirements:
36
30
  - - '>='
37
31
  - !ruby/object:Gem::Version
38
32
  version: '0'
33
+ name: rspec
39
34
  prerelease: false
40
35
  type: :development
41
- - !ruby/object:Gem::Dependency
42
- name: rspec-nc
43
36
  version_requirements: !ruby/object:Gem::Requirement
44
37
  requirements:
45
38
  - - '>='
46
39
  - !ruby/object:Gem::Version
47
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
48
42
  requirement: !ruby/object:Gem::Requirement
49
43
  requirements:
50
44
  - - '>='
51
45
  - !ruby/object:Gem::Version
52
46
  version: '0'
47
+ name: rspec-nc
53
48
  prerelease: false
54
49
  type: :development
55
- - !ruby/object:Gem::Dependency
56
- name: guard
57
50
  version_requirements: !ruby/object:Gem::Requirement
58
51
  requirements:
59
52
  - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
62
56
  requirement: !ruby/object:Gem::Requirement
63
57
  requirements:
64
58
  - - '>='
65
59
  - !ruby/object:Gem::Version
66
60
  version: '0'
61
+ name: guard
67
62
  prerelease: false
68
63
  type: :development
69
- - !ruby/object:Gem::Dependency
70
- name: guard-rake
71
64
  version_requirements: !ruby/object:Gem::Requirement
72
65
  requirements:
73
66
  - - '>='
74
67
  - !ruby/object:Gem::Version
75
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
76
70
  requirement: !ruby/object:Gem::Requirement
77
71
  requirements:
78
72
  - - '>='
79
73
  - !ruby/object:Gem::Version
80
74
  version: '0'
75
+ name: guard-rake
81
76
  prerelease: false
82
77
  type: :development
83
- - !ruby/object:Gem::Dependency
84
- name: pry
85
78
  version_requirements: !ruby/object:Gem::Requirement
86
79
  requirements:
87
80
  - - '>='
88
81
  - !ruby/object:Gem::Version
89
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
90
84
  requirement: !ruby/object:Gem::Requirement
91
85
  requirements:
92
86
  - - '>='
93
87
  - !ruby/object:Gem::Version
94
88
  version: '0'
89
+ name: pry
95
90
  prerelease: false
96
91
  type: :development
97
- - !ruby/object:Gem::Dependency
98
- name: rack-test
99
92
  version_requirements: !ruby/object:Gem::Requirement
100
93
  requirements:
101
94
  - - '>='
102
95
  - !ruby/object:Gem::Version
103
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
104
98
  requirement: !ruby/object:Gem::Requirement
105
99
  requirements:
106
100
  - - '>='
107
101
  - !ruby/object:Gem::Version
108
102
  version: '0'
103
+ name: rack-test
109
104
  prerelease: false
110
105
  type: :development
111
- - !ruby/object:Gem::Dependency
112
- name: spurious-ruby-awssdk-helper
113
106
  version_requirements: !ruby/object:Gem::Requirement
114
107
  requirements:
115
108
  - - '>='
116
109
  - !ruby/object:Gem::Version
117
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
118
112
  requirement: !ruby/object:Gem::Requirement
119
113
  requirements:
120
114
  - - '>='
121
115
  - !ruby/object:Gem::Version
122
116
  version: '0'
117
+ name: spurious-ruby-awssdk-helper
123
118
  prerelease: false
124
119
  type: :development
125
- - !ruby/object:Gem::Dependency
126
- name: rake-rspec
127
120
  version_requirements: !ruby/object:Gem::Requirement
128
121
  requirements:
129
122
  - - '>='
130
123
  - !ruby/object:Gem::Version
131
124
  version: '0'
125
+ - !ruby/object:Gem::Dependency
132
126
  requirement: !ruby/object:Gem::Requirement
133
127
  requirements:
134
128
  - - '>='
135
129
  - !ruby/object:Gem::Version
136
130
  version: '0'
131
+ name: rake-rspec
137
132
  prerelease: false
138
133
  type: :development
139
- - !ruby/object:Gem::Dependency
140
- name: rack
141
134
  version_requirements: !ruby/object:Gem::Requirement
142
135
  requirements:
143
136
  - - '>='
144
137
  - !ruby/object:Gem::Version
145
138
  version: '0'
139
+ - !ruby/object:Gem::Dependency
146
140
  requirement: !ruby/object:Gem::Requirement
147
141
  requirements:
148
142
  - - '>='
149
143
  - !ruby/object:Gem::Version
150
144
  version: '0'
145
+ name: rack
151
146
  prerelease: false
152
147
  type: :runtime
153
- - !ruby/object:Gem::Dependency
154
- name: rake
155
148
  version_requirements: !ruby/object:Gem::Requirement
156
149
  requirements:
157
150
  - - '>='
158
151
  - !ruby/object:Gem::Version
159
152
  version: '0'
153
+ - !ruby/object:Gem::Dependency
160
154
  requirement: !ruby/object:Gem::Requirement
161
155
  requirements:
162
156
  - - '>='
163
157
  - !ruby/object:Gem::Version
164
158
  version: '0'
159
+ name: rake
165
160
  prerelease: false
166
161
  type: :runtime
167
- - !ruby/object:Gem::Dependency
168
- name: faraday
169
162
  version_requirements: !ruby/object:Gem::Requirement
170
163
  requirements:
171
164
  - - '>='
172
165
  - !ruby/object:Gem::Version
173
166
  version: '0'
167
+ - !ruby/object:Gem::Dependency
174
168
  requirement: !ruby/object:Gem::Requirement
175
169
  requirements:
176
170
  - - '>='
177
171
  - !ruby/object:Gem::Version
178
172
  version: '0'
173
+ name: faraday
179
174
  prerelease: false
180
175
  type: :runtime
181
- - !ruby/object:Gem::Dependency
182
- name: aws-sdk
183
176
  version_requirements: !ruby/object:Gem::Requirement
184
177
  requirements:
185
- - - ~>
178
+ - - '>='
186
179
  - !ruby/object:Gem::Version
187
- version: '1.0'
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
188
182
  requirement: !ruby/object:Gem::Requirement
189
183
  requirements:
190
184
  - - ~>
191
185
  - !ruby/object:Gem::Version
192
186
  version: '1.0'
187
+ name: aws-sdk
193
188
  prerelease: false
194
189
  type: :runtime
195
- - !ruby/object:Gem::Dependency
196
- name: alephant-logger
197
190
  version_requirements: !ruby/object:Gem::Requirement
198
191
  requirements:
199
- - - '>='
192
+ - - ~>
200
193
  - !ruby/object:Gem::Version
201
- version: '0'
194
+ version: '1.0'
195
+ - !ruby/object:Gem::Dependency
202
196
  requirement: !ruby/object:Gem::Requirement
203
197
  requirements:
204
198
  - - '>='
205
199
  - !ruby/object:Gem::Version
206
200
  version: '0'
201
+ name: alephant-logger
207
202
  prerelease: false
208
203
  type: :runtime
209
- - !ruby/object:Gem::Dependency
210
- name: alephant-renderer
211
204
  version_requirements: !ruby/object:Gem::Requirement
212
205
  requirements:
213
206
  - - '>='
214
207
  - !ruby/object:Gem::Version
215
208
  version: '0'
209
+ - !ruby/object:Gem::Dependency
216
210
  requirement: !ruby/object:Gem::Requirement
217
211
  requirements:
218
212
  - - '>='
219
213
  - !ruby/object:Gem::Version
220
214
  version: '0'
215
+ name: alephant-renderer
221
216
  prerelease: false
222
217
  type: :runtime
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - '>='
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
223
  description: '...'
224
224
  email:
225
225
  - mark.mcdx@gmail.com
@@ -241,6 +241,7 @@ files:
241
241
  - lib/alephant/publisher/request/data_mapper.rb
242
242
  - lib/alephant/publisher/request/data_mapper_factory.rb
243
243
  - lib/alephant/publisher/request/error.rb
244
+ - lib/alephant/publisher/request/log_helper.rb
244
245
  - lib/alephant/publisher/request/processor.rb
245
246
  - lib/alephant/publisher/request/processor/base.rb
246
247
  - lib/alephant/publisher/request/version.rb