measures 0.1.0 → 1.0.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: c9cb01ae7c839c3a2b6d692e83ab57334c73cc48
4
- data.tar.gz: 65265add454ba3cf90acf9fdfcdf0659210dcecd
3
+ metadata.gz: 5762e573fb1e82f50eae006d466fb725e57524cd
4
+ data.tar.gz: 8e6bd6539060a82e7607aa76d988d9815d1bd95c
5
5
  SHA512:
6
- metadata.gz: 1a90417763f35433b8cfeb0d6d4182a174055e5eadad4f0805eb430d64860ac7e3dc99f70f37244a43b1474d22458896afd0966f57d607fed139a8121d4fdf23
7
- data.tar.gz: 245a0a40c84df69fc29d0df257e6b161002bf51e752a26cf3a7c1f9fb34178c72db2631f7d5c1beb2082525e505fb77dfb78db34339e0d7e53e1101b0d036213
6
+ metadata.gz: 374ce521a3665d9d7125ff628a55e1db326ce6d738deb2d60c92456d710f1a3f5b57b964376d28979e8dd13309652e3280f7d5189d76ed93c9df75fd9842a2a5
7
+ data.tar.gz: dce0f1c8a36464afdcc1fbf33368f256374acea8989ab5baa55f47a1c2f8fe07dbf993a2a18c7e4369c2149bb15b476f331c1d7ac6e66b610604979ea05be800
data/Guardfile ADDED
@@ -0,0 +1,14 @@
1
+ guard :rspec, cmd: "bundle exec rspec" do
2
+ require "guard/rspec/dsl"
3
+ dsl = Guard::RSpec::Dsl.new(self)
4
+
5
+ # RSpec files
6
+ rspec = dsl.rspec
7
+ watch(rspec.spec_helper) { rspec.spec_dir }
8
+ watch(rspec.spec_support) { rspec.spec_dir }
9
+ watch(rspec.spec_files)
10
+
11
+ # Ruby files
12
+ ruby = dsl.ruby
13
+ dsl.watch_spec_files_for(ruby.lib_files)
14
+ end
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2016 Marcelo Boeira
3
+ Copyright (c) 2016 Globo.com
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -28,9 +28,26 @@ require "measures"
28
28
  # Creates the measure client instance
29
29
  measures = Measures::Client.new("my-app", "logstash.foo.bar", 30)
30
30
 
31
- # Sends metric
32
- measures.count("my_metric")
33
-
34
- # Sends metric with additional data
35
- measures.count("my_metric", { "foo" => "bar" })
31
+ # Sends count metric
32
+ measures.count("my_count_metric")
33
+
34
+ # Sends count metric with additional data
35
+ measures.count("my_count_metric", { "foo" => "bar" })
36
+
37
+ # Sends time metric
38
+ measures.time("my_time_metric") do
39
+ # Some long operations
40
+ sleep(10)
41
+ end
42
+
43
+ # Sends time metric with additional data
44
+ measures.time("my_time_metric", { "foo" => "bar" }) do
45
+ # Some long operations
46
+ sleep(10)
47
+ end
36
48
  ```
49
+
50
+ ## Measures in other languages
51
+
52
+ - [Python](https://github.com/globocom/measures)
53
+ - [Go](https://github.com/scorphus/measures)
@@ -1,5 +1,6 @@
1
1
  require "socket"
2
2
  require "json"
3
+ require "benchmark"
3
4
 
4
5
  module Measures
5
6
  class Client
@@ -10,15 +11,32 @@ module Measures
10
11
  end
11
12
 
12
13
  def count(metric, data = {})
13
- message = {
14
+ data.merge!({ "count" => 1 })
15
+
16
+ send(metric, data)
17
+ end
18
+
19
+ def time(metric, data = {}, &block)
20
+ elapsed_time = Benchmark.realtime do
21
+ yield if block_given?
22
+ end
23
+
24
+ data.merge!({ "time" => elapsed_time })
25
+
26
+ send(metric, data)
27
+ end
28
+
29
+ private
30
+
31
+ def send(metric, data = {})
32
+ default = {
14
33
  "client" => @client,
15
34
  "metric" => metric,
16
- "count" => 1,
17
35
  }
18
36
 
19
- data = data.merge(message)
37
+ default.merge!(data)
20
38
 
21
- @socket.send(data.to_json, 0)
39
+ @socket.send(default.to_json, 0)
22
40
  end
23
41
  end
24
42
  end
@@ -1,3 +1,3 @@
1
1
  module Measures
2
- VERSION = "0.1.0"
2
+ VERSION = "1.0.0"
3
3
  end
data/measures.gemspec CHANGED
@@ -18,4 +18,6 @@ Gem::Specification.new do |spec|
18
18
  spec.add_development_dependency "bundler", "~> 1.11"
19
19
  spec.add_development_dependency "rake", "~> 10.0"
20
20
  spec.add_development_dependency "rspec"
21
+ spec.add_development_dependency "guard"
22
+ spec.add_development_dependency "guard-rspec"
21
23
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: measures
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marcelo Boeira
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-04-07 00:00:00.000000000 Z
12
+ date: 2016-04-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -53,6 +53,34 @@ dependencies:
53
53
  - - ">="
54
54
  - !ruby/object:Gem::Version
55
55
  version: '0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: guard
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: guard-rspec
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
56
84
  description: Measures ruby client
57
85
  email:
58
86
  - me@marceloboeira.com
@@ -64,6 +92,7 @@ files:
64
92
  - ".gitignore"
65
93
  - ".rspec"
66
94
  - Gemfile
95
+ - Guardfile
67
96
  - LICENSE
68
97
  - README.md
69
98
  - Rakefile