telegraf 2.1.1 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/maintenance-cache-wipe.yml +13 -0
  3. data/.github/workflows/maintenance-workflow-cleanup.yml +17 -0
  4. data/.github/workflows/release.yml +38 -0
  5. data/.github/workflows/test.yml +30 -20
  6. data/.rubocop.yml +3 -3
  7. data/Appraisals +34 -10
  8. data/CHANGELOG.md +20 -4
  9. data/Gemfile +6 -3
  10. data/README.md +54 -12
  11. data/examples/app-perf-dark.png +0 -0
  12. data/examples/app-perf-light.png +0 -0
  13. data/examples/controller-dark.png +0 -0
  14. data/examples/controller-light.png +0 -0
  15. data/examples/jobs-dark.png +0 -0
  16. data/examples/jobs-light.png +0 -0
  17. data/examples/queue-time-dark.png +0 -0
  18. data/examples/queue-time-light.png +0 -0
  19. data/gemfiles/rack_2.0.gemfile +3 -3
  20. data/gemfiles/rack_2.1.gemfile +3 -3
  21. data/gemfiles/rack_2.2.gemfile +3 -3
  22. data/gemfiles/rack_3.gemfile +21 -0
  23. data/gemfiles/rails_5.2.gemfile +2 -3
  24. data/gemfiles/rails_6.0.gemfile +2 -3
  25. data/gemfiles/rails_6.1.gemfile +3 -3
  26. data/gemfiles/rails_7.0.gemfile +3 -3
  27. data/gemfiles/rails_7.1.gemfile +21 -0
  28. data/gemfiles/rails_7.2.gemfile +21 -0
  29. data/gemfiles/rails_8.0.gemfile +21 -0
  30. data/gemfiles/sidekiq_6.gemfile +21 -0
  31. data/gemfiles/sidekiq_7.gemfile +21 -0
  32. data/lib/telegraf/active_job.rb +7 -6
  33. data/lib/telegraf/agent.rb +12 -8
  34. data/lib/telegraf/plugin.rb +36 -0
  35. data/lib/telegraf/rack.rb +9 -16
  36. data/lib/telegraf/railtie.rb +18 -6
  37. data/lib/telegraf/serializer.rb +72 -0
  38. data/lib/telegraf/sidekiq.rb +26 -22
  39. data/lib/telegraf/version.rb +2 -2
  40. data/lib/telegraf.rb +1 -2
  41. data/renovate.json5 +6 -0
  42. data/telegraf.gemspec +1 -3
  43. metadata +25 -37
  44. data/renovate.json +0 -5
@@ -0,0 +1,21 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rake"
6
+ gem "rspec", "~> 3.8"
7
+ gem "rspec-github", require: false
8
+ gem "rubocop-config", github: "jgraichen/rubocop-config", tag: "v13"
9
+
10
+ group :test do
11
+ gem "rack"
12
+ gem "rails", "~> 8.0.0"
13
+ gem "sidekiq"
14
+ end
15
+
16
+ group :development do
17
+ gem "appraisal"
18
+ gem "rake-release", "~> 1.2"
19
+ end
20
+
21
+ gemspec path: "../"
@@ -0,0 +1,21 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rake"
6
+ gem "rspec", "~> 3.8"
7
+ gem "rspec-github", require: false
8
+ gem "rubocop-config", github: "jgraichen/rubocop-config", tag: "v13"
9
+
10
+ group :test do
11
+ gem "rack"
12
+ gem "rails"
13
+ gem "sidekiq", "~> 6.0"
14
+ end
15
+
16
+ group :development do
17
+ gem "appraisal"
18
+ gem "rake-release", "~> 1.2"
19
+ end
20
+
21
+ gemspec path: "../"
@@ -0,0 +1,21 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rake"
6
+ gem "rspec", "~> 3.8"
7
+ gem "rspec-github", require: false
8
+ gem "rubocop-config", github: "jgraichen/rubocop-config", tag: "v13"
9
+
10
+ group :test do
11
+ gem "rack"
12
+ gem "rails"
13
+ gem "sidekiq", "~> 7.0"
14
+ end
15
+
16
+ group :development do
17
+ gem "appraisal"
18
+ gem "rake-release", "~> 1.2"
19
+ end
20
+
21
+ gemspec path: "../"
@@ -24,17 +24,16 @@ module Telegraf
24
24
  # Total job processing time.
25
25
  #
26
26
  class ActiveJob
27
- def initialize(agent:, series: 'active_job', tags: {})
28
- @agent = agent
29
- @series = series.to_s.freeze
30
- @tags = tags.freeze
27
+ include Plugin
28
+
29
+ def initialize(series: 'active_job', **kwargs)
30
+ super
31
31
  end
32
32
 
33
33
  def call(_name, start, finish, _id, payload)
34
34
  job = payload[:job]
35
35
 
36
- @agent.write(
37
- @series,
36
+ point = Point.new(
38
37
  tags: {
39
38
  **@tags,
40
39
  job: job.class.name,
@@ -45,6 +44,8 @@ module Telegraf
45
44
  app_ms: ((finish - start) * 1000.0), # milliseconds
46
45
  },
47
46
  )
47
+
48
+ _write(point, before_send_kwargs: {payload: payload})
48
49
  end
49
50
  end
50
51
  end
@@ -1,15 +1,20 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'uri'
4
+ require 'telegraf/serializer'
5
+
3
6
  module Telegraf
4
7
  class Agent
5
8
  DEFAULT_CONNECTION = 'udp://localhost:8094'
6
9
 
7
10
  attr_reader :uri, :logger, :tags
8
11
 
9
- def initialize(uri = nil, logger: nil, tags: {})
12
+ def initialize(uri = nil, logger: nil, tags: {}, before_send: nil)
10
13
  @uri = URI.parse(uri || DEFAULT_CONNECTION)
11
14
  @tags = tags
12
15
  @logger = logger
16
+ @serializer = Serializer.new
17
+ @before_send = before_send
13
18
  end
14
19
 
15
20
  def write(*args, **kwargs)
@@ -27,20 +32,19 @@ module Telegraf
27
32
  data = [{series: series || data.to_s, tags: tags, values: values.dup}]
28
33
  end
29
34
 
35
+ if @before_send
36
+ data = @before_send.call(data)
37
+ return unless data
38
+ end
39
+
30
40
  socket = connect @uri
31
- socket.write dump data
41
+ socket.write(@serializer.dump_all(data))
32
42
  ensure
33
43
  socket&.close
34
44
  end
35
45
 
36
46
  private
37
47
 
38
- def dump(data)
39
- data.each.map do |point|
40
- ::InfluxDB::PointValue.new(point).dump
41
- end.join("\n")
42
- end
43
-
44
48
  def connect(uri)
45
49
  case uri.scheme.downcase
46
50
  when 'unix'
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rack'
4
+
5
+ module Telegraf
6
+ module Plugin
7
+ # Warning: `:values` member overrides `Struct#values` and it may be
8
+ # unexpected, but nothing we can change here as this is an import public API
9
+ # right now.
10
+ #
11
+ # rubocop:disable Lint/StructNewOverride
12
+ Point = Struct.new(:tags, :values, keyword_init: true) do
13
+ def initialize(tags: {}, values: {})
14
+ super
15
+ end
16
+ end
17
+ # rubocop:enable Lint/StructNewOverride
18
+
19
+ def initialize(agent:, series:, tags: {}, before_send: nil, **)
20
+ @agent = agent
21
+
22
+ @tags = tags.freeze
23
+ @series = String(series).freeze
24
+ @before_send = before_send
25
+ end
26
+
27
+ def _write(point, before_send_kwargs: {})
28
+ if @before_send
29
+ point = @before_send.call(point, **before_send_kwargs)
30
+ return unless point
31
+ end
32
+
33
+ @agent.write(@series, tags: point.tags, values: point.values)
34
+ end
35
+ end
36
+ end
data/lib/telegraf/rack.rb CHANGED
@@ -41,22 +41,15 @@ module Telegraf
41
41
  # contain a floating point timestamp in seconds.
42
42
  #
43
43
  class Rack
44
+ include ::Telegraf::Plugin
45
+
44
46
  FIELD_NAME = 'telegraf.rack.point'
45
47
  HEADER_REGEX = /t=(\d+(\.\d+)?)/.freeze
46
48
 
47
- # Warning: `:values` member overrides `Struct#values` and it may be
48
- # unexpected, but nothing we can change here as this is an import public API
49
- # right now.
50
- #
51
- # rubocop:disable Lint/StructNewOverride
52
- Point = Struct.new(:tags, :values)
53
- # rubocop:enable Lint/StructNewOverride
49
+ def initialize(app, agent:, series: 'rack', tags: {}, logger: nil, before_send: nil) # rubocop:disable Metrics/ParameterLists
50
+ super(agent: agent, series: series, tags: tags, before_send: before_send)
54
51
 
55
- def initialize(app, agent:, series: 'rack', tags: {}, logger: nil)
56
52
  @app = app
57
- @tags = tags.freeze
58
- @agent = agent
59
- @series = series.to_s.freeze
60
53
  @logger = logger
61
54
  end
62
55
 
@@ -66,7 +59,7 @@ module Telegraf
66
59
  end
67
60
 
68
61
  rack_start = ::Rack::Utils.clock_time
69
- point = env[FIELD_NAME] = Point.new(@tags.dup, {})
62
+ point = env[FIELD_NAME] = Point.new(tags: @tags.dup)
70
63
  point.values[:queue_ms] = queue_ms if queue_ms
71
64
 
72
65
  begin
@@ -74,13 +67,13 @@ module Telegraf
74
67
  status, headers, body = @app.call(env)
75
68
  ensure
76
69
  point.tags[:status] ||= status || -1
77
- point.values[:app_ms] = \
70
+ point.values[:app_ms] =
78
71
  (::Rack::Utils.clock_time - rack_start) * 1000 # milliseconds
79
72
  end
80
73
 
81
74
  send_start = ::Rack::Utils.clock_time
82
75
  proxy = ::Rack::BodyProxy.new(body) do
83
- point.values[:send_ms] = \
76
+ point.values[:send_ms] =
84
77
  (::Rack::Utils.clock_time - send_start) * 1000 # milliseconds
85
78
 
86
79
  finish(env, point, rack_start)
@@ -95,10 +88,10 @@ module Telegraf
95
88
  private
96
89
 
97
90
  def finish(env, point, rack_start)
98
- point.values[:request_ms] = \
91
+ point.values[:request_ms] =
99
92
  (::Rack::Utils.clock_time - rack_start) * 1000 # milliseconds
100
93
 
101
- @agent.write(@series, tags: point.tags, values: point.values)
94
+ _write(point, before_send_kwargs: {request: ::Rack::Request.new(env)})
102
95
  rescue StandardError => e
103
96
  (@logger || env[::Rack::RACK_LOGGER])&.error(e)
104
97
  end
@@ -48,12 +48,14 @@ module Telegraf
48
48
  # Connect URI or tuple
49
49
  config.telegraf.connect = ::Telegraf::Agent::DEFAULT_CONNECTION
50
50
  config.telegraf.tags = {}
51
+ config.telegraf.before_send = nil
51
52
 
52
53
  # Install Rack middlewares
53
54
  config.telegraf.rack = ::ActiveSupport::OrderedOptions.new
54
55
  config.telegraf.rack.enabled = true
55
56
  config.telegraf.rack.series = 'requests'
56
57
  config.telegraf.rack.tags = {}
58
+ config.telegraf.rack.before_send = nil
57
59
 
58
60
  # Install request instrumentation
59
61
  config.telegraf.instrumentation = true
@@ -67,29 +69,37 @@ module Telegraf
67
69
  config.telegraf.active_job.enabled = defined?(::ActiveJob)
68
70
  config.telegraf.active_job.series = 'active_job'
69
71
  config.telegraf.active_job.tags = {}
72
+ config.telegraf.active_job.before_send = nil
70
73
 
71
74
  # Install Sidekiq middleware
72
75
  config.telegraf.sidekiq = ::ActiveSupport::OrderedOptions.new
73
76
  config.telegraf.sidekiq.enabled = defined?(::Sidekiq)
74
77
  config.telegraf.sidekiq.series = 'sidekiq'
75
78
  config.telegraf.sidekiq.tags = {}
79
+ config.telegraf.sidekiq.before_send = nil
76
80
 
77
81
  initializer 'telegraf.agent' do |app|
78
- app.config.telegraf.agent ||= \
79
- ::Telegraf::Agent.new \
82
+ app.config.telegraf.agent ||=
83
+ ::Telegraf::Agent.new(
80
84
  app.config.telegraf.connect,
85
+ before_send: app.config.telegraf.before_send,
81
86
  logger: Rails.logger,
82
- tags: app.config.telegraf.tags
87
+ tags: app.config.telegraf.tags,
88
+ )
83
89
  end
84
90
 
85
91
  initializer 'telegraf.rack' do |app|
86
92
  next unless app.config.telegraf.rack.enabled
87
93
 
88
- app.config.middleware.insert 0, Telegraf::Rack, \
94
+ app.config.middleware.insert(
95
+ 0,
96
+ Telegraf::Rack,
89
97
  agent: app.config.telegraf.agent,
98
+ before_send: app.config.telegraf.rack.before_send,
99
+ logger: Rails.logger,
90
100
  series: app.config.telegraf.rack.series,
91
101
  tags: app.config.telegraf.rack.tags,
92
- logger: Rails.logger
102
+ )
93
103
  end
94
104
 
95
105
  initializer 'telegraf.instrumentation' do |app|
@@ -128,6 +138,7 @@ module Telegraf
128
138
  'perform.active_job',
129
139
  Telegraf::ActiveJob.new(
130
140
  agent: app.config.telegraf.agent,
141
+ before_send: app.config.telegraf.active_job.before_send,
131
142
  series: app.config.telegraf.active_job.series,
132
143
  tags: app.config.telegraf.active_job.tags,
133
144
  ),
@@ -139,9 +150,10 @@ module Telegraf
139
150
 
140
151
  ::Sidekiq.configure_server do |config|
141
152
  config.server_middleware do |chain|
142
- chain.add Telegraf::Sidekiq::Middleware, \
153
+ chain.add Telegraf::Sidekiq::Middleware,
143
154
  app.config.telegraf.agent,
144
155
  {
156
+ before_send: app.config.telegraf.sidekiq.before_send,
145
157
  series: app.config.telegraf.sidekiq.series,
146
158
  tags: app.config.telegraf.sidekiq.tags,
147
159
  }
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegraf
4
+ class Serializer
5
+ QUOTE_SERIES = /[ ,]/.freeze
6
+ QUOTE_TAG_KEY = /[ ,=]/.freeze
7
+ QUOTE_TAG_VALUE = /[ ,=]/.freeze
8
+ QUOTE_FIELD_KEY = /[ ,="]/.freeze
9
+ QUOTE_FIELD_VALUE = /[\\"]/.freeze
10
+ QUOTE_REPLACE = /[\t\r\n]+/.freeze
11
+
12
+ def dump_all(points)
13
+ points
14
+ .each
15
+ .filter_map {|point| dump(point) }
16
+ .join("\n")
17
+ end
18
+
19
+ def dump(point)
20
+ series = quote(point[:series], QUOTE_SERIES)
21
+ return '' if series.empty?
22
+
23
+ values = point.fetch(:values).filter_map do |key, value|
24
+ k = quote(key.to_s, QUOTE_FIELD_KEY)
25
+ v = encode_value(value)
26
+ next if k.empty? || v.nil?
27
+
28
+ "#{k}=#{v}"
29
+ end
30
+ return '' if values.empty?
31
+
32
+ tags = point[:tags]&.filter_map do |key, value|
33
+ k = quote(key.to_s, QUOTE_TAG_KEY)
34
+ v = quote(value.to_s, QUOTE_TAG_VALUE)
35
+ next if k.empty? || v.empty?
36
+
37
+ "#{k}=#{v}"
38
+ end
39
+
40
+ StringIO.new.tap do |io|
41
+ io << series
42
+ io << ',' << tags.sort.join(',') if !tags.nil? && tags.any?
43
+ io << ' ' << values.sort.join(',')
44
+ end.string
45
+ end
46
+
47
+ private
48
+
49
+ def encode_value(val)
50
+ if val.nil?
51
+ nil
52
+ elsif val.is_a?(Integer)
53
+ "#{val}i"
54
+ elsif val.is_a?(Numeric)
55
+ if val.nan? || val.infinite?
56
+ nil
57
+ else
58
+ val.to_s
59
+ end
60
+ else
61
+ "\"#{quote(val.to_s, QUOTE_FIELD_VALUE)}\""
62
+ end
63
+ end
64
+
65
+ def quote(str, rule)
66
+ str
67
+ .encode('UTF-8', 'UTF-8', invalid: :replace, undef: :replace, replace: '')
68
+ .gsub(QUOTE_REPLACE, ' ')
69
+ .gsub(rule) {|c| "\\#{c}" }
70
+ end
71
+ end
72
+ end
@@ -37,51 +37,55 @@ module Telegraf
37
37
  # Only present for "normal" (async) jobs (with tag `type` of "job").
38
38
  #
39
39
  class Middleware
40
+ include ::Telegraf::Plugin
41
+
40
42
  def initialize(agent, options = {})
41
- @agent = agent
42
- @series = options.fetch(:series, 'sidekiq').to_str.freeze
43
- @tags = options.fetch(:tags, {}).to_hash.freeze
43
+ options[:series] ||= 'sidekiq'
44
+
45
+ super(
46
+ **options,
47
+ agent: agent
48
+ )
44
49
  end
45
50
 
46
51
  def call(worker, job, queue)
47
52
  job_start = ::Time.now.utc
48
53
 
49
- tags = {
50
- **@tags,
51
- type: 'job',
52
- errors: true,
53
- retry: job.key?('retried_at'),
54
- queue: queue,
55
- worker: worker.class.name,
56
- }
57
-
58
- values = {
59
- retry_count: job['retry_count'],
60
- }.compact
54
+ point = Point.new(
55
+ tags: {
56
+ **@tags,
57
+ type: 'job',
58
+ errors: true,
59
+ retry: job.key?('retried_at'),
60
+ queue: queue,
61
+ worker: worker.class.name,
62
+ },
63
+ values: {
64
+ retry_count: job['retry_count'],
65
+ }.compact,
66
+ )
61
67
 
62
68
  # The "enqueued_at" key is not present for scheduled jobs.
63
69
  # See https://github.com/mperham/sidekiq/wiki/Job-Format.
64
70
  if job.key?('enqueued_at')
65
71
  enqueued_at = ::Time.at(job['enqueued_at'].to_f).utc
66
- values[:queue_ms] = (job_start - enqueued_at) * 1000 # milliseconds
72
+ point.values[:queue_ms] = (job_start - enqueued_at) * 1000 # milliseconds
67
73
  end
68
74
 
69
75
  # The "at" key is only present for scheduled jobs.
70
- tags[:type] = 'scheduled_job' if job.key?('at')
76
+ point.tags[:type] = 'scheduled_job' if job.key?('at')
71
77
 
72
78
  begin
73
79
  yield
74
80
 
75
81
  # If we get here, this was a successful execution
76
- tags[:errors] = false
82
+ point.tags[:errors] = false
77
83
  ensure
78
84
  job_stop = ::Time.now.utc
79
85
 
80
- values[:app_ms] = (job_stop - job_start) * 1000 # milliseconds
86
+ point.values[:app_ms] = (job_stop - job_start) * 1000 # milliseconds
81
87
 
82
- @agent.write(
83
- @series, tags: tags, values: values,
84
- )
88
+ _write(point, before_send_kwargs: {worker: worker, job: job, queue: queue})
85
89
  end
86
90
  end
87
91
  end
@@ -2,9 +2,9 @@
2
2
 
3
3
  module Telegraf
4
4
  module VERSION
5
- MAJOR = 2
5
+ MAJOR = 3
6
6
  MINOR = 1
7
- PATCH = 1
7
+ PATCH = 0
8
8
  STAGE = nil
9
9
  STRING = [MAJOR, MINOR, PATCH, STAGE].compact.join('.').freeze
10
10
 
data/lib/telegraf.rb CHANGED
@@ -2,8 +2,7 @@
2
2
 
3
3
  require 'telegraf/version'
4
4
 
5
- require 'influxdb'
6
-
7
5
  module Telegraf
8
6
  require 'telegraf/agent'
7
+ require 'telegraf/plugin'
9
8
  end
data/renovate.json5 ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ $schema: "https://docs.renovatebot.com/renovate-schema.json",
3
+ extends: [
4
+ "local>jgraichen/renovate-config"
5
+ ]
6
+ }
data/telegraf.gemspec CHANGED
@@ -27,7 +27,5 @@ Gem::Specification.new do |spec|
27
27
  spec.executables = spec.files.grep(%r{^exe/}) {|f| File.basename(f) }
28
28
  spec.require_paths = ['lib']
29
29
 
30
- spec.required_ruby_version = '>= 2.5'
31
- spec.add_dependency 'influxdb'
32
- spec.add_development_dependency 'bundler'
30
+ spec.required_ruby_version = '>= 2.7'
33
31
  end
metadata CHANGED
@@ -1,43 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: telegraf
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Graichen
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2022-08-23 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: influxdb
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: bundler
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
10
+ date: 2025-01-31 00:00:00.000000000 Z
11
+ dependencies: []
41
12
  description: Metric Reporter to local telegraf agent
42
13
  email:
43
14
  - jgraichen@altimos.de
@@ -46,6 +17,9 @@ extensions: []
46
17
  extra_rdoc_files: []
47
18
  files:
48
19
  - ".editorconfig"
20
+ - ".github/workflows/maintenance-cache-wipe.yml"
21
+ - ".github/workflows/maintenance-workflow-cleanup.yml"
22
+ - ".github/workflows/release.yml"
49
23
  - ".github/workflows/test.yml"
50
24
  - ".gitignore"
51
25
  - ".rspec"
@@ -58,30 +32,45 @@ files:
58
32
  - Rakefile
59
33
  - bin/console
60
34
  - bin/setup
35
+ - examples/app-perf-dark.png
36
+ - examples/app-perf-light.png
37
+ - examples/controller-dark.png
38
+ - examples/controller-light.png
39
+ - examples/jobs-dark.png
40
+ - examples/jobs-light.png
41
+ - examples/queue-time-dark.png
42
+ - examples/queue-time-light.png
61
43
  - gemfiles/rack_2.0.gemfile
62
44
  - gemfiles/rack_2.1.gemfile
63
45
  - gemfiles/rack_2.2.gemfile
46
+ - gemfiles/rack_3.gemfile
64
47
  - gemfiles/rails_5.2.gemfile
65
48
  - gemfiles/rails_6.0.gemfile
66
49
  - gemfiles/rails_6.1.gemfile
67
50
  - gemfiles/rails_7.0.gemfile
51
+ - gemfiles/rails_7.1.gemfile
52
+ - gemfiles/rails_7.2.gemfile
53
+ - gemfiles/rails_8.0.gemfile
54
+ - gemfiles/sidekiq_6.gemfile
55
+ - gemfiles/sidekiq_7.gemfile
68
56
  - lib/telegraf.rb
69
57
  - lib/telegraf/active_job.rb
70
58
  - lib/telegraf/agent.rb
71
59
  - lib/telegraf/grape.rb
60
+ - lib/telegraf/plugin.rb
72
61
  - lib/telegraf/rack.rb
73
62
  - lib/telegraf/rails.rb
74
63
  - lib/telegraf/railtie.rb
64
+ - lib/telegraf/serializer.rb
75
65
  - lib/telegraf/sidekiq.rb
76
66
  - lib/telegraf/version.rb
77
- - renovate.json
67
+ - renovate.json5
78
68
  - telegraf.gemspec
79
69
  homepage: https://github.com/jgraichen/telegraf-ruby
80
70
  licenses:
81
71
  - LGPLv3
82
72
  metadata:
83
73
  rubygems_mfa_required: 'true'
84
- post_install_message:
85
74
  rdoc_options: []
86
75
  require_paths:
87
76
  - lib
@@ -89,15 +78,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
89
78
  requirements:
90
79
  - - ">="
91
80
  - !ruby/object:Gem::Version
92
- version: '2.5'
81
+ version: '2.7'
93
82
  required_rubygems_version: !ruby/object:Gem::Requirement
94
83
  requirements:
95
84
  - - ">="
96
85
  - !ruby/object:Gem::Version
97
86
  version: '0'
98
87
  requirements: []
99
- rubygems_version: 3.3.7
100
- signing_key:
88
+ rubygems_version: 3.6.2
101
89
  specification_version: 4
102
90
  summary: Metric Reporter to local telegraf agent
103
91
  test_files: []
data/renovate.json DELETED
@@ -1,5 +0,0 @@
1
- {
2
- "extends": [
3
- "config:base"
4
- ]
5
- }