api-harvester 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/harvester/parser.rb +2 -1
- data/parser_functions/key_transactions.rb +58 -0
- data/template/default_eye.rb +62 -0
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0dee496aae3466c73f51a2076c3ed14aa470bb1f
|
4
|
+
data.tar.gz: df9838f62fdb2d6fde63152c3d576e4960650bcc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f30b3a6b4ea82f4ff7c784600a8a2f656d25efe21c99af3032658bfb2aec341bd933f97e31a8a6790f31c5e5684ab254f2861740585433b65dd540cd639d83fe
|
7
|
+
data.tar.gz: c0f734705a51eb07d80a9729bbd4f2ac66f89c471d4fa78115838fcf1cf13efe2da529789d4f95ad4fde66b3e4ee8cb2122a9f90ad929599637600a49c0443ec
|
data/lib/harvester/parser.rb
CHANGED
@@ -3,7 +3,8 @@ require 'ezmq'
|
|
3
3
|
require 'msgpack'
|
4
4
|
require 'oj'
|
5
5
|
require_relative 'settings'
|
6
|
-
require_relative '../../key_transactions'
|
6
|
+
# require_relative '../../key_transactions'
|
7
|
+
Dir["../parser_functions/*.rb"].each {|file| require file }
|
7
8
|
module Parser
|
8
9
|
@broadcaster = EZMQ::Publisher.new :bind, port: 6000, encode: -> m { Oj.dump m }
|
9
10
|
def self.activate topic, endpoint
|
@@ -0,0 +1,58 @@
|
|
1
|
+
#!/bin/env ruby
|
2
|
+
require 'pry'
|
3
|
+
def key_transactions incoming_data
|
4
|
+
outgoing_data = []
|
5
|
+
transactions = incoming_data['key_transactions']
|
6
|
+
transactions.each do |transaction|
|
7
|
+
transaction['application_summary'] = {} unless transaction['application_summary']
|
8
|
+
transaction['end_user_summary'] = {} unless transaction['end_user_summary']
|
9
|
+
plowed = {
|
10
|
+
"database_name": "NewRelic-transactions",
|
11
|
+
"series_name": transaction['name'],
|
12
|
+
"application-response_time": transaction['application_summary']['response_time'],
|
13
|
+
"application-throughput": transaction['application_summary']['throughput'],
|
14
|
+
"application-error_rate": transaction['application_summary']['error_rate'],
|
15
|
+
"application-apdex_target": transaction['application_summary']['apdex_target'],
|
16
|
+
"application-apdex_score": transaction['application_summary']['apdex_score'],
|
17
|
+
"application-host_count": transaction['application_summary']['host_count'],
|
18
|
+
"application-instance_count": transaction['application_summary']['instance_count'],
|
19
|
+
"application-concurrent_instance_count": transaction['application_summary']['concurrent_instance_count'],
|
20
|
+
"end_user-response_time": transaction['end_user_summary']['response_time'],
|
21
|
+
"end_user-throughput": transaction['end_user_summary']['throughput'],
|
22
|
+
"end_user-apdex_target": transaction['end_user_summary']['apdex_target'],
|
23
|
+
"end_user-apdex_score": transaction['end_user_summary']['apdex_score']
|
24
|
+
}
|
25
|
+
outgoing_data << plowed.keep_if {|_,value| !value.nil?}
|
26
|
+
end
|
27
|
+
outgoing_data
|
28
|
+
end
|
29
|
+
|
30
|
+
# {
|
31
|
+
# "key_transaction": {
|
32
|
+
# "id": "integer",
|
33
|
+
# "name": "string",
|
34
|
+
# "transaction_name": "string",
|
35
|
+
# "health_status": "string",
|
36
|
+
# "reporting": "boolean",
|
37
|
+
# "last_reported_at": "time",
|
38
|
+
# "application_summary": {
|
39
|
+
# "response_time": "float",
|
40
|
+
# "throughput": "float",
|
41
|
+
# "error_rate": "float",
|
42
|
+
# "apdex_target": "float",
|
43
|
+
# "apdex_score": "float",
|
44
|
+
# "host_count": "integer",
|
45
|
+
# "instance_count": "integer",
|
46
|
+
# "concurrent_instance_count": "integer"
|
47
|
+
# },
|
48
|
+
# "end_user_summary": {
|
49
|
+
# "response_time": "float",
|
50
|
+
# "throughput": "float",
|
51
|
+
# "apdex_target": "float",
|
52
|
+
# "apdex_score": "float"
|
53
|
+
# },
|
54
|
+
# "links": {
|
55
|
+
# "application": "integer"
|
56
|
+
# }
|
57
|
+
# }
|
58
|
+
# }
|
@@ -0,0 +1,62 @@
|
|
1
|
+
module Default
|
2
|
+
|
3
|
+
|
4
|
+
def self.puller name, endpoint, timeout
|
5
|
+
%Q(#!/bin/env ruby
|
6
|
+
require_relative '../lib/harvester/puller'
|
7
|
+
Puller.activate("#{name}", "#{endpoint}", #{timeout})
|
8
|
+
)
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.parser name, endpoint
|
12
|
+
%Q(#!/bin/env ruby
|
13
|
+
require_relative '../lib/harvester/parser'
|
14
|
+
Parser.activate("#{name}", "#{endpoint}")
|
15
|
+
)
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.pusher name, endpoint
|
19
|
+
%Q(#!/bin/env ruby
|
20
|
+
require_relative '../lib/harvester/pusher'
|
21
|
+
Pusher.activate("#{name}", "#{endpoint}")
|
22
|
+
)
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.eye_config name
|
26
|
+
%Q(#!/bin/env ruby
|
27
|
+
|
28
|
+
Eye.application 'harvester' do
|
29
|
+
|
30
|
+
working_dir File.expand_path(File.join(File.dirname(__FILE__)))
|
31
|
+
|
32
|
+
group "#{name}" do
|
33
|
+
process :puller do
|
34
|
+
pid_file 'pids/puller.pid'
|
35
|
+
start_command "ruby puller.rb"
|
36
|
+
daemonize true
|
37
|
+
stdout 'logs/puller.log'
|
38
|
+
check :memory, every: 20.seconds, below: 300.megabytes, times: 3
|
39
|
+
end
|
40
|
+
|
41
|
+
process :parser do
|
42
|
+
pid_file 'pids/parser.pid'
|
43
|
+
start_command "ruby parser.rb"
|
44
|
+
daemonize true
|
45
|
+
stdout 'logs/parser.log'
|
46
|
+
check :memory, every: 20.seconds, below: 300.megabytes, times: 3
|
47
|
+
end
|
48
|
+
|
49
|
+
process :pusher do
|
50
|
+
pid_file 'pids/pusher.pid'
|
51
|
+
start_command "ruby pusher.rb"
|
52
|
+
daemonize true
|
53
|
+
stdout 'logs/pusher.log'
|
54
|
+
check :memory, every: 20.seconds, below: 300.megabytes, times: 3
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
end
|
59
|
+
)
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: api-harvester
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kinnan Kwok
|
@@ -227,6 +227,8 @@ files:
|
|
227
227
|
- lib/harvester/puller.rb
|
228
228
|
- lib/harvester/pusher.rb
|
229
229
|
- lib/harvester/settings.rb
|
230
|
+
- parser_functions/key_transactions.rb
|
231
|
+
- template/default_eye.rb
|
230
232
|
homepage: http://github.com/kkwoker/api-harvester
|
231
233
|
licenses:
|
232
234
|
- MIT
|