statsd-instrument 3.0.0.pre2 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9d300be8b2e40d3b175eff237d7991949c962b284603c8e16852247171177965
4
- data.tar.gz: d3e43a58dec356b4606be2c0c39321db12223672f7caa02dd2b09331ebae9b02
3
+ metadata.gz: 9e941d77f1b0893b2a919f8c36e902e119c657338e6a4e8b45fc5eaa7b5a05a3
4
+ data.tar.gz: f80105adf47e4379a59716bd7bb46080db3ed9751edf9ef21ef64689ce39920a
5
5
  SHA512:
6
- metadata.gz: f269fec546184d3cee07a3cb365babb87bc739c126985bb9218a63f3ec86a58bf22e0f4cbf73fade2f1618cca58b9c32c9d442ebf29f3d81ca0bcfbfc1e024b1
7
- data.tar.gz: 0ee20bb6244d8403cd8c4441e9d35cafbff82c8d58b76b7c53a91c2b3d510944769a945f5a151d1b760e6d1799789c79248102a34734806eaaeded24394f8238
6
+ metadata.gz: 3518393ed260edb75f138168afad1e0f1cbd604bf12511dd73596b84d1721d0008cae138cfdef03291895bd4f8b861dd18b641dcfda093e84976a0d446da5bd3
7
+ data.tar.gz: 4fd2bc2646b88b497802103eaed1538234e37619ef35363ed061b43ce100dd4d59f03de037b5b766c46e8937b7c926fbba2a0dba7f10d5610fae43e2c31f17f2
@@ -11,7 +11,7 @@ jobs:
11
11
  matrix:
12
12
  # Windows on macOS builds started failing, so they are disabled for noew
13
13
 
14
- ruby: [2.3, 2.4, 2.5, 2.6]
14
+ ruby: [2.4, 2.5, 2.6]
15
15
  # platform: [windows-2019, macOS-10.14, ubuntu-18.04]
16
16
 
17
17
  # exclude:
@@ -20,7 +20,7 @@ Style/Alias:
20
20
  - prefer_alias
21
21
  - prefer_alias_method
22
22
 
23
- Layout/AlignHash:
23
+ Layout/HashAlignment:
24
24
  EnforcedHashRocketStyle: key
25
25
  EnforcedColonStyle: key
26
26
  EnforcedLastArgumentHashStyle: ignore_implicit
@@ -30,7 +30,7 @@ Layout/AlignHash:
30
30
  - ignore_implicit
31
31
  - ignore_explicit
32
32
 
33
- Layout/AlignParameters:
33
+ Layout/ParameterAlignment:
34
34
  EnforcedStyle: with_fixed_indentation
35
35
  SupportedStyles:
36
36
  - with_first_parameter
@@ -172,7 +172,7 @@ Naming/FileName:
172
172
  Regex:
173
173
  IgnoreExecutableScripts: true
174
174
 
175
- Layout/IndentFirstArgument:
175
+ Layout/FirstArgumentIndentation:
176
176
  EnforcedStyle: consistent
177
177
  SupportedStyles:
178
178
  - consistent
@@ -225,7 +225,7 @@ Layout/IndentationConsistency:
225
225
  Layout/IndentationWidth:
226
226
  Width: 2
227
227
 
228
- Layout/IndentFirstArrayElement:
228
+ Layout/FirstArrayElementIndentation:
229
229
  EnforcedStyle: consistent
230
230
  SupportedStyles:
231
231
  - special_inside_parentheses
@@ -233,10 +233,10 @@ Layout/IndentFirstArrayElement:
233
233
  - align_brackets
234
234
  IndentationWidth:
235
235
 
236
- Layout/IndentAssignment:
236
+ Layout/AssignmentIndentation:
237
237
  IndentationWidth:
238
238
 
239
- Layout/IndentFirstHashElement:
239
+ Layout/FirstHashElementIndentation:
240
240
  EnforcedStyle: consistent
241
241
  SupportedStyles:
242
242
  - special_inside_parentheses
@@ -340,9 +340,9 @@ Style/PercentQLiterals:
340
340
  Naming/PredicateName:
341
341
  NamePrefix:
342
342
  - is_
343
- NamePrefixBlacklist:
343
+ ForbiddenPrefixes:
344
344
  - is_
345
- NameWhitelist:
345
+ AllowedMethods:
346
346
  - is_a?
347
347
  Exclude:
348
348
  - 'spec/**/*'
@@ -467,7 +467,7 @@ Style/TernaryParentheses:
467
467
  - require_no_parentheses
468
468
  AllowSafeAssignment: true
469
469
 
470
- Layout/TrailingBlankLines:
470
+ Layout/TrailingEmptyLines:
471
471
  EnforcedStyle: final_newline
472
472
  SupportedStyles:
473
473
  - final_newline
@@ -478,7 +478,7 @@ Style/TrivialAccessors:
478
478
  AllowPredicates: true
479
479
  AllowDSLWriters: false
480
480
  IgnoreClassMethods: false
481
- Whitelist:
481
+ AllowedMethods:
482
482
  - to_ary
483
483
  - to_a
484
484
  - to_c
@@ -561,7 +561,7 @@ Lint/UnusedMethodArgument:
561
561
  Naming/AccessorMethodName:
562
562
  Enabled: true
563
563
 
564
- Layout/AlignArray:
564
+ Layout/ArrayAlignment:
565
565
  Enabled: true
566
566
 
567
567
  Style/ArrayJoin:
@@ -840,7 +840,7 @@ Style/WhileUntilDo:
840
840
  Style/ZeroLengthPredicate:
841
841
  Enabled: true
842
842
 
843
- Layout/IndentHeredoc:
843
+ Layout/HeredocIndentation:
844
844
  EnforcedStyle: squiggly
845
845
 
846
846
  Lint/AmbiguousOperator:
@@ -864,7 +864,7 @@ Lint/DeprecatedClassMethods:
864
864
  Lint/DuplicateMethods:
865
865
  Enabled: true
866
866
 
867
- Lint/DuplicatedKey:
867
+ Lint/DuplicateHashKey:
868
868
  Enabled: true
869
869
 
870
870
  Lint/EachWithObjectArgument:
@@ -891,7 +891,7 @@ Lint/FloatOutOfRange:
891
891
  Lint/FormatParameterMismatch:
892
892
  Enabled: true
893
893
 
894
- Lint/HandleExceptions:
894
+ Lint/SuppressedException:
895
895
  AllowComments: true
896
896
 
897
897
  Lint/ImplicitStringConcatenation:
@@ -947,7 +947,7 @@ Lint/ShadowedException:
947
947
  Lint/ShadowingOuterLocalVariable:
948
948
  Enabled: true
949
949
 
950
- Lint/StringConversionInInterpolation:
950
+ Lint/RedundantStringCoercion:
951
951
  Enabled: true
952
952
 
953
953
  Lint/UnderscorePrefixedVariableName:
@@ -8,6 +8,29 @@ section below.
8
8
 
9
9
  _Nothing yet_
10
10
 
11
+ ## Version 3.0.0
12
+
13
+ This version makes the new client that was added in version 2.6+ the default
14
+ client, and removes the legacy client.
15
+
16
+ - All previously deprecated functionality has been removed (since version 2.5,
17
+ see below).
18
+ - Support for the StatSite implementation has been dropped.
19
+ - Support for Ruby version older than 2.4 has been dropped.
20
+ - The default implementation has been changed to DataDog. To use the standard
21
+ StatsD implementation (which was the default in v2), set the
22
+ `STATSD_IMPLEMENTATION` environment variable to `statsd`.
23
+
24
+ To upgrade, follow the following process:
25
+
26
+ 1. Upgrade to version 2.9.2.
27
+ 2. Switch to the new client by setting the `STATSD_USE_NEW_CLIENT` environment
28
+ variable to 1.
29
+ - You may want to use the Rubocop rules that ship with this library, and
30
+ strict mode to find and fix deprecated usage patterns. See below for more
31
+ information about strict mode and the available Rubocop rules.
32
+ 3. Upgrade to version 3.0.0, and unset `STATSD_USE_NEW_CLIENT`.
33
+
11
34
  ## Version 2.9.2
12
35
 
13
36
  - Allow providing a value as second positional argument to `assert_statsd_*`
@@ -2,6 +2,7 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require 'bundler/setup'
5
+ require 'tmpdir'
5
6
  require 'benchmark/ips'
6
7
 
7
8
  revision = %x(git rev-parse HEAD).rstrip
@@ -3,6 +3,7 @@
3
3
 
4
4
  require 'bundler/setup'
5
5
  require 'benchmark/ips'
6
+ require 'tmpdir'
6
7
  require 'socket'
7
8
  require 'statsd-instrument'
8
9
 
@@ -4,86 +4,14 @@ require 'socket'
4
4
  require 'logger'
5
5
  require 'forwardable'
6
6
 
7
- # The StatsD module contains low-level metrics for collecting metrics and sending them to the backend.
7
+ # The `StatsD` module contains low-level metrics for collecting metrics and
8
+ # sending them to the backend.
8
9
  #
9
- # @!attribute client
10
- # @return [StatsD::Instrument::Backend] The client that will handle singleton method calls in the next
11
- # major version of this library.
12
- # @note This new Client implementation is intended to become the new default in
13
- # the next major release of this library. While this class may already be functional,
14
- # we provide no guarantees about the API and the behavior may change.
15
- #
16
- # @!attribute backend
17
- # The backend that is being used to emit the metrics.
18
- # @return [StatsD::Instrument::Backend] the currently active backend. If there is no active backend
19
- # yet, it will call {StatsD::Instrument::Environment#default_backend} to obtain a
20
- # default backend for the environment.
21
- # @see StatsD::Instrument::Environment#default_backend
22
- # @deprecated
23
- #
24
- # @!attribute prefix
25
- # The prefix to apply to metric names. This can be useful to group all the metrics
26
- # for an application in a shared StatsD server.
27
- #
28
- # When using a prefix a dot will be included automatically to separate the prefix
29
- # from the metric name.
30
- #
31
- # @return [String, nil] The prefix, or <tt>nil</tt> when no prefix is used
32
- # @see StatsD::Instrument::Metric#name
33
- # @deprecated
34
- #
35
- # @!attribute default_sample_rate
36
- # The sample rate to use if the sample rate is unspecified for a metric call.
37
- # @return [Float] Default is 1.0.
38
- # @deprecated
39
- #
40
- # @!attribute logger
41
- # The logger to use in case of any errors. The logger is also used as default logger
42
- # for the LoggerBackend (although this can be overwritten).
43
- # @see StatsD::Instrument::Backends::LoggerBackend
44
- # @return [Logger]
45
- #
46
- # @!attribute default_tags
47
- # The tags to apply to all metrics.
48
- # @return [Array<String>, Hash<String, String>, nil] The default tags, or <tt>nil</tt> when no default tags is used
49
- # @deprecated
50
- #
51
- # @!attribute singleton_client
52
- # @nodoc
53
- # @deprecated
54
- #
55
- # @!method measure(name, value = nil, sample_rate: nil, tags: nil, &block)
56
- # (see StatsD::Instrument::Client#measure)
57
- #
58
- # @!method increment(name, value = 1, sample_rate: nil, tags: nil)
59
- # (see StatsD::Instrument::Client#increment)
60
- #
61
- # @!method gauge(name, value, sample_rate: nil, tags: nil)
62
- # (see StatsD::Instrument::Client#gauge)
63
- #
64
- # @!method set(name, value, sample_rate: nil, tags: nil)
65
- # (see StatsD::Instrument::Client#set)
66
- #
67
- # @!method histogram(name, value, sample_rate: nil, tags: nil)
68
- # (see StatsD::Instrument::Client#histogram)
69
- #
70
- # @!method distribution(name, value = nil, sample_rate: nil, tags: nil, &block)
71
- # (see StatsD::Instrument::Client#distribution)
72
- #
73
- # @!method key_value(name, value)
74
- # (see StatsD::Instrument::Client#key_value)
75
- #
76
- # @!method event(title, text, tags: nil, hostname: nil, timestamp: nil, aggregation_key: nil, priority: nil, source_type_name: nil, alert_type: nil) # rubocop:disable Metrics/LineLength
77
- # (see StatsD::Instrument::Client#event)
78
- #
79
- # @!method service_check(name, status, tags: nil, hostname: nil, timestamp: nil, message: nil)
80
- # (see StatsD::Instrument::Client#service_check)
81
- #
82
- # @see StatsD::Instrument <tt>StatsD::Instrument</tt> contains module to instrument
10
+ # @see .singleton_client Metric method calls on the `StatsD` singleton will
11
+ # be handled by the client assigned to `StatsD.singleton_client`.
12
+ # @see StatsD::Instrument `StatsD::Instrument` contains module to instrument
83
13
  # existing methods with StatsD metrics
84
14
  module StatsD
85
- extend self
86
-
87
15
  # The StatsD::Instrument module provides metaprogramming methods to instrument your methods with
88
16
  # StatsD metrics. E.g., you can create counters on how often a method is called, how often it is
89
17
  # successful, the duration of the methods call, etc.
@@ -99,7 +27,9 @@ module StatsD
99
27
  end
100
28
  end
101
29
 
30
+ # Generates a metric name for an instrumented method.
102
31
  # @private
32
+ # @return [String]
103
33
  def self.generate_metric_name(name, callee, *args)
104
34
  name.respond_to?(:call) ? name.call(callee, args).gsub('::', '.') : name.gsub('::', '.')
105
35
  end
@@ -363,18 +293,55 @@ module StatsD
363
293
  end
364
294
  end
365
295
 
366
- attr_accessor :logger
367
- attr_writer :singleton_client
296
+ class << self
297
+ extend Forwardable
368
298
 
369
- extend Forwardable
299
+ # The logger to use in case of any errors.
300
+ #
301
+ # @return [Logger]
302
+ # @see StatsD::Instrument::LogSink
303
+ attr_accessor :logger
370
304
 
371
- def singleton_client
372
- @singleton_client ||= StatsD::Instrument::Environment.current.client
373
- end
305
+ # The StatsD client that handles method calls on the StatsD singleton.
306
+ #
307
+ # E.g. a call to `StatsD.increment` will be handled by this client.
308
+ #
309
+ # @return [StatsD::Instrument::Client]
310
+ attr_writer :singleton_client
311
+
312
+ # The StatsD client that handles method calls on the StatsD singleton
313
+ # @return [StatsD::Instrument::Client]
314
+ def singleton_client
315
+ @singleton_client ||= StatsD::Instrument::Environment.current.client
316
+ end
374
317
 
375
- # Singleton methods will be delegated to the singleton client.
376
- def_delegators :singleton_client, :increment, :gauge, :set, :measure,
377
- :histogram, :distribution, :key_value, :event, :service_check
318
+ # @!method measure(name, value = nil, sample_rate: nil, tags: nil, &block)
319
+ # (see StatsD::Instrument::Client#measure)
320
+ #
321
+ # @!method increment(name, value = 1, sample_rate: nil, tags: nil)
322
+ # (see StatsD::Instrument::Client#increment)
323
+ #
324
+ # @!method gauge(name, value, sample_rate: nil, tags: nil)
325
+ # (see StatsD::Instrument::Client#gauge)
326
+ #
327
+ # @!method set(name, value, sample_rate: nil, tags: nil)
328
+ # (see StatsD::Instrument::Client#set)
329
+ #
330
+ # @!method histogram(name, value, sample_rate: nil, tags: nil)
331
+ # (see StatsD::Instrument::Client#histogram)
332
+ #
333
+ # @!method distribution(name, value = nil, sample_rate: nil, tags: nil, &block)
334
+ # (see StatsD::Instrument::Client#distribution)
335
+ #
336
+ # @!method event(title, text, tags: nil, hostname: nil, timestamp: nil, aggregation_key: nil, priority: nil, source_type_name: nil, alert_type: nil) # rubocop:disable Metrics/LineLength
337
+ # (see StatsD::Instrument::Client#event)
338
+ #
339
+ # @!method service_check(name, status, tags: nil, hostname: nil, timestamp: nil, message: nil)
340
+ # (see StatsD::Instrument::Client#service_check)
341
+
342
+ def_delegators :singleton_client, :increment, :gauge, :set, :measure,
343
+ :histogram, :distribution, :event, :service_check
344
+ end
378
345
  end
379
346
 
380
347
  require 'statsd/instrument/version'
@@ -136,18 +136,6 @@ module StatsD::Instrument::Assertions
136
136
  assert_statsd_expectation(expectation, datagrams: datagrams, client: client, &block)
137
137
  end
138
138
 
139
- # Asserts that a given key/value metric occurred inside the provided block.
140
- #
141
- # @param metric_name (see #assert_statsd_increment)
142
- # @param options (see #assert_statsd_increment)
143
- # @yield (see #assert_statsd_increment)
144
- # @return [void]
145
- # @raise (see #assert_statsd_increment)
146
- def assert_statsd_key_value(metric_name, value = nil, datagrams: nil, client: nil, **options, &block)
147
- expectation = StatsD::Instrument::Expectation.key_value(metric_name, value, **options)
148
- assert_statsd_expectation(expectation, datagrams: datagrams, client: client, &block)
149
- end
150
-
151
139
  # Asserts that the set of provided metric expectations came true.
152
140
  #
153
141
  # Generally, it's recommended to use more specific assertion methods, like
@@ -1,12 +1,27 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # The Client is the main interface for using StatsD.
3
+ # The Client is the main interface for using StatsD. It defines the metric
4
+ # methods that you would normally call from your application.
4
5
  #
5
- # @note This new Client implementation is intended to become the new default in the
6
- # next major release of this library. While this class may already be functional,
7
- # we provide no guarantees about the API and the behavior may change.
6
+ # The client set to {StatsD.singleton_client} will handle all metric calls made
7
+ # against the StatsD singleton, e.g. `StatsD.increment`.
8
+ #
9
+ # We recommend that the configuration of the StatsD setup is provided through
10
+ # environment variables
11
+ #
12
+ # You are encouraged to instantiate multiple clients, and instantiate variants
13
+ # of an existing clients using {#clone_with_options}. We recommend instantiating
14
+ # a separate client for every logical component of your application using
15
+ # `clone_with_options`, and setting a different metric `prefix`.
16
+ #
17
+ # @see StatsD.singleton_client
18
+ # @see #clone_with_options
8
19
  class StatsD::Instrument::Client
9
20
  class << self
21
+ # Instantiates a StatsD::Instrument::Client using configuration values provided in
22
+ # environment variables.
23
+ #
24
+ # @see StatsD::Instrument::Environment
10
25
  def from_env(
11
26
  env = StatsD::Instrument::Environment.current,
12
27
  prefix: env.statsd_prefix,
@@ -26,7 +41,14 @@ class StatsD::Instrument::Client
26
41
  )
27
42
  end
28
43
 
44
+ # Finds the right DatagramBuilder class for a given implementation.
29
45
  # @private
46
+ # @param [Symbol, String] implementation The name of the implementation, e.g.
47
+ # `"statsd"` or `:datadog`.
48
+ # @return [Class] The subclass of {StatsD::Instrument::DatagramBuilder}
49
+ # builder to use to generate UDP datagrams for the given implementation.
50
+ # @raise `NotImplementedError` if the implementation is not recognized or
51
+ # supported.
30
52
  def datagram_builder_class_for_implementation(implementation)
31
53
  case implementation.to_s
32
54
  when 'statsd'
@@ -39,8 +61,87 @@ class StatsD::Instrument::Client
39
61
  end
40
62
  end
41
63
 
42
- attr_reader :sink, :datagram_builder_class, :prefix, :default_tags, :default_sample_rate
64
+ # The class to use to build StatsD datagrams. To build the actual datagrams,
65
+ # the class will be instantiated, potentially multiple times, by the client.
66
+ #
67
+ # @return [Class] A subclass of {StatsD::Instrument::DatagramBuilder}
68
+ # @see .datagram_builder_class_for_implementation
69
+ attr_reader :datagram_builder_class
70
+
71
+ # The sink to send UDP datagrams to.
72
+ #
73
+ # This can be set to any object that responds to the following methods:
74
+ #
75
+ # - `sample?` which should return true if the metric should be sampled, i.e.
76
+ # actually sent to the sink.
77
+ # - `#<<` which takes a UDP datagram as string to emit the datagram. This
78
+ # method will only be called if `sample?` returned `true`.
79
+ #
80
+ # Generally, you should use an instance of one of the following classes that
81
+ # ship with this library:
82
+ #
83
+ # - {StatsD::Instrument::UDPSink} A sink that will actually emit the provided
84
+ # datagrams over UDP.
85
+ # - {StatsD::Instrument::NullSink} A sink that will simply swallow every
86
+ # datagram. This sink is for use when testing your application.
87
+ # - {StatsD::Instrument::LogSink} A sink that log all provided datagrams to
88
+ # a Logger, normally {StatsD.logger}.
89
+ #
90
+ # @return [#sample?, #<<]
91
+ attr_reader :sink
43
92
 
93
+ # The prefix to prepend to the metric names that are emitted through this
94
+ # client, using a dot (`.`) as namespace separator. E.g. when the prefix is
95
+ # set to `foo`, and you emit a metric named `bar`, the metric name will be
96
+ # `foo.bar`.
97
+ #
98
+ # Generally all the metrics you emit to the same StatsD server will share a
99
+ # single, global namespace. If you are emitting metrics from multiple
100
+ # applications, using a prefix is recommended to prevent metric name
101
+ # collisions.
102
+ #
103
+ # You can also leave this value to be `nil` if you don't want to prefix your
104
+ # metric names.
105
+ #
106
+ # @return [String, nil]
107
+ #
108
+ # @note The `prefix` can be overriden by any metric call by setting the
109
+ # `no_prefix` keyword argument to `true`. We recommend against doing this,
110
+ # but this behavior is retained for backwards compatibility.
111
+ # Rather, when you feel the need to do this, we recommend instantiating
112
+ # a new client without prefix (using {#clone_with_options}), and using it
113
+ # to emit the metric.
114
+ attr_reader :prefix
115
+
116
+ # The tags to apply to all the metrics emitted through this client.
117
+ #
118
+ # The tags can be supplied in normal form: an array of strings. You can also
119
+ # provide a hash, which will be turned into normal form by concatanting the
120
+ # key and the value using a colon. To not use any default tags, set to `nil`.
121
+ # Note that other components of your StatsD metric pipeline may also add tags
122
+ # to metrics. E.g. the DataDog agent may add add tags like `hostname`.
123
+ #
124
+ # We generally recommend to not use default tags, or use them sparingly.
125
+ # Adding tags to every metric easily introduces carninality explosions, which
126
+ # will make metrics less precise due to the lossy nature of aggregation. It
127
+ # also makes your infrastructure more expsnive to run, and the user interface
128
+ # of your metric explorer less responsive.
129
+ #
130
+ # @return [Array<String>, Hash, nil]
131
+ attr_reader :default_tags
132
+
133
+ # The default sample rate to use for metrics that are emitted without a
134
+ # sample rate set. This should be a value between 0 (never emit a metric) and
135
+ # 1.0 (always emit). If it is not set, the default value 1.0 is used.
136
+ #
137
+ # We generally recommend setting sample rates on individual metrics based
138
+ # on their frequency, rather than changing the default sample rate.
139
+ #
140
+ # @return [Float] (default: 1.0) A value between 0.0 and 1.0.
141
+ attr_reader :default_sample_rate
142
+
143
+ # Instantiates a new client.
144
+ # @see .from_env to instantiate a client using environment variables.
44
145
  def initialize(
45
146
  prefix: nil,
46
147
  default_sample_rate: 1.0,
@@ -216,18 +317,15 @@ class StatsD::Instrument::Client
216
317
  end
217
318
  end
218
319
 
219
- # Emits a service check.
220
- #
221
- # @param [String] title Event title.
222
- # @param [String] text Event description. Newlines are allowed.
223
- # @param [Time] timestamp The of the event. If not provided,
224
- # Datadog will interpret it as the current timestamp.
225
- # @param [String] hostname A hostname to associate with the event.
226
- # @param [String] aggregation_key An aggregation key to group events with the same key.
227
- # @param [String] priority Priority of the event. Either "normal" (default) or "low".
228
- # @param [String] source_type_name The source type of the event.
229
- # @param [String] alert_type Either "error", "warning", "info" (default) or "success".
230
- # @param [Array, Hash] tags Tags to associate with the event.
320
+ # Emits a service check. Services Checks allow you to characterize the status
321
+ # of a service in order to monitor it within Datadog.
322
+ #
323
+ # @param name (see StatsD::Instrument::DogStatsDDatagramBuilder#_sc)
324
+ # @param status (see StatsD::Instrument::DogStatsDDatagramBuilder#_sc)
325
+ # @param timestamp (see StatsD::Instrument::DogStatsDDatagramBuilder#_sc)
326
+ # @param hostname (see StatsD::Instrument::DogStatsDDatagramBuilder#_sc)
327
+ # @param tags (see StatsD::Instrument::DogStatsDDatagramBuilder#_sc)
328
+ # @param message (see StatsD::Instrument::DogStatsDDatagramBuilder#_sc)
231
329
  # @return [void]
232
330
  #
233
331
  # @note Supported by the Datadog implementation only.
@@ -236,15 +334,17 @@ class StatsD::Instrument::Client
236
334
  timestamp: timestamp, hostname: hostname, tags: tags, message: message))
237
335
  end
238
336
 
239
- # Emits an event.
337
+ # Emits an event. An event represents any record of activity noteworthy for engineers.
240
338
  #
241
- # @param [String] name Name of the service
242
- # @param [Symbol] status Either `:ok`, `:warning`, `:critical` or `:unknown`
243
- # @param [Time] timestamp The moment when the service was checked. If not provided,
244
- # Datadog will interpret it as the current timestamp.
245
- # @param [String] hostname A hostname to associate with the check.
246
- # @param [Array, Hash] tags Tags to associate with the check.
247
- # @param [String] message A message describing the current state of the service check.
339
+ # @param title (see StatsD::Instrument::DogStatsDDatagramBuilder#_e)
340
+ # @param text (see StatsD::Instrument::DogStatsDDatagramBuilder#_e)
341
+ # @param timestamp (see StatsD::Instrument::DogStatsDDatagramBuilder#_e)
342
+ # @param hostname (see StatsD::Instrument::DogStatsDDatagramBuilder#_e)
343
+ # @param aggregation_key (see StatsD::Instrument::DogStatsDDatagramBuilder#_e)
344
+ # @param priority (see StatsD::Instrument::DogStatsDDatagramBuilder#_e)
345
+ # @param source_type_name (see StatsD::Instrument::DogStatsDDatagramBuilder#_e)
346
+ # @param alert_type (see StatsD::Instrument::DogStatsDDatagramBuilder#_e)
347
+ # @param tags (see StatsD::Instrument::DogStatsDDatagramBuilder#_e)
248
348
  # @return [void]
249
349
  #
250
350
  # @note Supported by the Datadog implementation only.
@@ -19,10 +19,6 @@ class StatsD::Instrument::Expectation
19
19
  new(type: :s, name: name, value: value, **options)
20
20
  end
21
21
 
22
- def key_value(name, value = nil, **options)
23
- new(type: :kv, name: name, value: value, **options)
24
- end
25
-
26
22
  def distribution(name, value = nil, **options)
27
23
  new(type: :d, name: name, value: value, **options)
28
24
  end
@@ -11,7 +11,6 @@ module StatsD::Instrument::Matchers
11
11
  histogram: :h,
12
12
  distribution: :d,
13
13
  set: :s,
14
- key_value: :kv,
15
14
  }
16
15
 
17
16
  class Matcher
@@ -79,11 +79,6 @@ module StatsD
79
79
  super
80
80
  end
81
81
 
82
- def key_value(*)
83
- raise NotImplementedError, "The key_value metric type will be removed " \
84
- "from the next major version of statsd-instrument"
85
- end
86
-
87
82
  private
88
83
 
89
84
  def check_block_or_numeric_value(value)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module StatsD
4
4
  module Instrument
5
- VERSION = "3.0.0.pre2"
5
+ VERSION = "3.0.0"
6
6
  end
7
7
  end
@@ -55,7 +55,8 @@ class StatsDTest < Minitest::Test
55
55
 
56
56
  begin
57
57
  result = lambda.call
58
- rescue # rubocop:disable Lint/HandleExceptions:
58
+ rescue
59
+ # noop
59
60
  end
60
61
  end
61
62
 
@@ -146,7 +147,8 @@ class StatsDTest < Minitest::Test
146
147
 
147
148
  begin
148
149
  result = lambda.call
149
- rescue # rubocop:disable Lint/HandleExceptions
150
+ rescue
151
+ # noop
150
152
  end
151
153
  end
152
154
 
@@ -4,7 +4,7 @@ ENV['ENV'] = 'test'
4
4
 
5
5
  require 'minitest/autorun'
6
6
  require 'minitest/pride'
7
- require 'mocha/setup'
7
+ require 'mocha/minitest'
8
8
  require 'statsd-instrument'
9
9
 
10
10
  require_relative 'helpers/rubocop_helper'
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: 3.0.0.pre2
4
+ version: 3.0.0
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: 2019-11-22 00:00:00.000000000 Z
13
+ date: 2020-01-10 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rake
@@ -211,9 +211,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
211
211
  version: '0'
212
212
  required_rubygems_version: !ruby/object:Gem::Requirement
213
213
  requirements:
214
- - - ">"
214
+ - - ">="
215
215
  - !ruby/object:Gem::Version
216
- version: 1.3.1
216
+ version: '0'
217
217
  requirements: []
218
218
  rubygems_version: 3.0.3
219
219
  signing_key: