phobos_db_checkpoint 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +60 -13
- data/lib/phobos_db_checkpoint/events_api.rb +9 -1
- data/lib/phobos_db_checkpoint/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f2b492fa71a95e8304f837094421494f8a441a1a
|
4
|
+
data.tar.gz: 6470c1c13a9ab979cac8f228a725d5782e50f027
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f2327f3693b35fb330f9af48a878dd7e825e24eadb7f43627ad348c0c48f0f9df2c72c10933bf95298faf99e02a18220348647126073db1add6e3f8705b0b1cb
|
7
|
+
data.tar.gz: 5cf8e5153d09340f01aab345b55ad07891ea055a8946648f503b382dd8b67adaed0ad8ff6a626ee32d8056ab5047bf55909fbcb154a4982702741bcf20924651
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
|
|
4
4
|
The format is based on [Keep a Changelog](http://keepachangelog.com/)
|
5
5
|
and this project adheres to [Semantic Versioning](http://semver.org/).
|
6
6
|
|
7
|
+
## 1.1.0 (2017-02-28)
|
8
|
+
|
9
|
+
- [feature] Add end point for fetching individual failures
|
10
|
+
|
7
11
|
## 1.0.0 (2017-02-24)
|
8
12
|
|
9
13
|
- [feature] Introduce failures and failure handling in Handler. Add failures to the events API
|
data/README.md
CHANGED
@@ -141,7 +141,7 @@ The control is based on `payload` and `exception`:
|
|
141
141
|
class MyHandler
|
142
142
|
include PhobosDBCheckpoint::Handler
|
143
143
|
|
144
|
-
def retry_consume?(event, event_metadata, exception)
|
144
|
+
def self.retry_consume?(event, event_metadata, exception)
|
145
145
|
event_metadata[:retry_count] <= MyApp.config.max_retries
|
146
146
|
end
|
147
147
|
end
|
@@ -196,6 +196,32 @@ $ phobos_db_checkpoint init_events_api
|
|
196
196
|
Start the API with: `rackup config.ru`
|
197
197
|
```
|
198
198
|
|
199
|
+
The available routes are:
|
200
|
+
|
201
|
+
* GET `/ping`
|
202
|
+
* GET `/v1/events/:id`
|
203
|
+
* GET `/v1/events` This route accepts the following params:
|
204
|
+
* `limit`, default: 20
|
205
|
+
* `offset`, default: 0
|
206
|
+
* `entity_id`
|
207
|
+
* `topic`
|
208
|
+
* `group_id`
|
209
|
+
* `event_type`
|
210
|
+
* POST `/v1/events/:id/retry`
|
211
|
+
* GET `/v1/failures/:id`
|
212
|
+
* GET `/v1/failures` This route accepts the following params:
|
213
|
+
* `limit`, default: 20
|
214
|
+
* `offset`, default: 0
|
215
|
+
* `entity_id`
|
216
|
+
* `topic`
|
217
|
+
* `group_id`
|
218
|
+
* `event_type`
|
219
|
+
* POST `/v1/failures/:id/retry`
|
220
|
+
|
221
|
+
#### Events endpoint
|
222
|
+
|
223
|
+
Sample output for event:
|
224
|
+
|
199
225
|
```sh
|
200
226
|
$ curl "http://localhost:9292/v1/events/1"
|
201
227
|
# {
|
@@ -207,22 +233,43 @@ $ curl "http://localhost:9292/v1/events/1"
|
|
207
233
|
# "event_type": "create",
|
208
234
|
# "event_version": "v1",
|
209
235
|
# "checksum": "188773471ec0f898fd81d272760a027f",
|
210
|
-
# "payload":
|
236
|
+
# "payload": {
|
237
|
+
# "a": "b"
|
238
|
+
# }
|
211
239
|
# }
|
212
240
|
```
|
213
241
|
|
214
|
-
|
242
|
+
#### Failures endpoint
|
215
243
|
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
244
|
+
Sample output for failure:
|
245
|
+
|
246
|
+
```sh
|
247
|
+
$ curl "http://localhost:9292/v1/failures/1"
|
248
|
+
# {
|
249
|
+
# "id": 1,
|
250
|
+
# "created_at": "2017-02-28T07:53:21.790Z",
|
251
|
+
# "topic": "test-partitions",
|
252
|
+
# "group_id": "test-checkpoint-1",
|
253
|
+
# "entity_id": "32de6e8e-4317-4ff7-bbce-aa4a6d41294a",
|
254
|
+
# "event_time": "2016-08-10T07:07:58.907Z",
|
255
|
+
# "event_type": "test-event-type",
|
256
|
+
# "event_version": "v1",
|
257
|
+
# "checksum": "12c9e42bca2728fc8193c87979bfe510",
|
258
|
+
# "payload": {
|
259
|
+
# "a": "b"
|
260
|
+
# },
|
261
|
+
# "metadata": {
|
262
|
+
# "c": "d"
|
263
|
+
# },
|
264
|
+
# "error_class": "Faraday::ConnectionFailed",
|
265
|
+
# "error_message": "Failed to open TCP connection to localhost:9200 (Connection refused - connect(2) for \"localhost\" port 9200)",
|
266
|
+
# "error_backtrace": [
|
267
|
+
# "/Users/mathias.klippinge/.rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/net/http.rb:882:in `rescue in block in connect'",
|
268
|
+
# "/Users/mathias.klippinge/.rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/net/http.rb:879:in `block in connect'",
|
269
|
+
# "..."
|
270
|
+
# ]
|
271
|
+
# }
|
272
|
+
```
|
226
273
|
|
227
274
|
### <a name="instrumentation"></a> Instrumentation
|
228
275
|
|
@@ -18,7 +18,8 @@ module PhobosDBCheckpoint
|
|
18
18
|
error ActiveRecord::RecordNotFound do
|
19
19
|
content_type :json
|
20
20
|
status 404
|
21
|
-
|
21
|
+
type = env['sinatra.route'].match(/\/.+\/(.+)\/:/)[1].chop
|
22
|
+
{ error: true, message: "#{type} not found" }.to_json
|
22
23
|
end
|
23
24
|
|
24
25
|
error StandardError do
|
@@ -99,6 +100,13 @@ module PhobosDBCheckpoint
|
|
99
100
|
.to_json
|
100
101
|
end
|
101
102
|
|
103
|
+
get "/#{VERSION}/failures/:id" do
|
104
|
+
content_type :json
|
105
|
+
PhobosDBCheckpoint::Failure
|
106
|
+
.find(params['id'])
|
107
|
+
.to_json
|
108
|
+
end
|
109
|
+
|
102
110
|
post "/#{VERSION}/failures/:id/retry" do
|
103
111
|
content_type :json
|
104
112
|
failure = PhobosDBCheckpoint::Failure.find(params['id'])
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: phobos_db_checkpoint
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Túlio Ornelas
|
@@ -13,7 +13,7 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2017-02-
|
16
|
+
date: 2017-02-28 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: bundler
|