phobos_db_checkpoint 1.0.0 → 1.1.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 +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
|