telegraf 2.1.1 → 3.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/maintenance-cache-wipe.yml +13 -0
- data/.github/workflows/maintenance-workflow-cleanup.yml +17 -0
- data/.github/workflows/release.yml +38 -0
- data/.github/workflows/test.yml +30 -20
- data/.rubocop.yml +3 -3
- data/Appraisals +34 -10
- data/CHANGELOG.md +20 -4
- data/Gemfile +6 -3
- data/README.md +54 -12
- data/examples/app-perf-dark.png +0 -0
- data/examples/app-perf-light.png +0 -0
- data/examples/controller-dark.png +0 -0
- data/examples/controller-light.png +0 -0
- data/examples/jobs-dark.png +0 -0
- data/examples/jobs-light.png +0 -0
- data/examples/queue-time-dark.png +0 -0
- data/examples/queue-time-light.png +0 -0
- data/gemfiles/rack_2.0.gemfile +3 -3
- data/gemfiles/rack_2.1.gemfile +3 -3
- data/gemfiles/rack_2.2.gemfile +3 -3
- data/gemfiles/rack_3.gemfile +21 -0
- data/gemfiles/rails_5.2.gemfile +2 -3
- data/gemfiles/rails_6.0.gemfile +2 -3
- data/gemfiles/rails_6.1.gemfile +3 -3
- data/gemfiles/rails_7.0.gemfile +3 -3
- data/gemfiles/rails_7.1.gemfile +21 -0
- data/gemfiles/rails_7.2.gemfile +21 -0
- data/gemfiles/rails_8.0.gemfile +21 -0
- data/gemfiles/sidekiq_6.gemfile +21 -0
- data/gemfiles/sidekiq_7.gemfile +21 -0
- data/lib/telegraf/active_job.rb +7 -6
- data/lib/telegraf/agent.rb +12 -8
- data/lib/telegraf/plugin.rb +36 -0
- data/lib/telegraf/rack.rb +9 -16
- data/lib/telegraf/railtie.rb +18 -6
- data/lib/telegraf/serializer.rb +72 -0
- data/lib/telegraf/sidekiq.rb +26 -22
- data/lib/telegraf/version.rb +2 -2
- data/lib/telegraf.rb +1 -2
- data/renovate.json5 +6 -0
- data/telegraf.gemspec +1 -3
- metadata +25 -37
- 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: "../"
|
data/lib/telegraf/active_job.rb
CHANGED
@@ -24,17 +24,16 @@ module Telegraf
|
|
24
24
|
# Total job processing time.
|
25
25
|
#
|
26
26
|
class ActiveJob
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
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
|
-
|
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
|
data/lib/telegraf/agent.rb
CHANGED
@@ -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
|
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
|
-
|
48
|
-
|
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
|
-
|
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
|
data/lib/telegraf/railtie.rb
CHANGED
@@ -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
|
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
|
-
|
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
|
data/lib/telegraf/sidekiq.rb
CHANGED
@@ -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
|
-
|
42
|
-
|
43
|
-
|
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
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
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
|
-
|
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
|
data/lib/telegraf/version.rb
CHANGED
data/lib/telegraf.rb
CHANGED
data/renovate.json5
ADDED
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.
|
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:
|
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:
|
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.
|
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.
|
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.
|
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: []
|