statsd-instrument 2.2.0 → 2.2.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/CHANGELOG.md +4 -0
- data/lib/statsd/instrument/backends/udp_backend.rb +6 -10
- data/lib/statsd/instrument/version.rb +1 -1
- data/test/benchmark/metrics.rb +38 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c90b5a926408cac6e7ddb08b2828626eabb890f3
|
4
|
+
data.tar.gz: b006fad637fb15c07f9167e9fbe06bc889ec539f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 89b66de0c70a829a3d5e884ac93b4885958c50a0e84dd157230bc798afe4b014fa836b47af5fe8cae099cd56b15b6751b20d262c453a507b70e9ee9ca858eca5
|
7
|
+
data.tar.gz: 2754ba8ae91ced3221bbabc16b97b6272d8cbc269888caed3e9842a5ac69433b4f444cc57cc92cd61aa7bf4becd07bffba68af6df905da1f4c4db67fd1383678
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,10 @@ please at an entry to the "unreleased changes" section below.
|
|
5
5
|
|
6
6
|
### Unreleased changes
|
7
7
|
|
8
|
+
### Version 2.2.1
|
9
|
+
|
10
|
+
- Fix performance regression from v2.2.0
|
11
|
+
|
8
12
|
### Version 2.2.0
|
9
13
|
|
10
14
|
- Add support for two new datadog specific metric types: events and service checks.
|
@@ -3,6 +3,8 @@ require 'monitor'
|
|
3
3
|
module StatsD::Instrument::Backends
|
4
4
|
class UDPBackend < StatsD::Instrument::Backend
|
5
5
|
|
6
|
+
BASE_SUPPORTED_METRIC_TYPES = { c: true, ms: true, g: true, s: true }
|
7
|
+
|
6
8
|
class DogStatsDProtocol
|
7
9
|
EVENT_OPTIONS = {
|
8
10
|
date_happened: 'd',
|
@@ -19,9 +21,7 @@ module StatsD::Instrument::Backends
|
|
19
21
|
message: 'm',
|
20
22
|
}
|
21
23
|
|
22
|
-
|
23
|
-
[:c, :ms, :g, :h, :s, :_e, :_sc].include?(metric.type)
|
24
|
-
end
|
24
|
+
SUPPORTED_METRIC_TYPES = BASE_SUPPORTED_METRIC_TYPES.merge(h: true, _e: true, _sc: true)
|
25
25
|
|
26
26
|
def generate_packet(metric)
|
27
27
|
packet = ""
|
@@ -54,9 +54,7 @@ module StatsD::Instrument::Backends
|
|
54
54
|
end
|
55
55
|
|
56
56
|
class StatsiteStatsDProtocol
|
57
|
-
|
58
|
-
[:c, :ms, :g, :s, :kv].include?(metric.type)
|
59
|
-
end
|
57
|
+
SUPPORTED_METRIC_TYPES = BASE_SUPPORTED_METRIC_TYPES.merge(kv: true)
|
60
58
|
|
61
59
|
def generate_packet(metric)
|
62
60
|
packet = "#{metric.name}:#{metric.value}|#{metric.type}"
|
@@ -67,9 +65,7 @@ module StatsD::Instrument::Backends
|
|
67
65
|
end
|
68
66
|
|
69
67
|
class StatsDProtocol
|
70
|
-
|
71
|
-
[:c, :ms, :g, :s].include?(metric.type)
|
72
|
-
end
|
68
|
+
SUPPORTED_METRIC_TYPES = BASE_SUPPORTED_METRIC_TYPES
|
73
69
|
|
74
70
|
def generate_packet(metric)
|
75
71
|
packet = "#{metric.name}:#{metric.value}|#{metric.type}"
|
@@ -103,7 +99,7 @@ module StatsD::Instrument::Backends
|
|
103
99
|
end
|
104
100
|
|
105
101
|
def collect_metric(metric)
|
106
|
-
unless @packet_factory.
|
102
|
+
unless @packet_factory.class::SUPPORTED_METRIC_TYPES[metric.type]
|
107
103
|
StatsD.logger.warn("[StatsD] Metric type #{metric.type.inspect} not supported on #{implementation} implementation.")
|
108
104
|
return false
|
109
105
|
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'statsd-instrument'
|
2
|
+
require 'benchmark/ips'
|
3
|
+
|
4
|
+
def helperFunction()
|
5
|
+
a = 10
|
6
|
+
a += a
|
7
|
+
a -= a
|
8
|
+
a *= a
|
9
|
+
end
|
10
|
+
|
11
|
+
Benchmark.ips do |bench|
|
12
|
+
bench.report("increment metric benchmark") do
|
13
|
+
StatsD.increment('GoogleBase.insert', 10)
|
14
|
+
end
|
15
|
+
|
16
|
+
bench.report("measure metric benchmark") do
|
17
|
+
StatsD.measure('helperFunction') do
|
18
|
+
helperFunction()
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
bench.report("gauge metric benchmark") do
|
23
|
+
StatsD.gauge('GoogleBase.insert', 12)
|
24
|
+
end
|
25
|
+
|
26
|
+
bench.report("set metric benchmark") do
|
27
|
+
StatsD.set('GoogleBase.customers', "12345", sample_rate: 1.0)
|
28
|
+
end
|
29
|
+
|
30
|
+
bench.report("event metric benchmark") do
|
31
|
+
StatsD.event('Event Title', "12345")
|
32
|
+
end
|
33
|
+
|
34
|
+
bench.report("service check metric benchmark") do
|
35
|
+
StatsD.service_check('shipit.redis_connection', 'ok')
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: statsd-instrument
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jesse Storimer
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2018-05-
|
13
|
+
date: 2018-05-23 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rake
|
@@ -130,6 +130,7 @@ files:
|
|
130
130
|
- shipit.rubygems.yml
|
131
131
|
- statsd-instrument.gemspec
|
132
132
|
- test/assertions_test.rb
|
133
|
+
- test/benchmark/metrics.rb
|
133
134
|
- test/benchmark/tags.rb
|
134
135
|
- test/capture_backend_test.rb
|
135
136
|
- test/environment_test.rb
|
@@ -168,6 +169,7 @@ specification_version: 4
|
|
168
169
|
summary: A StatsD client for Ruby apps
|
169
170
|
test_files:
|
170
171
|
- test/assertions_test.rb
|
172
|
+
- test/benchmark/metrics.rb
|
171
173
|
- test/benchmark/tags.rb
|
172
174
|
- test/capture_backend_test.rb
|
173
175
|
- test/environment_test.rb
|