alephant-publisher-request 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
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