api-harvester 0.0.4 → 0.0.5
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/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
|