strelka-newrelic 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +1 -0
- data/.gemtest +0 -0
- data/ChangeLog +933 -0
- data/History.rdoc +4 -0
- data/Manifest.txt +8 -0
- data/README.rdoc +69 -0
- data/Rakefile +50 -0
- data/lib/strelka/app/newrelic.rb +131 -0
- data/newrelic.yml +216 -0
- data/spec/strelka/app/newrelic_spec.rb +169 -0
- metadata +191 -0
- metadata.gz.sig +1 -0
@@ -0,0 +1,169 @@
|
|
1
|
+
# -*- ruby -*-
|
2
|
+
# vim: set nosta noet ts=4 sw=4:
|
3
|
+
# encoding: utf-8
|
4
|
+
|
5
|
+
BEGIN {
|
6
|
+
require 'pathname'
|
7
|
+
basedir = Pathname.new( __FILE__ ).dirname.parent.parent.parent
|
8
|
+
|
9
|
+
srcdir = basedir.parent
|
10
|
+
strelkadir = srcdir + 'Strelka/lib'
|
11
|
+
|
12
|
+
nradir = basedir.parent.parent + 'newrelic/ruby_agent/lib'
|
13
|
+
|
14
|
+
$LOAD_PATH.unshift( strelkadir.to_s ) unless $LOAD_PATH.include?( strelkadir.to_s )
|
15
|
+
$LOAD_PATH.unshift( nradir.to_s ) unless $LOAD_PATH.include?( nradir.to_s )
|
16
|
+
$LOAD_PATH.unshift( basedir ) unless $LOAD_PATH.include?( basedir )
|
17
|
+
}
|
18
|
+
|
19
|
+
require 'rspec'
|
20
|
+
|
21
|
+
require 'strelka'
|
22
|
+
require 'strelka/plugins'
|
23
|
+
require 'strelka/app/newrelic'
|
24
|
+
|
25
|
+
require 'mongrel2/testing'
|
26
|
+
require 'strelka/testing'
|
27
|
+
require 'strelka/behavior/plugin'
|
28
|
+
require 'loggability/spechelpers'
|
29
|
+
|
30
|
+
### Mock with RSpec
|
31
|
+
RSpec.configure do |c|
|
32
|
+
c.mock_with( :rspec )
|
33
|
+
|
34
|
+
c.include( Loggability::SpecHelpers )
|
35
|
+
c.include( Mongrel2::SpecHelpers )
|
36
|
+
c.include( Strelka::Testing )
|
37
|
+
|
38
|
+
include Mongrel2::Constants
|
39
|
+
end
|
40
|
+
|
41
|
+
|
42
|
+
#####################################################################
|
43
|
+
### C O N T E X T S
|
44
|
+
#####################################################################
|
45
|
+
|
46
|
+
describe Strelka::App::NewRelic do
|
47
|
+
|
48
|
+
# 0mq socket specifications for Handlers
|
49
|
+
TEST_SEND_SPEC = 'tcp://127.0.0.1:9998'
|
50
|
+
TEST_RECV_SPEC = 'tcp://127.0.0.1:9997'
|
51
|
+
|
52
|
+
|
53
|
+
before( :all ) do
|
54
|
+
setup_logging()
|
55
|
+
|
56
|
+
@request_factory = Mongrel2::RequestFactory.new( route: '' )
|
57
|
+
|
58
|
+
@nr_config = {
|
59
|
+
:beacon => 'beacon',
|
60
|
+
:disable_mobile_headers => false,
|
61
|
+
:browser_key => 'browserKey',
|
62
|
+
:application_id => '5, 6', # collector can return multiple appids
|
63
|
+
:'rum.enabled' => true,
|
64
|
+
:episodes_file => 'this_is_my_file',
|
65
|
+
:'rum.jsonp' => true,
|
66
|
+
:license_key => 'a' * 40,
|
67
|
+
:log_level => :debug,
|
68
|
+
}
|
69
|
+
NewRelic::Agent.config.apply_config( @nr_config )
|
70
|
+
end
|
71
|
+
|
72
|
+
after( :all ) do
|
73
|
+
NewRelic::Agent.shutdown
|
74
|
+
reset_logging()
|
75
|
+
end
|
76
|
+
|
77
|
+
|
78
|
+
it_should_behave_like( "A Strelka::App Plugin" )
|
79
|
+
|
80
|
+
|
81
|
+
describe "included in an App" do
|
82
|
+
|
83
|
+
before( :each ) do
|
84
|
+
@app = Class.new( Strelka::App ) do
|
85
|
+
def self::name; "TestApp"; end
|
86
|
+
|
87
|
+
plugin :newrelic
|
88
|
+
def initialize( appid='nr-test', sspec=TEST_SEND_SPEC, rspec=TEST_RECV_SPEC )
|
89
|
+
super
|
90
|
+
end
|
91
|
+
def set_signal_handlers; end
|
92
|
+
def start_accepting_requests; end
|
93
|
+
def restore_signal_handlers; end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
|
98
|
+
it "starts the NewRelic agent when the app starts" do
|
99
|
+
NewRelic::Agent.should_receive( :manual_start )
|
100
|
+
@app.new.run
|
101
|
+
end
|
102
|
+
|
103
|
+
context "that has routing" do
|
104
|
+
|
105
|
+
before( :each ) do
|
106
|
+
@app.instance_eval do
|
107
|
+
plugin :parameters
|
108
|
+
param :sku, :integer
|
109
|
+
|
110
|
+
plugin :routing
|
111
|
+
|
112
|
+
get '/foo' do |request|
|
113
|
+
self.log.debug "Agent logger: %p" % [ NewRelic::Agent.logger ]
|
114
|
+
NewRelic::Agent.logger.debug "DEBUG"
|
115
|
+
NewRelic::Agent.logger.info "INFO"
|
116
|
+
NewRelic::Agent.browser_timing_header
|
117
|
+
res = request.response
|
118
|
+
res.status = HTTP::OK
|
119
|
+
return res
|
120
|
+
end
|
121
|
+
|
122
|
+
post '/foo/:sku' do |request|
|
123
|
+
res = request.response
|
124
|
+
res.status = HTTP::OK
|
125
|
+
return res
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
# logdevice = Loggability[ NewRelic ]
|
130
|
+
# logger = NewRelic::Agent::AgentLogger.new(NewRelic::Agent.config, '', logdevice )
|
131
|
+
# NewRelic::Agent.logger = logger
|
132
|
+
|
133
|
+
end
|
134
|
+
|
135
|
+
after( :each ) do
|
136
|
+
NewRelic::Agent.agent.stats_engine.reset_stats
|
137
|
+
end
|
138
|
+
|
139
|
+
|
140
|
+
it "records a trace for requests to simple routes" do
|
141
|
+
request = @request_factory.get( '/foo' )
|
142
|
+
response = @app.new.start_newrelic_agent.handle( request )
|
143
|
+
response.status.should == HTTP::OK
|
144
|
+
|
145
|
+
engine = NewRelic::Agent.agent.stats_engine
|
146
|
+
engine.metrics.should include(
|
147
|
+
"HttpDispatcher",
|
148
|
+
"Controller/Strelka/TestApp/GET_foo",
|
149
|
+
"Apdex",
|
150
|
+
"Apdex/Strelka/TestApp/GET_foo"
|
151
|
+
)
|
152
|
+
end
|
153
|
+
|
154
|
+
it "adds browser timing javascript header and footer to the response notes" do
|
155
|
+
request = @request_factory.get( '/foo' )
|
156
|
+
response = @app.new.start_newrelic_agent.handle( request )
|
157
|
+
|
158
|
+
response.notes[:rum_header].should =~ /NREUMQ/
|
159
|
+
response.notes[:rum_footer].should =~ /NREUMQ/
|
160
|
+
end
|
161
|
+
|
162
|
+
end
|
163
|
+
|
164
|
+
|
165
|
+
end
|
166
|
+
|
167
|
+
|
168
|
+
end
|
169
|
+
|
metadata
ADDED
@@ -0,0 +1,191 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: strelka-newrelic
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Michael Granger
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain:
|
11
|
+
- !binary |-
|
12
|
+
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURiRENDQWxTZ0F3SUJB
|
13
|
+
Z0lCQVRBTkJna3Foa2lHOXcwQkFRVUZBREErTVF3d0NnWURWUVFEREFOblpX
|
14
|
+
UXgKR1RBWEJnb0praWFKay9Jc1pBRVpGZ2xHWVdWeWFXVk5WVVF4RXpBUkJn
|
15
|
+
b0praWFKay9Jc1pBRVpGZ052Y21jdwpIaGNOTVRNd01qSTNNVFkwT0RVNFdo
|
16
|
+
Y05NVFF3TWpJM01UWTBPRFU0V2pBK01Rd3dDZ1lEVlFRRERBTm5aV1F4CkdU
|
17
|
+
QVhCZ29Ka2lhSmsvSXNaQUVaRmdsR1lXVnlhV1ZOVlVReEV6QVJCZ29Ka2lh
|
18
|
+
SmsvSXNaQUVaRmdOdmNtY3cKZ2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJ
|
19
|
+
QkR3QXdnZ0VLQW9JQkFRRGI5Mm1reVl3dUdCZzFvUnh0MnRrSAorVW8zTEFz
|
20
|
+
YUwvQVBCZlNMenk4bzMrQjNBVUhLQ2pNVWFWZUJvWmRXdE1IQjc1WDNWUWx2
|
21
|
+
WGZaTXlCeGo1OVZvCmNEdGhyM3pkYW80SG55cnpBSVFmN0JPNVk4S0J3VkQr
|
22
|
+
eXlYQ0QvTjY1VFR3cXNRbk8zaWU3VTUvOXV0MXJuTnIKT2tPekFzY013a2ZR
|
23
|
+
eEJrWER6anZBV2E2VUY0YzVjOWtSL1Q3OWlBMjFrRHg5K2JVTWVudFU1OWFD
|
24
|
+
SnRVY2J4YQo3a2NLSmhQRVlzazRPZHhSOXEyZHBoTk1GRFFzSWRSTzhyeXdY
|
25
|
+
NUZSSHZjYitxblhDMTdSdnhMSHRPanlzUHRwCkVXc1lvWk14eUNESnBVcWJ3
|
26
|
+
b2VpTSt0QUhvejJBQk12M0FoaWUzUWViNitNWk5BdE1tYVdmQngzZGcydSsv
|
27
|
+
V04KQWdNQkFBR2pkVEJ6TUFrR0ExVWRFd1FDTUFBd0N3WURWUjBQQkFRREFn
|
28
|
+
U3dNQjBHQTFVZERnUVdCQlNaMGhDVgpxb0hyMTIyZkdLZWxxZmZ6RVFCaHN6
|
29
|
+
QWNCZ05WSFJFRUZUQVRnUkZuWldSQVJtRmxjbWxsVFZWRUxtOXlaekFjCkJn
|
30
|
+
TlZIUklFRlRBVGdSRm5aV1JBUm1GbGNtbGxUVlZFTG05eVp6QU5CZ2txaGtp
|
31
|
+
Rzl3MEJBUVVGQUFPQ0FRRUEKVmxjZnlxNkd3eUU4aTBRdUZQQ2VWT3dKYW5l
|
32
|
+
U3Zjd3gzMTZEQXBqeTkvdHQyWUQySG9tTGJ0cFh0amk1UVhvcgpPTjZvbG40
|
33
|
+
dFdCSUIzS2xicjNzenE1b1IzUmMxRDAyU2FCVGFseFNuZHA0TTZVa1c5aFJG
|
34
|
+
dTVqbjk4cERCNGZxCjVsOHdNTVUwWGRtcXgxVll2eXNWQWpWRlZDL1c0Tk52
|
35
|
+
bG1nKzJtRWdTVlpQNUs2VGM5cURoM2VNUUlub1l3NmgKdDFZQTZSc1VKSHA1
|
36
|
+
dkdReWhQMXgzNFlwTEFhbHk4aWNibnMvOFBxT2Y3T3NuOXp0bWc4Yk9NSkNl
|
37
|
+
YjMyZVFMago2bUtDd2pwZWd5dEUwb2lmWGZGOGs3NUE5MTA1Y0JuTmlNWk9l
|
38
|
+
MXRYaXFZYy9leENnV3ZiZ2d1cnpET2NSa1p1Ci9ZU3VzYWlEWEhLVTJPM0Fr
|
39
|
+
YzNodEE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
|
40
|
+
date: 2013-04-01 00:00:00.000000000 Z
|
41
|
+
dependencies:
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: strelka
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ~>
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0.3'
|
49
|
+
type: :runtime
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ~>
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0.3'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: newrelic_rpm
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ~>
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '3.5'
|
63
|
+
type: :runtime
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ~>
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '3.5'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: hoe-mercurial
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ~>
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: 1.4.0
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ~>
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: 1.4.0
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: hoe-highline
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ~>
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: 0.1.0
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ~>
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: 0.1.0
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: rdoc
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ~>
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '3.10'
|
105
|
+
type: :development
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ~>
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '3.10'
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: hoe-deveiate
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - ~>
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0.2'
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - ~>
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0.2'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: hoe
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - ~>
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '3.5'
|
133
|
+
type: :development
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - ~>
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '3.5'
|
140
|
+
description: ! 'Strelka-NewRelic is a Strelka plugin for monitoring a Strelka application
|
141
|
+
with
|
142
|
+
|
143
|
+
NewRelic''s application performance management service.'
|
144
|
+
email:
|
145
|
+
- ged@FaerieMUD.org
|
146
|
+
executables: []
|
147
|
+
extensions: []
|
148
|
+
extra_rdoc_files:
|
149
|
+
- History.rdoc
|
150
|
+
- Manifest.txt
|
151
|
+
- README.rdoc
|
152
|
+
files:
|
153
|
+
- ChangeLog
|
154
|
+
- History.rdoc
|
155
|
+
- Manifest.txt
|
156
|
+
- README.rdoc
|
157
|
+
- Rakefile
|
158
|
+
- lib/strelka/app/newrelic.rb
|
159
|
+
- newrelic.yml
|
160
|
+
- spec/strelka/app/newrelic_spec.rb
|
161
|
+
- .gemtest
|
162
|
+
homepage: http://deveiate.org/projects/strelka/newrelic.html
|
163
|
+
licenses:
|
164
|
+
- BSD
|
165
|
+
metadata: {}
|
166
|
+
post_install_message:
|
167
|
+
rdoc_options:
|
168
|
+
- -f
|
169
|
+
- fivefish
|
170
|
+
- -t
|
171
|
+
- Strelka New Relic Analysis
|
172
|
+
require_paths:
|
173
|
+
- lib
|
174
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
175
|
+
requirements:
|
176
|
+
- - ! '>='
|
177
|
+
- !ruby/object:Gem::Version
|
178
|
+
version: 1.9.2
|
179
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
180
|
+
requirements:
|
181
|
+
- - ! '>='
|
182
|
+
- !ruby/object:Gem::Version
|
183
|
+
version: '0'
|
184
|
+
requirements: []
|
185
|
+
rubyforge_project: strelka-newrelic
|
186
|
+
rubygems_version: 2.0.3
|
187
|
+
signing_key:
|
188
|
+
specification_version: 4
|
189
|
+
summary: Strelka-NewRelic is a Strelka plugin for monitoring a Strelka application
|
190
|
+
with NewRelic's application performance management service.
|
191
|
+
test_files: []
|
metadata.gz.sig
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
���;�pgHӀl��]�r�lCG�? '�[.��n��-/6;��%�2,{ak���.%�_�)aMwrL�f�뇋Ѭ��2m������g�������Q̡��W=��\��}ȃ)̍-�Go˦�����Uep=���:H`f��U|�eyJ}��2���I��E}uA�"x�!���\�.� ���|�A�:��[B��@Şi����[켶�}�c>4��HҾS�j�Z�(Ay��L�ۺ�>�@�4�QɓjF��ђU>
|