peastash 0.0.9 → 0.1.0

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: a82ba88b2a2a87b61d0033e94e8ffdb21550fe5d
4
- data.tar.gz: 9fbbd55f82230fbf185e3448f611478cbbaf8622
3
+ metadata.gz: 3ae1c4247d347a2b0bbed42330c324909a05a289
4
+ data.tar.gz: ddee185247132b7067e3dd3e7db9041c88633414
5
5
  SHA512:
6
- metadata.gz: 739af7a73e9adb45342803e1c5daeec1954f5f1e7abe51c3058a61df5224d7e8d436d0a1d064bcb6113762ebf70c06e7b9a37186555e792fdc8a911e8fb2d5cd
7
- data.tar.gz: 7a9929a16f3db58f4aa6167829b16b6482ba8796aedebff5fd26248d3df6fe4fd37861c4290bc1b7576998a83ea00d269488a2c0a4c40570fedf51c20fc7997d
6
+ metadata.gz: c3b0b19df08f1b3a01282c995dea4f4d1d128c58b3ca2986aa0df6acc03acc8937fbf4f9643a8c57cbdcf2194757195ac03ffd64d5b5d8f4d6f0f54cb0c99d63
7
+ data.tar.gz: a93bedc2e49cfe10ec896af5129b24672e4524df83ecbc39a1c3a507543c80fde302ab7b8fa6938d53fe67c8680611f3b0b4856d8f9af78e95d439feb4efedaf
data/.gitignore CHANGED
@@ -2,3 +2,4 @@ coverage
2
2
  pkg
3
3
  .DS_STORE
4
4
  *.log
5
+ Gemfile.lock
data/README.md CHANGED
@@ -23,8 +23,8 @@ gem 'peastash'
23
23
 
24
24
  ### Getting started
25
25
  ``Peastash`` provides a simple interface to aggregate data to be sent to Logstash.
26
- The boundaries of a log entry are defined by a the ``Peastash.with_instance.log`` block.
27
- When the code inside the block is done running a log entry will be created and written.
26
+ The boundaries of a log entry are defined by the ``Peastash.with_instance.log`` block.
27
+ When the code inside the block is done running, a log entry will be created and written.
28
28
  The most basic usage would look like:
29
29
 
30
30
  ```ruby
@@ -63,9 +63,9 @@ Please note that this is a global setting and cannot be set per-instance.
63
63
 
64
64
  #### Outputs
65
65
 
66
- Peastash ships with a single output: ``Peastash::Outputs::IO``. It can be initialized either by passing it path or an IO object.
66
+ Peastash ships with a single output: ``Peastash::Outputs::IO``. It can be initialized either by passing it a path or an IO object.
67
67
  Peastash can easily be extended to output to any target.
68
- Simply configure Peastash's output with an object that responds to the ``#dump`` method. This method will be called at the end of the ``#log`` block, with 1 argument : a ``LogStash::Event`` object, that you will probably need to serialize to json.
68
+ Simply configure Peastash's output with an object that responds to the ``#dump`` method. This method will be called at the end of the ``#log`` block, with 1 argument: a ``LogStash::Event`` object that you will probably need to serialize to json.
69
69
 
70
70
  ### What if I want to use it in my rack app?
71
71
 
@@ -77,7 +77,7 @@ use Peastash::Middleware
77
77
  ```
78
78
 
79
79
  By default, the middleware only adds the ``duration``, ``status`` and ``hostname`` (machine name) fields to the log entry.
80
- In addition to using ``Peastash.with_instance.store`` to add information, you can pass one or two block arguments to ``use``, that will be called with the request env and the Rack response in parameter, in the context of the Middleware's instance.
80
+ In addition to using ``Peastash.with_instance.store`` to add information, you can pass one or two block arguments to the ``use`` dsl, that will be called with the request ``env`` and the Rack response in parameter, in the context of the Middleware's instance.
81
81
  The first block will be called **before** the request (with a ``response = nil``), while the second one will be called **after**, with the actual response. For example:
82
82
 
83
83
  ```ruby
@@ -103,7 +103,7 @@ config.peastash.source = Rails.application.class.parent_name
103
103
 
104
104
  By default, Peastash's Rails integration will log the same parameters as the Middleware version, plus the fields in the payload of the [``process_action.action_controller``](http://edgeguides.rubyonrails.org/active_support_instrumentation.html#process_action.action_controller) notification (except the params).
105
105
 
106
- All the options for ``Peastash`` can be set using the ``config.peastash`` configuratio object.
106
+ All the options for ``Peastash`` can be set using the ``config.peastash`` configuration object.
107
107
 
108
108
  #### Logging request parameters
109
109
 
@@ -113,7 +113,7 @@ To enable parameter logging, you must add the following to your configuration:
113
113
  config.peastash.log_parameters = true
114
114
  ```
115
115
 
116
- Be careful, as this can significantly increase the size of the log entries, as well as causing problem if other Logstash entries have the same field with a different data type.
116
+ Be careful, as this can significantly increase the size of the log entries, as well as causing issues if other Logstash entries have the same field with a different data type.
117
117
 
118
118
  #### Listening to ``ActiveSupport::Notifications``
119
119
  Additionaly, you can use Peastash to aggregate data from any ``ActiveSupport::Notifications``:
@@ -156,10 +156,10 @@ Using several instances, you can nest ``log`` blocks without sharing the store,
156
156
  For example, you can log your Rails query with the ``global`` instance, and your asynchronous jobs with a ``worker`` instance, and have those instances output to different files.
157
157
 
158
158
  ### Playing with tags
159
- There are three ways to tag your log entries in Peastash.with_instance.
159
+ There are three ways to tag your log entries in ``Peastash.with_instance``.
160
160
 
161
- * The first one is through configuration (see above).
162
- * The second one is by passing tags to the ``Peastash.with_instance.log`` method.
161
+ * The first one is through configuration (see above)
162
+ * The second one is by passing tags to the ``Peastash.with_instance.log`` method
163
163
  * The last one is to call the ``Peastash.with_instance.tags`` method from within a ``Peastash.with_instance.log`` block. Tags defined with this method are not persistent and will disappear at the next call to ``Peastash.with_instance.log``
164
164
 
165
165
  For example:
@@ -1,3 +1,3 @@
1
1
  class Peastash
2
- VERSION = "0.0.9"
2
+ VERSION = "0.1.0"
3
3
  end
data/lib/peastash.rb CHANGED
@@ -115,6 +115,11 @@ class Peastash
115
115
  end
116
116
 
117
117
  def build_event(source, tags)
118
- LogStash::Event.new('@source' => source, '@fields' => store, '@tags' => @base_tags + tags)
118
+ LogStash::Event.new({
119
+ '@source' => source,
120
+ '@fields' => store,
121
+ '@tags' => @base_tags + tags,
122
+ '@pid' => Process.pid
123
+ })
119
124
  end
120
125
  end
@@ -53,7 +53,8 @@ describe Peastash::Middleware do
53
53
  expect(LogStash::Event).to receive(:new).with({
54
54
  '@source' => Peastash::STORE_NAME,
55
55
  '@fields' => { path: '/', duration: 0, status: 200, ip: nil },
56
- '@tags' => []
56
+ '@tags' => [],
57
+ '@pid' => an_instance_of(Fixnum),
57
58
  })
58
59
  Timecop.freeze { @middleware.call env_for('/') }
59
60
  end
@@ -78,7 +79,8 @@ describe Peastash::Middleware do
78
79
  expect(LogStash::Event).to receive(:new).with({
79
80
  '@source' => Peastash::STORE_NAME,
80
81
  '@fields' => { scheme: 'http', duration: 0, status: 200, ip: nil },
81
- '@tags' => []
82
+ '@tags' => [],
83
+ '@pid' => an_instance_of(Fixnum),
82
84
  })
83
85
  Timecop.freeze { @middleware.call env_for('/') }
84
86
  end
@@ -103,6 +105,7 @@ describe Peastash::Middleware do
103
105
  '@source' => Peastash::STORE_NAME,
104
106
  '@fields' => { duration: 0, status: 200, foo: 'foo', ip: nil },
105
107
  '@tags' => [],
108
+ '@pid' => an_instance_of(Fixnum),
106
109
  })
107
110
  Timecop.freeze { @middleware.call env_for('/') }
108
111
  end
@@ -35,8 +35,9 @@ describe Peastash do
35
35
  Peastash.with_instance.configure!(tags: tags)
36
36
  expect(LogStash::Event).to receive(:new).with({
37
37
  '@source' => Peastash::STORE_NAME,
38
- '@fields' => {},
39
- '@tags' => tags
38
+ '@fields' => an_instance_of(Hash),
39
+ '@tags' => tags,
40
+ '@pid' => an_instance_of(Fixnum),
40
41
  })
41
42
  Peastash.with_instance.log {}
42
43
  end
@@ -45,8 +46,9 @@ describe Peastash do
45
46
  Peastash.with_instance.configure!(source: 'foo')
46
47
  expect(LogStash::Event).to receive(:new).with({
47
48
  '@source' => 'foo',
48
- '@fields' => {},
49
- '@tags' => []
49
+ '@fields' => an_instance_of(Hash),
50
+ '@tags' => [],
51
+ '@pid' => an_instance_of(Fixnum),
50
52
  })
51
53
  Peastash.with_instance.log {}
52
54
  end
@@ -118,8 +120,9 @@ describe Peastash do
118
120
  Peastash.with_instance.configure!(tags: base_tags)
119
121
  expect(LogStash::Event).to receive(:new).with({
120
122
  '@source' => Peastash::STORE_NAME,
121
- '@fields' => {},
122
- '@tags' => base_tags + tags
123
+ '@fields' => an_instance_of(Hash),
124
+ '@tags' => base_tags + tags,
125
+ '@pid' => an_instance_of(Fixnum),
123
126
  })
124
127
  Peastash.with_instance.log(tags) {}
125
128
  end
@@ -177,8 +180,9 @@ describe Peastash do
177
180
  Peastash.with_instance.configure!(tags: base_tags)
178
181
  expect(LogStash::Event).to receive(:new).with({
179
182
  '@source' => Peastash::STORE_NAME,
180
- '@fields' => {},
181
- '@tags' => base_tags + tags + additional_tags
183
+ '@fields' => an_instance_of(Hash),
184
+ '@tags' => base_tags + tags + additional_tags,
185
+ '@pid' => an_instance_of(Fixnum),
182
186
  })
183
187
  Peastash.with_instance.log(tags) { Peastash.with_instance.tags.concat(additional_tags) }
184
188
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: peastash
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vincent Boisard
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-09 00:00:00.000000000 Z
11
+ date: 2015-04-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logstash-event
@@ -160,7 +160,6 @@ files:
160
160
  - ".gitignore"
161
161
  - ".travis.yml"
162
162
  - Gemfile
163
- - Gemfile.lock
164
163
  - README.md
165
164
  - Rakefile
166
165
  - lib/peastash.rb
@@ -236,7 +235,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
236
235
  version: '0'
237
236
  requirements: []
238
237
  rubyforge_project:
239
- rubygems_version: 2.4.1
238
+ rubygems_version: 2.4.2
240
239
  signing_key:
241
240
  specification_version: 4
242
241
  summary: Peastash allows you to instrument your code with the ELK stack easily.
@@ -287,3 +286,4 @@ test_files:
287
286
  - spec/peastash/rails_ext/watch_spec.rb
288
287
  - spec/peastash_spec.rb
289
288
  - spec/spec_helper.rb
289
+ has_rdoc:
data/Gemfile.lock DELETED
@@ -1,129 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- peastash (0.0.9)
5
- logstash-event
6
- thread_safe
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- actionmailer (4.1.1)
12
- actionpack (= 4.1.1)
13
- actionview (= 4.1.1)
14
- mail (~> 2.5.4)
15
- actionpack (4.1.1)
16
- actionview (= 4.1.1)
17
- activesupport (= 4.1.1)
18
- rack (~> 1.5.2)
19
- rack-test (~> 0.6.2)
20
- actionview (4.1.1)
21
- activesupport (= 4.1.1)
22
- builder (~> 3.1)
23
- erubis (~> 2.7.0)
24
- activemodel (4.1.1)
25
- activesupport (= 4.1.1)
26
- builder (~> 3.1)
27
- activerecord (4.1.1)
28
- activemodel (= 4.1.1)
29
- activesupport (= 4.1.1)
30
- arel (~> 5.0.0)
31
- activesupport (4.1.1)
32
- i18n (~> 0.6, >= 0.6.9)
33
- json (~> 1.7, >= 1.7.7)
34
- minitest (~> 5.1)
35
- thread_safe (~> 0.1)
36
- tzinfo (~> 1.1)
37
- arel (5.0.1.20140414130214)
38
- builder (3.2.2)
39
- coderay (1.1.0)
40
- diff-lcs (1.2.5)
41
- erubis (2.7.0)
42
- hike (1.2.3)
43
- i18n (0.6.9)
44
- json (1.8.1)
45
- logstash-event (1.2.02)
46
- mail (2.5.4)
47
- mime-types (~> 1.16)
48
- treetop (~> 1.4.8)
49
- method_source (0.8.2)
50
- mime-types (1.25.1)
51
- minitest (5.3.4)
52
- multi_json (1.10.0)
53
- polyglot (0.3.4)
54
- pry (0.9.12.6)
55
- coderay (~> 1.0)
56
- method_source (~> 0.8)
57
- slop (~> 3.4)
58
- rack (1.5.2)
59
- rack-test (0.6.2)
60
- rack (>= 1.0)
61
- rails (4.1.1)
62
- actionmailer (= 4.1.1)
63
- actionpack (= 4.1.1)
64
- actionview (= 4.1.1)
65
- activemodel (= 4.1.1)
66
- activerecord (= 4.1.1)
67
- activesupport (= 4.1.1)
68
- bundler (>= 1.3.0, < 2.0)
69
- railties (= 4.1.1)
70
- sprockets-rails (~> 2.0)
71
- railties (4.1.1)
72
- actionpack (= 4.1.1)
73
- activesupport (= 4.1.1)
74
- rake (>= 0.8.7)
75
- thor (>= 0.18.1, < 2.0)
76
- rake (10.3.1)
77
- rspec (2.14.1)
78
- rspec-core (~> 2.14.0)
79
- rspec-expectations (~> 2.14.0)
80
- rspec-mocks (~> 2.14.0)
81
- rspec-core (2.14.8)
82
- rspec-expectations (2.14.5)
83
- diff-lcs (>= 1.1.3, < 2.0)
84
- rspec-mocks (2.14.6)
85
- rspec-rails (2.14.1)
86
- actionpack (>= 3.0)
87
- activemodel (>= 3.0)
88
- activesupport (>= 3.0)
89
- railties (>= 3.0)
90
- rspec-core (~> 2.14.0)
91
- rspec-expectations (~> 2.14.0)
92
- rspec-mocks (~> 2.14.0)
93
- simplecov (0.7.1)
94
- multi_json (~> 1.0)
95
- simplecov-html (~> 0.7.1)
96
- simplecov-html (0.7.1)
97
- slop (3.5.0)
98
- sprockets (2.12.1)
99
- hike (~> 1.2)
100
- multi_json (~> 1.0)
101
- rack (~> 1.0)
102
- tilt (~> 1.1, != 1.3.0)
103
- sprockets-rails (2.1.3)
104
- actionpack (>= 3.0)
105
- activesupport (>= 3.0)
106
- sprockets (~> 2.8)
107
- thor (0.19.1)
108
- thread_safe (0.3.4)
109
- tilt (1.4.1)
110
- timecop (0.7.1)
111
- treetop (1.4.15)
112
- polyglot
113
- polyglot (>= 0.3.1)
114
- tzinfo (1.2.0)
115
- thread_safe (~> 0.1)
116
-
117
- PLATFORMS
118
- ruby
119
-
120
- DEPENDENCIES
121
- peastash!
122
- pry
123
- rack-test
124
- rails
125
- rake
126
- rspec (~> 2.14)
127
- rspec-rails
128
- simplecov (~> 0.7.1)
129
- timecop