A summary of data about the Ruby ecosystem.

Recent Releases of https://github.com/DataDog/dogstatsd-ruby

https://github.com/DataDog/dogstatsd-ruby - v5.7.1

5.7.1 / 2025.08.20

  • [IMPROVEMENT] Suppress external env if origin detection is configured off. #316 by @StephenWakely

- Ruby
Published by rayz 7 months ago

https://github.com/DataDog/dogstatsd-ruby - 5.7.0 / 2025.07.11

  • [FEATURE] Added origin detection via CGroups or DD_EXTERNAL_ENV. Cardinality can be specified
    with a cardinality parameter. [#310] by @StephenWakely

- Ruby
Published by rayz 8 months ago

https://github.com/DataDog/dogstatsd-ruby - v5.6.6

5.6.6 / 2025.03.19

- Ruby
Published by rayz 12 months ago

https://github.com/DataDog/dogstatsd-ruby - v5.6.5

5.6.5 / 2025.02.03

  • [OTHER] Include changes meant for dogstatsd-ruby v5.6.4 which should be skipped. #303 by @jasonpenny

- Ruby
Published by rayz about 1 year ago

https://github.com/DataDog/dogstatsd-ruby - v5.6.4

5.6.4 / 2024.12.19

  • [BUGFIX] Delete commas when escaping tag content #301 by @mattwd7

- Ruby
Published by rayz about 1 year ago

https://github.com/DataDog/dogstatsd-ruby - v5.6.3

  • [BUGFIX] Fixes invalid Symbol#name usage for Ruby versions < 3.0 #297 by @rayz

- Ruby
Published by rayz over 1 year ago

https://github.com/DataDog/dogstatsd-ruby -

  • [OTHER] Ruby versions 3.2 and 3.3 are now supported. [#291] by @gdubicki
  • [IMPROVEMENT] Reduce memory allocations during tag and metric serialization. [#294] by @schlubbi
  • [IMPROVEMENT] Avoid allocations when using delay_serialization. [#295] by @jhawthorn

- Ruby
Published by rayz over 1 year ago

https://github.com/DataDog/dogstatsd-ruby - v5.6.1

5.6.1 / 2023.09.07

- Ruby
Published by remeh over 2 years ago

https://github.com/DataDog/dogstatsd-ruby - v5.6.0

5.6.0 / 2023.07.10

- Ruby
Published by remeh over 2 years ago

https://github.com/DataDog/dogstatsd-ruby - v5.5.0

5.5.0 / 2022.06.01

- Ruby
Published by remeh almost 4 years ago

https://github.com/DataDog/dogstatsd-ruby - v5.4.0

5.4.0 / 2022.03.01

  • [IMPROVEMENT] Add a pre_sampled option to metric methods [#235][] by [@matthewshafer][]

  • [OTHER] Ruby versions earlier than 2.1.0 are no longer supported. Ruby-2.0 was EOL as of 2016-02-24.

  • [OTHER] Ruby versions 3.0 and 3.1 are now supported, including a fix for keyword arguments to StatsD#open. [#240][]

- Ruby
Published by djmitche about 4 years ago

https://github.com/DataDog/dogstatsd-ruby - v5.3.3

5.3.3 / 2022.02.02

  • [IMPROVEMENT] Add option "buffer_flush_interval" to flush buffered metrics [#231][] by [@abicky][]

  • [IMPROVEMENT] Add Sender.queue_size limits to limit number of buffered metrics [#232][] by [@djmitche][]

  • [IMPROVEMENT] The client can now be configured to use UDS via the DD_DOGSTATSD_SOCKET environment variable.
    This variable does not take precedence over any explicit parameters passed to the Statsd constructor.
    [#227][] by [@djmitche][]

- Ruby
Published by djmitche about 4 years ago

https://github.com/DataDog/dogstatsd-ruby - 5.3.2 / 2021.11.03

  • [OTHER] add a warning message for the v5.x update on install #222 by @djmitche

- Ruby
Published by djmitche over 4 years ago

https://github.com/DataDog/dogstatsd-ruby - v5.3.1 / 2021.10.21

  • [OTHER] restore connection opening behavior from before 5.3.0 (connections not opened on client instantiation but on the first write instead) #214 by @remeh

- Ruby
Published by remeh over 4 years ago

https://github.com/DataDog/dogstatsd-ruby - v5.3.0 / 2021.10.06

  • [ENHANCEMENT] Automatically re-allocate resources (e.g. background thread) if dogstatsd-ruby is used in an application using forks #205 by @remeh
    This will help in scenarios where applications are not handling cleanup/re-creation of the dogstatsd-ruby instances in forked processes. If you are an user of v4.x versions of dogstatsd-ruby and want to migrate to v5.x, please make sure to go through this section of the README and through the migration guide.

  • [BUGFIX] Fix client telemetry in applications using forks #205 by @remeh

Please note that this version will emit a deprecation message if you are using ruby < 2.1: we plan to drop support for ruby 2.0 in a future minor release.

- Ruby
Published by remeh over 4 years ago

https://github.com/DataDog/dogstatsd-ruby - v5.2.0 / 2021.07.01

  • [FEATURE] Add single_thread mode for users having issues with the companion thread. #194 by @remeh

You can use this mode to avoid spawning a companion thread while using v5.x versions:

# Import the library
require 'datadog/statsd'

# Create a DogStatsD client instance.
statsd = Datadog::Statsd.new('localhost', 8125, single_thread: true)
...
# release resources used by the client instance and flush last metrics
statsd.close()

Note that if you want to restore the behavior of v4.x versions, you can also configure the buffer to flush on every metric submission:

# Import the library
require 'datadog/statsd'

# Create a DogStatsD client instance using UDP
statsd = Datadog::Statsd.new('localhost', 8125, single_thread: true, buffer_max_pool_size: 1)
...
# to close the instance is not necessary in this case since metrics are flushed on submission
# but it is still a good practice and it explicitely closes the socket
statsd.close()

- Ruby
Published by remeh over 4 years ago

https://github.com/DataDog/dogstatsd-ruby - v5.1.0 / 2021.06.17

  • [FEATURE] Flush last metrics on Statsd#close #180 by @kbogtob
  • [ENHANCEMENT] Do not try to flush where there is no available message_queue [#189][] by @remeh
  • [OTHER] Add pry to development dependencies and enable gem in Gemfile #192 by @ivoanjo
  • [OTHER] Expand Ruby Support to Rubies 2.6, 2.7, and 3.0 [#191][] by @laserlemon

Known issues

If the DogStatsD client is instantiated before a fork, the forked process won't copy the companion thread that the original client needs to flush and the client won't work properly. This issue will be addressed in an upcoming version. If you are concerned by this issue, please read this section of the README.

- Ruby
Published by remeh over 4 years ago

https://github.com/DataDog/dogstatsd-ruby - v5.0.1 / 2021.04.09

  • [OTHER] Re-introduce a Statsd#batch method to help with compatibility with v4.x versions. #176 by @remeh
    • It is deprecated and will be removed in v6.x
    • It does not have the exact same behavior as the batch method from v4.x versions since the flush could now automatically occur while the batch block is executed if the buffer has been filled.
  • [BUGFIX] Safely close concurrent resources on Sender #175 by @marcotc

- Ruby
Published by remeh almost 5 years ago

https://github.com/DataDog/dogstatsd-ruby - v5.0.0 / 2021.04.07

API breaking changes

  1. This new major version uses automatic buffering with preemptive flushing, there is no need to manually batch the metrics together anymore. The preemptive flushing part means that just before the buffer gets full, a flush is triggered. Manual flush is still possible with the Statsd#flush method. The Statsd#batch method has been removed from the API. What would have been written this way with the v4 API:
require 'datadog/statsd'

statsd = Datadog::Statsd.new('127.0.0.1', 8125)

statsd.batch do |s|
  s.increment('example_metric.increment', tags: ['environment:dev'])
  s.gauge('example_metric.gauge', 123, tags: ['environment:dev'])
end

should be written this way with the v5 API:

require 'datadog/statsd'

statsd = Datadog::Statsd.new('127.0.0.1', 8125)

statsd.increment('example_metric.increment', tags: ['environment:dev'])
statsd.gauge('example_metric.gauge', 123, tags: ['environment:dev'])

# synchronous flush
statsd.flush(sync: true)
  1. Statsd#initialize parameter max_buffer_bytes has been renamed to buffer_max_payload_size for consistency with the new automatic batch strategy. Please note the addition of buffer_max_pool_size to limit the maximum amount of messages to buffer.

Commits

  • [IMPROVEMENT] Use asynchronous IO to avoid doing IO in the hot paths of the library users #151 by [@kbogtob
  • [IMPROVEMENT] Automatic buffering/preemptive flushing for better performances #146 by @kbogtob

- Ruby
Published by remeh almost 5 years ago

https://github.com/DataDog/dogstatsd-ruby - v4.8.3

  • [FEATURE] Add truncate_if_too_long option to the event call to truncate the event if it is too long instead of raising an error #161 by @kazu9su

- Ruby
Published by remeh about 5 years ago

https://github.com/DataDog/dogstatsd-ruby - v4.8.2

  • [IMPROVEMENT] The overhead of submitting metrics through dogstatsd-ruby has been reduced #155 #156 by @marcotc

- Ruby
Published by remeh over 5 years ago

https://github.com/DataDog/dogstatsd-ruby - v4.8.1

  • [BUGFIX] Send global tags even if no tags provided when using service check / event call #147 by @f3ndot

- Ruby
Published by remeh almost 6 years ago

https://github.com/DataDog/dogstatsd-ruby - v4.8.0

  • [Feature] Add support of more environment variables for tagging #140 by @delner
  • [OTHER] Small optimizations #139 by @tenderlove
  • [BUGFIX] Properly close UDPSocket before creating a new one #143 by @zachmccormick
  • [OTHER] Refactor to make code more idiomatic #138 by @kbogtob
  • [OTHER] Refactor to translate unit tests to rspec #135 by @kbogtob
  • [OTHER] Bump rake requirement to >= 12.3.3 #137 by @remeh

- Ruby
Published by remeh almost 6 years ago

https://github.com/DataDog/dogstatsd-ruby - v4.7.0

4.7.0 / 2020.02.14

  • [FEATURE] Add configurable flush interval for the telemetry #132 by @hush-hush
  • [OTHER] Code structure and tests improvements #131 by @kbogtob

- Ruby
Published by remeh about 6 years ago

https://github.com/DataDog/dogstatsd-ruby - v4.6.0

4.6.0 / 2020-01-20

  • [FEATURE] Adding telemetry to the dogstatsd client #128

- Ruby
Published by remeh about 6 years ago

https://github.com/DataDog/dogstatsd-ruby - v.4.5.0

4.5.0 / 2019.08.22

  • [BUGFIX] Handle ECONNREFUSED and typo fix #113 by @redhotpenguin

- Ruby
Published by KSerrania over 6 years ago

https://github.com/DataDog/dogstatsd-ruby - v4.4.0

4.4.0 / 2019.07.15

  • [BUGFIX] Allow Integer date_happened and timestamp options #115
  • [OTHER] Update yard gem to 0.9.20 #114

- Ruby
Published by KSerrania over 6 years ago

https://github.com/DataDog/dogstatsd-ruby - v4.3.0

4.3.0 / 2019.06.24

  • [FEATURE] Allow passing tags as a hash #107 by @jtzemp
  • [FEATURE] Added a setting for the global sample rate #110 by @claytono
  • [BUGFIX] Fix non-ascii event texts being truncated #112 by @devleoper
  • [BUGFIX] Display error if write fails due to a bad socket #97 by @abicky

- Ruby
Published by albertvaka over 6 years ago

https://github.com/DataDog/dogstatsd-ruby -

  • [FEATURE] Added environment vars support for host, port and entity id #109 by @ahmed-mez

- Ruby
Published by masci almost 7 years ago

https://github.com/DataDog/dogstatsd-ruby -

  • [FEATURE] Handle ENOTCONN #102 by @blaines
  • [IMPROVEMENT] Retry first before losing message when receiving ENOTCONN #104 by @blaines

- Ruby
Published by masci almost 7 years ago

https://github.com/DataDog/dogstatsd-ruby - 4.0.0

[IMPROVEMENT] Add .open for short-lived reporting that does not leave sockets around #96 by @grosser
[IMPROVEMENT] Extract batch logic into a class #95 by @grosser
[IMPROVEMENT] Extract connection for separation of concerns #94 by @grosser
[IMPROVEMENT] Fail fast on unknown options #93 by @grosser
[IMPROVEMENT] Always lazy connect #92 by @grosser
[IMPROVEMENT] Batch events and service checks too #88 by @grosser
[IMPROVEMENT] Remove bad argument after options #83 by @grosser
[IMPROVEMENT] Reduce object allocation and make all strings frozen on ruby 2.3+ #78 by @grosser

Breaking changes

Remove deprecated version method #91 by @grosser
port / host / tags / namespace can no longer be set on the instance to allow thread-safety #87 by @grosser
port / host / socket_path readers are now on statsd.connection
Make logger an instance var #90 by @grosser
Make format_service_check private #89 by @grosser
Improve code coverage / make format_event private #84 by @grosser
Set buffer size in bytes #86 by @grosser
max_buffer_size initializer argument removed and replaced with max_buffer_bytes (defaults to 8192)
max_buffer_size/max_buffer_size= methods removed

- Ruby
Published by masci over 7 years ago

https://github.com/DataDog/dogstatsd-ruby - 3.3.0

  • [FEATURE] Add distribution support (beta). See #72.
  • [IMPROVEMENT] A ton of cleanups and refinements courtesy of @grosser. See #68, #69, #73, #74, #75, #76, #77.
  • [IMPROVEMENT] Unify tag handling in format_service_check. See #71 by @grosser.
  • [IMPROVEMENT] Use faster time method on ruby >= 2.1. See #70 by @grosser.

- Ruby
Published by masci about 8 years ago

https://github.com/DataDog/dogstatsd-ruby - v3.2.0

  • [IMPROVEMENT] Add statsd sample rate compat. #67, @sj26

- Ruby
Published by masci about 8 years ago

https://github.com/DataDog/dogstatsd-ruby - v3.1.0

  • [FEATURE] Add Unix Domain Socket support. #61, @sullerandras
  • [IMPROVEMENT] Don't flush an empty buffer. #58, @misterbyrne
  • [BUGFIX] Use defaults when host/port are nil. #56, @degemer
  • [BUGFIX] Ignore nil tags and convert symbol. #53, @pschambacher
  • [FEATURE] Nest batch calls. #52, @misterbyrne
  • [BUGFIX] Convert tags to string type. #51, @jacobbednarz

- Ruby
Published by masci over 8 years ago

https://github.com/DataDog/dogstatsd-ruby - v3.0.0

3.0.0/ 2017.05.18

Breaking changes

Host resolution

Host resolution was previously done every time a message was sent, it is now
done once when Datadog::Statsd is initiliazed (resulting in a non-negligible
performance improvement). #44, @AMekss

Datadog::Statsd.new(host, port) will now raise a SocketError if unable to
resolve the host.

Changes

  • [FEATURE] Expose (socket) close method. #46, @ramfjord
  • [IMPROVEMENT] Retry once when send fails on a closed socket. #46, @ramfjord
  • [IMPROVEMENT] Use a instance variable to decide whether to batch or not. #47 @fimmtiu

- Ruby
Published by degemer almost 9 years ago

https://github.com/DataDog/dogstatsd-ruby - v2.2.0

2.2.0/ 2017.01.12

Changes

  • [IMPROVEMENT] Fewer string allocations, improves memory usage, #40, @janester

- Ruby
Published by degemer about 9 years ago

https://github.com/DataDog/dogstatsd-ruby - v2.1.0

2.1.0/ 2016.10.27

Changes

  • [FEATURE] Add an optional by parameter for #increment and #decrement, #33
  • [BUGFIX] #time: record on all block exits, #38 @nelhage
  • [IMPROVEMENT] Replace string literals with symbols or frozen strings, #37 @janester

- Ruby
Published by degemer over 9 years ago

https://github.com/DataDog/dogstatsd-ruby -

2.0.0/ 2016.09.22

Breaking changes

Namespace

The Statsd is now namespaced under the Datadog module.

To update:

  • require 'statsd' -> require 'datadog/statsd'
  • Statsd -> Datadog::Statsd

Tags

, is now stripped from tags to avoid unexpected behavior.

Datadog::Statsd also validates that it receives an array of tags, and strips , and | from them.

- Ruby
Published by degemer over 9 years ago

https://github.com/DataDog/dogstatsd-ruby - v1.6.0

1.6.0/ 2015.12.21

Changes

  • [IMPROVEMENT] Stop mutating input parameters, #22 @olefriis

- Ruby
Published by yannmh about 10 years ago

https://github.com/DataDog/dogstatsd-ruby - v1.5.0

1.5.0/ 2015.05.20

Notice

This release drops testing for Ruby 1.8.7.
Future versions are likely to introduce backward incompatibilities with < Ruby 1.9.3.

Changes

  • [FEATURE] Add service checks support, [#11][]
  • [FEATURE] Send time stat on failing block, [#16][] [@gleseur][]
  • [BUGFIX] Add instance tags to Statsd.event, [#14][] [@gleseur][]
  • [OTHER] Use send_stat instead of overriding Ruby send method, [#17][] [@sensadrome][]
  • [OTHER] Changelog update

- Ruby
Published by yannmh almost 11 years ago

https://github.com/DataDog/dogstatsd-ruby -

Fixed bug in message separator when batching metrics https://github.com/DataDog/dogstatsd-ruby/pull/10

- Ruby
Published by miketheman over 11 years ago