telegraf 3.2.0 → 3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 69f26ccd7d0f58ac35674510d6e4d07bb9934c7c2b0b7797134d5aa8884100e2
4
- data.tar.gz: f58ad3e112c88fe322e7fae5b896fe268cdf65c39048621adf020c4bcdd3d416
3
+ metadata.gz: 7d7c2f55b121766ee4dcb043ab90c60b24f122485ff8b258f9a74670fbc698ea
4
+ data.tar.gz: e964b04492e9f17a3760a42304f7feb7cb3880cfcaf99c4a1318b4c98cc4be13
5
5
  SHA512:
6
- metadata.gz: af03b5b7e2e8341734bcdf33d9f2c6724da8d0325bd18430a867443b485103ade77239f3102d1168fb78887e0b6066acf5754d22ab4149e8cce8df7d96f70016
7
- data.tar.gz: 4b7fa9acb1838c8d051e0aa2bbb172d58d1e22ccea3437421f9ca8d73fc2286b4f98e71849f925948fb1ac17617ac025918168c10cbeff95dbb4cca8ac79879b
6
+ metadata.gz: a5e8c04e244d3994fda138e4c1af64cfef701c515506803509f080c476e8179e0cf0d67efd9ea7c84657f06ec1fb592c37a26e2c7231ab8fbc0f34b35f4a4f0b
7
+ data.tar.gz: e957dd0d408335e13cc6bd604b3ed03ccd5e611d1921aa5f464cd0e7a4980edb7072b40b9ebd277b5d3a9ba4b72e8db39fc586e9accee22069f30f17e0b963c2
data/CHANGELOG.md CHANGED
@@ -6,6 +6,10 @@ All notable changes to this project will be documented in this file.
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ### Added
10
+
11
+ - Support for integer timestamps in X-Request-Start by @leshik (#37)
12
+
9
13
  ## [3.2.0] - 2025-03-08
10
14
 
11
15
  ### Added
data/Gemfile CHANGED
@@ -11,12 +11,13 @@ gem 'rake-release', '~> 1.2'
11
11
  gem 'rspec', '~> 3.8'
12
12
  gem 'rspec-github', require: false
13
13
 
14
- gem 'rubocop-config', github: 'jgraichen/rubocop-config', tag: 'v13'
14
+ gem 'rubocop-config', github: 'jgraichen/rubocop-config', tag: 'v14'
15
15
 
16
16
  group :test do
17
17
  gem 'rack'
18
18
  gem 'rails'
19
19
  gem 'sidekiq'
20
+ gem 'timecop'
20
21
  end
21
22
 
22
23
  group :development do
data/README.md CHANGED
@@ -51,7 +51,7 @@ It further includes plugins for Rack, Rails, ActiveJob and Sidekiq to collect re
51
51
  ## Installation
52
52
 
53
53
  ```ruby
54
- gem 'telegraf'
54
+ gem 'telegraf', '~> 3.3'
55
55
  ```
56
56
 
57
57
  And then execute:
@@ -194,7 +194,7 @@ See middleware [class documentation](lib/telegraf/sidekiq.rb) for more details.
194
194
 
195
195
  ## License
196
196
 
197
- Copyright (C) 2017-2024 Jan Graichen
197
+ Copyright (C) 2017-2025 Jan Graichen
198
198
 
199
199
  This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
200
200
 
@@ -6,12 +6,13 @@ gem "rake"
6
6
  gem "rake-release", "~> 1.2"
7
7
  gem "rspec", "~> 3.8"
8
8
  gem "rspec-github", require: false
9
- gem "rubocop-config", github: "jgraichen/rubocop-config", tag: "v13"
9
+ gem "rubocop-config", github: "jgraichen/rubocop-config", tag: "v14"
10
10
 
11
11
  group :test do
12
12
  gem "rack", "~> 2.0.0"
13
13
  gem "rails"
14
14
  gem "sidekiq"
15
+ gem "timecop"
15
16
  end
16
17
 
17
18
  group :development do
@@ -6,12 +6,13 @@ gem "rake"
6
6
  gem "rake-release", "~> 1.2"
7
7
  gem "rspec", "~> 3.8"
8
8
  gem "rspec-github", require: false
9
- gem "rubocop-config", github: "jgraichen/rubocop-config", tag: "v13"
9
+ gem "rubocop-config", github: "jgraichen/rubocop-config", tag: "v14"
10
10
 
11
11
  group :test do
12
12
  gem "rack", "~> 2.1.0"
13
13
  gem "rails"
14
14
  gem "sidekiq"
15
+ gem "timecop"
15
16
  end
16
17
 
17
18
  group :development do
@@ -6,12 +6,13 @@ gem "rake"
6
6
  gem "rake-release", "~> 1.2"
7
7
  gem "rspec", "~> 3.8"
8
8
  gem "rspec-github", require: false
9
- gem "rubocop-config", github: "jgraichen/rubocop-config", tag: "v13"
9
+ gem "rubocop-config", github: "jgraichen/rubocop-config", tag: "v14"
10
10
 
11
11
  group :test do
12
12
  gem "rack", "~> 2.2.0"
13
13
  gem "rails"
14
14
  gem "sidekiq"
15
+ gem "timecop"
15
16
  end
16
17
 
17
18
  group :development do
@@ -6,12 +6,13 @@ gem "rake"
6
6
  gem "rake-release", "~> 1.2"
7
7
  gem "rspec", "~> 3.8"
8
8
  gem "rspec-github", require: false
9
- gem "rubocop-config", github: "jgraichen/rubocop-config", tag: "v13"
9
+ gem "rubocop-config", github: "jgraichen/rubocop-config", tag: "v14"
10
10
 
11
11
  group :test do
12
12
  gem "rack", "~> 3.0"
13
13
  gem "rails"
14
14
  gem "sidekiq"
15
+ gem "timecop"
15
16
  end
16
17
 
17
18
  group :development do
@@ -6,12 +6,13 @@ gem "rake"
6
6
  gem "rake-release", "~> 1.2"
7
7
  gem "rspec", "~> 3.8"
8
8
  gem "rspec-github", require: false
9
- gem "rubocop-config", github: "jgraichen/rubocop-config", tag: "v13"
9
+ gem "rubocop-config", github: "jgraichen/rubocop-config", tag: "v14"
10
10
 
11
11
  group :test do
12
12
  gem "rack"
13
13
  gem "rails", "~> 6.1.0"
14
14
  gem "sidekiq"
15
+ gem "timecop"
15
16
  end
16
17
 
17
18
  group :development do
@@ -6,12 +6,13 @@ gem "rake"
6
6
  gem "rake-release", "~> 1.2"
7
7
  gem "rspec", "~> 3.8"
8
8
  gem "rspec-github", require: false
9
- gem "rubocop-config", github: "jgraichen/rubocop-config", tag: "v13"
9
+ gem "rubocop-config", github: "jgraichen/rubocop-config", tag: "v14"
10
10
 
11
11
  group :test do
12
12
  gem "rack"
13
13
  gem "rails", "~> 7.0.0"
14
14
  gem "sidekiq"
15
+ gem "timecop"
15
16
  end
16
17
 
17
18
  group :development do
@@ -6,12 +6,13 @@ gem "rake"
6
6
  gem "rake-release", "~> 1.2"
7
7
  gem "rspec", "~> 3.8"
8
8
  gem "rspec-github", require: false
9
- gem "rubocop-config", github: "jgraichen/rubocop-config", tag: "v13"
9
+ gem "rubocop-config", github: "jgraichen/rubocop-config", tag: "v14"
10
10
 
11
11
  group :test do
12
12
  gem "rack"
13
13
  gem "rails", "~> 7.1.0"
14
14
  gem "sidekiq"
15
+ gem "timecop"
15
16
  end
16
17
 
17
18
  group :development do
@@ -6,12 +6,13 @@ gem "rake"
6
6
  gem "rake-release", "~> 1.2"
7
7
  gem "rspec", "~> 3.8"
8
8
  gem "rspec-github", require: false
9
- gem "rubocop-config", github: "jgraichen/rubocop-config", tag: "v13"
9
+ gem "rubocop-config", github: "jgraichen/rubocop-config", tag: "v14"
10
10
 
11
11
  group :test do
12
12
  gem "rack"
13
13
  gem "rails", "~> 7.2.0"
14
14
  gem "sidekiq"
15
+ gem "timecop"
15
16
  end
16
17
 
17
18
  group :development do
@@ -6,12 +6,13 @@ gem "rake"
6
6
  gem "rake-release", "~> 1.2"
7
7
  gem "rspec", "~> 3.8"
8
8
  gem "rspec-github", require: false
9
- gem "rubocop-config", github: "jgraichen/rubocop-config", tag: "v13"
9
+ gem "rubocop-config", github: "jgraichen/rubocop-config", tag: "v14"
10
10
 
11
11
  group :test do
12
12
  gem "rack"
13
13
  gem "rails", "~> 8.0.0"
14
14
  gem "sidekiq"
15
+ gem "timecop"
15
16
  end
16
17
 
17
18
  group :development do
@@ -6,12 +6,13 @@ gem "rake"
6
6
  gem "rake-release", "~> 1.2"
7
7
  gem "rspec", "~> 3.8"
8
8
  gem "rspec-github", require: false
9
- gem "rubocop-config", github: "jgraichen/rubocop-config", tag: "v13"
9
+ gem "rubocop-config", github: "jgraichen/rubocop-config", tag: "v14"
10
10
 
11
11
  group :test do
12
12
  gem "rack"
13
13
  gem "rails"
14
14
  gem "sidekiq", "~> 6.0"
15
+ gem "timecop"
15
16
  end
16
17
 
17
18
  group :development do
@@ -6,12 +6,13 @@ gem "rake"
6
6
  gem "rake-release", "~> 1.2"
7
7
  gem "rspec", "~> 3.8"
8
8
  gem "rspec-github", require: false
9
- gem "rubocop-config", github: "jgraichen/rubocop-config", tag: "v13"
9
+ gem "rubocop-config", github: "jgraichen/rubocop-config", tag: "v14"
10
10
 
11
11
  group :test do
12
12
  gem "rack"
13
13
  gem "rails"
14
14
  gem "sidekiq", "~> 7.0"
15
+ gem "timecop"
15
16
  end
16
17
 
17
18
  group :development do
@@ -6,12 +6,13 @@ gem "rake"
6
6
  gem "rake-release", "~> 1.2"
7
7
  gem "rspec", "~> 3.8"
8
8
  gem "rspec-github", require: false
9
- gem "rubocop-config", github: "jgraichen/rubocop-config", tag: "v13"
9
+ gem "rubocop-config", github: "jgraichen/rubocop-config", tag: "v14"
10
10
 
11
11
  group :test do
12
12
  gem "rack"
13
13
  gem "rails"
14
14
  gem "sidekiq", "~> 8.0"
15
+ gem "timecop"
15
16
  end
16
17
 
17
18
  group :development do
data/lib/telegraf/rack.rb CHANGED
@@ -2,6 +2,9 @@
2
2
 
3
3
  require 'rack'
4
4
 
5
+ require 'bigdecimal'
6
+ require 'bigdecimal/util'
7
+
5
8
  module Telegraf
6
9
  # Telegraf::Rack
7
10
  #
@@ -38,7 +41,8 @@ module Telegraf
38
41
  # * `queue_ms`:
39
42
  # Queue time calculated from a `X-Request-Start` header if present. The
40
43
  # header is expected to be formatted like this `t=<timestamp>` and
41
- # contain a floating point timestamp in seconds.
44
+ # contain either a floating point timestamp in seconds, or an integer
45
+ # timestamp in milliseconds or microseconds or nanoseconds.
42
46
  #
43
47
  class Rack
44
48
  include ::Telegraf::Plugin
@@ -100,7 +104,10 @@ module Telegraf
100
104
  return unless env.key?('HTTP_X_REQUEST_START')
101
105
 
102
106
  if (m = HEADER_REGEX.match(env['HTTP_X_REQUEST_START']))
103
- ::Time.at(m[1].to_f).utc
107
+ # TODO: This code works because the current timestamp in seconds
108
+ # has 11 characters, and will break on 2286-11-20 17:46:40.
109
+ value = m[2].nil? ? "#{m[1][0, 10]}.#{m[1][10, 13]}" : m[1]
110
+ ::Time.at(value.to_d).utc
104
111
  end
105
112
  rescue FloatDomainError
106
113
  # Ignore obscure floats in Time.at (e.g. infinity)
@@ -3,7 +3,7 @@
3
3
  module Telegraf
4
4
  module VERSION
5
5
  MAJOR = 3
6
- MINOR = 2
6
+ MINOR = 3
7
7
  PATCH = 0
8
8
  STAGE = nil
9
9
  STRING = [MAJOR, MINOR, PATCH, STAGE].compact.join('.').freeze
data/telegraf.gemspec CHANGED
@@ -28,4 +28,6 @@ Gem::Specification.new do |spec|
28
28
  spec.require_paths = ['lib']
29
29
 
30
30
  spec.required_ruby_version = '>= 2.7'
31
+
32
+ spec.add_dependency 'bigdecimal'
31
33
  end
metadata CHANGED
@@ -1,14 +1,28 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: telegraf
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.0
4
+ version: 3.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Graichen
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-03-08 00:00:00.000000000 Z
11
- dependencies: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: bigdecimal
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '0'
12
26
  description: Metric Reporter to local telegraf agent
13
27
  email:
14
28
  - jgraichen@altimos.de
@@ -84,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
84
98
  - !ruby/object:Gem::Version
85
99
  version: '0'
86
100
  requirements: []
87
- rubygems_version: 3.6.2
101
+ rubygems_version: 3.6.7
88
102
  specification_version: 4
89
103
  summary: Metric Reporter to local telegraf agent
90
104
  test_files: []