prometheus_exporter 2.2.0 → 2.3.1
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 +4 -4
- data/CHANGELOG +235 -58
- data/README.md +14 -11
- data/{bin → exe}/prometheus_exporter +7 -0
- data/lib/prometheus_exporter/client.rb +34 -2
- data/lib/prometheus_exporter/instrumentation/delayed_job.rb +3 -1
- data/lib/prometheus_exporter/instrumentation/process.rb +6 -0
- data/lib/prometheus_exporter/instrumentation/puma.rb +2 -0
- data/lib/prometheus_exporter/middleware.rb +4 -4
- data/lib/prometheus_exporter/server/collector.rb +14 -2
- data/lib/prometheus_exporter/server/process_collector.rb +2 -0
- data/lib/prometheus_exporter/server/puma_collector.rb +7 -0
- data/lib/prometheus_exporter/server/runner.rb +9 -3
- data/lib/prometheus_exporter/server/web_server.rb +15 -7
- data/lib/prometheus_exporter/version.rb +1 -1
- metadata +5 -262
- data/.github/workflows/ci.yml +0 -103
- data/.gitignore +0 -13
- data/.rubocop +0 -1
- data/.rubocop.yml +0 -18
- data/.streerc +0 -2
- data/Appraisals +0 -14
- data/CODE_OF_CONDUCT.md +0 -74
- data/Dockerfile +0 -9
- data/Gemfile +0 -8
- data/Guardfile +0 -8
- data/Rakefile +0 -12
- data/bench/bench.rb +0 -46
- data/examples/custom_collector.rb +0 -25
- data/gemfiles/.bundle/config +0 -2
- data/gemfiles/ar_60.gemfile +0 -5
- data/gemfiles/ar_61.gemfile +0 -7
- data/gemfiles/ar_70.gemfile +0 -7
- data/gemfiles/ar_71.gemfile +0 -7
- data/prometheus_exporter.gemspec +0 -44
data/Gemfile
DELETED
data/Guardfile
DELETED
data/Rakefile
DELETED
data/bench/bench.rb
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require_relative "../lib/prometheus_exporter"
|
|
4
|
-
require_relative "../lib/prometheus_exporter/client"
|
|
5
|
-
require_relative "../lib/prometheus_exporter/server"
|
|
6
|
-
|
|
7
|
-
# test how long it takes a custom collector to process 10k messages
|
|
8
|
-
|
|
9
|
-
class Collector
|
|
10
|
-
def initialize(done)
|
|
11
|
-
@i = 0
|
|
12
|
-
@done = done
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def process(message)
|
|
16
|
-
_parsed = JSON.parse(message)
|
|
17
|
-
@i += 1
|
|
18
|
-
@done.call if @i % 10_000 == 0
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def prometheus_metrics_text
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
@start = nil
|
|
26
|
-
@client = nil
|
|
27
|
-
@runs = 1000
|
|
28
|
-
|
|
29
|
-
done =
|
|
30
|
-
lambda do
|
|
31
|
-
puts "Elapsed for 10k messages is #{Time.now - @start}"
|
|
32
|
-
if (@runs -= 1) > 0
|
|
33
|
-
@start = Time.now
|
|
34
|
-
10_000.times { @client.send_json(hello: "world") }
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
collector = Collector.new(done)
|
|
39
|
-
server = PrometheusExporter::Server::WebServer.new port: 12_349, collector: collector
|
|
40
|
-
server.start
|
|
41
|
-
@client = PrometheusExporter::Client.new port: 12_349, max_queue_size: 100_000
|
|
42
|
-
|
|
43
|
-
@start = Time.now
|
|
44
|
-
10_000.times { @client.send_json(hello: "world") }
|
|
45
|
-
|
|
46
|
-
sleep
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
class MyCustomCollector < PrometheusExporter::Server::BaseCollector
|
|
4
|
-
def initialize
|
|
5
|
-
@gauge1 = PrometheusExporter::Metric::Gauge.new("thing1", "I am thing 1")
|
|
6
|
-
@gauge2 = PrometheusExporter::Metric::Gauge.new("thing2", "I am thing 2")
|
|
7
|
-
@mutex = Mutex.new
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def process(obj)
|
|
11
|
-
@mutex.synchronize do
|
|
12
|
-
if thing1 = obj["thing1"]
|
|
13
|
-
@gauge1.observe(thing1)
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
if thing2 = obj["thing2"]
|
|
17
|
-
@gauge2.observe(thing2)
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def prometheus_metrics_text
|
|
23
|
-
@mutex.synchronize { "#{@gauge1.to_prometheus_text}\n#{@gauge2.to_prometheus_text}" }
|
|
24
|
-
end
|
|
25
|
-
end
|
data/gemfiles/.bundle/config
DELETED
data/gemfiles/ar_60.gemfile
DELETED
data/gemfiles/ar_61.gemfile
DELETED
data/gemfiles/ar_70.gemfile
DELETED
data/gemfiles/ar_71.gemfile
DELETED
data/prometheus_exporter.gemspec
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
lib = File.expand_path("../lib", __FILE__)
|
|
4
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
|
-
require "prometheus_exporter/version"
|
|
6
|
-
|
|
7
|
-
Gem::Specification.new do |spec|
|
|
8
|
-
spec.name = "prometheus_exporter"
|
|
9
|
-
spec.version = PrometheusExporter::VERSION
|
|
10
|
-
spec.authors = ["Sam Saffron"]
|
|
11
|
-
spec.email = ["sam.saffron@gmail.com"]
|
|
12
|
-
|
|
13
|
-
spec.summary = "Prometheus Exporter"
|
|
14
|
-
spec.description = "Prometheus metric collector and exporter for Ruby"
|
|
15
|
-
spec.homepage = "https://github.com/discourse/prometheus_exporter"
|
|
16
|
-
spec.license = "MIT"
|
|
17
|
-
|
|
18
|
-
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features|bin)/}) }
|
|
19
|
-
spec.bindir = "bin"
|
|
20
|
-
spec.executables = ["prometheus_exporter"]
|
|
21
|
-
spec.require_paths = ["lib"]
|
|
22
|
-
|
|
23
|
-
spec.add_dependency "webrick"
|
|
24
|
-
|
|
25
|
-
spec.add_development_dependency "rubocop", ">= 0.69"
|
|
26
|
-
spec.add_development_dependency "bundler", ">= 2.1.4"
|
|
27
|
-
spec.add_development_dependency "rake", "~> 13.0"
|
|
28
|
-
spec.add_development_dependency "minitest", "~> 5.23.0"
|
|
29
|
-
spec.add_development_dependency "guard", "~> 2.0"
|
|
30
|
-
spec.add_development_dependency "mini_racer", "~> 0.12.0"
|
|
31
|
-
spec.add_development_dependency "guard-minitest", "~> 2.0"
|
|
32
|
-
spec.add_development_dependency "oj", "~> 3.0"
|
|
33
|
-
spec.add_development_dependency "rack-test", "~> 2.1.0"
|
|
34
|
-
spec.add_development_dependency "minitest-stub-const", "~> 0.6"
|
|
35
|
-
spec.add_development_dependency "rubocop-discourse", ">= 3"
|
|
36
|
-
spec.add_development_dependency "appraisal", "~> 2.3"
|
|
37
|
-
spec.add_development_dependency "activerecord", "~> 6.0.0"
|
|
38
|
-
spec.add_development_dependency "redis", "> 5"
|
|
39
|
-
spec.add_development_dependency "m"
|
|
40
|
-
spec.add_development_dependency "syntax_tree"
|
|
41
|
-
spec.add_development_dependency "syntax_tree-disable_ternary"
|
|
42
|
-
spec.add_development_dependency "raindrops", "~> 0.19" if !RUBY_ENGINE == "jruby"
|
|
43
|
-
spec.required_ruby_version = ">= 3.0.0"
|
|
44
|
-
end
|