factor-connector-newrelic 0.0.3
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/lib/factor/connector/newrelic_metrics.rb +47 -0
- metadata +142 -0
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'factor-connector-api'
|
2
|
+
require 'newrelic-metrics'
|
3
|
+
require 'chronic'
|
4
|
+
|
5
|
+
Factor::Connector.service 'newrelic_metrics' do
|
6
|
+
action 'summarize' do |params|
|
7
|
+
api_key = params['api_key']
|
8
|
+
server_id = params['server']
|
9
|
+
app_id = params['application']
|
10
|
+
metrics = params['metrics']
|
11
|
+
range = params['range']
|
12
|
+
|
13
|
+
fail "API Key (api_key) is required" unless api_key
|
14
|
+
fail "Server ID (server) or Application ID (application) is required" unless server_id || app_id
|
15
|
+
fail "Server ID (server) or Application ID (application) is required, but not both" if server_id && app_id
|
16
|
+
|
17
|
+
fail "Metrics (metrics) is required" unless metrics
|
18
|
+
fail "Metrics (metrics) must be a hash" unless metrics.is_a?(Hash)
|
19
|
+
fail "Metrics (metrics) keys must all be strings" unless metrics.keys.all?{|k| k.is_a?(String)}
|
20
|
+
fail "Metrics (metrics) values must all be arrays of string" unless metrics.values.all?{|value| value.is_a?(Array) && value.all?{|i| i.is_a?(String)} }
|
21
|
+
|
22
|
+
if range
|
23
|
+
fail "Range (range) must have a from date" unless range['from']
|
24
|
+
fail "Range (range) 'from' time must be a String" unless range['from'].is_a?(String)
|
25
|
+
fail "Range (range) 'from' time is invalid" unless Chronic.parse(range['from'], context: :past)
|
26
|
+
if range['to']
|
27
|
+
fail "Range (range) 'to' time must be a String" unless range['to'].is_a?(String)
|
28
|
+
fail "Range (range) 'to' time is invalid" unless Chronic.parse(range['to'], context: :past)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
option = {}
|
33
|
+
option[:server] = server_id if server_id
|
34
|
+
option[:application] = app_id if app_id
|
35
|
+
|
36
|
+
info "Pulling data from New Relic"
|
37
|
+
begin
|
38
|
+
api = NewRelicMetrics.new(api_key,option)
|
39
|
+
data = api.summarize(metrics, range)
|
40
|
+
rescue
|
41
|
+
fail "Failed to collect data from New Relic"
|
42
|
+
end
|
43
|
+
|
44
|
+
action_callback data
|
45
|
+
|
46
|
+
end
|
47
|
+
end
|
metadata
ADDED
@@ -0,0 +1,142 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: factor-connector-newrelic
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.3
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Maciej Skierkowski
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2014-10-14 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: factor-connector-api
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 0.0.13
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 0.0.13
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: newrelic-metrics
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 0.0.4
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 0.0.4
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: chronic
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 0.10.2
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.10.2
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: codeclimate-test-reporter
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ~>
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 0.4.1
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 0.4.1
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: rspec
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ~>
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: 3.1.0
|
86
|
+
type: :development
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 3.1.0
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: rake
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ~>
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: 10.3.2
|
102
|
+
type: :development
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ~>
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 10.3.2
|
110
|
+
description:
|
111
|
+
email:
|
112
|
+
- maciej@factor.io
|
113
|
+
executables: []
|
114
|
+
extensions: []
|
115
|
+
extra_rdoc_files: []
|
116
|
+
files:
|
117
|
+
- lib/factor/connector/newrelic_metrics.rb
|
118
|
+
homepage: https://factor.io
|
119
|
+
licenses: []
|
120
|
+
post_install_message:
|
121
|
+
rdoc_options: []
|
122
|
+
require_paths:
|
123
|
+
- lib
|
124
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
125
|
+
none: false
|
126
|
+
requirements:
|
127
|
+
- - ! '>='
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
version: '0'
|
130
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
131
|
+
none: false
|
132
|
+
requirements:
|
133
|
+
- - ! '>='
|
134
|
+
- !ruby/object:Gem::Version
|
135
|
+
version: '0'
|
136
|
+
requirements: []
|
137
|
+
rubyforge_project:
|
138
|
+
rubygems_version: 1.8.25
|
139
|
+
signing_key:
|
140
|
+
specification_version: 3
|
141
|
+
summary: NewRelic Factor.io Connector
|
142
|
+
test_files: []
|