leafy-rack 0.3.0 → 0.3.1
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 +4 -4
- data/.gitignore +34 -4
- data/.travis.yml +19 -0
- data/CHANGELOG.md +7 -0
- data/Gemfile +1 -8
- data/README.md +10 -148
- data/examples/datadog/.gitignore +2 -0
- data/examples/datadog/Gemfile +12 -0
- data/examples/datadog/Mavenfile +22 -0
- data/examples/datadog/README.md +16 -0
- data/examples/datadog/lib/java_gauge.rb +20 -0
- data/examples/datadog/lib/metrics.rb +18 -0
- data/examples/datadog/lib/ruby_gauge.rb +19 -0
- data/examples/hellowarld/.gitignore +3 -0
- data/examples/hellowarld/Gemfile +15 -0
- data/examples/hellowarld/Mavenfile +162 -0
- data/examples/hellowarld/README.md +44 -0
- data/examples/hellowarld/Rakefile +13 -0
- data/examples/hellowarld/WEB-INF/web.xml +31 -0
- data/examples/hellowarld/app/hellowarld.rb +55 -0
- data/examples/hellowarld/app/views/person.erb +52 -0
- data/examples/hellowarld/config.ru +12 -0
- data/leafy-complete.gemspec +22 -0
- data/leafy-health/.gitignore +4 -0
- data/leafy-health/Gemfile +7 -0
- data/leafy-health/LICENSE +22 -0
- data/leafy-health/README.md +123 -0
- data/leafy-health/Rakefile +14 -0
- data/leafy-health/leafy-health.gemspec +27 -0
- data/leafy-health/lib/leafy-health.rb +2 -0
- data/leafy-health/lib/leafy-health_jars.rb +7 -0
- data/leafy-health/lib/leafy/health.rb +2 -0
- data/leafy-health/lib/leafy/health/health_check.rb +72 -0
- data/leafy-health/lib/leafy/health/registry.rb +55 -0
- data/leafy-health/lib/leafy/health/version.rb +6 -0
- data/leafy-health/spec/registry_spec.rb +164 -0
- data/leafy-health/spec/setup.rb +1 -0
- data/leafy-logger/.gitignore +5 -0
- data/leafy-logger/Gemfile +9 -0
- data/leafy-logger/LICENSE +22 -0
- data/leafy-logger/README.md +174 -0
- data/{Rakefile → leafy-logger/Rakefile} +0 -0
- data/leafy-logger/leafy-logger.gemspec +32 -0
- data/leafy-logger/lib/leafy-logger.rb +1 -0
- data/leafy-logger/lib/leafy-logger_jars.rb +33 -0
- data/leafy-logger/lib/leafy/logger.rb +1 -0
- data/leafy-logger/lib/leafy/logger/appender_factories.rb +89 -0
- data/leafy-logger/lib/leafy/logger/factory.rb +141 -0
- data/leafy-logger/lib/leafy/logger/version.rb +6 -0
- data/leafy-logger/spec/appender_factories_spec.rb +147 -0
- data/leafy-logger/spec/factory_spec.rb +176 -0
- data/leafy-logger/spec/logging.yml +16 -0
- data/leafy-logger/spec/setup.rb +2 -0
- data/leafy-metrics/.gitignore +5 -0
- data/leafy-metrics/Gemfile +7 -0
- data/leafy-metrics/LICENSE +22 -0
- data/leafy-metrics/README.md +221 -0
- data/leafy-metrics/Rakefile +14 -0
- data/leafy-metrics/leafy-metrics.gemspec +29 -0
- data/leafy-metrics/lib/leafy-metrics.rb +2 -0
- data/leafy-metrics/lib/leafy-metrics_jars.rb +5 -0
- data/leafy-metrics/lib/leafy/metrics.rb +2 -0
- data/leafy-metrics/lib/leafy/metrics/console_reporter.rb +32 -0
- data/leafy-metrics/lib/leafy/metrics/csv_reporter.rb +26 -0
- data/leafy-metrics/lib/leafy/metrics/graphite/graphite.rb +28 -0
- data/leafy-metrics/lib/leafy/metrics/graphite/graphite_reporter.rb +43 -0
- data/leafy-metrics/lib/leafy/metrics/registry.rb +108 -0
- data/leafy-metrics/lib/leafy/metrics/reporter.rb +51 -0
- data/leafy-metrics/lib/leafy/metrics/version.rb +6 -0
- data/leafy-metrics/spec/console_reporter_spec.rb +72 -0
- data/leafy-metrics/spec/csv_reporter_spec.rb +75 -0
- data/leafy-metrics/spec/graphite_reporter_spec.rb +72 -0
- data/leafy-metrics/spec/graphite_spec.rb +23 -0
- data/leafy-metrics/spec/registry_spec.rb +106 -0
- data/leafy-metrics/spec/setup.rb +10 -0
- data/leafy-rack/.gitignore +4 -0
- data/leafy-rack/Gemfile +10 -0
- data/leafy-rack/LICENSE +22 -0
- data/leafy-rack/README.md +155 -0
- data/leafy-rack/Rakefile +14 -0
- data/{leafy-rack.gemspec → leafy-rack/leafy-rack.gemspec} +2 -2
- data/{lib → leafy-rack/lib}/leafy-rack.rb +0 -0
- data/{lib → leafy-rack/lib}/leafy-rack_jars.rb +0 -0
- data/{lib → leafy-rack/lib}/leafy/instrumented/basic_instrumented.rb +0 -0
- data/{lib → leafy-rack/lib}/leafy/instrumented/instrumented.rb +0 -0
- data/{lib → leafy-rack/lib}/leafy/json/health_writer.rb +0 -0
- data/{lib → leafy-rack/lib}/leafy/json/json_writer.rb +0 -0
- data/{lib → leafy-rack/lib}/leafy/json/metrics_writer.rb +0 -0
- data/{lib → leafy-rack/lib}/leafy/rack.rb +0 -0
- data/{lib → leafy-rack/lib}/leafy/rack/admin.rb +0 -0
- data/{lib → leafy-rack/lib}/leafy/rack/health.rb +0 -0
- data/{lib → leafy-rack/lib}/leafy/rack/instrumented.rb +0 -0
- data/{lib → leafy-rack/lib}/leafy/rack/metrics.rb +0 -0
- data/{lib → leafy-rack/lib}/leafy/rack/ping.rb +0 -0
- data/{lib → leafy-rack/lib}/leafy/rack/thread_dump.rb +0 -0
- data/{lib → leafy-rack/lib}/leafy/rack/version.rb +1 -1
- data/{spec → leafy-rack/spec}/admin_rack_spec.rb +0 -0
- data/{spec → leafy-rack/spec}/basic_instrumented_spec.rb +0 -0
- data/{spec → leafy-rack/spec}/health_rack_spec.rb +0 -0
- data/{spec → leafy-rack/spec}/health_writer_spec.rb +0 -0
- data/{spec → leafy-rack/spec}/instrumented_rack_spec.rb +0 -0
- data/{spec → leafy-rack/spec}/instrumented_spec.rb +0 -0
- data/{spec → leafy-rack/spec}/metrics_rack_spec.rb +0 -0
- data/{spec → leafy-rack/spec}/metrics_writer_spec.rb +0 -0
- data/{spec → leafy-rack/spec}/ping_rack_spec.rb +0 -0
- data/{spec → leafy-rack/spec}/setup.rb +0 -0
- data/{spec → leafy-rack/spec}/thread_dump_spec.rb +0 -0
- metadata +110 -34
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# show case for leafy gems
|
|
2
|
+
|
|
3
|
+
get all the gems in place
|
|
4
|
+
|
|
5
|
+
gem install jar-dependencies --development
|
|
6
|
+
bundle install
|
|
7
|
+
|
|
8
|
+
## starting the server
|
|
9
|
+
|
|
10
|
+
### with jetty
|
|
11
|
+
|
|
12
|
+
rmvn jetty:run
|
|
13
|
+
|
|
14
|
+
the urls:
|
|
15
|
+
|
|
16
|
+
[http://localhost:8080/app](http://localhost:8080/app)
|
|
17
|
+
[http://localhost:8080/admin](http://localhost:8080/admin)
|
|
18
|
+
|
|
19
|
+
### with tomcat or wildfly
|
|
20
|
+
|
|
21
|
+
rmvn tomcat:run
|
|
22
|
+
rmvn wildfly:run
|
|
23
|
+
|
|
24
|
+
the urls:
|
|
25
|
+
|
|
26
|
+
[http://localhost:8080/hellowarld/app](http://localhost:8080/hellowarld/app)
|
|
27
|
+
[http://localhost:8080/hellowarld/admin](http://localhost:8080/hellowarld/admin)
|
|
28
|
+
|
|
29
|
+
## configurations
|
|
30
|
+
|
|
31
|
+
* Mavenfile
|
|
32
|
+
* WEB-INF/web.xml
|
|
33
|
+
|
|
34
|
+
## run some integration test
|
|
35
|
+
|
|
36
|
+
rmvn verify
|
|
37
|
+
|
|
38
|
+
or
|
|
39
|
+
|
|
40
|
+
rake
|
|
41
|
+
|
|
42
|
+
with jruby-9k due to some bundler bug you need to run (not needed with rvm)
|
|
43
|
+
|
|
44
|
+
BUNDLE_DISABLE_SHARED_GEMS=true rake
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<!DOCTYPE web-app PUBLIC
|
|
2
|
+
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
|
|
3
|
+
"http://java.sun.com/dtd/web-app_2_3.dtd">
|
|
4
|
+
<web-app>
|
|
5
|
+
<context-param>
|
|
6
|
+
<param-name>public.root</param-name>
|
|
7
|
+
<param-value>/</param-value>
|
|
8
|
+
</context-param>
|
|
9
|
+
<context-param>
|
|
10
|
+
<param-name>rack.env</param-name>
|
|
11
|
+
<param-value>production</param-value>
|
|
12
|
+
</context-param>
|
|
13
|
+
<!-- needed for wildfly -->
|
|
14
|
+
<context-param>
|
|
15
|
+
<param-name>gem.path</param-name>
|
|
16
|
+
<param-value>WEB-INF/classes</param-value>
|
|
17
|
+
</context-param>
|
|
18
|
+
|
|
19
|
+
<filter>
|
|
20
|
+
<filter-name>RackFilter</filter-name>
|
|
21
|
+
<filter-class>org.jruby.rack.RackFilter</filter-class>
|
|
22
|
+
</filter>
|
|
23
|
+
<filter-mapping>
|
|
24
|
+
<filter-name>RackFilter</filter-name>
|
|
25
|
+
<url-pattern>/*</url-pattern>
|
|
26
|
+
</filter-mapping>
|
|
27
|
+
|
|
28
|
+
<listener>
|
|
29
|
+
<listener-class>org.jruby.rack.RackServletContextListener</listener-class>
|
|
30
|
+
</listener>
|
|
31
|
+
</web-app>
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
require 'sinatra'
|
|
2
|
+
require 'json'
|
|
3
|
+
require 'ostruct'
|
|
4
|
+
require 'leafy/metrics'
|
|
5
|
+
require 'leafy/health'
|
|
6
|
+
require 'leafy/instrumented/instrumented'
|
|
7
|
+
require 'leafy/rack/admin'
|
|
8
|
+
require 'leafy/rack/instrumented'
|
|
9
|
+
|
|
10
|
+
data = OpenStruct.new
|
|
11
|
+
data.surname = 'meier'
|
|
12
|
+
data.firstname = 'christian'
|
|
13
|
+
|
|
14
|
+
configure do
|
|
15
|
+
metrics = Leafy::Metrics::Registry.new
|
|
16
|
+
health = Leafy::Health::Registry.new
|
|
17
|
+
|
|
18
|
+
use Leafy::Rack::Admin, metrics, health
|
|
19
|
+
use Leafy::Rack::Metrics, metrics
|
|
20
|
+
use Leafy::Rack::Health, health
|
|
21
|
+
use Leafy::Rack::Ping
|
|
22
|
+
use Leafy::Rack::ThreadDump
|
|
23
|
+
use Leafy::Rack::Instrumented, Leafy::Instrumented::Instrumented.new( metrics, 'webapp' )
|
|
24
|
+
|
|
25
|
+
metrics.register_gauge('app.data_length' ) do
|
|
26
|
+
data.surname.length + data.firstname.length
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
health.register( 'app.health' ) do
|
|
30
|
+
if data.surname.length + data.firstname.length < 4
|
|
31
|
+
"stored names are too short"
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
set :histogram, metrics.register_histogram( 'app.name_length' )
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
get '/app' do
|
|
40
|
+
p @person = data
|
|
41
|
+
erb :person
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
get '/person' do
|
|
45
|
+
p @person = data
|
|
46
|
+
content_type 'application/json'
|
|
47
|
+
{ :surname => data.surname, :firstname => data.firstname }.to_json
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
patch '/person' do
|
|
51
|
+
payload = JSON.parse request.body.read
|
|
52
|
+
data.send :"#{payload.keys.first}=", payload.values.first
|
|
53
|
+
settings.histogram.update( data.surname.length + data.firstname.length )
|
|
54
|
+
status 205
|
|
55
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<title><%= @person.firstname %> <%= @person.surname %></title>
|
|
5
|
+
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
|
|
6
|
+
<script>
|
|
7
|
+
|
|
8
|
+
$(document).ready(function(){
|
|
9
|
+
|
|
10
|
+
$("#reload").click(function(){
|
|
11
|
+
$.getJSON("person", function(result) {
|
|
12
|
+
$("title").text(result.firstname + " " + result.surname);
|
|
13
|
+
})
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
$("#firstname").last().click(function(){
|
|
17
|
+
$.ajax({ url:"person",
|
|
18
|
+
contentType:"application/json",
|
|
19
|
+
type:"PATCH",
|
|
20
|
+
data: '{"firstname":"' + $("#first").val() + '"}',
|
|
21
|
+
success:function(result){
|
|
22
|
+
}});
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
$("#surname").last().click(function(){
|
|
26
|
+
$.ajax({ url:"person",
|
|
27
|
+
contentType:"application/json",
|
|
28
|
+
type:"PATCH",
|
|
29
|
+
data: '{"surname":"' + $("#sur").val() + '"}',
|
|
30
|
+
success:function(result){
|
|
31
|
+
}});
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
});
|
|
35
|
+
</script>
|
|
36
|
+
</head>
|
|
37
|
+
<body>
|
|
38
|
+
|
|
39
|
+
<h1>person</h1>
|
|
40
|
+
|
|
41
|
+
<div>
|
|
42
|
+
Firstname <input type="text" size="30" id="first" value="<%=@person.firstname %>" /> <button id="firstname">update</button>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
<div>
|
|
46
|
+
Surname <input type="text" size="30" id="sur" value="<%=@person.surname %>" /> <button id="surname">update</button>
|
|
47
|
+
</div>
|
|
48
|
+
|
|
49
|
+
<button id="reload">update title from server data</button>
|
|
50
|
+
|
|
51
|
+
</body>
|
|
52
|
+
</html>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#\ -s webrick
|
|
2
|
+
|
|
3
|
+
$LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__)))
|
|
4
|
+
$LOAD_PATH.unshift($servlet_context.getRealPath("/WEB-INF")) if defined?($servlet_context)
|
|
5
|
+
|
|
6
|
+
require 'bundler/setup'
|
|
7
|
+
|
|
8
|
+
require 'app/hellowarld'
|
|
9
|
+
|
|
10
|
+
map '/' do
|
|
11
|
+
run Sinatra::Application
|
|
12
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
#-*- mode: ruby -*-
|
|
2
|
+
|
|
3
|
+
Gem::Specification.new do |s|
|
|
4
|
+
s.name = 'leafy-complete'
|
|
5
|
+
s.version = '0.3.1'
|
|
6
|
+
s.author = 'Christian Meier'
|
|
7
|
+
s.email = [ 'christian.meier@lookout.com' ]
|
|
8
|
+
|
|
9
|
+
s.license = 'MIT'
|
|
10
|
+
s.summary = %q('meta' gem which pulls all the leafy gems)
|
|
11
|
+
s.homepage = 'https://github.com/lookout/leafy'
|
|
12
|
+
s.description = %q(this gem has no code only dependencies to all the other leafy gems. it is meant as convenient way to pull in all leafy gems in one go)
|
|
13
|
+
|
|
14
|
+
s.files = ['leafy-complete.gemspec', 'README.md', 'LICENSE']
|
|
15
|
+
|
|
16
|
+
s.add_runtime_dependency 'leafy-metrics', '~> 0.2.0'
|
|
17
|
+
s.add_runtime_dependency 'leafy-health', '~> 0.2.0'
|
|
18
|
+
s.add_runtime_dependency 'leafy-rack', '~> 0.2.0'
|
|
19
|
+
s.add_runtime_dependency 'leafy-logger', '~> 0.2.0'
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# vim: syntax=Ruby
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2015 Lookout
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
22
|
+
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# Leafy-Health
|
|
2
|
+
|
|
3
|
+
## installation
|
|
4
|
+
|
|
5
|
+
via rubygems
|
|
6
|
+
```
|
|
7
|
+
gem install leafy-health
|
|
8
|
+
```
|
|
9
|
+
or add to your Gemfile
|
|
10
|
+
```
|
|
11
|
+
gem 'leafy-health'
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
installing the gem also takes care of the jar dependencies with jruby-1.7.16+
|
|
15
|
+
|
|
16
|
+
## usage
|
|
17
|
+
|
|
18
|
+
an instance of the registry ```Leafy::Health::Registry``` can register and unresgister health-checks under a given name. any object with a #call method will do or block on the register method.
|
|
19
|
+
|
|
20
|
+
registry = Leafy::Health::Registry.new
|
|
21
|
+
|
|
22
|
+
you can ask the registry which names have already health-checks registered:
|
|
23
|
+
|
|
24
|
+
registry.names
|
|
25
|
+
|
|
26
|
+
### simple health check
|
|
27
|
+
|
|
28
|
+
simple in the sense that either call returns ```nil``` which means healthy or a message which is the unhealthy state. the message can be any ```String```.
|
|
29
|
+
|
|
30
|
+
registry.register( 'simple.block') do
|
|
31
|
+
if app.crashed
|
|
32
|
+
'application crashed'
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
or with a health-check object
|
|
37
|
+
|
|
38
|
+
class AppCheck < Leafy::Health::HealthCheck
|
|
39
|
+
def call
|
|
40
|
+
if app.crashed
|
|
41
|
+
'application crashed'
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
registry.register( 'simple.class', AppCheck.new )
|
|
46
|
+
|
|
47
|
+
### health checks with message on healthy state
|
|
48
|
+
|
|
49
|
+
here the call method gets an argument which allows to create both
|
|
50
|
+
healthy and unhealthy states with message.
|
|
51
|
+
|
|
52
|
+
registry.register( 'app.block') do
|
|
53
|
+
if app.crashed
|
|
54
|
+
unhealthy( 'application crashed' )
|
|
55
|
+
else
|
|
56
|
+
healthy( 'application ok' )
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
or with a health-check object
|
|
61
|
+
|
|
62
|
+
class AppCheck < Leafy::Health::HealthCheck
|
|
63
|
+
def call
|
|
64
|
+
if app.crashed
|
|
65
|
+
unhealthy( 'application crashed' )
|
|
66
|
+
else
|
|
67
|
+
healthy( 'application ok' )
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
registry.register( 'app.class', AppCheck.new )
|
|
72
|
+
|
|
73
|
+
### health checks with structural data as message
|
|
74
|
+
|
|
75
|
+
registry.register( 'app.block') do
|
|
76
|
+
if app.crashed
|
|
77
|
+
unhealthy( :host => 'localhost', :msg => 'not good' )
|
|
78
|
+
else
|
|
79
|
+
healthy( :host => 'localhost', :msg => 'application ok' )
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
or as health-check object
|
|
84
|
+
|
|
85
|
+
class AppCheck < Leafy::Health::HealthCheck
|
|
86
|
+
def call
|
|
87
|
+
if app.crashed
|
|
88
|
+
unhealthy( :host => 'localhost', :msg => 'application crashed' )
|
|
89
|
+
else
|
|
90
|
+
healthy( :host => 'localhost', :msg => 'application ok' )
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
registry.register( 'app.class', AppCheck.new )
|
|
95
|
+
|
|
96
|
+
### unregister health checks
|
|
97
|
+
|
|
98
|
+
registry.unregister( 'app.class' )
|
|
99
|
+
|
|
100
|
+
### builtin ThreadDeadlockHeathCheck
|
|
101
|
+
|
|
102
|
+
registry.register( 'app.deadlock', Leafy::Health::ThreadDeadlockHeathCheck.new )
|
|
103
|
+
|
|
104
|
+
### note
|
|
105
|
+
|
|
106
|
+
currently there is not further introspection on the registry and its health-check. with the ```Leafy::Json::HealthWriter``` (from leafy-rack) you can get a json representation of the current **health report**
|
|
107
|
+
|
|
108
|
+
Leafy::Json::HealthWriter.to_json( registry.health )
|
|
109
|
+
|
|
110
|
+
## developement
|
|
111
|
+
|
|
112
|
+
get all the gems and jars in place
|
|
113
|
+
|
|
114
|
+
gem install jar-dependencies --development
|
|
115
|
+
bundle install
|
|
116
|
+
|
|
117
|
+
for running all specs
|
|
118
|
+
|
|
119
|
+
rake
|
|
120
|
+
|
|
121
|
+
or
|
|
122
|
+
|
|
123
|
+
rspec spec/reporter_spec.rb
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#-*- mode: ruby -*-
|
|
2
|
+
|
|
3
|
+
require "rspec/core/rake_task"
|
|
4
|
+
RSpec::Core::RakeTask.new
|
|
5
|
+
|
|
6
|
+
require "yard"
|
|
7
|
+
YARD::Rake::YardocTask.new do |t|
|
|
8
|
+
t.files = ['lib/**/*.rb']
|
|
9
|
+
t.options += ["--title", "Leafy Health API"]
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
task :default => [ :spec ]
|
|
13
|
+
|
|
14
|
+
# vim: syntax=Ruby
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#-*- mode: ruby -*-
|
|
2
|
+
|
|
3
|
+
require File.expand_path( '../lib/leafy/health/version', __FILE__ )
|
|
4
|
+
|
|
5
|
+
Gem::Specification.new do |s|
|
|
6
|
+
s.name = 'leafy-health'
|
|
7
|
+
s.version = Leafy::Health::VERSION
|
|
8
|
+
s.author = 'christian meier'
|
|
9
|
+
s.email = [ 'christian.meier@lookout.com' ]
|
|
10
|
+
|
|
11
|
+
s.license = 'MIT'
|
|
12
|
+
s.summary = %q(provides an API to register healthchecks)
|
|
13
|
+
s.homepage = 'https://github.com/lookout/leafy'
|
|
14
|
+
s.description = %q(provides an API to register healthchecks which uses dropwizrd-metrics-healthchecks)
|
|
15
|
+
|
|
16
|
+
s.files = `git ls-files`.split($/)
|
|
17
|
+
|
|
18
|
+
s.requirements << 'jar io.dropwizard.metrics:metrics-healthchecks, 3.1.0'
|
|
19
|
+
s.requirements << 'jar io.dropwizard.metrics:metrics-jvm, 3.1.0'
|
|
20
|
+
|
|
21
|
+
s.add_runtime_dependency 'jar-dependencies', '~> 0.1.8'
|
|
22
|
+
s.add_development_dependency 'rspec', '~> 3.1.0'
|
|
23
|
+
s.add_development_dependency 'yard', '~> 0.8.7'
|
|
24
|
+
s.add_development_dependency 'rake', '~> 10.2'
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# vim: syntax=Ruby
|