evenitron 0.2.0 → 0.2.1
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.
- data/README.markdown +8 -28
- data/lib/evenitron.rb +3 -2
- data/lib/evenitron/collector_client.rb +16 -10
- data/lib/evenitron/version.rb +3 -0
- metadata +5 -4
data/README.markdown
CHANGED
@@ -6,7 +6,7 @@ Evenitron is a service to help you to properly understand the performance of you
|
|
6
6
|
|
7
7
|
In order to use the Evenitron service you will need a `system key` which is assigned to you when you sign up for an account. This key identifies you system to the Evenitron aggregators.
|
8
8
|
|
9
|
-
If you don't have an account you can request an invite to our private beta program here : http://
|
9
|
+
If you don't have an account you can request an invite to our private beta program here : http://evenitron.com/invite_requests/new
|
10
10
|
|
11
11
|
Firstly, add the gem to your Gemfile:
|
12
12
|
|
@@ -16,42 +16,22 @@ gem 'evenitron'
|
|
16
16
|
|
17
17
|
On start you need to configure the gem with your system key. In Rails this would go in `config\initializers\evenitron.rb`.
|
18
18
|
|
19
|
-
### delayed_job setup
|
20
|
-
|
21
|
-
```ruby
|
22
|
-
require 'evenitron/delayed_job'
|
23
|
-
|
24
|
-
Evenitron::DelayedJob.configure do
|
25
|
-
system_key 'your_key'
|
26
|
-
end
|
27
|
-
```
|
28
|
-
|
29
|
-
Or you can rely on the environment variables `EVENITRON_SYSTEM_KEY` and `EVENITRON_COLLECTOR_URL`:
|
30
|
-
|
31
|
-
```ruby
|
32
|
-
require 'evenitron/delayed_job'
|
33
|
-
|
34
|
-
Evenitron::DelayedJob.configure
|
35
|
-
```
|
36
|
-
|
37
|
-
### resque setup
|
38
|
-
|
39
19
|
```ruby
|
40
|
-
require 'evenitron
|
20
|
+
require 'evenitron'
|
41
21
|
|
42
|
-
Evenitron
|
43
|
-
system_key 'your_key'
|
22
|
+
Evenitron.configure do |config|
|
23
|
+
config.system_key = 'your_key'
|
44
24
|
end
|
45
25
|
```
|
46
26
|
|
47
|
-
Or you can rely on the environment variables `EVENITRON_SYSTEM_KEY
|
27
|
+
Or you can rely on the environment variables `EVENITRON_SYSTEM_KEY`:
|
48
28
|
|
49
29
|
```ruby
|
50
|
-
require 'evenitron
|
30
|
+
require 'evenitron'
|
51
31
|
|
52
|
-
Evenitron
|
32
|
+
Evenitron.configure
|
53
33
|
```
|
54
34
|
|
55
35
|
## Notes
|
56
36
|
|
57
|
-
You must specify your system key either through configuration or the `EVENITRON_SYSTEM_KEY` environment variable but you will normally rely on the default collector URL of `
|
37
|
+
You must specify your system key either through configuration or the `EVENITRON_SYSTEM_KEY` environment variable but you will normally rely on the default collector URL of `http://collector.evenitron.com/`.
|
data/lib/evenitron.rb
CHANGED
@@ -6,6 +6,7 @@ require 'logger'
|
|
6
6
|
require 'json'
|
7
7
|
|
8
8
|
module Evenitron
|
9
|
+
require 'evenitron/version'
|
9
10
|
require 'evenitron/logger'
|
10
11
|
require 'evenitron/collector_client'
|
11
12
|
require 'evenitron/collector'
|
@@ -22,12 +23,12 @@ module Evenitron
|
|
22
23
|
def self.configure
|
23
24
|
yield self if block_given?
|
24
25
|
|
25
|
-
logger.error
|
26
|
+
logger.error("Evenitron system_key required") && return unless system_key
|
26
27
|
|
27
28
|
initialize_delayed_job if Evenitron.delayed_job_present?
|
28
29
|
initialize_resque if Evenitron.resque_present?
|
29
30
|
|
30
|
-
logger.info "Evenitron configured with #{
|
31
|
+
logger.info "Evenitron configured with #{system_key} #{collector_url}"
|
31
32
|
end
|
32
33
|
|
33
34
|
# Public: configured logger
|
@@ -16,14 +16,22 @@ module Evenitron
|
|
16
16
|
# Returns a new instance of CollectorClient
|
17
17
|
def initialize(system_key, url, component = nil)
|
18
18
|
@system_key, @url = system_key, url
|
19
|
-
@user_agent =
|
19
|
+
@user_agent = "evenitron-ruby #{Evenitron::VERSION}"
|
20
20
|
@user_agent = "#{@user_agent} (#{component})" if component
|
21
21
|
@simulate_requests = ENV['EVENITRON_SIMULATE_REQUESTS'] == 'true'
|
22
22
|
log.warn 'Simulating Evenitron messages' if @simulate_requests
|
23
23
|
end
|
24
24
|
|
25
|
+
# Public: sends a job queued message. Does this within a thread
|
26
|
+
# to provide responsiveness to client process
|
27
|
+
#
|
28
|
+
# args - Hash of args
|
29
|
+
#
|
30
|
+
# Returns nothing
|
25
31
|
def job_queued(args)
|
26
|
-
|
32
|
+
Thread.new do
|
33
|
+
send_message :queued, args
|
34
|
+
end
|
27
35
|
end
|
28
36
|
|
29
37
|
def job_started(args)
|
@@ -38,7 +46,7 @@ module Evenitron
|
|
38
46
|
send_message :complete, args
|
39
47
|
end
|
40
48
|
|
41
|
-
|
49
|
+
private
|
42
50
|
|
43
51
|
def send_message(stage, args)
|
44
52
|
send message(stage, args)
|
@@ -59,13 +67,11 @@ module Evenitron
|
|
59
67
|
log.debug "Sending message for #{@system_key} to #{@url} - #{json}"
|
60
68
|
end
|
61
69
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
log.debug e
|
68
|
-
end
|
70
|
+
begin
|
71
|
+
RestClient.post @url, json, :content_type => nil, 'Evenitron-Key' => @system_key, 'User-Agent' => @user_agent
|
72
|
+
rescue => e
|
73
|
+
log.error "Failed to send message for #{@system_key} to #{@url} - #{json}"
|
74
|
+
log.debug e
|
69
75
|
end
|
70
76
|
|
71
77
|
nil
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: evenitron
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-06-
|
12
|
+
date: 2012-06-20 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rest-client
|
16
|
-
requirement: &
|
16
|
+
requirement: &70185009782560 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
version: 1.6.7
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70185009782560
|
25
25
|
description: Ruby client for Evenitron with hooks for delayed_job and resque
|
26
26
|
email:
|
27
27
|
- support@evenitron.com
|
@@ -37,6 +37,7 @@ files:
|
|
37
37
|
- lib/evenitron/resque/collector.rb
|
38
38
|
- lib/evenitron/resque/resque.rb
|
39
39
|
- lib/evenitron/resque.rb
|
40
|
+
- lib/evenitron/version.rb
|
40
41
|
- lib/evenitron.rb
|
41
42
|
- README.markdown
|
42
43
|
homepage: https://github.com/evenitron/evenitron-ruby
|