leafy-rack 0.4.0-java

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,63 @@
1
+ require_relative 'setup'
2
+
3
+ require 'leafy/rack/ping'
4
+ require 'yaml'
5
+ require 'json'
6
+
7
+ describe Leafy::Rack::Ping do
8
+
9
+ subject { Leafy::Rack::Ping }
10
+
11
+ let( :expected_headers ) do
12
+ { 'Content-Type' => 'text/plain',
13
+ 'Cache-Control' => 'must-revalidate,no-cache,no-store' }
14
+ end
15
+
16
+ let( :result ){ [ 200, nil, [] ] }
17
+ let( :app ) do
18
+ Proc.new() { result }
19
+ end
20
+
21
+ it 'has response' do
22
+ status, headers, body = subject.response
23
+ expect( status ).to eq 200
24
+ expect( headers.to_yaml).to eq expected_headers.to_yaml
25
+ expect( body ).to eq ['pong']
26
+ end
27
+
28
+ describe 'default path' do
29
+ subject { Leafy::Rack::Ping.new( app ) }
30
+
31
+ it 'passes request if not matches the given path' do
32
+ env = { 'PATH_INFO'=> '/something' }
33
+ expect( subject.call( env ) ).to eq result
34
+ end
35
+
36
+ it 'pongs on ping path' do
37
+ env = { 'PATH_INFO'=> '/ping' }
38
+ status, headers, body = subject.call( env )
39
+ expect( status ).to eq 200
40
+ expect( headers.to_yaml).to eq expected_headers.to_yaml
41
+ expect( body ).to eq ['pong']
42
+ end
43
+ end
44
+
45
+ describe 'custom path' do
46
+ subject { Leafy::Rack::Ping.new( app, '/custom' ) }
47
+
48
+ it 'passes request if not matches the given path' do
49
+ env = { 'PATH_INFO'=> '/something' }
50
+ expect( subject.call( env ) ).to eq result
51
+ env = { 'PATH_INFO'=> '/ping' }
52
+ expect( subject.call( env ) ).to eq result
53
+ end
54
+
55
+ it 'pongs on ping path' do
56
+ env = { 'PATH_INFO'=> '/custom' }
57
+ status, headers, body = subject.call( env )
58
+ expect( status ).to eq 200
59
+ expect( headers.to_yaml).to eq expected_headers.to_yaml
60
+ expect( body ).to eq ['pong']
61
+ end
62
+ end
63
+ end
data/spec/setup.rb ADDED
@@ -0,0 +1,3 @@
1
+ $LOAD_PATH.unshift File.expand_path( '../../lib', __FILE__ )
2
+ $LOAD_PATH.unshift File.expand_path( '../../../leafy-health/lib', __FILE__ )
3
+ $LOAD_PATH.unshift File.expand_path( '../../../leafy-metrics/lib', __FILE__ )
@@ -0,0 +1,59 @@
1
+ require_relative 'setup'
2
+
3
+ require 'leafy/rack/thread_dump'
4
+ require 'yaml'
5
+ require 'json'
6
+
7
+ describe Leafy::Rack::ThreadDump do
8
+
9
+ subject { Leafy::Rack::ThreadDump }
10
+
11
+ let( :expected_headers ) do
12
+ { 'Content-Type' => 'text/plain',
13
+ 'Cache-Control' => 'must-revalidate,no-cache,no-store' }
14
+ end
15
+
16
+ let( :result ){ [ 200, nil, [] ] }
17
+ let( :app ) do
18
+ Proc.new() { result }
19
+ end
20
+
21
+ it 'has response' do
22
+ status, headers, body = subject.response
23
+ expect( status ).to eq 200
24
+ expect( headers.to_yaml).to eq expected_headers.to_yaml
25
+ expect( body.join.count( "\n" ) ).to be > 100
26
+ end
27
+
28
+ describe 'default path' do
29
+ it 'passes request if not matches the given path' do
30
+ env = { 'PATH_INFO'=> '/something' }
31
+ expect( subject.new( app ).call( env ) ).to eq result
32
+ end
33
+
34
+ it 'thread dump on threads path' do
35
+ env = { 'PATH_INFO'=> '/threads' }
36
+ status, headers, body = subject.new( app ).call( env )
37
+ expect( status ).to eq 200
38
+ expect( headers.to_yaml).to eq expected_headers.to_yaml
39
+ expect( body.join.count( "\n" ) ).to be > 100
40
+ end
41
+ end
42
+
43
+ describe 'custom path' do
44
+ it 'passes request if not matches the given path' do
45
+ env = { 'PATH_INFO'=> '/something' }
46
+ expect( subject.new( app, '/custom' ).call( env ) ).to eq result
47
+ env = { 'PATH_INFO'=> '/threads' }
48
+ expect( subject.new( app, '/custom' ).call( env ) ).to eq result
49
+ end
50
+
51
+ it 'thread dump on threads path' do
52
+ env = { 'PATH_INFO'=> '/custom' }
53
+ status, headers, body = subject.new( app, '/custom' ).call( env )
54
+ expect( status ).to eq 200
55
+ expect( headers.to_yaml).to eq expected_headers.to_yaml
56
+ expect( body.join.count( "\n" ) ).to be > 100
57
+ end
58
+ end
59
+ end
metadata ADDED
@@ -0,0 +1,165 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: leafy-rack
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.0
5
+ platform: java
6
+ authors:
7
+ - christian meier
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-04-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ~>
17
+ - !ruby/object:Gem::Version
18
+ version: 0.1.8
19
+ name: jar-dependencies
20
+ prerelease: false
21
+ type: :runtime
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: 0.1.8
27
+ - !ruby/object:Gem::Dependency
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 0.4.0
33
+ name: leafy-metrics
34
+ prerelease: false
35
+ type: :runtime
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: 0.4.0
41
+ - !ruby/object:Gem::Dependency
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ version: 0.4.0
47
+ name: leafy-health
48
+ prerelease: false
49
+ type: :runtime
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 0.4.0
55
+ - !ruby/object:Gem::Dependency
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ~>
59
+ - !ruby/object:Gem::Version
60
+ version: '3.1'
61
+ name: rspec
62
+ prerelease: false
63
+ type: :development
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: '3.1'
69
+ - !ruby/object:Gem::Dependency
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ~>
73
+ - !ruby/object:Gem::Version
74
+ version: 0.8.7
75
+ name: yard
76
+ prerelease: false
77
+ type: :development
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: 0.8.7
83
+ - !ruby/object:Gem::Dependency
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ~>
87
+ - !ruby/object:Gem::Version
88
+ version: '10.2'
89
+ name: rake
90
+ prerelease: false
91
+ type: :development
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: '10.2'
97
+ description: rack middleware to expose leafy metrics/health data as well a ping rack and a thread-dump rack
98
+ email:
99
+ - christian.meier@lookout.com
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - .gitignore
105
+ - Gemfile
106
+ - LICENSE
107
+ - README.md
108
+ - Rakefile
109
+ - leafy-rack.gemspec
110
+ - lib/leafy-rack.rb
111
+ - lib/leafy-rack_jars.rb
112
+ - lib/leafy/instrumented/basic_instrumented.rb
113
+ - lib/leafy/instrumented/collected_instrumented.rb
114
+ - lib/leafy/instrumented/instrumented.rb
115
+ - lib/leafy/json/health_writer.rb
116
+ - lib/leafy/json/json_writer.rb
117
+ - lib/leafy/json/metrics_writer.rb
118
+ - lib/leafy/rack.rb
119
+ - lib/leafy/rack/admin.rb
120
+ - lib/leafy/rack/health.rb
121
+ - lib/leafy/rack/instrumented.rb
122
+ - lib/leafy/rack/metrics.rb
123
+ - lib/leafy/rack/ping.rb
124
+ - lib/leafy/rack/thread_dump.rb
125
+ - lib/leafy/rack/version.rb
126
+ - spec/admin_rack_spec.rb
127
+ - spec/basic_instrumented_spec.rb
128
+ - spec/collected_instrumented_spec.rb
129
+ - spec/health_rack_spec.rb
130
+ - spec/health_writer_spec.rb
131
+ - spec/instrumented_rack_spec.rb
132
+ - spec/instrumented_spec.rb
133
+ - spec/metrics_rack_spec.rb
134
+ - spec/metrics_writer_spec.rb
135
+ - spec/ping_rack_spec.rb
136
+ - spec/setup.rb
137
+ - spec/thread_dump_spec.rb
138
+ homepage: https://github.com/lookout/leafy
139
+ licenses:
140
+ - MIT
141
+ metadata: {}
142
+ post_install_message:
143
+ rdoc_options: []
144
+ require_paths:
145
+ - lib
146
+ required_ruby_version: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - '>='
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ required_rubygems_version: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - '>='
154
+ - !ruby/object:Gem::Version
155
+ version: '0'
156
+ requirements:
157
+ - jar io.dropwizard.metrics:metrics-json, 3.1.0
158
+ - jar io.dropwizard.metrics:metrics-jvm, 3.1.0
159
+ rubyforge_project:
160
+ rubygems_version: 2.4.5
161
+ signing_key:
162
+ specification_version: 4
163
+ summary: rack middleware to expose leafy metrics/health data and more
164
+ test_files: []
165
+ has_rdoc: