alacrity-rails 0.4.2 → 0.5.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8d2436c6aee506e04789e51dff13fd54d6a98b34
4
- data.tar.gz: e95b00c266256fb6d83bc2902be1e0898436bd5d
3
+ metadata.gz: 58e658428b282d216168227c976cacf6e5c59eb8
4
+ data.tar.gz: 876cce8bbef6fa0aec2d731ab399789553838eb4
5
5
  SHA512:
6
- metadata.gz: 6aafe1f3451a311f3aa8f582bbb5ac26ca8de828e028d7e4be1436612e3e7a2bb4f91b8ffc2088fc6dc76187e7cca672b44d1662945859bc11ea42f213d6d3ef
7
- data.tar.gz: a3af69969b12b7994c2af0c38216768a713cad663ab44569452623990ba78a0d1ae410b4c1fc2dcfe6fa60878e00b24706401cf5f7d7ee48bb2064b1f89f16ce
6
+ metadata.gz: 4245addabe189a55fdbb0d5855fd7adc13a61c75e9b00eaa8f72526d35c15322deecbf8f7d5fc68fe177df833a340cd662c93b72de8bc593d10f4913d7185739
7
+ data.tar.gz: e98059154aa4aa71e622b12eb55a8f11e0754ce91ceaac0d687a716df44000ec54ad73ade80da93dfc3164ca4e63e4ad8d2200098ca5648ff62446297b4195c6
@@ -5,8 +5,8 @@ end
5
5
 
6
6
  module AlacrityRails
7
7
  autoload :Config, 'alacrity-rails/config'
8
- autoload :ConnectionTester, 'alacrity-rails/connection_tester'
9
8
  autoload :Client, 'alacrity-rails/client'
9
+ autoload :Diagnostic, 'alacrity-rails/diagnostic'
10
10
  autoload :Middleware, 'alacrity-rails/middleware'
11
11
  autoload :ServerConfig, 'alacrity-rails/server_config'
12
12
  autoload :VERSION, 'alacrity-rails/version'
@@ -0,0 +1,92 @@
1
+ module AlacrityRails
2
+ class Diagnostic
3
+ def self.run; new.run end
4
+
5
+ def logger; @logger ||= Logger.new(STDOUT) end
6
+
7
+ def run
8
+ run_check :api_token_present
9
+ run_check :valid_api_token
10
+ run_check :middleware_present
11
+ run_check :middleware_appears_first
12
+
13
+ puts success_message
14
+ puts assistance_message
15
+ end
16
+
17
+ def run_check(check_name)
18
+ logger << "CHECK: #{check_name.to_s.humanize}..."
19
+
20
+ successful, display_message = public_send(check_name)
21
+
22
+ if successful
23
+ logger << "PASSED\n"
24
+ else
25
+ logger << "FAILED\n"
26
+ logger << display_message
27
+ logger << assistance_message
28
+ exit
29
+ end
30
+ end
31
+
32
+ def api_token_present
33
+ [
34
+ Config.api_token.present?,
35
+ %<
36
+ The API token could not be found in the server environment.
37
+
38
+ You can find it on https://alacrityapp.com then set it in your server config as `ALACRITY_API_TOKEN`.
39
+ >
40
+ ]
41
+ end
42
+
43
+ def valid_api_token
44
+ response = Client.transmit(Transaction::ConnectionTest.new)
45
+
46
+ [
47
+ response.code == '200',
48
+ %<
49
+ Oh no! Its seems like we have a problem!
50
+
51
+ #{JSON.parse(response.body)['message']}
52
+ >
53
+ ]
54
+ end
55
+
56
+ def middleware_present
57
+ [
58
+ Rails.application.config.middleware.include?(AlacrityRails::Middleware),
59
+ %<
60
+ The AlacrityRails::Middleware is absent from your middleware stack.
61
+ Make sure your application is not overriding the middleware stack in an initializer.
62
+ >
63
+ ]
64
+ end
65
+
66
+ def middleware_appears_first
67
+ [
68
+ Rails.application.config.middleware.first == (AlacrityRails::Middleware),
69
+ %<
70
+ The AlacrityRails::Middleware is not first in your middleware stack.
71
+ Anything appearing above it will not be included in metrics tracking.
72
+
73
+ #{Rails.application.config.middleware.map(&:to_s).to_yaml}
74
+ >
75
+ ]
76
+ end
77
+
78
+ private
79
+
80
+ def success_message
81
+ %<
82
+ Everything looks good!
83
+
84
+ You should see data on https://alacrityapp.com shortly after your app receives traffic.
85
+ >
86
+ end
87
+
88
+ def assistance_message
89
+ "\nIf you need assistance or have any questions, send an email to support@alacrityapp.com or tweet @alacrityapp and we'll help you out!\n"
90
+ end
91
+ end
92
+ end
@@ -1,3 +1,3 @@
1
1
  module AlacrityRails
2
- VERSION = '0.4.2'
2
+ VERSION = '0.5.0'
3
3
  end
@@ -0,0 +1,8 @@
1
+ namespace :alacrity do
2
+
3
+ desc "Tests your app's configuration and connectivity with Alacrity"
4
+ task :diagnostic => :environment do
5
+ AlacrityRails::Diagnostic.run
6
+ end
7
+
8
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alacrity-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alacrity, LLC
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-06 00:00:00.000000000 Z
11
+ date: 2017-05-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -37,7 +37,7 @@ files:
37
37
  - lib/alacrity-rails.rb
38
38
  - lib/alacrity-rails/client.rb
39
39
  - lib/alacrity-rails/config.rb
40
- - lib/alacrity-rails/connection_tester.rb
40
+ - lib/alacrity-rails/diagnostic.rb
41
41
  - lib/alacrity-rails/middleware.rb
42
42
  - lib/alacrity-rails/probe/action_controller.rb
43
43
  - lib/alacrity-rails/probe/action_view.rb
@@ -52,7 +52,7 @@ files:
52
52
  - lib/alacrity-rails/transaction/server_startup.rb
53
53
  - lib/alacrity-rails/transaction/web_transaction.rb
54
54
  - lib/alacrity-rails/version.rb
55
- - lib/tasks/test_connection.rake
55
+ - lib/tasks/diagnostic.rake
56
56
  homepage: https://www.alacrityapp.com
57
57
  licenses:
58
58
  - GPL
@@ -73,7 +73,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
73
73
  version: '0'
74
74
  requirements: []
75
75
  rubyforge_project:
76
- rubygems_version: 2.5.1
76
+ rubygems_version: 2.6.8
77
77
  signing_key:
78
78
  specification_version: 4
79
79
  summary: Rails Agent for the Alacrity Application Health Platform
@@ -1,55 +0,0 @@
1
- module AlacrityRails
2
- class ConnectionTester
3
- def self.run; new.run end
4
-
5
- def run
6
- if Config.api_token.blank?
7
- puts missing_api_token_message
8
- else
9
- response = Client.transmit(Transaction::ConnectionTest.new)
10
-
11
- if response.code == '200'
12
- puts success_message
13
- else
14
- puts bad_response_message(JSON.parse(response.body)['message'])
15
- end
16
- end
17
-
18
- puts assistance_message
19
- end
20
-
21
- private
22
-
23
- def missing_api_token_message
24
- %<
25
- Your API token could not be found in the configuration. You can find it on https://alacrityapp.com.
26
-
27
- Then add it to your server's environment as `ALACRITY_API_TOKEN`
28
-
29
- OR
30
-
31
- Set it manually with an initializer (config/alacrity.rb)
32
- AlacrityRails::Config.api_token = 'your token'>
33
- end
34
-
35
- def bad_response_message(server_message)
36
- %<
37
- Oh no! Its seems like we have a problem!
38
-
39
- #{server_message}>
40
- end
41
-
42
- def success_message
43
- %<
44
- Everything looks good!
45
-
46
- You should see data on https://alacrityapp.com shortly after your app receives traffic.>
47
- end
48
-
49
- def assistance_message
50
- %<
51
- If you need assistance or have any questions, send an email to support@alacrityapp.com or tweet @alacrityapp and we'll help you out!
52
- >
53
- end
54
- end
55
- end
@@ -1,8 +0,0 @@
1
- namespace :alacrity do
2
-
3
- desc "Verifies your app's ability to communicate with Alacrity"
4
- task :test_connection => :environment do
5
- AlacrityRails::ConnectionTester.run
6
- end
7
-
8
- end