vitals 0.0.2 → 0.3.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 +7 -0
- data/.gitignore +7 -0
- data/.travis.yml +15 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +157 -0
- data/Guardfile +11 -0
- data/LICENSE.txt +21 -0
- data/README.md +135 -9
- data/Rakefile +17 -31
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/integration/multiverse/grape-on-rack/.gitignore +7 -0
- data/integration/multiverse/grape-on-rack/.rspec +2 -0
- data/integration/multiverse/grape-on-rack/.rubocop.yml +2 -0
- data/integration/multiverse/grape-on-rack/.rubocop_todo.yml +50 -0
- data/integration/multiverse/grape-on-rack/.travis.yml +12 -0
- data/integration/multiverse/grape-on-rack/Gemfile +28 -0
- data/integration/multiverse/grape-on-rack/Gemfile.lock +187 -0
- data/integration/multiverse/grape-on-rack/Guardfile +8 -0
- data/integration/multiverse/grape-on-rack/LICENSE +21 -0
- data/integration/multiverse/grape-on-rack/README.md +88 -0
- data/integration/multiverse/grape-on-rack/Rakefile +27 -0
- data/integration/multiverse/grape-on-rack/api/content_type.rb +18 -0
- data/integration/multiverse/grape-on-rack/api/entities.rb +28 -0
- data/integration/multiverse/grape-on-rack/api/get_json.rb +24 -0
- data/integration/multiverse/grape-on-rack/api/header_versioning.rb +9 -0
- data/integration/multiverse/grape-on-rack/api/path_versioning.rb +9 -0
- data/integration/multiverse/grape-on-rack/api/ping.rb +8 -0
- data/integration/multiverse/grape-on-rack/api/post_json.rb +11 -0
- data/integration/multiverse/grape-on-rack/api/post_put.rb +24 -0
- data/integration/multiverse/grape-on-rack/api/rescue_from.rb +11 -0
- data/integration/multiverse/grape-on-rack/api/upload_file.rb +22 -0
- data/integration/multiverse/grape-on-rack/api/wrap_response.rb +14 -0
- data/integration/multiverse/grape-on-rack/api/wrap_response_decorator.rb +15 -0
- data/integration/multiverse/grape-on-rack/app/acme_app.rb +49 -0
- data/integration/multiverse/grape-on-rack/app/api.rb +18 -0
- data/integration/multiverse/grape-on-rack/config/application.rb +23 -0
- data/integration/multiverse/grape-on-rack/config/boot.rb +2 -0
- data/integration/multiverse/grape-on-rack/config/environment.rb +3 -0
- data/integration/multiverse/grape-on-rack/config/newrelic.yml +255 -0
- data/integration/multiverse/grape-on-rack/config.ru +11 -0
- data/integration/multiverse/grape-on-rack/public/errors/404.html +15 -0
- data/integration/multiverse/grape-on-rack/public/errors/500.html +15 -0
- data/integration/multiverse/grape-on-rack/public/images/index.html +1 -0
- data/integration/multiverse/grape-on-rack/public/images/rack-logo.png +0 -0
- data/integration/multiverse/grape-on-rack/public/index.html +23 -0
- data/integration/multiverse/grape-on-rack/public/scripts/jquery-1.7.1.min.js +4 -0
- data/integration/multiverse/grape-on-rack/public/scripts/ring.js +17 -0
- data/integration/multiverse/grape-on-rack/spec/api/post_put_spec.rb +21 -0
- data/integration/multiverse/grape-on-rack/spec/fixtures/grape_logo.png +0 -0
- data/integration/multiverse/grape-on-rack/spec/spec_helper.rb +24 -0
- data/integration/multiverse/grape-on-rails/.gitignore +16 -0
- data/integration/multiverse/grape-on-rails/.rspec +2 -0
- data/integration/multiverse/grape-on-rails/.rubocop.yml +6 -0
- data/integration/multiverse/grape-on-rails/.rubocop_todo.yml +33 -0
- data/integration/multiverse/grape-on-rails/.travis.yml +17 -0
- data/integration/multiverse/grape-on-rails/Gemfile +22 -0
- data/integration/multiverse/grape-on-rails/Gemfile.lock +238 -0
- data/integration/multiverse/grape-on-rails/README.md +29 -0
- data/integration/multiverse/grape-on-rails/Rakefile +16 -0
- data/integration/multiverse/grape-on-rails/app/api/acme/ping.rb +8 -0
- data/integration/multiverse/grape-on-rails/app/api/acme/post.rb +10 -0
- data/integration/multiverse/grape-on-rails/app/api/acme/protected.rb +13 -0
- data/integration/multiverse/grape-on-rails/app/api/acme/raise.rb +8 -0
- data/integration/multiverse/grape-on-rails/app/api/api.rb +8 -0
- data/integration/multiverse/grape-on-rails/app/assets/images/rails.png +0 -0
- data/integration/multiverse/grape-on-rails/app/assets/javascripts/application.js +15 -0
- data/integration/multiverse/grape-on-rails/app/assets/javascripts/welcome.js.coffee +3 -0
- data/integration/multiverse/grape-on-rails/app/assets/stylesheets/application.css +13 -0
- data/integration/multiverse/grape-on-rails/app/assets/stylesheets/welcome.css.scss +3 -0
- data/{test/dummy → integration/multiverse/grape-on-rails}/app/controllers/application_controller.rb +0 -0
- data/integration/multiverse/grape-on-rails/app/controllers/welcome_controller.rb +4 -0
- data/{test/dummy → integration/multiverse/grape-on-rails}/app/helpers/application_helper.rb +0 -0
- data/integration/multiverse/grape-on-rails/app/helpers/welcome_helper.rb +2 -0
- data/{test/dummy/db/development.sqlite3 → integration/multiverse/grape-on-rails/app/mailers/.gitkeep} +0 -0
- data/{test/dummy/db/test.sqlite3 → integration/multiverse/grape-on-rails/app/models/.gitkeep} +0 -0
- data/{test/dummy → integration/multiverse/grape-on-rails}/app/views/layouts/application.html.erb +2 -2
- data/integration/multiverse/grape-on-rails/app/views/welcome/index.html.erb +6 -0
- data/integration/multiverse/grape-on-rails/bin/bundle +3 -0
- data/integration/multiverse/grape-on-rails/bin/rails +4 -0
- data/integration/multiverse/grape-on-rails/bin/rake +4 -0
- data/{test/dummy → integration/multiverse/grape-on-rails}/config/application.rb +26 -6
- data/integration/multiverse/grape-on-rails/config/boot.rb +6 -0
- data/integration/multiverse/grape-on-rails/config/database.travis.yml +4 -0
- data/integration/multiverse/grape-on-rails/config/database.yml +16 -0
- data/{test/dummy → integration/multiverse/grape-on-rails}/config/environment.rb +1 -1
- data/{test/dummy → integration/multiverse/grape-on-rails}/config/environments/development.rb +4 -5
- data/{test/dummy → integration/multiverse/grape-on-rails}/config/environments/production.rb +9 -4
- data/{test/dummy → integration/multiverse/grape-on-rails}/config/environments/test.rb +9 -18
- data/{test/dummy → integration/multiverse/grape-on-rails}/config/initializers/backtrace_silencers.rb +0 -0
- data/{test/dummy → integration/multiverse/grape-on-rails}/config/initializers/inflections.rb +5 -0
- data/{test/dummy → integration/multiverse/grape-on-rails}/config/initializers/mime_types.rb +0 -0
- data/integration/multiverse/grape-on-rails/config/initializers/reload_api.rb +13 -0
- data/integration/multiverse/grape-on-rails/config/initializers/secret_token.rb +1 -0
- data/{test/dummy → integration/multiverse/grape-on-rails}/config/initializers/session_store.rb +2 -2
- data/integration/multiverse/grape-on-rails/config/initializers/vitals.rb +8 -0
- data/{test/dummy → integration/multiverse/grape-on-rails}/config/initializers/wrap_parameters.rb +0 -0
- data/{test/dummy → integration/multiverse/grape-on-rails}/config/locales/en.yml +0 -0
- data/integration/multiverse/grape-on-rails/config/routes.rb +5 -0
- data/integration/multiverse/grape-on-rails/config.ru +4 -0
- data/integration/multiverse/grape-on-rails/db/schema.rb +16 -0
- data/integration/multiverse/grape-on-rails/db/seeds.rb +7 -0
- data/integration/multiverse/grape-on-rails/doc/README_FOR_APP +2 -0
- data/{test/dummy/log/test.log → integration/multiverse/grape-on-rails/lib/assets/.gitkeep} +0 -0
- data/{test/dummy/public/favicon.ico → integration/multiverse/grape-on-rails/lib/tasks/.gitkeep} +0 -0
- data/integration/multiverse/grape-on-rails/log/.gitkeep +0 -0
- data/{test/dummy → integration/multiverse/grape-on-rails}/public/404.html +0 -0
- data/{test/dummy → integration/multiverse/grape-on-rails}/public/422.html +0 -0
- data/{test/dummy → integration/multiverse/grape-on-rails}/public/500.html +0 -1
- data/integration/multiverse/grape-on-rails/public/favicon.ico +0 -0
- data/integration/multiverse/grape-on-rails/public/robots.txt +5 -0
- data/{test/dummy → integration/multiverse/grape-on-rails}/script/rails +2 -2
- data/integration/multiverse/grape-on-rails/spec/api/ping_spec.rb +15 -0
- data/integration/multiverse/grape-on-rails/spec/spec_helper.rb +15 -0
- data/integration/multiverse/rails42_app/.gitignore +18 -0
- data/integration/multiverse/rails42_app/Gemfile +49 -0
- data/integration/multiverse/rails42_app/Gemfile.lock +167 -0
- data/integration/multiverse/rails42_app/README.rdoc +28 -0
- data/{test/dummy → integration/multiverse/rails42_app}/Rakefile +1 -2
- data/integration/multiverse/rails42_app/app/assets/images/.keep +0 -0
- data/integration/multiverse/rails42_app/app/assets/javascripts/application.js +16 -0
- data/integration/multiverse/rails42_app/app/assets/javascripts/posts.coffee +3 -0
- data/integration/multiverse/rails42_app/app/assets/stylesheets/application.css +15 -0
- data/integration/multiverse/rails42_app/app/assets/stylesheets/posts.scss +3 -0
- data/integration/multiverse/rails42_app/app/assets/stylesheets/scaffolds.scss +73 -0
- data/integration/multiverse/rails42_app/app/controllers/application_controller.rb +5 -0
- data/integration/multiverse/rails42_app/app/controllers/concerns/.keep +0 -0
- data/integration/multiverse/rails42_app/app/controllers/posts_controller.rb +75 -0
- data/integration/multiverse/rails42_app/app/helpers/application_helper.rb +2 -0
- data/integration/multiverse/rails42_app/app/helpers/posts_helper.rb +2 -0
- data/integration/multiverse/rails42_app/app/jobs/foobar_cleanup_job.rb +7 -0
- data/integration/multiverse/rails42_app/app/mailers/.keep +0 -0
- data/integration/multiverse/rails42_app/app/models/.keep +0 -0
- data/integration/multiverse/rails42_app/app/models/concerns/.keep +0 -0
- data/integration/multiverse/rails42_app/app/models/post.rb +2 -0
- data/integration/multiverse/rails42_app/app/views/layouts/application.html.erb +14 -0
- data/integration/multiverse/rails42_app/app/views/posts/_form.html.erb +21 -0
- data/integration/multiverse/rails42_app/app/views/posts/edit.html.erb +6 -0
- data/integration/multiverse/rails42_app/app/views/posts/index.html.erb +27 -0
- data/integration/multiverse/rails42_app/app/views/posts/index.json.jbuilder +4 -0
- data/integration/multiverse/rails42_app/app/views/posts/new.html.erb +5 -0
- data/integration/multiverse/rails42_app/app/views/posts/show.html.erb +9 -0
- data/integration/multiverse/rails42_app/app/views/posts/show.json.jbuilder +1 -0
- data/integration/multiverse/rails42_app/bin/bundle +3 -0
- data/integration/multiverse/rails42_app/bin/rails +9 -0
- data/integration/multiverse/rails42_app/bin/rake +9 -0
- data/integration/multiverse/rails42_app/bin/setup +29 -0
- data/integration/multiverse/rails42_app/bin/spring +15 -0
- data/integration/multiverse/rails42_app/config/application.rb +26 -0
- data/integration/multiverse/rails42_app/config/boot.rb +3 -0
- data/{test/dummy → integration/multiverse/rails42_app}/config/database.yml +8 -8
- data/integration/multiverse/rails42_app/config/environment.rb +5 -0
- data/integration/multiverse/rails42_app/config/environments/development.rb +41 -0
- data/integration/multiverse/rails42_app/config/environments/production.rb +79 -0
- data/integration/multiverse/rails42_app/config/environments/test.rb +42 -0
- data/integration/multiverse/rails42_app/config/initializers/assets.rb +11 -0
- data/integration/multiverse/rails42_app/config/initializers/backtrace_silencers.rb +7 -0
- data/integration/multiverse/rails42_app/config/initializers/cookies_serializer.rb +3 -0
- data/integration/multiverse/rails42_app/config/initializers/filter_parameter_logging.rb +4 -0
- data/integration/multiverse/rails42_app/config/initializers/inflections.rb +16 -0
- data/integration/multiverse/rails42_app/config/initializers/mime_types.rb +4 -0
- data/integration/multiverse/rails42_app/config/initializers/session_store.rb +3 -0
- data/integration/multiverse/rails42_app/config/initializers/vitals.rb +12 -0
- data/integration/multiverse/rails42_app/config/initializers/wrap_parameters.rb +14 -0
- data/integration/multiverse/rails42_app/config/locales/en.yml +23 -0
- data/integration/multiverse/rails42_app/config/routes.rb +57 -0
- data/integration/multiverse/rails42_app/config/secrets.yml +22 -0
- data/integration/multiverse/rails42_app/config.ru +4 -0
- data/integration/multiverse/rails42_app/db/migrate/20160321140358_create_posts.rb +9 -0
- data/integration/multiverse/rails42_app/db/schema.rb +22 -0
- data/integration/multiverse/rails42_app/db/seeds.rb +7 -0
- data/integration/multiverse/rails42_app/lib/assets/.keep +0 -0
- data/integration/multiverse/rails42_app/lib/tasks/.keep +0 -0
- data/integration/multiverse/rails42_app/log/.keep +0 -0
- data/integration/multiverse/rails42_app/public/404.html +67 -0
- data/integration/multiverse/rails42_app/public/422.html +67 -0
- data/integration/multiverse/rails42_app/public/500.html +66 -0
- data/integration/multiverse/rails42_app/public/favicon.ico +0 -0
- data/integration/multiverse/rails42_app/public/robots.txt +5 -0
- data/integration/multiverse/rails42_app/test/controllers/.keep +0 -0
- data/integration/multiverse/rails42_app/test/controllers/posts_controller_test.rb +49 -0
- data/integration/multiverse/rails42_app/test/fixtures/.keep +0 -0
- data/integration/multiverse/rails42_app/test/fixtures/posts.yml +7 -0
- data/integration/multiverse/rails42_app/test/helpers/.keep +0 -0
- data/integration/multiverse/rails42_app/test/integration/.keep +0 -0
- data/integration/multiverse/rails42_app/test/integration/vitals_flow_test.rb +78 -0
- data/integration/multiverse/rails42_app/test/jobs/foobar_cleanup_job_test.rb +7 -0
- data/integration/multiverse/rails42_app/test/mailers/.keep +0 -0
- data/integration/multiverse/rails42_app/test/models/.keep +0 -0
- data/{test/dummy/test/unit/task_test.rb → integration/multiverse/rails42_app/test/models/post_test.rb} +1 -1
- data/integration/multiverse/rails42_app/test/test_helper.rb +11 -0
- data/integration/multiverse_helper.rb +16 -0
- data/integration/multiverse_spec.rb +40 -0
- data/lib/vitals/configuration.rb +35 -0
- data/lib/vitals/formats/host_last_format.rb +26 -0
- data/lib/vitals/formats/production_format.rb +21 -0
- data/lib/vitals/integrations/notifications/action_controller.rb +26 -0
- data/lib/vitals/integrations/notifications/active_job.rb +18 -0
- data/lib/vitals/integrations/notifications/base.rb +20 -0
- data/lib/vitals/integrations/notifications/grape.rb +30 -0
- data/lib/vitals/integrations/rack/requests.rb +23 -0
- data/lib/vitals/reporters/base_reporter.rb +9 -0
- data/lib/vitals/reporters/console_reporter.rb +23 -0
- data/lib/vitals/reporters/inmem_reporter.rb +31 -0
- data/lib/vitals/reporters/multi_reporter.rb +24 -0
- data/lib/vitals/reporters/statsd_reporter.rb +27 -0
- data/lib/vitals/utils.rb +15 -0
- data/lib/vitals/version.rb +1 -1
- data/lib/vitals.rb +46 -23
- data/vitals.gemspec +48 -0
- metadata +404 -147
- data/MIT-LICENSE +0 -20
- data/lib/generators/vitals/templates/vitals_initializer.rb +0 -7
- data/lib/generators/vitals/vitals_generator.rb +0 -12
- data/lib/tasks/vitals_tasks.rake +0 -4
- data/lib/vitals/reporter.rb +0 -23
- data/test/dummy/app/assets/javascripts/application.js +0 -9
- data/test/dummy/app/assets/javascripts/tasks.js +0 -2
- data/test/dummy/app/assets/stylesheets/application.css +0 -7
- data/test/dummy/app/assets/stylesheets/scaffold.css +0 -56
- data/test/dummy/app/assets/stylesheets/tasks.css +0 -4
- data/test/dummy/app/controllers/tasks_controller.rb +0 -83
- data/test/dummy/app/helpers/tasks_helper.rb +0 -2
- data/test/dummy/app/models/task.rb +0 -2
- data/test/dummy/app/views/tasks/_form.html.erb +0 -21
- data/test/dummy/app/views/tasks/edit.html.erb +0 -6
- data/test/dummy/app/views/tasks/index.html.erb +0 -23
- data/test/dummy/app/views/tasks/new.html.erb +0 -5
- data/test/dummy/app/views/tasks/show.html.erb +0 -10
- data/test/dummy/config/boot.rb +0 -10
- data/test/dummy/config/initializers/secret_token.rb +0 -7
- data/test/dummy/config/routes.rb +0 -60
- data/test/dummy/config.ru +0 -4
- data/test/dummy/db/migrate/20110917182114_create_tasks.rb +0 -9
- data/test/dummy/log/development.log +0 -55
- data/test/dummy/test/fixtures/tasks.yml +0 -7
- data/test/dummy/test/functional/tasks_controller_test.rb +0 -49
- data/test/dummy/test/unit/helpers/tasks_helper_test.rb +0 -4
- data/test/test_helper.rb +0 -10
- data/test/vitals_test.rb +0 -7
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 144354fc633911fa91781b4ceefc10e9e8b0f7f7
|
|
4
|
+
data.tar.gz: 72b1133aa8c4ac7aa9bdcc59d69781f946ef9551
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 037a86c00abc7b8e1206f3ce651538a93d177b26853c57dda4f0d1511f57555b293bb72da24f9e930c8bfa1099686d92face5faf397b5de925e4877f34432e71
|
|
7
|
+
data.tar.gz: 0abeedcabd6f8a33403b5c894555b5729bb3b2fd1d960eaa01d22469217837d98ba6c3a976a0373bc9b5e39fe772a9839953cb6e82dec4002b079e1cf37dacc2
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
sudo: false
|
|
2
|
+
language: ruby
|
|
3
|
+
rvm:
|
|
4
|
+
- 2.1.0
|
|
5
|
+
- 2.2.0
|
|
6
|
+
- 2.3.0
|
|
7
|
+
# - ruby-head
|
|
8
|
+
# use latest bundler because of ruby-head exposing a bundler bug.
|
|
9
|
+
# see https://github.com/bundler/bundler/pull/3559
|
|
10
|
+
# So, that didn't work. so let's not use ruby-head for a while
|
|
11
|
+
before_install: gem install bundler
|
|
12
|
+
matrix:
|
|
13
|
+
include:
|
|
14
|
+
- rvm: 2.3.0
|
|
15
|
+
script: bundle exec rake multiverse
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
vitals (0.3.0)
|
|
5
|
+
statsd-ruby (~> 1.3.0)
|
|
6
|
+
|
|
7
|
+
GEM
|
|
8
|
+
remote: https://rubygems.org/
|
|
9
|
+
specs:
|
|
10
|
+
activesupport (4.2.6)
|
|
11
|
+
i18n (~> 0.7)
|
|
12
|
+
json (~> 1.7, >= 1.7.7)
|
|
13
|
+
minitest (~> 5.1)
|
|
14
|
+
thread_safe (~> 0.3, >= 0.3.4)
|
|
15
|
+
tzinfo (~> 1.1)
|
|
16
|
+
ast (2.2.0)
|
|
17
|
+
axiom-types (0.1.1)
|
|
18
|
+
descendants_tracker (~> 0.0.4)
|
|
19
|
+
ice_nine (~> 0.11.0)
|
|
20
|
+
thread_safe (~> 0.3, >= 0.3.1)
|
|
21
|
+
benchmark-ips (2.5.0)
|
|
22
|
+
builder (3.2.2)
|
|
23
|
+
coderay (1.1.1)
|
|
24
|
+
coercible (1.0.0)
|
|
25
|
+
descendants_tracker (~> 0.0.1)
|
|
26
|
+
coveralls (0.8.13)
|
|
27
|
+
json (~> 1.8)
|
|
28
|
+
simplecov (~> 0.11.0)
|
|
29
|
+
term-ansicolor (~> 1.3)
|
|
30
|
+
thor (~> 0.19.1)
|
|
31
|
+
tins (~> 1.6.0)
|
|
32
|
+
descendants_tracker (0.0.4)
|
|
33
|
+
thread_safe (~> 0.3, >= 0.3.1)
|
|
34
|
+
docile (1.1.5)
|
|
35
|
+
equalizer (0.0.11)
|
|
36
|
+
ffi (1.9.10)
|
|
37
|
+
formatador (0.2.5)
|
|
38
|
+
grape (0.15.0)
|
|
39
|
+
activesupport
|
|
40
|
+
builder
|
|
41
|
+
hashie (>= 2.1.0)
|
|
42
|
+
multi_json (>= 1.3.2)
|
|
43
|
+
multi_xml (>= 0.5.2)
|
|
44
|
+
rack (>= 1.3.0)
|
|
45
|
+
rack-accept
|
|
46
|
+
rack-mount
|
|
47
|
+
virtus (>= 1.0.0)
|
|
48
|
+
guard (2.13.0)
|
|
49
|
+
formatador (>= 0.2.4)
|
|
50
|
+
listen (>= 2.7, <= 4.0)
|
|
51
|
+
lumberjack (~> 1.0)
|
|
52
|
+
nenv (~> 0.1)
|
|
53
|
+
notiffany (~> 0.0)
|
|
54
|
+
pry (>= 0.9.12)
|
|
55
|
+
shellany (~> 0.0)
|
|
56
|
+
thor (>= 0.18.1)
|
|
57
|
+
guard-compat (1.2.1)
|
|
58
|
+
guard-minitest (2.4.4)
|
|
59
|
+
guard-compat (~> 1.2)
|
|
60
|
+
minitest (>= 3.0)
|
|
61
|
+
guard-rubocop (1.2.0)
|
|
62
|
+
guard (~> 2.0)
|
|
63
|
+
rubocop (~> 0.20)
|
|
64
|
+
hashie (3.4.3)
|
|
65
|
+
i18n (0.7.0)
|
|
66
|
+
ice_nine (0.11.2)
|
|
67
|
+
json (1.8.3)
|
|
68
|
+
listen (3.0.6)
|
|
69
|
+
rb-fsevent (>= 0.9.3)
|
|
70
|
+
rb-inotify (>= 0.9.7)
|
|
71
|
+
lumberjack (1.0.10)
|
|
72
|
+
memory_profiler (0.9.6)
|
|
73
|
+
method_source (0.8.2)
|
|
74
|
+
minitest (5.8.4)
|
|
75
|
+
multi_json (1.11.2)
|
|
76
|
+
multi_xml (0.5.5)
|
|
77
|
+
nenv (0.3.0)
|
|
78
|
+
notiffany (0.0.8)
|
|
79
|
+
nenv (~> 0.1)
|
|
80
|
+
shellany (~> 0.0)
|
|
81
|
+
parser (2.3.0.6)
|
|
82
|
+
ast (~> 2.2)
|
|
83
|
+
powerpack (0.1.1)
|
|
84
|
+
pry (0.10.3)
|
|
85
|
+
coderay (~> 1.1.0)
|
|
86
|
+
method_source (~> 0.8.1)
|
|
87
|
+
slop (~> 3.4)
|
|
88
|
+
rack (1.6.4)
|
|
89
|
+
rack-accept (0.4.5)
|
|
90
|
+
rack (>= 0.4)
|
|
91
|
+
rack-mount (0.8.3)
|
|
92
|
+
rack (>= 1.0.0)
|
|
93
|
+
rack-protection (1.5.3)
|
|
94
|
+
rack
|
|
95
|
+
rack-test (0.6.3)
|
|
96
|
+
rack (>= 1.0)
|
|
97
|
+
rainbow (2.1.0)
|
|
98
|
+
rake (10.5.0)
|
|
99
|
+
rb-fsevent (0.9.7)
|
|
100
|
+
rb-inotify (0.9.7)
|
|
101
|
+
ffi (>= 0.5.0)
|
|
102
|
+
rr (1.1.2)
|
|
103
|
+
rubocop (0.38.0)
|
|
104
|
+
parser (>= 2.3.0.6, < 3.0)
|
|
105
|
+
powerpack (~> 0.1)
|
|
106
|
+
rainbow (>= 1.99.1, < 3.0)
|
|
107
|
+
ruby-progressbar (~> 1.7)
|
|
108
|
+
unicode-display_width (~> 1.0, >= 1.0.1)
|
|
109
|
+
ruby-progressbar (1.7.5)
|
|
110
|
+
shellany (0.0.1)
|
|
111
|
+
simplecov (0.11.2)
|
|
112
|
+
docile (~> 1.1.0)
|
|
113
|
+
json (~> 1.8)
|
|
114
|
+
simplecov-html (~> 0.10.0)
|
|
115
|
+
simplecov-html (0.10.0)
|
|
116
|
+
sinatra (1.4.7)
|
|
117
|
+
rack (~> 1.5)
|
|
118
|
+
rack-protection (~> 1.4)
|
|
119
|
+
tilt (>= 1.3, < 3)
|
|
120
|
+
slop (3.6.0)
|
|
121
|
+
statsd-ruby (1.3.0)
|
|
122
|
+
term-ansicolor (1.3.2)
|
|
123
|
+
tins (~> 1.0)
|
|
124
|
+
thor (0.19.1)
|
|
125
|
+
thread_safe (0.3.5)
|
|
126
|
+
tilt (2.0.2)
|
|
127
|
+
tins (1.6.0)
|
|
128
|
+
tzinfo (1.2.2)
|
|
129
|
+
thread_safe (~> 0.1)
|
|
130
|
+
unicode-display_width (1.0.2)
|
|
131
|
+
virtus (1.0.5)
|
|
132
|
+
axiom-types (~> 0.1)
|
|
133
|
+
coercible (~> 1.0)
|
|
134
|
+
descendants_tracker (~> 0.0, >= 0.0.3)
|
|
135
|
+
equalizer (~> 0.0, >= 0.0.9)
|
|
136
|
+
|
|
137
|
+
PLATFORMS
|
|
138
|
+
ruby
|
|
139
|
+
|
|
140
|
+
DEPENDENCIES
|
|
141
|
+
activesupport (~> 4.2.6)
|
|
142
|
+
benchmark-ips (~> 2.5.0)
|
|
143
|
+
bundler (~> 1.11)
|
|
144
|
+
coveralls (~> 0.8.13)
|
|
145
|
+
grape (~> 0.15.0)
|
|
146
|
+
guard-minitest (~> 2.4.4)
|
|
147
|
+
guard-rubocop (~> 1.2.0)
|
|
148
|
+
memory_profiler (~> 0.9.6)
|
|
149
|
+
minitest (~> 5.0)
|
|
150
|
+
rack-test (~> 0.6.3)
|
|
151
|
+
rake (~> 10.0)
|
|
152
|
+
rr (~> 1.1.2)
|
|
153
|
+
sinatra (~> 1.4.7)
|
|
154
|
+
vitals!
|
|
155
|
+
|
|
156
|
+
BUNDLED WITH
|
|
157
|
+
1.11.2
|
data/Guardfile
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
guard :minitest do
|
|
2
|
+
# with Minitest::Spec
|
|
3
|
+
watch(%r{^spec/(.*)_spec\.rb$})
|
|
4
|
+
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
|
5
|
+
watch(%r{^spec/spec_helper\.rb$}) { 'spec' }
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
#guard :rubocop do
|
|
9
|
+
# watch(%r{.+\.rb$})
|
|
10
|
+
# watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
|
|
11
|
+
#end
|
data/LICENSE.txt
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2016 Dotan Nahum
|
|
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
|
|
13
|
+
all 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
|
|
21
|
+
THE SOFTWARE.
|
data/README.md
CHANGED
|
@@ -1,22 +1,148 @@
|
|
|
1
1
|
# Vitals
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
[](https://travis-ci.org/jondot/vitals.svg)
|
|
4
|
+
[](https://coveralls.io/github/jondot/vitals?branch=master)
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
Vitals is the one stop shop to doing metrics in Ruby. It currently support Rails,
|
|
7
|
+
Rack (Sinatra and any Rack-supported frameworks), and Grape.
|
|
7
8
|
|
|
8
|
-
Add `vitals` to your `Gemfile`. Then, run:
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
## Installation
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
(localhost/8125) try:
|
|
12
|
+
Add this line to your application's Gemfile:
|
|
14
13
|
|
|
15
|
-
|
|
14
|
+
```ruby
|
|
15
|
+
gem 'vitals'
|
|
16
|
+
```
|
|
16
17
|
|
|
17
|
-
|
|
18
|
+
And then execute:
|
|
18
19
|
|
|
20
|
+
$ bundle
|
|
19
21
|
|
|
22
|
+
Or install it yourself as:
|
|
20
23
|
|
|
24
|
+
$ gem install vitals
|
|
21
25
|
|
|
26
|
+
## Usage
|
|
22
27
|
|
|
28
|
+
### Rails or Grape
|
|
29
|
+
|
|
30
|
+
Make an `initializers/vitals.rb` initializer, and cofigure Vitals as you'd like:
|
|
31
|
+
```ruby
|
|
32
|
+
require 'vitals'
|
|
33
|
+
Vitals.configure! do |c|
|
|
34
|
+
c.facility = 'my_service'
|
|
35
|
+
c.reporter = Vitals::Reporters::StatsdReporter.new(host: 'statsd-host', port: 8125)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
#
|
|
39
|
+
# Rails
|
|
40
|
+
#
|
|
41
|
+
require 'vitals/integrations/notifications/action_controller'
|
|
42
|
+
Vitals::Integrations::Notifications::ActionController.subscribe!
|
|
43
|
+
|
|
44
|
+
# if you also want ActiveJob metrics
|
|
45
|
+
require 'vitals/integrations/notifications/action_job'
|
|
46
|
+
Vitals::Integrations::Notifications::ActiveJob.subscribe!
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
#
|
|
50
|
+
# Grape
|
|
51
|
+
#
|
|
52
|
+
require 'vitals/integrations/notifications/grape'
|
|
53
|
+
Vitals::Integrations::Notifications::Grapej.subscribe!
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Rack
|
|
57
|
+
|
|
58
|
+
Here, you can use the `Requests` middleware. Here is a sample Sinatra app:
|
|
59
|
+
|
|
60
|
+
```ruby
|
|
61
|
+
require 'vitals'
|
|
62
|
+
require 'vitals/integrations/rack/requests'
|
|
63
|
+
|
|
64
|
+
class SinatraTestAPI < Sinatra::Base
|
|
65
|
+
use Vitals::Integrations::Rack::Requests
|
|
66
|
+
|
|
67
|
+
get '/foo/bar/baz' do
|
|
68
|
+
sleep 0.1
|
|
69
|
+
"hello get"
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
post '/foo/bar/:name' do
|
|
73
|
+
sleep 0.1
|
|
74
|
+
"hello post"
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Ruby
|
|
80
|
+
|
|
81
|
+
You can emit metrics from anywhere:
|
|
82
|
+
|
|
83
|
+
```ruby
|
|
84
|
+
Vitals.inc('my_metric')
|
|
85
|
+
|
|
86
|
+
Vitals.gauge('my_metric', 42)
|
|
87
|
+
|
|
88
|
+
Vitals.timing('my_metric', 500) # milliseconds
|
|
89
|
+
|
|
90
|
+
Vitals.time('my_metric'){
|
|
91
|
+
# so something slow
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
# Use a dot to logically separate segments
|
|
95
|
+
|
|
96
|
+
Vitals.timing('category.my_metric', 500) # milliseconds
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Configuration Options
|
|
100
|
+
|
|
101
|
+
The Vitals API is extensible. It should resemble the standard `Logger` look and feel,
|
|
102
|
+
and it revolves around 3 concepts:
|
|
103
|
+
|
|
104
|
+
1. `Reporter` - the thing that takes your metrics and flushes them to a metrics agent. Use `StatsdReporter` in production
|
|
105
|
+
and `ConsoleReporter` in development. `ConsoleReporter` will spit out metrics to `stdout` as they come. You can also
|
|
106
|
+
wire them _both_ with `MultiReporter`. Check the [specs](/spec/reporters) for how to do that.
|
|
107
|
+
2. `Format` - takes the contextual information (host, service, environment) and your metric, and formats them in an
|
|
108
|
+
order that makes sense for working with Graphite. You have the `ProductionFormat` and `HostLastFormat`.
|
|
109
|
+
3. `Integrations` - integrations hook things that we're able to instrument with Vitals. Check [integrations](/lib/vitals/integrations) for more.
|
|
110
|
+
|
|
111
|
+
Here's what's available to you at configuration time:
|
|
112
|
+
|
|
113
|
+
```ruby
|
|
114
|
+
Vitals.configure! do |c|
|
|
115
|
+
# Set your service name (default: 'default')
|
|
116
|
+
c.facility = 'my_service'
|
|
117
|
+
|
|
118
|
+
# Set environment (default: taken from RACK_ENV)
|
|
119
|
+
# c.environment = 'env'
|
|
120
|
+
|
|
121
|
+
# Set a host (default: taken from hostname)
|
|
122
|
+
# c.host = 'foohost'
|
|
123
|
+
|
|
124
|
+
# Use a specific reporter (default: InmemReporter)
|
|
125
|
+
# c.reporter = Vitals::Reporters::ConsoleReporter.new
|
|
126
|
+
|
|
127
|
+
# Use a different format perhaps? (default: ProductionFormat)
|
|
128
|
+
# c.format = Vitals::Formats::HostLastFormat
|
|
129
|
+
end
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
## Development
|
|
135
|
+
|
|
136
|
+
Tests and benchmarks should be run with at least Ruby 2.1 (because of memory profiling API)
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
$ bundle install && rake spec && rake bench
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
# Contributing
|
|
143
|
+
|
|
144
|
+
Fork, implement, add tests, pull request, get my everlasting thanks and a respectable place here :).
|
|
145
|
+
|
|
146
|
+
# Copyright
|
|
147
|
+
|
|
148
|
+
Copyright (c) 2011-2016 [Dotan Nahum](http://gplus.to/dotan) [@jondot](http://twitter.com/jondot). See [LICENSE](LICENSE.txt) for further details.
|
data/Rakefile
CHANGED
|
@@ -1,37 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
require 'bundler/setup'
|
|
4
|
-
rescue LoadError
|
|
5
|
-
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
|
6
|
-
end
|
|
7
|
-
begin
|
|
8
|
-
require 'rdoc/task'
|
|
9
|
-
rescue LoadError
|
|
10
|
-
require 'rdoc/rdoc'
|
|
11
|
-
require 'rake/rdoctask'
|
|
12
|
-
RDoc::Task = Rake::RDocTask
|
|
13
|
-
end
|
|
1
|
+
require "bundler/gem_tasks"
|
|
2
|
+
require "rake/testtask"
|
|
14
3
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
rdoc.rdoc_files.include('README.rdoc')
|
|
20
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
|
4
|
+
Rake::TestTask.new(:spec) do |t|
|
|
5
|
+
t.libs << "spec"
|
|
6
|
+
t.libs << "lib"
|
|
7
|
+
t.test_files = FileList['spec/**/*_spec.rb']
|
|
21
8
|
end
|
|
22
9
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
Rake::TestTask.new(:test) do |t|
|
|
30
|
-
t.libs << 'lib'
|
|
31
|
-
t.libs << 'test'
|
|
32
|
-
t.pattern = 'test/**/*_test.rb'
|
|
33
|
-
t.verbose = false
|
|
10
|
+
Rake::TestTask.new(:multiverse) do |t|
|
|
11
|
+
t.libs << "integration"
|
|
12
|
+
t.libs << "spec"
|
|
13
|
+
t.libs << "lib"
|
|
14
|
+
t.test_files = FileList['integration/multiverse_spec.rb']
|
|
34
15
|
end
|
|
35
16
|
|
|
17
|
+
Rake::TestTask.new(:bench) do |t|
|
|
18
|
+
t.libs << "spec"
|
|
19
|
+
t.libs << "lib"
|
|
20
|
+
t.test_files = FileList['spec/**/*_bench.rb']
|
|
21
|
+
end
|
|
36
22
|
|
|
37
|
-
task :default => :
|
|
23
|
+
task :default => :spec
|
data/bin/console
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
require "bundler/setup"
|
|
4
|
+
require "vitals"
|
|
5
|
+
|
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
|
8
|
+
|
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
|
10
|
+
# require "pry"
|
|
11
|
+
# Pry.start
|
|
12
|
+
|
|
13
|
+
require "irb"
|
|
14
|
+
IRB.start
|
data/bin/setup
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# This configuration was generated by
|
|
2
|
+
# `rubocop --auto-gen-config`
|
|
3
|
+
# on 2015-08-28 08:52:35 -0400 using RuboCop version 0.33.0.
|
|
4
|
+
# The point is for the user to remove these configuration records
|
|
5
|
+
# one by one as the offenses are removed from the code base.
|
|
6
|
+
# Note that changes in the inspected code, or installation of new
|
|
7
|
+
# versions of RuboCop, may require this file to be generated again.
|
|
8
|
+
|
|
9
|
+
# Offense count: 1
|
|
10
|
+
Metrics/AbcSize:
|
|
11
|
+
Max: 19
|
|
12
|
+
|
|
13
|
+
# Offense count: 27
|
|
14
|
+
# Configuration parameters: AllowURI, URISchemes.
|
|
15
|
+
Metrics/LineLength:
|
|
16
|
+
Max: 126
|
|
17
|
+
|
|
18
|
+
# Offense count: 1
|
|
19
|
+
# Configuration parameters: CountComments.
|
|
20
|
+
Metrics/MethodLength:
|
|
21
|
+
Max: 15
|
|
22
|
+
|
|
23
|
+
# Offense count: 15
|
|
24
|
+
Style/Documentation:
|
|
25
|
+
Exclude:
|
|
26
|
+
- 'api/content_type.rb'
|
|
27
|
+
- 'api/entities.rb'
|
|
28
|
+
- 'api/get_json.rb'
|
|
29
|
+
- 'api/header_versioning.rb'
|
|
30
|
+
- 'api/path_versioning.rb'
|
|
31
|
+
- 'api/ping.rb'
|
|
32
|
+
- 'api/post_json.rb'
|
|
33
|
+
- 'api/post_put.rb'
|
|
34
|
+
- 'api/rescue_from.rb'
|
|
35
|
+
- 'api/upload_file.rb'
|
|
36
|
+
- 'api/wrap_response.rb'
|
|
37
|
+
- 'api/wrap_response_decorator.rb'
|
|
38
|
+
- 'app/acme_app.rb'
|
|
39
|
+
- 'app/api.rb'
|
|
40
|
+
|
|
41
|
+
# Offense count: 1
|
|
42
|
+
# Cop supports --auto-correct.
|
|
43
|
+
Style/Lambda:
|
|
44
|
+
Exclude:
|
|
45
|
+
- 'app/acme_app.rb'
|
|
46
|
+
|
|
47
|
+
# Offense count: 1
|
|
48
|
+
Style/RescueModifier:
|
|
49
|
+
Exclude:
|
|
50
|
+
- 'api/get_json.rb'
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
source 'http://rubygems.org'
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
gem 'grape'
|
|
5
|
+
gem 'grape-entity'
|
|
6
|
+
gem 'json'
|
|
7
|
+
gem 'newrelic_rpm'
|
|
8
|
+
gem 'rack-cors'
|
|
9
|
+
gem 'grape-swagger'
|
|
10
|
+
gem 'mime-types'
|
|
11
|
+
gem 'nokogiri'
|
|
12
|
+
|
|
13
|
+
group :development do
|
|
14
|
+
gem 'rake'
|
|
15
|
+
gem 'guard'
|
|
16
|
+
gem 'guard-bundler'
|
|
17
|
+
gem 'guard-rack'
|
|
18
|
+
gem 'rubocop'
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
group :test do
|
|
22
|
+
gem 'rspec'
|
|
23
|
+
gem 'rack-test'
|
|
24
|
+
gem 'capybara'
|
|
25
|
+
gem 'selenium-webdriver'
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
gem 'vitals', path: '../../../'
|