appsignal 0.4.0
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/.gitignore +19 -0
- data/.rvmrc +1 -0
- data/.travis.yml +30 -0
- data/Gemfile +3 -0
- data/LICENCE +20 -0
- data/README.md +48 -0
- data/Rakefile +52 -0
- data/appsignal.gemspec +33 -0
- data/bin/appsignal +13 -0
- data/config/appsignal.yml +8 -0
- data/gemfiles/3.0.gemfile +16 -0
- data/gemfiles/3.1.gemfile +16 -0
- data/gemfiles/3.2.gemfile +16 -0
- data/gemfiles/edge.gemfile +16 -0
- data/lib/appsignal.rb +45 -0
- data/lib/appsignal/agent.rb +104 -0
- data/lib/appsignal/auth_check.rb +19 -0
- data/lib/appsignal/capistrano.rb +41 -0
- data/lib/appsignal/cli.rb +118 -0
- data/lib/appsignal/config.rb +30 -0
- data/lib/appsignal/exception_notification.rb +25 -0
- data/lib/appsignal/marker.rb +35 -0
- data/lib/appsignal/middleware.rb +30 -0
- data/lib/appsignal/railtie.rb +19 -0
- data/lib/appsignal/transaction.rb +77 -0
- data/lib/appsignal/transaction/faulty_request_formatter.rb +30 -0
- data/lib/appsignal/transaction/params_sanitizer.rb +36 -0
- data/lib/appsignal/transaction/regular_request_formatter.rb +11 -0
- data/lib/appsignal/transaction/slow_request_formatter.rb +34 -0
- data/lib/appsignal/transaction/transaction_formatter.rb +93 -0
- data/lib/appsignal/transmitter.rb +53 -0
- data/lib/appsignal/version.rb +3 -0
- data/lib/generators/appsignal/USAGE +8 -0
- data/lib/generators/appsignal/appsignal_generator.rb +70 -0
- data/lib/generators/appsignal/templates/appsignal.yml +4 -0
- data/log/.gitkeep +0 -0
- data/resources/cacert.pem +3849 -0
- data/spec/appsignal/agent_spec.rb +259 -0
- data/spec/appsignal/auth_check_spec.rb +36 -0
- data/spec/appsignal/capistrano_spec.rb +81 -0
- data/spec/appsignal/cli_spec.rb +124 -0
- data/spec/appsignal/config_spec.rb +40 -0
- data/spec/appsignal/exception_notification_spec.rb +12 -0
- data/spec/appsignal/inactive_railtie_spec.rb +30 -0
- data/spec/appsignal/marker_spec.rb +83 -0
- data/spec/appsignal/middleware_spec.rb +73 -0
- data/spec/appsignal/railtie_spec.rb +54 -0
- data/spec/appsignal/transaction/faulty_request_formatter_spec.rb +49 -0
- data/spec/appsignal/transaction/params_sanitizer_spec.rb +68 -0
- data/spec/appsignal/transaction/regular_request_formatter_spec.rb +14 -0
- data/spec/appsignal/transaction/slow_request_formatter_spec.rb +76 -0
- data/spec/appsignal/transaction/transaction_formatter_spec.rb +178 -0
- data/spec/appsignal/transaction_spec.rb +191 -0
- data/spec/appsignal/transmitter_spec.rb +64 -0
- data/spec/appsignal_spec.rb +66 -0
- data/spec/generators/appsignal/appsignal_generator_spec.rb +222 -0
- data/spec/spec_helper.rb +85 -0
- data/spec/support/delegate_matcher.rb +39 -0
- metadata +247 -0
@@ -0,0 +1,222 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'generator_spec/test_case'
|
3
|
+
require './lib/generators/appsignal/appsignal_generator'
|
4
|
+
|
5
|
+
# The generator doesn't know we're testing
|
6
|
+
# So change the path while running the generator
|
7
|
+
# Change it back upon completion
|
8
|
+
def run_generator_in_tmp(args=[])
|
9
|
+
FileUtils.cd("spec/tmp") do
|
10
|
+
@output = run_generator(args)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
describe AppsignalGenerator do
|
15
|
+
include GeneratorSpec::TestCase
|
16
|
+
destination File.expand_path("../../../tmp", __FILE__)
|
17
|
+
|
18
|
+
context "with key" do
|
19
|
+
context "known key" do
|
20
|
+
before do
|
21
|
+
prepare_destination
|
22
|
+
authcheck = mock()
|
23
|
+
Appsignal::AuthCheck.should_receive(:new).and_return(authcheck)
|
24
|
+
authcheck.should_receive(:perform).and_return('200')
|
25
|
+
run_generator_in_tmp %w(my_app_key)
|
26
|
+
end
|
27
|
+
|
28
|
+
specify "should mention successful auth check" do
|
29
|
+
@output.should include('AppSignal has confirmed authorisation!')
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
context "invalid key" do
|
34
|
+
before do
|
35
|
+
prepare_destination
|
36
|
+
authcheck = mock()
|
37
|
+
Appsignal::AuthCheck.should_receive(:new).and_return(authcheck)
|
38
|
+
authcheck.should_receive(:perform).and_return('401')
|
39
|
+
run_generator_in_tmp %w(my_app_key)
|
40
|
+
end
|
41
|
+
|
42
|
+
specify "should mention invalid key" do
|
43
|
+
@output.should include('Push key not valid with AppSignal...')
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
context "failed check" do
|
48
|
+
before do
|
49
|
+
prepare_destination
|
50
|
+
authcheck = mock()
|
51
|
+
Appsignal::AuthCheck.should_receive(:new).and_return(authcheck)
|
52
|
+
authcheck.should_receive(:perform).and_return('500')
|
53
|
+
authcheck.should_receive(:uri).and_return('auth')
|
54
|
+
run_generator_in_tmp %w(my_app_key)
|
55
|
+
end
|
56
|
+
|
57
|
+
specify "should mention failed check" do
|
58
|
+
@output.should include('Could not confirm authorisation: 500 at auth')
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
context "internal failure" do
|
63
|
+
before do
|
64
|
+
prepare_destination
|
65
|
+
run_generator_in_tmp %w(my_app_key)
|
66
|
+
end
|
67
|
+
|
68
|
+
specify "should mention internal failure" do
|
69
|
+
@output.should include('Something went wrong while trying to '\
|
70
|
+
'authenticate with AppSignal:')
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
context "without key" do
|
76
|
+
before do
|
77
|
+
prepare_destination
|
78
|
+
run_generator_in_tmp %w()
|
79
|
+
end
|
80
|
+
|
81
|
+
specify "no config files are created" do
|
82
|
+
destination_root.should have_structure {
|
83
|
+
directory 'config' do
|
84
|
+
no_file 'appsignal.yml'
|
85
|
+
no_file 'deploy.rb'
|
86
|
+
end
|
87
|
+
}
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
context "without capistrano" do
|
92
|
+
before :all do
|
93
|
+
prepare_destination
|
94
|
+
run_generator_in_tmp %w(my_app_key)
|
95
|
+
end
|
96
|
+
|
97
|
+
specify "config file is created" do
|
98
|
+
destination_root.should have_structure {
|
99
|
+
directory 'config' do
|
100
|
+
file 'appsignal.yml' do
|
101
|
+
contains 'production:'
|
102
|
+
contains 'api_key: "my_app_key"'
|
103
|
+
end
|
104
|
+
no_file 'deploy.rb'
|
105
|
+
end
|
106
|
+
}
|
107
|
+
end
|
108
|
+
|
109
|
+
specify "should mention the deploy task" do
|
110
|
+
@output.should include('No capistrano setup detected!')
|
111
|
+
@output.should include('appsignal notify_of_deploy -h')
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
context "with capistrano" do
|
116
|
+
before :all do
|
117
|
+
prepare_destination
|
118
|
+
cap_file = File.expand_path('Capfile', destination_root)
|
119
|
+
File.open(cap_file, 'w') {}
|
120
|
+
FileUtils.mkdir(File.expand_path('config', destination_root))
|
121
|
+
deploy_file = File.expand_path(File.join('config', 'deploy.rb'),
|
122
|
+
destination_root)
|
123
|
+
File.open(deploy_file, 'w') {}
|
124
|
+
run_generator_in_tmp %w(my_app_key)
|
125
|
+
end
|
126
|
+
|
127
|
+
specify "config file is created and capistrano deploy file modified" do
|
128
|
+
destination_root.should have_structure {
|
129
|
+
file 'Capfile'
|
130
|
+
directory 'config' do
|
131
|
+
file 'appsignal.yml'
|
132
|
+
file 'deploy.rb' do
|
133
|
+
contains "require 'appsignal/capistrano'"
|
134
|
+
end
|
135
|
+
end
|
136
|
+
}
|
137
|
+
end
|
138
|
+
|
139
|
+
specify "should not mention the deploy task" do
|
140
|
+
@output.should_not include('No capistrano setup detected!')
|
141
|
+
@output.should_not include('appsignal notify_of_deploy -h')
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
context "with custom environment" do
|
146
|
+
before do
|
147
|
+
prepare_destination
|
148
|
+
run_generator_in_tmp %w(my_app_key --environment=development)
|
149
|
+
end
|
150
|
+
|
151
|
+
specify "config file is created" do
|
152
|
+
destination_root.should have_structure {
|
153
|
+
directory 'config' do
|
154
|
+
file 'appsignal.yml' do
|
155
|
+
contains 'development:'
|
156
|
+
contains 'api_key: "my_app_key"'
|
157
|
+
end
|
158
|
+
no_file 'deploy.rb'
|
159
|
+
end
|
160
|
+
}
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
context "with multiple environments" do
|
165
|
+
context "with new environment" do
|
166
|
+
before :all do
|
167
|
+
prepare_destination
|
168
|
+
FileUtils.mkdir(File.expand_path('config', destination_root))
|
169
|
+
config_file = File.join('config', 'appsignal.yml')
|
170
|
+
File.open(File.expand_path(config_file, destination_root), 'w') do |f|
|
171
|
+
f.write("production:\n api_key: 111")
|
172
|
+
end
|
173
|
+
run_generator_in_tmp %w(my_app_key --environment=development)
|
174
|
+
end
|
175
|
+
|
176
|
+
specify "config file is created" do
|
177
|
+
destination_root.should have_structure {
|
178
|
+
directory 'config' do
|
179
|
+
file 'appsignal.yml' do
|
180
|
+
contains 'production:'
|
181
|
+
contains "\ndevelopment:"
|
182
|
+
contains 'api_key: "my_app_key"'
|
183
|
+
end
|
184
|
+
no_file 'deploy.rb'
|
185
|
+
end
|
186
|
+
}
|
187
|
+
end
|
188
|
+
|
189
|
+
specify "should not give error about conflicting environment" do
|
190
|
+
@output.should_not include('error Environment already setup')
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
194
|
+
context "with existing environment" do
|
195
|
+
before :all do
|
196
|
+
prepare_destination
|
197
|
+
FileUtils.mkdir(File.expand_path('config', destination_root))
|
198
|
+
config_file = File.join('config', 'appsignal.yml')
|
199
|
+
File.open(File.expand_path(config_file, destination_root), 'w') do |f|
|
200
|
+
f.write("development:\n api_key: \"111\"")
|
201
|
+
end
|
202
|
+
run_generator_in_tmp %w(my_app_key --environment=development)
|
203
|
+
end
|
204
|
+
|
205
|
+
specify "config file is created" do
|
206
|
+
destination_root.should have_structure {
|
207
|
+
directory 'config' do
|
208
|
+
file 'appsignal.yml' do
|
209
|
+
contains "development:"
|
210
|
+
contains 'api_key: "111"'
|
211
|
+
end
|
212
|
+
no_file 'deploy.rb'
|
213
|
+
end
|
214
|
+
}
|
215
|
+
end
|
216
|
+
|
217
|
+
specify "should give error about conflicting environment" do
|
218
|
+
@output.should include('error Environment already setup')
|
219
|
+
end
|
220
|
+
end
|
221
|
+
end
|
222
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,85 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
require 'rails'
|
3
|
+
require 'action_controller/railtie'
|
4
|
+
|
5
|
+
Dir[File.expand_path(File.join(File.dirname(__FILE__),'support','**','*.rb'))].each {|f| require f}
|
6
|
+
|
7
|
+
module Rails
|
8
|
+
class Application
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
module MyApp
|
13
|
+
class Application < Rails::Application
|
14
|
+
config.active_support.deprecation = proc { |message, stack| }
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
require 'appsignal'
|
19
|
+
|
20
|
+
RSpec.configure do |config|
|
21
|
+
end
|
22
|
+
|
23
|
+
def transaction_with_exception
|
24
|
+
appsignal_transaction.tap do |o|
|
25
|
+
begin
|
26
|
+
raise ArgumentError, 'oh no'
|
27
|
+
rescue ArgumentError => exception
|
28
|
+
env = {}
|
29
|
+
o.add_exception(
|
30
|
+
Appsignal::ExceptionNotification.new(env, exception)
|
31
|
+
)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def regular_transaction
|
37
|
+
appsignal_transaction(:process_action_event => create_process_action_event)
|
38
|
+
end
|
39
|
+
|
40
|
+
def slow_transaction
|
41
|
+
appsignal_transaction(
|
42
|
+
:process_action_event => create_process_action_event(nil, nil, Time.parse('01-01-2001 10:01:00'))
|
43
|
+
)
|
44
|
+
end
|
45
|
+
|
46
|
+
def appsignal_transaction(args = {})
|
47
|
+
process_action_event = args.delete(:process_action_event)
|
48
|
+
events = args.delete(:events) || [create_process_action_event(name='query.mongoid')]
|
49
|
+
exception = args.delete(:exception)
|
50
|
+
Appsignal::Transaction.create(
|
51
|
+
'1',
|
52
|
+
{
|
53
|
+
'HTTP_USER_AGENT' => 'IE6',
|
54
|
+
'SERVER_NAME' => 'localhost',
|
55
|
+
'action_dispatch.routes' => 'not_available'
|
56
|
+
}.merge(args)
|
57
|
+
).tap do |o|
|
58
|
+
o.set_process_action_event(process_action_event)
|
59
|
+
o.add_exception(exception)
|
60
|
+
events.each { |event| o.add_event(event) }
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def create_process_action_event(name=nil, start=nil, ending=nil, tid=nil, payload=nil)
|
65
|
+
ActiveSupport::Notifications::Event.new(
|
66
|
+
name || 'process_action.action_controller',
|
67
|
+
start || Time.parse("01-01-2001 10:00:00"),
|
68
|
+
ending || Time.parse("01-01-2001 10:00:01"),
|
69
|
+
tid || '1',
|
70
|
+
payload || create_payload
|
71
|
+
)
|
72
|
+
end
|
73
|
+
|
74
|
+
def create_payload(args = {})
|
75
|
+
{
|
76
|
+
:path => '/blog',
|
77
|
+
:action => 'show',
|
78
|
+
:controller => 'BlogPostsController',
|
79
|
+
:request_format => 'html',
|
80
|
+
:request_method => "GET",
|
81
|
+
:status => '200',
|
82
|
+
:view_runtime => 500,
|
83
|
+
:db_runtime => 500
|
84
|
+
}.merge(args)
|
85
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# RSpec matcher to spec delegations.
|
2
|
+
#
|
3
|
+
# Usage:
|
4
|
+
#
|
5
|
+
# describe Post do
|
6
|
+
# it { should delegate(:name).to(:author).with_prefix } # post.author_name
|
7
|
+
# it { should delegate(:month).to(:created_at) }
|
8
|
+
# it { should delegate(:year).to(:created_at) }
|
9
|
+
# end
|
10
|
+
RSpec::Matchers.define :delegate do |method|
|
11
|
+
match do |delegator|
|
12
|
+
@method = @prefix ? :"#{@to}_#{method}" : method
|
13
|
+
@delegator = delegator
|
14
|
+
begin
|
15
|
+
@delegator.send(@to)
|
16
|
+
rescue NoMethodError
|
17
|
+
raise "#{@delegator} does not respond to #{@to}!"
|
18
|
+
end
|
19
|
+
@delegator.stub(@to => double('receiver'))
|
20
|
+
@delegator.send(@to).stub(method => :called)
|
21
|
+
@delegator.send(@method) == :called
|
22
|
+
end
|
23
|
+
|
24
|
+
description do
|
25
|
+
"delegate :#{@method} to its #{@to}#{@prefix ? ' with prefix' : ''}"
|
26
|
+
end
|
27
|
+
|
28
|
+
failure_message_for_should do |text|
|
29
|
+
"expected #{@delegator} to delegate :#{@method} to its #{@to}#{@prefix ? ' with prefix' : ''}"
|
30
|
+
end
|
31
|
+
|
32
|
+
failure_message_for_should_not do |text|
|
33
|
+
"expected #{@delegator} not to delegate :#{@method} to its #{@to}#{@prefix ? ' with prefix' : ''}"
|
34
|
+
end
|
35
|
+
|
36
|
+
chain(:to) { |receiver| @to = receiver }
|
37
|
+
chain(:with_prefix) { @prefix = true }
|
38
|
+
|
39
|
+
end
|
metadata
ADDED
@@ -0,0 +1,247 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: appsignal
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.4.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Robert Beekman
|
9
|
+
- Steven Weller
|
10
|
+
- Thijs Cadier
|
11
|
+
- Ron Cadier
|
12
|
+
- Jacob Vosmaer
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
date: 2013-02-22 00:00:00.000000000 Z
|
17
|
+
dependencies:
|
18
|
+
- !ruby/object:Gem::Dependency
|
19
|
+
name: rails
|
20
|
+
requirement: !ruby/object:Gem::Requirement
|
21
|
+
none: false
|
22
|
+
requirements:
|
23
|
+
- - ~>
|
24
|
+
- !ruby/object:Gem::Version
|
25
|
+
version: '3'
|
26
|
+
type: :runtime
|
27
|
+
prerelease: false
|
28
|
+
version_requirements: !ruby/object:Gem::Requirement
|
29
|
+
none: false
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '3'
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: rake
|
36
|
+
requirement: !ruby/object:Gem::Requirement
|
37
|
+
none: false
|
38
|
+
requirements:
|
39
|
+
- - ! '>='
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
42
|
+
type: :runtime
|
43
|
+
prerelease: false
|
44
|
+
version_requirements: !ruby/object:Gem::Requirement
|
45
|
+
none: false
|
46
|
+
requirements:
|
47
|
+
- - ! '>='
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '0'
|
50
|
+
- !ruby/object:Gem::Dependency
|
51
|
+
name: json
|
52
|
+
requirement: !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirements:
|
55
|
+
- - ! '>='
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '0'
|
58
|
+
type: :runtime
|
59
|
+
prerelease: false
|
60
|
+
version_requirements: !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
66
|
+
- !ruby/object:Gem::Dependency
|
67
|
+
name: rack
|
68
|
+
requirement: !ruby/object:Gem::Requirement
|
69
|
+
none: false
|
70
|
+
requirements:
|
71
|
+
- - ! '>='
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '0'
|
74
|
+
type: :runtime
|
75
|
+
prerelease: false
|
76
|
+
version_requirements: !ruby/object:Gem::Requirement
|
77
|
+
none: false
|
78
|
+
requirements:
|
79
|
+
- - ! '>='
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: rspec
|
84
|
+
requirement: !ruby/object:Gem::Requirement
|
85
|
+
none: false
|
86
|
+
requirements:
|
87
|
+
- - ! '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
none: false
|
94
|
+
requirements:
|
95
|
+
- - ! '>='
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: capistrano
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
none: false
|
102
|
+
requirements:
|
103
|
+
- - ! '>='
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: '0'
|
106
|
+
type: :development
|
107
|
+
prerelease: false
|
108
|
+
version_requirements: !ruby/object:Gem::Requirement
|
109
|
+
none: false
|
110
|
+
requirements:
|
111
|
+
- - ! '>='
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: '0'
|
114
|
+
- !ruby/object:Gem::Dependency
|
115
|
+
name: generator_spec
|
116
|
+
requirement: !ruby/object:Gem::Requirement
|
117
|
+
none: false
|
118
|
+
requirements:
|
119
|
+
- - ! '>='
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: '0'
|
122
|
+
type: :development
|
123
|
+
prerelease: false
|
124
|
+
version_requirements: !ruby/object:Gem::Requirement
|
125
|
+
none: false
|
126
|
+
requirements:
|
127
|
+
- - ! '>='
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
version: '0'
|
130
|
+
description: The official appsignal.com gem
|
131
|
+
email:
|
132
|
+
- contact@appsignal.com
|
133
|
+
executables:
|
134
|
+
- appsignal
|
135
|
+
extensions: []
|
136
|
+
extra_rdoc_files: []
|
137
|
+
files:
|
138
|
+
- .gitignore
|
139
|
+
- .rvmrc
|
140
|
+
- .travis.yml
|
141
|
+
- Gemfile
|
142
|
+
- LICENCE
|
143
|
+
- README.md
|
144
|
+
- Rakefile
|
145
|
+
- appsignal.gemspec
|
146
|
+
- bin/appsignal
|
147
|
+
- config/appsignal.yml
|
148
|
+
- gemfiles/3.0.gemfile
|
149
|
+
- gemfiles/3.1.gemfile
|
150
|
+
- gemfiles/3.2.gemfile
|
151
|
+
- gemfiles/edge.gemfile
|
152
|
+
- lib/appsignal.rb
|
153
|
+
- lib/appsignal/agent.rb
|
154
|
+
- lib/appsignal/auth_check.rb
|
155
|
+
- lib/appsignal/capistrano.rb
|
156
|
+
- lib/appsignal/cli.rb
|
157
|
+
- lib/appsignal/config.rb
|
158
|
+
- lib/appsignal/exception_notification.rb
|
159
|
+
- lib/appsignal/marker.rb
|
160
|
+
- lib/appsignal/middleware.rb
|
161
|
+
- lib/appsignal/railtie.rb
|
162
|
+
- lib/appsignal/transaction.rb
|
163
|
+
- lib/appsignal/transaction/faulty_request_formatter.rb
|
164
|
+
- lib/appsignal/transaction/params_sanitizer.rb
|
165
|
+
- lib/appsignal/transaction/regular_request_formatter.rb
|
166
|
+
- lib/appsignal/transaction/slow_request_formatter.rb
|
167
|
+
- lib/appsignal/transaction/transaction_formatter.rb
|
168
|
+
- lib/appsignal/transmitter.rb
|
169
|
+
- lib/appsignal/version.rb
|
170
|
+
- lib/generators/appsignal/USAGE
|
171
|
+
- lib/generators/appsignal/appsignal_generator.rb
|
172
|
+
- lib/generators/appsignal/templates/appsignal.yml
|
173
|
+
- log/.gitkeep
|
174
|
+
- resources/cacert.pem
|
175
|
+
- spec/appsignal/agent_spec.rb
|
176
|
+
- spec/appsignal/auth_check_spec.rb
|
177
|
+
- spec/appsignal/capistrano_spec.rb
|
178
|
+
- spec/appsignal/cli_spec.rb
|
179
|
+
- spec/appsignal/config_spec.rb
|
180
|
+
- spec/appsignal/exception_notification_spec.rb
|
181
|
+
- spec/appsignal/inactive_railtie_spec.rb
|
182
|
+
- spec/appsignal/marker_spec.rb
|
183
|
+
- spec/appsignal/middleware_spec.rb
|
184
|
+
- spec/appsignal/railtie_spec.rb
|
185
|
+
- spec/appsignal/transaction/faulty_request_formatter_spec.rb
|
186
|
+
- spec/appsignal/transaction/params_sanitizer_spec.rb
|
187
|
+
- spec/appsignal/transaction/regular_request_formatter_spec.rb
|
188
|
+
- spec/appsignal/transaction/slow_request_formatter_spec.rb
|
189
|
+
- spec/appsignal/transaction/transaction_formatter_spec.rb
|
190
|
+
- spec/appsignal/transaction_spec.rb
|
191
|
+
- spec/appsignal/transmitter_spec.rb
|
192
|
+
- spec/appsignal_spec.rb
|
193
|
+
- spec/generators/appsignal/appsignal_generator_spec.rb
|
194
|
+
- spec/spec_helper.rb
|
195
|
+
- spec/support/delegate_matcher.rb
|
196
|
+
homepage: http://github.com/80beans/appsignal
|
197
|
+
licenses: []
|
198
|
+
post_install_message:
|
199
|
+
rdoc_options: []
|
200
|
+
require_paths:
|
201
|
+
- lib
|
202
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
203
|
+
none: false
|
204
|
+
requirements:
|
205
|
+
- - ! '>='
|
206
|
+
- !ruby/object:Gem::Version
|
207
|
+
version: '0'
|
208
|
+
segments:
|
209
|
+
- 0
|
210
|
+
hash: -2703450297702771893
|
211
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
212
|
+
none: false
|
213
|
+
requirements:
|
214
|
+
- - ! '>='
|
215
|
+
- !ruby/object:Gem::Version
|
216
|
+
version: '0'
|
217
|
+
segments:
|
218
|
+
- 0
|
219
|
+
hash: -2703450297702771893
|
220
|
+
requirements: []
|
221
|
+
rubyforge_project:
|
222
|
+
rubygems_version: 1.8.23
|
223
|
+
signing_key:
|
224
|
+
specification_version: 3
|
225
|
+
summary: Logs performance and exception data from your app toappsignal.com
|
226
|
+
test_files:
|
227
|
+
- spec/appsignal/agent_spec.rb
|
228
|
+
- spec/appsignal/auth_check_spec.rb
|
229
|
+
- spec/appsignal/capistrano_spec.rb
|
230
|
+
- spec/appsignal/cli_spec.rb
|
231
|
+
- spec/appsignal/config_spec.rb
|
232
|
+
- spec/appsignal/exception_notification_spec.rb
|
233
|
+
- spec/appsignal/inactive_railtie_spec.rb
|
234
|
+
- spec/appsignal/marker_spec.rb
|
235
|
+
- spec/appsignal/middleware_spec.rb
|
236
|
+
- spec/appsignal/railtie_spec.rb
|
237
|
+
- spec/appsignal/transaction/faulty_request_formatter_spec.rb
|
238
|
+
- spec/appsignal/transaction/params_sanitizer_spec.rb
|
239
|
+
- spec/appsignal/transaction/regular_request_formatter_spec.rb
|
240
|
+
- spec/appsignal/transaction/slow_request_formatter_spec.rb
|
241
|
+
- spec/appsignal/transaction/transaction_formatter_spec.rb
|
242
|
+
- spec/appsignal/transaction_spec.rb
|
243
|
+
- spec/appsignal/transmitter_spec.rb
|
244
|
+
- spec/appsignal_spec.rb
|
245
|
+
- spec/generators/appsignal/appsignal_generator_spec.rb
|
246
|
+
- spec/spec_helper.rb
|
247
|
+
- spec/support/delegate_matcher.rb
|